Skip to the content
2 layers52 × 54 mmSensorNodePCB, the printed circuit board in 3D

PCB design for a multi-sensor node (ESP32, DHT22, vibration sensor) built in KiCad — schematic, layout, and manufacturing files

Size
52 × 54 mm
Copper layers
2
Thickness
1.6 mm
Parts
8
Nets
38
Pads
79
Tracks, vias
147, 0
Pours
6
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
12 Aug 2026
Updated
12 Aug 2026

Overview

SensorNodePCB is an open-source printed circuit board by Vinay-Kumbar, from the Vinay-Kumbar/SensorNode-PCB-Design repository on GitHub. It is a 2-layer board of 52 × 54 mm with 8 parts on 38 nets, routed with 147 tracks and 0 vias.

It is built around the ESP32-WROOM-32, AM2302 and AMS1117-3.3. Its parts include 3 ICs, 2 capacitors and 2 connectors. It belongs with the home automation and IoT and sensors and measurement boards and the ESP32 boards of this library.

Main components

3

README

README.md

Sensor Node PCB Design (KiCad)

Project Overview

This is a PCB design for a multi-sensor node - the physical board that would hold an ESP32, a DHT22 temperature sensor, a vibration sensor input, and the power/programming circuitry needed to run them. I designed it in KiCad, going from schematic to a fully routed board with a ground plane and manufacturing-ready output files.

This is meant as a companion piece to my other project, an RTOS-based firmware system built on the same idea (ESP32 + DHT22 + vibration sensor). That project proved I can write the firmware; this one proves I can design the actual board it would run on.

Tools Used

  • KiCad 10 - free, open-source PCB design software

Repository Contents

  • SensorNodePCB.kicad_sch - schematic
  • SensorNodePCB.kicad_pcb - PCB layout
  • SensorNodePCB.kicad_pro - project file
  • SensorNodePCB_BOM.csv - bill of materials
  • PCB_Gerbers/ - manufacturing files (Gerbers + drill files)
  • images/ - screenshots of the schematic, layout, DRC results, footprint list, and a 3D render

Components Used

  • ESP32-WROOM-32 - main controller
  • AM2302 (DHT22) - temperature sensor
  • Potentiometer - stands in for a vibration sensor
  • AMS1117-3.3 - voltage regulator, steps 5V down to 3.3V for the ESP32
  • 2x ceramic capacitors - decoupling, one near the regulator output, one near the ESP32's power pin
  • 2-pin header - power input
  • 4-pin header - UART programming (TX, RX, GND, 3.3V)

See images/footprint_assignments.png for the exact footprint chosen for each part.

Design Process

I started with the schematic - placing each component and wiring them by hand (power, ground, sensor data lines, programming header), then ran KiCad's Electrical Rules Checker (ERC) to catch mistakes. From there I moved into the PCB editor, laid out the components, routed the traces, and added a ground plane, checking with the Design Rules Checker (DRC) along the way.

Key Design Decisions

  • EN pin tied to VDD. The ESP32 won't boot unless its EN (enable) pin is pulled high, so this had to be wired to 3.3V, not left floating.
  • Antenna keep-out zone left completely clear. The ESP32 module has a marked keep-out area above its antenna - no traces, copper fill, or components are allowed there, or it degrades the WiFi signal. I kept this zone fully clear on the actual layout (see images/pcb_layout.png).
  • Decoupling capacitors placed close to what they support - one right at the regulator's output, one right at the ESP32's power pin, to keep the power lines stable.
  • Connectors placed at the board edges (power input on one side, the UART header on the other) so they're actually accessible once the board is built, not buried under other components.
  • A ground plane on the front copper layer, connected to GND, filling the unused board area - reduces noise and is standard practice on real boards.

Difficulties Faced

Footprints not saving. The first time I ran "Update PCB from Schematic," five of my eight components (the capacitors, connectors, and potentiometer) failed to come through with an error saying no footprint was assigned. Turns out my footprint choices from the Assign Footprints tool hadn't actually saved. Went back, reassigned them, and made sure to use "Apply, Save Schematic & Continue" instead of just closing the window.

Hole size mismatch. DRC flagged over a dozen errors on one of the ESP32 footprint's pads, saying the hole was smaller than my board's minimum allowed size (0.2mm actual vs. a 0.3mm minimum I had set). This wasn't a mistake in my design - it was my board's rules being stricter than a completely normal, manufacturable hole size. Fixed by lowering the minimum drill size setting in Board Setup to 0.2mm.

Duplicate ground zones. At one point I ended up with six overlapping GND copper zones stacked on the same spot (I'd clicked "draw zone" more than once without realizing one was already there). This caused a wave of "isolated copper fill" warnings in DRC. Fixed by finding each duplicate zone through KiCad's zone-selection popup and deleting all but one.

DRC Status

0 errors, 0 unconnected items. There are 20 remaining "isolated copper fill" warnings from the ground plane fill near the densely packed ESP32 pins - I tried the standard fix (setting "Remove islands" to Always) and it didn't fully clear them. These are cosmetic, not functional - they don't indicate a short or a missing connection - but I'm noting them here rather than claiming a fully clean DRC. See images/drc_results.png.

Future Improvements

  • Look deeper into why the isolated copper fill warnings persisted even after setting island removal to "Always" - possibly a clearance setting interacting with how tightly the ESP32 pins are spaced
  • Try an actual accelerometer footprint instead of a potentiometer for a more realistic vibration sensor
  • Look into 2-layer routing with a bottom ground plane as well, instead of just the top layer

How to Open This Project

  1. Install KiCad (free) from kicad.org
  2. Clone or download this repo
  3. Open SensorNodePCB.kicad_pro in KiCad

Parts

8
QtyValueFootprintReferences
2CCapacitor_THT:C_Disc_D5.0mm_W2.5mm_P2.50mmC1, C2
1AM2302Sensor:ASAIR_AM2302_P2.54mm_VerticalU2
1AMS1117-3.3Package_TO_SOT_SMD:SOT-223-3_TabPin2U3
1Conn_01x02Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ1
1Conn_01x04Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ2
1ESP32-WROOM-32RF_Module:ESP32-WROOM-32U1
1R_PotentiometerPotentiometer_SMD:Potentiometer_Bourns_3224X_VerticalRV1

Similar boards

  • 2 layersPriject 2 ESP32 build, the printed circuit board in 3D

    Priject 2 ESP32 build

    Aanuoluwap/555blinker

    This repository contains electronics design projects created using KiCad.

    12 parts1MIT
  • 4 layers79.9 × 84.7 mmUTS PCB Dewi, the printed circuit board in 3D

    UTS PCB Dewi

    astarsD130/UTS-matkul-pcb

    55 parts
  • 2 layersMars rover navigation system, the printed circuit board in 3D

    Mars rover navigation system

    tjiuce/rover

    Rover Navigation Optimization System (R-NOS): An ESP32-powered autonomous robotic prototype designed for real-time environmental monitoring.

    4 parts4
  • 4 layers77.9 × 81.6 mmLilygo, the printed circuit board in 3D

    Lilygo

    Ndambia/lilygo

    A custom 4-layer KiCad PCB design integrating an ESP32 Wi-Fi/Bluetooth microcontroller with a SIM7600G-H 4G LTE Cat-4 cellular module, comprehensive power management, GPS tracking, GPRS connectivity, USB-C charging…

    188 parts
  • 2 layersAirquality sensor, the printed circuit board in 3D

    Airquality sensor

    frodegill/airsensor

    PCB and Arduino code for custom air quality sensor

    22 partsGPL-3.0
  • 2 layers87.5 × 77 mmProject7, the printed circuit board in 3D

    Project7

    Sarav016/Smart-Environmental-Monitoring-PCB-using-ESP32

    17 parts

Questions

How big is the SensorNodePCB PCB?

It measures 52 × 54 mm and has 2 copper layers, 1.6 mm thick.

What parts does the SensorNodePCB use?

8 parts, built around the ESP32-WROOM-32, AM2302 and AMS1117-3.3. 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 SensorNodePCB KiCad files?

From the Vinay-Kumbar/SensorNode-PCB-Design repository on GitHub, at the commit this page was made from: the board is SensorNodePCB.kicad_pcb and its schematic SensorNodePCB.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the SensorNodePCB design in my own project?

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