Skip to the content
PCBKitNew board
2 layers58.9 × 36.8 mmSensorNodeProject, the printed circuit board in 3D

ESP32 weather node (ESP-IDF/FreeRTOS) targeting 6-month battery life and <50uA quiescent current draw, adaptive sampling, and data integrity.

Size
58.9 × 36.8 mm
Copper layers
2
Thickness
1.6 mm
Parts
47
Nets
50
Pads
165
Tracks, vias
288, 105
Pours
5
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
5 Sep 2026
Updated
5 Nov 2026

Overview

SensorNodeProject is an open-source printed circuit board by rishabmadhusudhan07, from the rishabmadhusudhan07/sensor-node repository on GitHub, published under the MIT licence. It is a 2-layer board of 58.9 × 36.8 mm with 47 parts on 50 nets, routed with 288 tracks and 105 vias.

It is built around the ESP32-WROOM-32E-N4, BH1750FVI-TR and RT9080-33GJ5, with the TPB4056A20-DFGR among its other parts. Its parts include 15 capacitors, 12 resistors, 5 connectors, 4 ICs and 2 switches. It belongs with the ESP32 boards of this library.

Main components

4

README

README.md

ESP32 Low-Power Weather Node

A custom ESP32-based weather sensor node targeting six months of battery life and less than 50 µA system current during deep sleep. The project was motivated by gaps observed while mapping environmental data across the Pacific Northwest during a National Weather Service internship.

Planned firmware will use ESP-IDF and statically allocated FreeRTOS tasks for sensor sampling, local logging, wireless transmission, and deep-sleep control. Later revisions may add transmission integrity checks and adaptive sampling based on changing weather conditions.

Status: In development. The PCB has been assembled and confirmed working. BME280 I2C communication is being tested. Chip ID was verified. Compensated temperature/pressure/humidity values are in progress. Project Status.


Why this project

A low-cost, low-power sensor node could make denser local observations more practical. This project explores the engineering requirements for that type of device.

Hardware

The following values are estimates based on component datasheets and haven't been verified on assembled hardware.

ComponentRoleSleep current
ESP32-WROOM-32E-N4MCU + WiFi~10 µA
BME280 (through-hole breakout, soldered on)Temp / humidity / pressure, forced mode≥0.1 µA sensor only
BH1750FVI-TR (bare IC, reflowed)Ambient light1 µA
TPB4056A20-DFGRLiPo charge management<2 µA
RT9080-33GJ53.3V LDO regulator, 600 mA max~2 µA

Target: <50 µA average system sleep current.

Design decisions

ESP-IDF over Arduino. ESP-IDF was selected to provide direct control over FreeRTOS task creation, static memory allocation, peripheral configuration, and ESP32 sleep/wake behavior.

LDO instead of a buck-boost regulator. An LDO offers a simpler design and lower quiescent current, though reduced usable battery voltage as the LiPo approaches the regulator’s dropout region. The RT9080-33GJ5 was selected for its ~2 µA quiescent current and 600 mA output rating. Did not use MCP1700 because of its 250 mA rating, which isn't enough for WiFi transmission.

No onboard current-sense IC. It needs to measure sleep current in the microamps as well as much larger Wi-Fi transmission currents. Instead of a dedicated IC, test points are placed across a removable jumper. The jumper can be replaced by a larger resistor for controlled sleep measurements or a lower one for active measurements. An INA219 did not provide sufficient dynamic range for both measurements with a single resistor, while the INA228 drew too much current.

Adaptive sampling instead of a fixed interval. The planned firmware will have a rolling window of pressure measurements, estimate the rate of change, and adjust the next sampling interval. Faster changes, such as a cold front or wind shift, will mean more frequent sampling; stable conditions mean longer sleep intervals.

Fully static FreeRTOS allocation. Every task and queue will be created statically to keep predictable memory usage.

Repo structure

text
├── firmware/       # ESP-IDF project
├── hardware/       # KiCad schematic + PCB layout
└── README.md

Project status

PhaseStatus
Rev A schematic and PCB layoutComplete
PCB fabrication and bring-upComplete
Sensor firmwareIn progress
FreeRTOS task implementationIn Progress
Data integrity and Wi-Fi retry pipelineNot started
Power characterizationNot started
Field testingNot started

License

MIT — see LICENSE.

Parts

47
QtyValueFootprintReferences
8TestPointTestPoint:TestPoint_Loop_D2.50mm_Drill1.0mmTP1, TP2, TP3, TP4, TP5, TP6, TP7, TP8
70.1uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC1, C4, C7, C9, C11, C12, C13
41uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC3, C10, C14, C15
310uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC2, C5, C6
210kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR8, R9
21MResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR12, R13
24.7kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR2, R7
25.1kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR5, R6
2SW_Pushpush button:SW_TS04-66-50-BK-160-SMTSW1, SW2
11.5kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR11
11kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR10
122uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC8
1500kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR4
16kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR3
1BH1750FVI-TRBH1750FVI-TR:BH1750FVI-TR_ROMU2
1Conn_01x02_PinConnector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_VerticalJ4
1Conn_01x02_SocketConnector_PinSocket_2.54mm:PinSocket_1x02_P2.54mm_VerticalJ5
1Conn_01x05_PinConnector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_VerticalJ2
1Conn_01x06_SocketConnector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalJ1
1ESP32-WROOM-32E-N4ESP32-WROOM-32E-N4:ESP32­WROOM­32E_EXPU1
1LEDLED_SMD:LED_1206_3216Metric_Pad1.42x1.75mm_HandSolderD1
1RT9080-33GJ5RT9080-33GJ5:TSOT-23-5_RITU5
1TPB4056A20-DFGRTPB4056A20-DFGR:DFN2X2-8_TPKU3
1USB_C_Receptacle_PowerOnly_6PConnector_USB:USB_C_Receptacle_GCT_USB4125-xx-x_6P_TopMnt_HorizontalJ6

Questions

How big is the SensorNodeProject PCB?

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

What parts does the SensorNodeProject use?

47 parts, built around the ESP32-WROOM-32E-N4, BH1750FVI-TR, RT9080-33GJ5 and TPB4056A20-DFGR. 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 SensorNodeProject KiCad files?

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

Can I use the SensorNodeProject 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).

Similar boards

  • 4 layers90.8 × 25.5 mmMTR C3 TempHum, the printed circuit board in 3D

    MTR C3 TempHum

    MoreThanRobotsFR/MTR_C3_TempHum

    A tiny temperature, humidity, gas, pressure, ambient light and presence detector (mmWave presence sensor) measurement unit for HomeAssistant using ESPHome

    79 partsMIT
  • 2 layers160 × 32 mmMatrixClock, the printed circuit board in 3D

    MatrixClock

    middelink/MatrixClock

    MatrixClock - source code, schematics and pcb layout

    70 parts2MIT
  • 2 layers69.4 × 89.9 mmPanel, the printed circuit board in 3D

    Panel

    themkoi/esp32-alarm-clock

    94 parts2
  • 4 layers230 × 84.9 mmDrunkDashboard v2, the printed circuit board in 3D

    DrunkDashboard v2

    drunkbatya/DrunkDashboard

    STM32 powered pixel automotive dashboard

    223 parts1GPL-3.0
  • 4 layers70 × 92 mmPanelized watch, the printed circuit board in 3D

    Panelized watch

    HolTyc/STM32_watch_NFC

    Watch using STM32 with LED 7-segment display and RGB display

    314 parts1
  • 2 layers27.7 × 44 mmMySXSensors, the printed circuit board in 3D

    MySXSensors

    mczerski/MySXSensors

    MySX board for some sensor modules

    14 parts1
  • 2 layers44.3 × 46.3 mmCatear pcb, the printed circuit board in 3D

    Catear pcb

    TobleMiner/catear-pcb

    This repo contains the PCB for the Nekomimi project of @BenBE . It will be used to illuminate 3D printed catears.

    121 parts1