Skip to the content
2 layers35 × 21.4 mmAir Quality Sensor, the printed circuit board in 3D

Open-hardware indoor air quality monitor: ESP32-S3, SCD41 CO₂, SHT4x temp/humidity, SPA06 pressure, WS2812 LED ring. Round PCB in KiCad, 3D-printed enclosure.

Size
35 × 21.4 mm
Copper layers
2
Thickness
1.6 mm
Parts
114
Nets
76
Pads
326
Tracks, vias
268, 151
Pours
6
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
15 Aug 2026
Updated
19 Oct 2026

Overview

Air Quality Sensor is an open-source printed circuit board by Szymon423, from the Szymon423/Air-Quality-Sensor repository on GitHub. It is a 2-layer board of 35 × 21.4 mm with 114 parts on 76 nets, routed with 268 tracks and 151 vias.

It is built around the 74AHCT1G125SE, ESP32-S3-WROOM-1-N8 and SPA06-003, with the SCD41-D-R2, TPS54302 and USBLC6-2SC6 among its other parts. Its parts include 33 capacitors, 16 diodes, 12 resistors, 7 ICs and 3 connectors. It belongs with the sensors and measurement and lEDs and displays boards and the ESP32 boards of this library.

Main components

7

README

README.md

Air Quality Sensor

A compact, open-hardware indoor air quality monitor built around the ESP32-S3. Measures CO₂, temperature, humidity and pressure, and shows the room's air quality on a ring of RGB LEDs.

Air Quality Sensor – enclosure render

Status Hardware KiCad MCU License: CC BY-NC-SA 4.0


Features

  • True CO₂ measurement. Sensirion SCD41 photoacoustic NDIR sensor, not an estimated eCO₂ value.
  • Temperature & humidity. Sensirion SHT4x, placed on a thermally isolated PCB island (milled slot) to keep it away from heat from the MCU and regulator.
  • Barometric pressure. Goertek SPA06-003.
  • Wi-Fi + Bluetooth LE. ESP32-S3-WROOM-1U with an external antenna connector (U.FL).
  • 16× WS2812 LED ring on the bottom side, shining through a translucent diffuser. The 5 V data line goes through a 74AHCT1G125 level shifter.
  • USB-C power with ESD protection (USBLC6-2) and fuses, plus a TPS54302 buck regulator for the 3.3 V rail.
  • Expansion port. JST-PH 4-pin connector with 3.3 V, GND and two free GPIOs.
  • Debug UART header and test points on every important net.
  • Round Ø70 mm PCB in a 3D-printable enclosure with angled ventilation slots.

Gallery

Front – USB-C port
USB-C side
Bottom – LED diffuser
Bottom with LED diffuser

PCB

PCB isometric view
Top side
PCB bottom view
Bottom side – LED ring

📄 Schematic (PDF)

Hardware overview

BlockPartNotes
MCUESP32-S3-WROOM-1UWi-Fi 4 / BLE 5, external antenna
CO₂Sensirion SCD41400–5000 ppm, I²C
Temperature / RHSensirion SHT4xI²C, thermally isolated
PressureGoertek SPA06-003I²C
Indicator16× WS2812C-2020Driven through 74AHCT1G125 level shifter
PowerUSB-C → TPS54302 buck → 3.3 VUSBLC6-2 ESD protection, PTC fuses
PCBØ70 mm, roundDesigned for JLCPCB assembly (LCSC part numbers in BOM)
text
 USB-C ──► ESD + fuse ──► TPS54302 ──► 3.3 V ─┬─► ESP32-S3 ──I²C──┬─► SCD41  (CO₂)
   │                                          │       │           ├─► SHT4x  (T / RH)
   └──────────── 5 V ─────────────────────────┼───────┼──────┐    └─► SPA06  (pressure)
                                              │       │      ▼
                                              │       └──► 74AHCT1G125 ──► 16× WS2812 ring
                                              └─► JST-PH expansion (2× GPIO)

Repository structure

text
.
├── 01_Hardware/
│   ├── 02_KiCad/
│   │   ├── air-quality-sensor/    # KiCad project (schematic + PCB)
│   │   │   └── production/        # Gerbers, BOM, pick & place (JLCPCB)
│   │   └── lib/                   # Custom symbols, footprints, 3D models
│   └── 03_3D_Model/
│       ├── 3D-Printing/           # Enclosure STL / 3MF files
│       └── test.blend             # Blender scene used for the renders
├── 02_Software/                   # Firmware (coming soon)
└── docs/                          # Images and schematic PDF for this README

Roadmap

  • Schematic
  • PCB layout v0.1 (Ø70 mm)
  • Enclosure design & renders
  • Order and assemble the first prototype
  • Hardware bring-up & validation
  • Firmware: sensor readout, LED air-quality indication
  • Home Assistant integration (ESPHome / MQTT)
  • Hardware v1.0 release

Building one

[!WARNING] This project is work in progress. Hardware v0.1 has not been manufactured and tested yet, so order boards at your own risk.

  1. Open 01_Hardware/02_KiCad/air-quality-sensor/air-quality-sensor.kicad_pro in KiCad 10.
  2. The fabrication files (Gerbers, BOM, CPL) for JLCPCB are in production/.
  3. Print the enclosure from 01_Hardware/03_3D_Model/3D-Printing/.

License

Hardware (schematics, PCB, enclosure, renders): CC BY-NC-SA 4.0. You may build, study and modify this design for non-commercial purposes, as long as you credit the author and share your changes under the same license. Selling boards, kits or devices based on this design is not allowed without the author's written permission.

Firmware (02_Software/): GPL-3.0.

For commercial licensing, please get in touch.


Designed by Szymon Wąchała · 2026

Parts

114
QtyValueFootprintReferences
25100nCapacitor_SMD:C_0603_1608MetricC1, C10, C11, C12, C14, C27, C28, C29, C30, C31, C32, C33, C34, C35, C36, C37 +9
16WS2812C-2020LED_SMD:LED_WS2812B-2020_PLCC4_2.0x2.0mmD4, D5, D6, D7, D8, D9, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19
113.3VTestPoint:TestPoint_Pad_D1.0mmTP1, TP2, TP3, TP4, TP5, TP6, TP7, TP8, TP9, TP10, TP19
30RResistor_SMD:R_0603_1608MetricR12, R13, R16
310uCapacitor_SMD:C_1206_3216MetricC6, C7, C8
347uCapacitor_SMD:C_1206_3216MetricC4, C5, C13
3LOGOLOGOG***, G***, G***
21AResistor_SMD:R_1206_3216MetricF2, F3
222RResistor_SMD:R_0603_1608MetricR6, R7
24.7kResistor_SMD:R_0603_1608MetricR14, R15
25.1kResistor_SMD:R_0603_1608MetricR3, R4
2L_FerriteInductor_SMD:L_0603_1608MetricL2, L3
2M5MountingHole:MountingHole_5mmH1, H3
1100kResistor_SMD:R_0603_1608MetricR1
110kResistor_SMD:R_0603_1608MetricR5
110uInductor_SMD:L_APV_ANR6045L1
122kResistor_SMD:R_0603_1608MetricR2
14.7uCapacitor_SMD:C_0805_2012MetricC3
174AHCT1G125Package_TO_SOT_SMD:SOT-23-5U7
182pCapacitor_SMD:C_0603_1608MetricC2
1Conn_01x03Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ2
1Conn_01x04Connector_JST:JST_PH_B4B-PH-K_1x04_P2.00mm_VerticalJ3
1ESP32-S3-WROOM-1RF_Module:ESP32-S3-WROOM-1UU8
1G***kibuzzard-6A7E4C1Bkibuzzard-6A7E4C1B
1G***kibuzzard-6A7E4494kibuzzard-6A7E4494
1G***kibuzzard-6A7E44B1kibuzzard-6A7E44B1
1G***kibuzzard-6A7E4C25kibuzzard-6A7E4C25
1G***kibuzzard-6A7E453Dkibuzzard-6A7E453D
1G***kibuzzard-6A7E4C33kibuzzard-6A7E4C33
1G***kibuzzard-6A80ED83kibuzzard-6A80ED83
1G***kibuzzard-6A7E4C16kibuzzard-6A7E4C16
1G***kibuzzard-6A7E47FAkibuzzard-6A7E47FA
1G***kibuzzard-6A7E44DDkibuzzard-6A7E44DD
1G***kibuzzard-6A7E446Ekibuzzard-6A7E446E
1G***kibuzzard-6A7E450Ckibuzzard-6A7E450C
1G***kibuzzard-6A80EDA5kibuzzard-6A80EDA5
1G***kibuzzard-6A7E45B3kibuzzard-6A7E45B3
1G***kibuzzard-6A7E44FEkibuzzard-6A7E44FE
1G***kibuzzard-6A7E45BFkibuzzard-6A7E45BF
1G***kibuzzard-6A80EDE6kibuzzard-6A80EDE6
1G***kibuzzard-6A7E45D0kibuzzard-6A7E45D0
1G***kibuzzard-6A7E4485kibuzzard-6A7E4485
1G***kibuzzard-6A7E4598kibuzzard-6A7E4598
1G***kibuzzard-6A7E4579kibuzzard-6A7E4579
1SCD41-D-R2Sensor:Sensirion_SCD4x-1EP_10.1x10.1mm_P1.25mm_EP4.8x4.8mmU2
1SHT4xSensor_Humidity:Sensirion_DFN-4_1.5x1.5mm_P0.8mm_SHT4x_NoCentralPadU1
1SPA06-003Package_LGA:Bosch_LGA-8_2x2.5mm_P0.65mm_ClockwisePinNumberingU6
1SW_SPSTButton_Switch_SMD:SW_Push_1P1T_NO_CK_KMR2SW1
1TPS54302Package_TO_SOT_SMD:SOT-23-6U4
1USBLC6-2SC6Package_TO_SOT_SMD:SOT-23-6U5
1USB_C_Receptacle_USB2.0_16PConnector_USB:USB_C_Receptacle_GCT_USB4105-xx-A_16P_TopMnt_HorizontalJ1

Similar boards

  • 4 layers55 × 55 mmDrone PCB FC, the printed circuit board in 3D

    Drone PCB FC

    Ethansuttor/drone_PCB

    An 80×80 mm STM32F405 flight controller for a 4S freestyle quad, running Betaflight off a custom target I wrote.

    90 parts
  • 6 layers60 × 60 mmAutopilot H743 V2, the printed circuit board in 3D

    Autopilot H743 V2

    JosephStew-art/autopilot-h743

    STM32H743 autopilot board design

    231 parts
  • 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
  • 4 layers73 × 56 mmSensors, the printed circuit board in 3D

    Sensors

    heeplr/pilotpi

    RaspberryPi HAT for ardupilot / PX4

    117 partsMIT
  • 2 layers50 × 50 mmGuardrail FC, the printed circuit board in 3D

    Guardrail FC

    SharKingStudios/Guardrail-FC

    A Flight Assist PCB that helps you not crash.

    87 partsMIT
  • 4 layers130 × 100 mmAtlas carrier ctrl, the printed circuit board in 3D

    Atlas carrier ctrl

    md-sazzad-eee/ATLAS

    Modular multi-robot system: a carrier robot that docks, transports, charges and redeploys two small agent robots. KiCad, FreeCAD, MATLAB/Simulink, COMSOL and ESP32 firmware.

    157 parts
  • 6 layers42.3 × 42.3 mmStepper Motor Controller, the printed circuit board in 3D

    Stepper Motor Controller

    Ricsi1231/Stepper-Motor-Controller

    EmbedCore Stepper Controller is a compact, high-performance stepper motor driver designed to mount directly onto the back of a NEMA 17 motor with the appropriate enclosure.

    91 partsMIT
  • 4 layers63.7 × 55 mmTX2 2.4G, the printed circuit board in 3D

    TX2 2.4G

    Momozavur/Mravka-v3

    Open the appropriate .kicadpro file in KiCad; .pro entries are legacy projects. Keep schematics, boards, local libraries, library tables, and supporting files together.

    78 parts

Questions

How big is the Air Quality Sensor PCB?

It measures 35 × 21.4 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Air Quality Sensor use?

114 parts, built around the 74AHCT1G125SE, ESP32-S3-WROOM-1-N8, SPA06-003 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 Air Quality Sensor KiCad files?

From the Szymon423/Air-Quality-Sensor repository on GitHub, at the commit this page was made from: the board is 01_Hardware/02_KiCad/air-quality-sensor/air-quality-sensor.kicad_pcb and its schematic 01_Hardware/02_KiCad/air-quality-sensor/air-quality-sensor.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Air Quality Sensor design in my own project?

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