Skip to the content
PCBKitNew board
4 layers50 × 50 mmEsp32c6-iot sensor node, the printed circuit board in 3D

Esp32c6-iot sensor node

nexicturbo/esp32c6-iot-sensor-node

KiCad 8 ESP32-C6 environmental sensor node with BME280, SCD41, protected 18650 charging, and manufacturing outputs

Size
50 × 50 mm
Copper layers
4
Thickness
1.6 mm
Parts
49
Nets
28
Pads
226
Tracks, vias
266, 43
Pours
5
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
30 Jul 2026
Updated
30 Jul 2026

Overview

Esp32c6-iot sensor node is an open-source printed circuit board by nexicturbo, from the nexicturbo/esp32c6-iot-sensor-node repository on GitHub. It is a 4-layer board of 50 × 50 mm with 49 parts on 28 nets, routed with 266 tracks and 43 vias.

It is built around the ESP32-C6-MINI-1-N4, BME280 and ME6210A33M3G, with the SCD41-D-R2, TP4056-42-ESOP8 and USBLC6-2SC6 among its other parts. Its parts include 15 resistors, 13 capacitors, 6 ICs, 3 connectors and 2 diodes. It belongs with the home automation and IoT and sensors and measurement boards and the ESP32 and RISC-V boards of this library.

Main components

8

README

README.md

ESP32-C6 Indoor Environmental Sensor Node

Production-oriented KiCad 8 reference design for a battery-powered indoor air quality node. The 50 x 50 mm, four-layer board combines:

  • ESP32-C6-MINI-1-N4 with Wi-Fi 6, BLE 5.3, Zigbee and Thread;
  • Bosch BME280 temperature, humidity and pressure sensing at I2C address 0x76;
  • Sensirion SCD41 CO2 sensing in single-shot mode;
  • a protected off-board 18650 cell through a keyed JST-PH connector;
  • USB-C charging with TP4056, native USB Serial/JTAG and USB ESD protection;
  • a 1.6 uA-Iq 3.3 V LDO and a hardware-gated SCD41 supply;
  • reset, boot and six-pin UART recovery/programming access.

Release status

The native KiCad 8.0.9 project passes:

  • schematic ERC: 0 errors;
  • PCB DRC: 0 errors;
  • unconnected-items check: 0 unconnected items;
  • board size: 50.0 x 50.0 mm;
  • nominal deep-sleep simulation: 11.8 uA, below the 15 uA requirement.

The remaining KiCad messages are non-electrical warnings for clipped or overlapping silkscreen inside stock library footprints and embedded library snapshot differences. They do not affect copper, solder mask, connectivity or fabrication.

Repository contents

  • esp32c6_iot_sensor_node.kicad_sch - native KiCad 8 schematic.
  • esp32c6_iot_sensor_node.kicad_pcb - routed four-layer PCB.
  • esp32c6_iot_sensor_node.kicad_pro - project and JLC-compatible rules.
  • sym-lib-table - explicit symbol-library mapping.
  • design_spec.py - component, pin/net and placement source of truth.
  • generate_schematic.py and generate_board.py - deterministic generators.
  • finalize_routed_board.py - idempotent post-router connectivity finalizer.
  • export_metadata.py - BOM and low-power analysis exporter.
  • release/v1.0/manufacturing - fabrication, drill, BOM and CPL outputs.
  • release/v1.0/analysis - machine-readable current and battery-life model.
  • release/v1.0/docs - the visually verified rationale and schematic PDFs.
  • release/v1.0/validation - machine-readable DRC/ERC reports and disclosure.
  • release/v1.0/preview - STEP, GLB, board plots and digital preview video.

Architecture and design choices

Power path

USB-C VBUS feeds the TP4056 linear charger. R7 is 2.0 kOhm, programming about 500 mA so the thermally limited ESOP-8 charger and a normal USB source are not run at the 1 A headline limit. The battery rail feeds a ME6210A33M3G 3.3 V LDO with 10 uF input/output capacitors. The board accepts a protected 18650 cell only; protection is intentionally located in the cell/holder assembly so the 50 x 50 mm electronics remain serviceable.

The SCD41 can draw 205 mA peak at 3.3 V. C5 provides 100 uF local reservoir capacity, while Q1/Q2 create a default-off high-side switch controlled by SCD_GATE. Firmware must avoid simultaneous SCD41 conversion and maximum-power radio transmission because the selected low-Iq LDO is rated for 500 mA.

Sensors and I2C

The BME280 has local 100 nF decoupling, CSB tied high for I2C mode and SDO tied low through R13 for address 0x76. The SCD41 has 100 nF plus 100 uF local decoupling. R14 and R15 are explicit 4.7 kOhm pull-ups on SDA and SCL; no firmware-only pull-ups are assumed.

USB and recovery

The USB-C receptacle has independent 5.1 kOhm Rd resistors on CC1 and CC2. USBLC6-2SC6 protects D+ and D-, followed by 27 Ohm series resistors at the MCU side. C1/C2 are DNP tuning positions and must remain unpopulated unless a signal-integrity measurement calls for them. A six-pin header exposes 3V3, GND, UART TX/RX, EN and BOOT so a failed USB stack cannot brick the board.

RF layout

The ESP32-C6-MINI-1 antenna faces the board edge. A 43.2 x 5.7 mm all-copper and all-track rule area spans the antenna end of every copper layer. No parts, traces, vias or planes enter it. This follows Espressif's module-placement rule: place the PCB antenna at/outside an edge and minimize base-board material and copper beneath the antenna.

Deep-sleep and battery-life simulation

The release model uses published typical currents and a conservative leakage allowance:

LoadTypical current
ESP32-C6-MINI-1 deep sleep7.0 uA
ME6210A33M3G quiescent current1.6 uA
TP4056 reverse BAT current with VBUS absent2.5 uA
BME280 sleep mode0.1 uA
MOSFET, capacitor and board leakage allowance0.6 uA
Total11.8 uA

The six-month mission profile assumes a 3000 mAh protected cell with 80% usable capacity, an SCD41 sample every ten minutes, two single-shot conversions after each cold start (discarding the first as Sensirion directs), a BME280 forced measurement every ten minutes, and one 120 mA/5 s radio upload per hour. The model yields 0.4275 mA average and about 234 days / 7.68 months. The exact calculation and inputs are in release/v1.0/analysis/power_budget.json.

This is a datasheet-based analytical simulation, not a fabricated-unit measurement. Production qualification must measure sleep current across cell voltage and temperature.

Firmware sequence

  1. Hold SCD_GATE low during reset and while the ESP32 enters deep sleep.
  2. Wake every ten minutes and trigger a BME280 forced measurement.
  3. Drive SCD_GATE high, allow the SCD41 supply to settle, issue single-shot, discard the first post-power-up result, and take a second single-shot.
  4. Store readings in RTC memory; transmit the accumulated batch once per hour.
  5. Stop radio activity, drive SCD_GATE low, make USB pins high impedance when detached, and enter deep sleep.
  6. Schedule forced recalibration or a periodic non-power-cycled calibration interval because hard power cycling prevents normal automatic self-calibration continuity.

Manufacturing

Recommended order:

  • four layers, FR-4, 1.6 mm finished thickness;
  • 1 oz outer copper and at least 0.5 oz inner copper;
  • minimum track/space 0.20/0.20 mm;
  • normal vias 0.60/0.30 mm;
  • ENIG or lead-free HASL;
  • controlled USB impedance should be recalculated for the fab's selected stack-up before volume production.

The two 0.60/0.30 mm vias inside the SCD41 exposed ground pad must be ordered as epoxy filled and copper capped (VIPPO) to prevent solder wicking. DNP C1 and C2 are excluded from the CPL. Test points are excluded from BOM and CPL.

Known limitations

  • The board has no on-board cell protection; only use a protected 18650 cell/holder with correct JST polarity.
  • TP4056 has no true power-path/load-sharing controller. Charging while the node is active can delay charge termination; firmware should sleep during charging where practical.
  • The 500 mA LDO requires scheduling so the SCD41 peak and high-power radio TX do not coincide.
  • SCD41 power cycling saves quiescent current but requires discarding the first reading and an explicit calibration strategy.
  • Battery life is a simulation based on typical datasheet values and an 80% usable-capacity assumption. It must be verified on hardware.
  • USB impedance has not been verified by TDR; recalculate against the exact production stack-up and use C1/C2 only after measurement.
  • The design is not intrinsically safe, medical, automotive or outdoor-rated.

Primary references

Parts

49
QtyValueFootprintReferences
510uCapacitor_SMD:C_0805_2012MetricC6, C7, C9, C10, C13
3100nCapacitor_SMD:C_0603_1608MetricC3, C4, C8
310kResistor_SMD:R_0603_1608MetricR10, R11, R13
31MResistor_SMD:R_0603_1608MetricR5, R6, R12
215p DNPCapacitor_SMD:C_0603_1608MetricC1, C2
22.2kResistor_SMD:R_0603_1608MetricR8, R9
227Resistor_SMD:R_0603_1608MetricR3, R4
24.7kResistor_SMD:R_0603_1608MetricR14, R15
25.1kResistor_SMD:R_0603_1608MetricR1, R2
1100uCapacitor_SMD:C_1210_3225MetricC5
118650_HOLDER_INPUTConnector_JST:JST_PH_S2B-PH-K_1x02_P2.00mm_HorizontalJ2
11nCapacitor_SMD:C_0603_1608MetricC12
11uCapacitor_SMD:C_0603_1608MetricC11
12.0kResistor_SMD:R_0603_1608MetricR7
12N7002Package_TO_SOT_SMD:SOT-23Q2
13V3TestPoint:TestPoint_Pad_D1.0mmTP3
1AO3401APackage_TO_SOT_SMD:SOT-23Q1
1BME280Package_LGA:Bosch_LGA-8_2.5x2.5mm_P0.65mm_ClockwisePinNumberingU2
1BOOTButton_Switch_SMD:SW_SPST_TL3342SW2
1ESP32-C6-MINI-1-N4RF_Module:ESP32-C6-MINI-1U1
1GNDTestPoint:TestPoint_Pad_D1.0mmTP4
1GREENLED_SMD:LED_0603_1608MetricD1
1I2C_SCLTestPoint:TestPoint_Pad_D1.0mmTP5
1I2C_SDATestPoint:TestPoint_Pad_D1.0mmTP6
1ME6210A33M3GPackage_TO_SOT_SMD:SOT-23U5
1REDLED_SMD:LED_0603_1608MetricD2
1RESETButton_Switch_SMD:SW_SPST_TL3342SW1
1SCD41-D-R2Sensor:Sensirion_SCD4x-1EP_10.1x10.1mm_P1.25mm_EP4.8x4.8mmU3
1TP4056-42-ESOP8Package_SO:SOIC-8-1EP_3.9x4.9mm_P1.27mm_EP2.29x3mmU4
1TYPE-C-31-M-12Connector_USB:USB_C_Receptacle_HRO_TYPE-C-31-M-12J1
1UART_PROGRAMConnector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalJ3
1USB5VTestPoint:TestPoint_Pad_D1.0mmTP1
1USBLC6-2SC6Package_TO_SOT_SMD:SOT-23-6U6
1VBATTestPoint:TestPoint_Pad_D1.0mmTP2

Questions

How big is the Esp32c6-iot sensor node PCB?

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

What parts does the Esp32c6-iot sensor node use?

49 parts, built around the ESP32-C6-MINI-1-N4, BME280, ME6210A33M3G and SCD41-D-R2. 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 Esp32c6-iot sensor node KiCad files?

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

Can I use the Esp32c6-iot sensor node design in my own project?

Its repository states no licence, so its author keeps all rights: ask nexicturbo before reusing the design.

Similar boards

  • 4 layers75 × 56.4 mmEsp32-c6-wroom1 board, the printed circuit board in 3D

    Esp32-c6-wroom1 board

    pushtiujeniya/esp32-c6-environmental-logger

    This repository contains an Environmental Sensor Station and Data Logger powered by the ESP32-C6-WROOM-1 microcontroller.

    59 parts4
  • 4 layers60 × 80 mmWisp, the printed circuit board in 3D

    Wisp

    huulanka/wisp

    Open-source ESP32 room climate monitor — CO2, VOC, humidity, temperature and light sensing with custom PCB, MQTT/HomeKit integration, and OTA firmware updates. Full hardware + software, from schematic to BOM.

    91 partsMIT
  • 2 layers45 × 100 mmWalkiepcb, the printed circuit board in 3D

    Walkiepcb

    houseofthe051010/ESP32-Walkie-Talkie-V2

    This ESP32 Walkie Talkie is redesigned with a SX1262 radio, a PCB, and a full case redesign.

    93 parts1
  • 4 layers62 × 46.9 mm4LayerLabProject, the printed circuit board in 3D

    4LayerLabProject

    ZharbolatDinmukhamed/Haptic-Glove-PCB

    A wrist-mounted PCB for a haptic feedback glove, developed as part of my Research Assistantship at the Tactile Laboratory, Nazarbayev University.

    122 parts
  • 2 layers67.2 × 45.4 mmDev board, the printed circuit board in 3D

    Dev board

    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).

    120 parts
  • 4 layers50 × 70 mmStm32-portable data logger, the printed circuit board in 3D

    Stm32-portable data logger

    copperheadhq/copperhead-stm32-data-logger

    Portable STM32L433 data logger, 50 × 70 mm, four layers, microSD, USB-C LiPo charging. Designed with copperhead. Never built: do not order expecting it to work.

    90 parts3
  • 4 layers55 × 55 mmAI Pocket, the printed circuit board in 3D

    AI Pocket

    zycero/AiPocket-Kicad-ESP32-P4-seconde

    164 parts1