Skip to the content
4 layers48 × 45.5 mmLoRaHarvesterBox, the printed circuit board in 3D

LoRaHarvesterBox

h0lad/LoRaHarvesterBox11

PCB integrating a ST STM32WLE5CC and TI BQ25570 energy harvester. Ideal platform for ultra-low-power LoRa(WAN) nodes projects.

Size
48 × 45.5 mm
Copper layers
4
Thickness
1.6 mm
Parts
46
Nets
47
Pads
179
Tracks, vias
343, 202
Pours
4
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
5 Sep 2025
Updated
19 Jul 2026

Overview

LoRaHarvesterBox is an open-source printed circuit board by h0lad, from the h0lad/LoRaHarvesterBox repository on GitHub, published under the CERN-OHL-S-2.0 licence. It is a 4-layer board of 48 × 45.5 mm with 46 parts on 47 nets, routed with 343 tracks and 202 vias.

It is built around the RAK3172-8-SM-I, TPS22917DBV and SSSS811101, with the TS-1088-AR02016 among its other parts. Its parts include 10 capacitors, 9 resistors, 9 connectors, 4 ICs and 2 switches. It belongs with the radio and wireless boards and the STM32 boards of this library.

Main components

4

README

README.md

MeshtasticRouterNode MeshtasticRouterNode

What is this thing?

This generic LoRa base board is built around the ST STM32WLE5CC (RAK3172) and the TI BQ25570 energy harvester.

It is suitable for a wide range of applications, including:

  • Meshtastic (router, sensor) or Meshcore
  • LoRaWAN sensors
  • Generic raw LoRa devices
  • Or virtually any other custom project (ham balloon? Transmitter for tracking penguins?) that utilizes the modulation schemes (FSK, GFSK, MSK, GMSK) of the SX1262

For persistent data storage, an optional FRAM IC (Infineon FM24V10) can be added using I²C. A variety of sensors can additonaly integrated through I²C, SPI (on the back), or USART interfaces.

The power supply design is highly flexible: alongside standard JST-PH connectors, the board also supports very small LiPo batteries (commonly used in in-ear headphones or Bluetooth headsets), which can be soldered directly. Such batteries are readily available on AliExpress (e.g. 501010). The TI BQ25570 also supports exotic storages like Supercaps, LTO, etc.

Features

Energy

  • Capable of handling a huge variety of energy storages: LiPo, LiFePo4, LTO, SIB, Supercap
  • Starts boosting at 600mV. Maximum input voltage is 5.5V.
  • Up to 110mA can be used from the application
  • MPPT
  • Optional load-switch to switch on/off the entire STM32/LoRa-modem based on the VBAT_OK signal

Microcontroller

Uses the standardized RAK housing which can house a variety of platforms (ESP32, STM32, etc.) with compatible pins. This variant uses the RAK3172 (ST STM32WLE5CC: 256Kb Flash, 64Kb RAM, 48MHz).

Exposed interfaces:

  • 2x USART
  • 1x I2C
  • 1x SPI (back)
  • 2x ADC connected to energy source (like solar) and and energy storage (like LiPos) using voltage dividers
  • Multiple break-out pins for GPIOs on the back

LoRa

Uses the Semtech SX1262 integrated within the STM32 housing. Multiple RAK variants available for 433/470/868/915MHz.

Data Storage

Infineon FM24V10: 1-MBit non-volatile F-RAM for storing firmware updates, messages or mesurement data

Physical Dimensions

MeshtasticRouterNode

This weirdo PCB format is designed around the cheapest water protected box from Aliexpress.

Aliexpress, F-type, 63x58x35

Design Decisions

Why did you use the TI BQ25570?

It's the only energy harvester that supports up to 110mA peak current.

I'm not overly happy with this IC as it lacks a few useful features:

  • No I²C interface and ADC for reading voltages/currents

  • No Thermistor for switching off charging above and below specific temperatures

  • Doesn't switch off VOUT if the battery hits the lower threshold. It only signals it using a pin.

  • Rather annoying pin configuration. Layouting it doesn't make much fun.

  • It doesn't have interal high-precision resistors for configuring the voltage limits (VBAT_OV, etc.). Even with 1% tolerance resistors the resulting voltage ranges are barely acceptable due to error propagation.

  • Lowest possible battery voltage is 1.9V. This means we cannot utilize the full capacity of "exotic" storage types like LTO- and NaIon-cells.

Honestly - It's an old thing compared to the latest generation from ST or e-peas.

Why not buying a "naked" ST STM32WLE5?

Using a SoC module from RAK brings all the HF and impedancy matching.

Everything else leaving the housing is not really critical signal wise.

Also it's not too expensive with 6€.

Hardware

Pin Configuration

MeshtasticRouterNode

ADC
SignalPinADC ChannelInfo
Energy Storage VoltagePB3A0Voltage goes through a Voltage Divider
Energy Source VoltagePB4A1Voltage goes through a Voltage Divider
USART
PeripheralTX PinRX Pin
UART1PB6PB7
UART2PA2PA3
SWD
SignalPin
SWDIOPA13
SWCLKPA14
SPI
SignalPin
SPI1, MOSIPA7
SPI1, MISOPA6
SPI1, CLKPA5
SPI1, NSSPA4
LED
SignalPin
LEDPA8
MISC
SignalPin
VBAT_OK from TI BQ25570PA15

Resistors Values

Warning:

You have to be super careful here. Don't trust your 1%-SMD-Resistor book from Aliexpress or Amazon. Measure each resistor with a high-resolution multimeter and then calculate the voltages according to the readings! A shabby Libreoffice Calc sheet can be found within the docs folder to do this.

I wrote a script for calculating resistor values here: ti-bq25570-calculator.

Hardware Verification

PCB Version v0.0.5

LoRaHarvesterBox PCB v0.0.5

Power Chain

✅ 3.3V from TI BQ25570

✅ Charges power storage as defined with R_OV1 and R_OV2

✅ VBAT_OK signal with 3.3V LiPo attached as a storage

✅ Boosts 0.6V to 3.3V without energy storage attached

✅ Lower and upper VBAT_OK threshold

✅ Power switch (TI TPS22917DBV)

ST STM32WL55

✅ Connect to the SWD interface using a ST-Link

Findings

  1. The BQ25570 doesn't like my extremely noisy power supply as a storage emulation. It doesn't come up.

  2. You have to be very careful as even the tolerance of 1% resistors (R_OV1 and R_OV2) might cause overcharging. So stay away from the hard limits of your battery.

License

CERN Open Hardware Licence Version 2 - Strongly Reciprocal

Parts

46
QtyValueFootprintReferences
4100nFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC7, C8, C9, C10
4500kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR3, R4, R5, R6
3Conn_01x04_SocketConnector_JST:JST_PH_B4B-PH-K_1x04_P2.00mm_VerticalJ4, J5, J6
210kResistor_SMD:R_0603_1608MetricR1, R2
210nFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC2, C3
25.1MResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderROUT1, ROV2
2Conn_01x02_PinConnector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_VerticalJ1, J2
11.9MResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderROK3
1100Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR8
110kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR7
110uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC5
110uHSolarMeshRepeater_Lib:L1210L2
11uFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC6
122uHSolarMeshRepeater_Lib:L1210L1
13.9MResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderROV1
1330Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR9
14.3MResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderROK1
14.7uFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC4
14.7uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC1
16.8MResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderROK2
17.5MResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderROUT2
1BQ25570Package_DFN_QFN:QFN-20-1EP_3.5x3.5mm_P0.5mm_EP2x2mmU1
1BatterySolarMeshRepeater_Lib:501010BT1
1Conn_01x02_PinConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ3
1Conn_01x04_SocketConnector_JST:JST_ZH_B4B-ZR_1x04_P1.50mm_VerticalJ7
1Conn_01x06_SocketConnector_PinHeader_1.00mm:PinHeader_1x06_P1.00mm_Vertical_SMD_Pin1LeftJ8
1Conn_01x08_SocketConnector_PinHeader_1.00mm:PinHeader_1x08_P1.00mm_Vertical_SMD_Pin1LeftJ9
1FM24V10-GTR_C466851SolarMeshRepeater_Lib:SOIC-8_L5.0-W4.0-P1.27-LS6.0-BLU3
1LEDLED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderD1
1MountingHoleMountingHole:MountingHole_2.2mm_M2H1
1RAK3172-8-SM-ISolarMeshRepeater_Lib:WIRELM-SMD_32P-L15.5-W15.0-P1.00U2
1SSSS811101SolarMeshRepeater_Lib:SW-SMD_SSSS811101SW1
1TPS22917DBVPackage_TO_SOT_SMD:SOT-23-6U4
1TS-1088-AR02016SolarMeshRepeater_Lib:SW-SMD_L3.9-W3.0-P4.45SW2

Similar boards

  • 4 layers96 × 70 mmTradewind, the printed circuit board in 3D

    Tradewind

    binaryBeachLLC/tradewind

    Tradewind TW-1: solar LoRaWAN field sensor. KiCad 9 board, CadQuery enclosure, RUI3 firmware, simulations, test data, report and datasheet.

    85 parts
  • 4 layers54.6 × 57.1 mmCM5 MINIMA, the printed circuit board in 3D

    CM5 MINIMA

    piecol/CM5_MINIMA_REV1

    CM5 LoRaWAN carrier board in a compact, feature-filled footprint

    98 parts63CERN-OHL-S-2.0
  • 4 layers66.9 × 87 mmMeshtasticNode BQ25185, the printed circuit board in 3D

    MeshtasticNode BQ25185

    h0lad/SolarMeshtasticNode

    This is a Meshtastic Solar Node PCB based on the Heltec HT-CT62 and the linear solar charge controller TI BQ25185.

    49 parts40CERN-OHL-S-2.0
  • 4 layers98.5 × 193.5 mmSchematics, the printed circuit board in 3D

    Schematics

    apistol78/retrodack

    RetroDäck, handheld game console

    120 parts1MPL-2.0
  • 4 layers143.1 × 150.7 mmIbakey52, the printed circuit board in 3D

    Ibakey52

    Ibakha/ibakey52

    ZMK Split keyboard

    200 partsMIT
  • 4 layers51.6 × 60.6 mmLoRaPowerBox, the printed circuit board in 3D

    LoRaPowerBox

    h0lad/LoRaPowerBox

    The LoRaPowerBox combines the Heltec HT-CT62 module (ESP32C3 + Semtech SX1262) with a TI BQ25628E wide-range charger. Main target is IoT projects that deliver data over LoRa and/or Wifi utilizing solar power.

    54 parts8CERN-OHL-S-2.0
  • 4 layers79.5 × 43.4 mmTest pwr2, the printed circuit board in 3D

    Test pwr2

    tangles-0/cyberdeck-scout

    // #ifndef PINPA0 // #define PINPA0 11 // #endif // #ifndef PINPA1 // #define PINPA1 8 // #endif // #ifndef PINPA2 // #define PINPA2 9 // #endif // #ifndef PINPA3 // #define PINPA3 10 // #endif // #ifndef PINPA4 //…

    158 parts6
  • 2 layers50 × 70 mmLcdtap rp2350, the printed circuit board in 3D

    Lcdtap rp2350

    shapoco/lcdtap

    A tool for mirroring or capturing I2C/SPI LCD displays

    100 parts85

Questions

How big is the LoRaHarvesterBox PCB?

It measures 48 × 45.5 mm and has 4 copper layers, 1.6 mm thick.

What parts does the LoRaHarvesterBox use?

46 parts, built around the RAK3172-8-SM-I, TPS22917DBV, SSSS811101 and TS-1088-AR02016. 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 LoRaHarvesterBox KiCad files?

From the h0lad/LoRaHarvesterBox repository on GitHub, at the commit this page was made from: the board is pcb/LoraHarvesterBox.kicad_pcb and its schematic pcb/LoraHarvesterBox.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the LoRaHarvesterBox design in my own project?

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