Giter VIP home page Giter VIP logo

bwlr1e's Introduction

Teapotlabs BWLR1E

drawing

Teapotlabs BWLR1E is a solar-powered wireless LoRa environmental sensor capable of sensing temperature, humidity, air pressure and air quality using the on-board BME688. With STM32WLE MCU as it's core and AEM10941 for solar charging, the device is capable of multi-year operation with the possibility of indefinite battery-life by utilizing the solar charging capability

Teapotlabs BWLR1E is part of Teapot open-hardware project.

Disclaimer

Acknowledgement

The project won't be possible without the amazing work from people across the globe. The following are the reference to those awesome projects:

Specification

  • RAK3172: An STM32WLE5CC module
  • AEM10941: Solar energy harvesting
  • 3.3V only power/pin.
  • 3uA Deep-Sleep
  • BME688 for Environmental Sensing
  • Switchable TX Power. 14 dBm(50mA) or 22 dBm(140mA) ( on 915MHz frequency )
  • Supports LoRaWAN 1.0.3
  • 1KM+ Range
  • UART2 breakout for Arduino/Mbed OS/STM32Cube programming
  • SWD breakout for debugging and programming
  • iPEX antenna connector
  • 3.7 Volts LiPo Battery

Schematics

schematic

Boards

pcb_render
PCB Render

Built using KiCAD, the board is design to be as small as possible with all components placed on the top side of the PCB. The following are the lists of revision of the board:

  • Revision 1: Initial design
  • Revision 2: Better trace, use rounded trace and change solar cell wiring to parallel for all cell
  • Revision 3: Rename 3V3 to PRIMIN and breaks out PRIMIN
  • Revision 4: Improve layout and wiring, and add Qwiic connector
  • Revision 5: Change C6 to 22uF

The following design are based on the latest revision.

Top Board Bottom Board

assembled_front

assembled_back

pcb_front

pcb_bottom

pcb
PCB Top and Bottom Layout

Case

case_render

Built using TinkerCAD. The case are 3D printable with any generic 3D printer with/without support. The STL files are available here

drawing
Case Open

For adding additional sensors, Qwiic connector is also available on the left side of the board.

drawing
Connecting to Adafruit BME688

The case is design to be as small as possible with an additional magnets in the back to ease the placement of the sensor. The following are the list of material used at the time of testing:

  • 3.7v LiPo Battery, 850mAh 6mm x 30mm x 48mm
  • 4 piece of 8mm x 2mm neodymium magnet

placement_showcase
Sensor Placement with Magnet

Measurement

Power consumption and solar charging current are measured using Nordic PPK2 and CurrentRanger. The following are the summary of the measurement:

  • Transmit 14dBm: 305ms @ 20mA
  • Deep-Sleep : 3.22 uA
  • Direct Sunlight Solar Charge: 9mA
  • Indirect Sunlight Solar Charge: 300uA

⚠️ Tested on Revision 3, but should be similar to Revision 5

deep_sleep
Deep-Sleep

bme688_measure_and_lora_transmit
BME688 Measure and LoRa Transmit

Solar Charge - Direct Sunlight Solar Charge - Indirect Sunlight

assembled_front

assembled_back

More measurement can be found here

Bill Of Materials

Most of the components are generic and can be bought from any electornics/semi-conductor distributor. RAK3172 is the only component available in RAKwireless store. The bill of materials can be downloaded here

⚠️ Be sure to buy the RAK3172 variant without IPEX to use the On-Board Antenna

Programming

⚠️ Board can only be powered when LiPo battery is connected

Programming the device can be done over the UART2 or SWD, available on the right side of the board or uses the BWLR1E Programmer. Out of the factory, the RAK3172 chip ships with an AT firmware that can be tested by connecting a USB-to-UART bridge to the UART2 port.

The following are some very good tutorial to start developing with the device:

For connecting to the UART2 port, use any USB-to-UART bridge module. In testing, the Sparkfun board is used for communication with AT firmware and programming over Arduino.


Sparkfun USB-to-UART Bridge

⚠️ Be sure to only use 3.3V module. Do not 5V module

Available SDK

Through UART2, user can program the device using the following SDK:

Other than Arduino RUI3 SDK, to program the device, user need to put the device in Serial Bootloader mode by,

  1. Press and Hold BOOT and RESET button
  2. Release RESET button
  3. Wait few seconds ( try 2 seconds )
  4. Release BOOT button
  5. Device should be in Serial Bootloader mode.

You can also use STM32CubeProgrammer , instead of the SDK to upload a firmware

Programming with Teapotlabs BWLR1E Programmer


Teapotlabs BWLR1E Programmer

An alternative to solder-free programming is to use the Teapotlabs BWLR1E Programmer. A full detail of the device can be found here. The programmer connects to UART2 of the device.

License

The product is open-source! However, some part of library used under src, might have it's own license. Please reach out or create a ticket to report any license violation.

License: MIT

bwlr1e's People

Contributors

aldwinhermanudin avatar rudcode avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

bwlr1e's Issues

PCB assembly

Hey!

Interesting project! Do you also provide files for the jlpcb pcb assembly? I'm not particularly skilled at soldering small SMD components, so having jlpcb handle that would be greatly appreciated.

Thanks!
ituri

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.