Skip to the content
2 layers36.8 × 90.9 mmBwlr3d, the printed circuit board in 3D

Teapot BWLR3D: Asset Tracker and Environmental Sensor with Solar Energy Harvesting

Size
36.8 × 90.9 mm
Copper layers
2
Thickness
1.6 mm
Parts
108
Nets
74
Pads
314
Tracks, vias
670, 120
Pours
2
Routed
Yes
KiCad
KiCad 6 (file 20211014)
Created
25 Aug 2022
Updated
6 Aug 2024

Overview

Bwlr3d is an open-source printed circuit board by teapotlaboratories, from the teapotlaboratories/bwlr3d repository on GitHub, published under the MIT licence. It is a 2-layer board of 36.8 × 90.9 mm with 108 parts on 74 nets, routed with 670 tracks and 120 vias.

It is built around the L86-M33, KXOB25-05X3F-TB and BME680, with the LIS3MDL, VEML7700-TT and RAK3172-SIP among its other parts. Its parts include 35 capacitors, 21 resistors, 9 ICs, 4 transistors and 3 inductors. It belongs with the radio and wireless and power boards and the STM32 boards of this library.

Main components

10

README

readme.md

Teapot BWLR3D

drawing

Teapot BWLR3D is an Asset Tracker and Environmental Sensor with Solar Energy Harvesting. The device is capable of sensing temperature, humidity, air pressure, air quality, light intensity using the on-board BME688 plus VEM7700, and calculate device's AHRS using the LSM6DSOX as accelerometer and gyrometer with LIS3MDL as magnetometer. Equiped with low-power L86-M33 GNSS module, the device is capable to locate itself anywhere in the world. With STM32WLE MCU as it's core and AEM10941 for solar charging, the device is capable ultra-low power operation with the possibility of indefinite battery-life by utilizing the solar charging capability.

Teapot BWLR3D is part of Teapot open-hardware project.

Disclaimer

  • The 1KM range is based on AERQ - Air Quality Monitoring design, but have not been tested on this device yet
  • The position of the BME688 sensor on the board might not be the most efficient
  • The position of the LIS3MDL sensor might get interference from the surrounding components and the provided magnetic case does interfere with the sensor.

Future Works

  • Develop code to read sensor and send data when movement is detected. LSM6DSOX can be set to ultra-low power mode and set to wake MCU when movement is detected, all other sensors needs to be in power-down mode.
  • Change SW4 wiring from GND to 3V3, to allow booting to STM32WLE USART Bootloader. This enable the user to flash the RAK3172 module using STM32CubeProgrammer without ST-Link.

Specification

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

Schematics

schematic

Schematic revisions:

  • Revision 1: Initial design
  • Revision 2: Swap BATT_MEAS and IMU_INT pin, and add 0.1uF to voltage divider

Boards

pcb_render
PCB Render

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

Top BoardBottom Board

assembled_front

assembled_back

pcb_front

pcb_bottom

pcb
PCB Top and Bottom Layout

Case

case_render

Built using TinkerCAD, the cases are available with 2 variant, with or without the programming port. The cases are 3D printable with any generic 3D printer with/without suppport (depends on the orientation). The STL files are available here

drawing
Case Open

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, 500 mAh 50mm x 22mm 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 102 bytes @ 14dBm: 225ms @ 48mA
  • Deep-Sleep : 12 uA
  • GNSS Fix - Cold Start: 15s @ 38mA
  • GNSS Fix - Hot Start: 5s @ 35mA
  • Sensor Read: 1.36s @ 9mA
  • Direct Sunlight Solar Charge: 12mA
  • Indirect Sunlight Solar Charge: 454uA

Notes:

  • GNSS time to fix depends on the conditions of the sky

lora_transmit
LoRa Transmit

deep_sleep
Deep-Sleep

gnss_fix-cold_start
GNSS Fix - Cold Start

gnss_fix-hot_start
GNSS Fix - Hot Start

sensor_read_without_gnss_fix
Sensor Read

Solar Charge - Direct SunlightSolar Charge - Indirect Sunlight

solar_charge_direct_sunlight

solar_charge_indirect_sunlight

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

:warning: Be sure to buy the RAK3172 variant without IPEX to use the On-Board Antenna

IdDesignatorPackageQuantityDesignation
1BT1JST_PH_S2B-PH-K_1x02_P2.00mm_Horizontal13.7v
2C14,C23,C29C_0603_1608Metric31uF
3C17,C31,C32,C1,C9,C22,C8,C10,C34,C13C_0603_1608Metric1210uF
4C2,C4CP_EIA-3528-15_AVX-H_Pad1.50x2.35mm2330uF
5C21C_0603_1608Metric14.7uF
6C27C_0603_1608Metric12.2uF
7C5,C20,C26,C12,C28,C19,C30,C11,C25,C3,C33,C24,C18,C35C_0603_1608Metric140.1uF
8C6C_1210_3225Metric1150uF
9C7C_0603_1608Metric122uF
10D1LED_0603_1608Metric1RED
11D2LED_0603_1608Metric1GREEN
12E1ANT-915-USP4101ANT-915-USP410
13L2IND_LPS4012-103MRB110uH
14L3L_0603_1608Metric110uH
15Q1SOT-231PJA3407
16Q2,Q4SOT-323_SC-702DMG1012UW
17Q3SOT-231PMV27UPER
18R1R_0603_1608Metric14.7K
19R11R_0603_1608Metric1100K
20R12,R13,R5R_0603_1608Metric31K
21R14R_0603_1608Metric1400K
22R16R_0603_1608Metric60
23R7,R2,R3,R6,R21,R4R_0603_1608Metric610K
24R9,R8,R19,R15,R18,R10,R17,R20R_0603_1608Metric81M
25SC4,SC1,SC3,SC2KXOB25-05X3F4KXOB25-05X3F
26SW3SW_SPST_B3U-1000P1RESET
27SW4SW_SPST_B3U-1000P1BOOT
28U1BME6881BME688
29U2RAK31721RAK3172
30U3QFN-28-1EP_5x5mm_P0.5mm_EP3.35x3.35mm1AEM10941-QFN
31U5L86-M331L86-M33
32U6,U4SOT-23-52XC6215
33U7PQFN50P250X300X97-14N_0.59x0.301LSM6DSOXTR
34U8LGA12_ST1LIS3MDL
35U9VEML7700-TT1VEML7700-TT

Programming

:warning: Board can only be powered using the LiPo Battery

Programming the device can be done over the UART2 or SWD, available on the right side of the board. 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

:warning: Be sure to only use 3.3V module. Do not 5V module

For connecting to the SWD port, use ST-Link v2 in-circuit debugger and programmer from STM. In testing, ST-Link v2 clone will not work. The ST-Link v2 should atleast be reconizeable by the STM32CubeProgrammer. A cheap and alternative way to get an authorized ST-Link is to buy a Nucleo board, cut the top part which contain the ST-Link and use it as an external programmer.


ST-Link v2 from a Nucleo Development Board

Here are some good tutorial to convert a Nucleo to and external ST-Link v2:

Notes

There are some issue, notes, and behavior that was discovered at the time of testing and development. The following are those discovery:

  • Soldering the solar cell is better to be done manually using a soldering iron. Without proper reflow oven, it may damage the solar cell and reduces it's efficiency
  • PRIMIN is available to use as the input for AEM10941 Primary Battery input. See schematic for more detail

Reference

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

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

Parts

108
QtyValueFootprintReferences
140.1uFCapacitor_SMD:C_0603_1608MetricC3, C5, C11, C12, C18, C19, C20, C24, C25, C26, C28, C30, C33, C35
1010uFCapacitor_SMD:C_0603_1608MetricC1, C8, C9, C10, C13, C17, C22, C31, C32, C34
81MResistor_SMD:R_0603_1608MetricR8, R9, R10, R15, R17, R18, R19, R20
610KResistor_SMD:R_0603_1608MetricR2, R3, R4, R6, R7, R21
4KXOB25-05X3FTeapot:KXOB25-05X3FSC1, SC2, SC3, SC4
31KResistor_SMD:R_0603_1608MetricR5, R12, R13
31uFCapacitor_SMD:C_0603_1608MetricC14, C23, C29
2330uFCapacitor_Tantalum_SMD:CP_EIA-3528-15_AVX-H_Pad1.50x2.35mm_HandSolderC2, C4
2? FCapacitor_SMD:C_0603_1608MetricC15, C16
2DMG1012UWPackage_TO_SOT_SMD:SOT-323_SC-70Q2, Q4
2XC6215Package_TO_SOT_SMD:SOT-23-5_HandSolderingU4, U6
10Resistor_SMD:R_0603_1608MetricR16
1100KResistor_SMD:R_0603_1608MetricR11
110uHInductor_SMD:L_0603_1608MetricL3
110uH 0.55ATeapot:IND_LPS4012-103MRBL2
1150uFCapacitor_SMD:C_1210_3225MetricC6
12.2uFCapacitor_SMD:C_0603_1608MetricC27
122uFCapacitor_SMD:C_0603_1608MetricC7
13.7v LiPoConnector_JST:JST_PH_S2B-PH-K_1x02_P2.00mm_HorizontalBT1
13V3TestPoint:TestPoint_Pad_D1.0mmTP8
13V3PTestPoint:TestPoint_Pad_D1.0mmTP12
14.7KResistor_SMD:R_0603_1608MetricR1
14.7uF Capacitor_SMD:C_0603_1608MetricC21
1400KResistor_SMD:R_0603_1608MetricR14
1? HInductor_SMD:L_0603_1608MetricL1
1AEM10941-QFNPackage_DFN_QFN:QFN-28-1EP_5x5mm_P0.5mm_EP3.35x3.35mmU3
1ANT-915-USP410Teapot:XDCR_ANT-915-USP410E1
1AO3407Package_TO_SOT_SMD:SOT-23Q1
1BATT+TestPoint:TestPoint_Pad_D1.0mmTP13
1BATT-TestPoint:TestPoint_Pad_D1.0mmTP14
1BME680Teapot:BME680-PSON80P300X300X100-8NU1
1BOOTButton_Switch_SMD:SW_SPST_B3U-1000PSW4
1FB_PRIM_ENJumper:SolderJumper-3_P1.3mm_Open_RoundedPad1.0x1.5mm_NumberLabelsJP5
1GNDTestPoint:TestPoint_Pad_1.5x1.5mmTP7
1GNDTestPoint:TestPoint_Pad_D2.0mmTP16
1GPS_VBCKPJumper:SolderJumper-3_P1.3mm_Open_RoundedPad1.0x1.5mm_NumberLabelsJP6
1GREENLED_SMD:LED_0603_1608MetricD2
1L86-M33Teapot:XCVR_L86-M33U5
1LIS3MDLTeapot:LGA12_STU8
1LOGOTeapot:TextLogo_BWLR3DG***
1LOGOTeapot:TeapotLogoG***
1LOGOTeapot:TextLogo_TeapotG***
1LSM6DSOXTRTeapot:PQFN50P250X300X97-14N_0.59x0.30U7
1LiPo+TestPoint:TestPoint_Pad_D1.0mmTP9
1PMV32UPPackage_TO_SOT_SMD:SOT-23Q3
1PRIMINTestPoint:TestPoint_Pad_1.5x1.5mmTP1
1PRIMINTestPoint:TestPoint_Pad_D2.0mmTP15
1RAK3172Teapot:RAK3172U2
1REDLED_SMD:LED_0603_1608MetricD1
1RESETButton_Switch_SMD:SW_SPST_B3U-1000PSW3
1RSTTestPoint:TestPoint_Pad_1.5x1.5mmTP5
1RXD2TestPoint:TestPoint_Pad_1.5x1.5mmTP4
1SELMPP0Jumper:SolderJumper-3_P1.3mm_Bridged12_RoundedPad1.0x1.5mm_NumberLabelsJP3
1SELMPP1Jumper:SolderJumper-3_P1.3mm_Bridged12_RoundedPad1.0x1.5mm_NumberLabelsJP4
1SOLAR+TestPoint:TestPoint_Pad_D1.5mmTP10
1SOLAR-TestPoint:TestPoint_Pad_D1.5mmTP11
1SWCLKTestPoint:TestPoint_Pad_1.5x1.5mmTP6
1SWDIOTestPoint:TestPoint_Pad_1.5x1.5mmTP3
1TXD2TestPoint:TestPoint_Pad_1.5x1.5mmTP2
1USER0Jumper:SolderJumper-3_P1.3mm_Bridged12_RoundedPad1.0x1.5mm_NumberLabelsJP1
1USER1Jumper:SolderJumper-3_P1.3mm_Bridged12_RoundedPad1.0x1.5mm_NumberLabelsJP2
1VEML7700-TTTeapot:XDCR_VEML7700-TTU9

The 107 most common of 108 parts.

Similar boards

  • 2 layers36.8 × 90.9 mmBwlr1e, the printed circuit board in 3D

    Bwlr1e

    teapotlaboratories/bwlr1e

    Teapotlabs BWLR1E: Wireless Environmental Sensor with Energy Harvesting from Solar Energy

    65 parts36MIT
  • 4 layers38.4 × 128.5 mmPlantpal, the printed circuit board in 3D

    Plantpal

    rajeev2705/PROJECTS

    Welcome to my PCB projects repository! This space is dedicated to documenting my journey in designing, creating, and improving printed circuit boards (PCBs).

    127 parts
  • 2 layers38.6 × 72.1 mmBwlr1b, the printed circuit board in 3D

    Bwlr1b

    teapotlaboratories/bwlr1b

    Teapot BWLR1B: Wireless Environmental Sensor over LoRa

    42 parts15MIT
  • 4 layers38.4 × 128.5 mmPlantpal, the printed circuit board in 3D

    Plantpal

    teapotlaboratories/plantpal

    Your pal in plant care

    121 parts98MIT
  • 4 layers19.5 × 11.2 mmRTLS Mainboard V2, the printed circuit board in 3D

    RTLS Mainboard V2

    KhanKudo/diplomprojekt

    HTL tgm Diplomprojekt RTLS (IOO), Gruppe Foldlabs, Jahrgang 2023/24

    63 parts
  • 4 layers184.3 × 131 mmPortaPi R1, the printed circuit board in 3D

    PortaPi R1

    JakeBoothy/PortaPi

    A portable Raspberry Pi Zero W2

    199 parts
  • 2 layers51 × 37 mmRAK proto board, the printed circuit board in 3D

    RAK proto board

    i2hm/micro_climate_station

    Open the KiCad project using KiCad 7 and above.

    40 parts3

Questions

How big is the Bwlr3d PCB?

It measures 36.8 × 90.9 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Bwlr3d use?

108 parts, built around the L86-M33, KXOB25-05X3F-TB, BME680 and LIS3MDL. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Bwlr3d KiCad files?

From the teapotlaboratories/bwlr3d repository on GitHub, at the commit this page was made from: the board is hardware/kicad/bwlr3d.kicad_pcb and its schematic hardware/kicad/bwlr3d.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Bwlr3d design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).