A compact environmental monitoring node built around the STM32L052 microcontroller. The board measures temperature, humidity, pressure, and ambient light while providing onboard storage and support for external SX1262 LoRa modules.
I wanted to design a low-power sensor platform that could be deployed outdoors for long periods while collecting environmental data. Instead of using multiple development boards, I designed a custom PCB that integrates sensing, power management, storage, and expansion capabilities into a single board.
- STM32L052 ultra-low-power microcontroller
- SHT40 temperature and humidity sensor
- LPS25HB barometric pressure sensor
- Onboard SPI flash storage
- USB-C programming and power input
- Battery-powered operation
- Solar charging support
- External SX1262 LoRa module support
- SWD debugging interface
- Ambient light sensing
- Battery voltage monitoring
- 4 Layer PCB
- Designed in KiCad
- USB-C Connectivity
- Onboard Environmental Sensors
- Battery Monitoring Circuit
- SWD Programming Header
- SPI Flash Storage
- GPIO Expansion Headers
- Top Signal
- Ground Plane
- 3.3V Power Plane
- Bottom Signal
- USB-C Input
- Single Cell Li-Ion Battery Support
- Solar Charging Support
- Battery Voltage Monitoring
- Low-Power Design
The firmware is responsible for:
- Reading sensor data
- Storing measurements in flash memory
- Monitoring battery voltage
- Managing low-power operation
- Communicating with external SX1262 modules
| Item | Cost |
|---|---|
| PCB + PCBA (JLCPCB) | $70 |
| Shipping | $24 |
| Total | $94 |
- 71 Components
- 374 Pins
- "67 Nets"
- 4-Layer PCB
| Designator | Quantity | Value / Part |
|---|---|---|
| BT1 | 1 | 18650 Battery Holder (Keystone 1042) |
| C1, C2, C12, C13 | 4 | 1µF Capacitor (0603) |
| C5, C6, C8, C10 | 4 | 4.7µF Capacitor (0603) |
| C3, C4, C7, C9, C11, C14, C15, C16 | 8 | 100nF Capacitor (0603) |
| D1, D2 | 2 | LED (0603) |
| J1 | 1 | USB-C Receptacle (USB4105-xx-A) |
| J2 | 1 | 1x4 Pin Header |
| J3, J4 | 2 | 1x8 Pin Header |
| J5 | 1 | Power Select Header |
| L1 | 1 | 3.3µH Inductor |
| R1, R2, R5, R6, R11, R12, R13, R14, R16 | 9 | 10kΩ Resistor (0603) |
| R10 | 1 | 100kΩ Resistor (0603) |
| R15 | 1 | LDR07 Light Dependent Resistor |
| R3, R4 | 2 | 5.1kΩ Resistor (0603) |
| R7 | 1 | 600Ω Resistor (0603) |
| R8 | 1 | 35.7kΩ Resistor (0603) |
| R9 | 1 | 33kΩ Resistor (0603) |
| SW1 | 1 | Push Button Switch (SKRK Series) |
| TH1 | 1 | NTC Thermistor |
| TP1, TP2, TP4, TP5, TP6 | 5 | Test Point |
| U1 | 1 | STM32L052C8Tx Microcontroller |
| U3 | 1 | USBLC6-2P6 USB ESD Protection |
| U4 | 1 | AP2112K-3.3 Voltage Regulator |
| U5 | 1 | BQ25176J Battery Charger |
| U6 | 1 | SHT4x Temperature & Humidity Sensornsor |
| U7 | 1 | LPS25HB Pressure Sensor |
| U8 | 1 | W25Q32JVSS SPI Flash Memory |
- Integrated LoRa transceiver
- Additional environmental sensors
- Improved power optimization
- OTA firmware updates
MIT License