

Air filter controller
The ESP32-S3 uses 3.3V. I want onboard indicator LEDs, and the option to have offboard LEDs as well. Using addressable WS2812-type LEDs is flexible. These need a 5V supply.
- Size
- 41 × 149 mm
- Copper layers
- 4
- Thickness
- 1.6 mm
- Parts
- 167
- Nets
- 103
- Pads
- 486
- Tracks, vias
- 1,143, 319
- Pours
- 1
- Routed
- Yes
- KiCad
- KiCad 8.0 (file 20240108)
- Created
- 15 Jun 2024
- Updated
- 12 Feb 2026
Overview
Air filter controller is an open-source printed circuit board by ademuri, from the ademuri/air-filter-controller repository on GitHub. It is a 4-layer board of 41 × 149 mm with 167 parts on 103 nets, routed with 1,143 tracks and 319 vias.
It is built around the ESP32-S3-WROOM-1-N4, MT2492 and AMS1117-3.3, with the HC-1.0-4PLT, SMAJ5.0A and WS2812B-2020 among its other parts. Its parts include 53 resistors, 45 diodes, 33 capacitors, 17 connectors and 4 ICs. It belongs with the ESP32 boards of this library.
Main components
12ESP32-S3-WROOM-1-N4
SMD,25.5x18mm-103.5dBm -40℃~+85℃ 2.4GHz 20.5dBm 355mA 3V~3.6V 95mA Bluetooth5.0 ESP32-S3 On-board PCB Antenna UART、SPI、I2C、GPIO、I2S、USB SMD,25.5x18mm WiFi Modules ROHSEspressif SystemsWiFi ModulesMT2492
SOT-23-6-40℃~+85℃@(TA) 1 2A 4.5V~16V 600kHz Adjustable Buck Buck Built-in Yes SOT-23-6 DC-DC Converters ROHS西安航天民芯DC-DC ConvertersAMS1117-3.3
SOT-223-40℃~+125℃ 0.003%Vout 1 1.1V@(800mA) 15V 1A 3.3V 5mA 72dB@(120Hz) Fixed Over Current Protection、Short Circuit Protection、Thermal shutdown Positive SOT-223 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSAdvanced Monolithic SystemsVoltage Regulators - Linear, Low Drop Out (LDO) RegulatorsHC-1.0-4PLT
SMD,P=1mm-25℃~+85℃ 1 1A 1mm 1x4P 3.76mm 4 4.4mm 4P 50V 6.3mm Auxiliary Solder Pin LCP Phosphor bronze SH Surface Mount,Vertical Tin UL94V-0 SMD,P=1mm Wire To Board Connector ROHSHCTLWire To Board ConnectorSMAJ5.0A
DO-214AC(SMA)-65℃~+150℃ 400W@10/1000us 43.5A 5V 7V 800uA 9.2V TVS Unidirectional DO-214AC(SMA) ESD and Surge Protection (TVS/ESD) ROHSMDDESD And Surge Protection (TVS/ESD)WS2812B-2020
SMD,2.2x2mm0.6mA 0.84mm 120us 160mcd 200mcd 2kHz 2mm 2mm 300ns 470.4nm 515.6nm 520mcd 5V 622.5nm 800Kbit/s Built-in power-on reset circuit、Built-in power-on reset circuit、Integrated intelligent reverse connection protection function Top-mount SMD,2.2x2mm RGB LEDs(Built-in IC) ROHSWorldsemiRGB LEDs(Built-In IC)SS54
SMA(DO-214AC)-55℃~+125℃ 1mA@40V 40V 550mV@5A 5A Independent SMA(DO-214AC) Schottky Diodes ROHSMDDSchottky DiodesSWPA8065S101MT
SMD,8x8mm1.35A 100uH 233mΩ 2A Magnetic Shielded Inductor ±20% SMD,8x8mm Power Inductors ROHSSunlordPower InductorsSWPA4030S4R7MT
SMD,4x4mm2A 3.2A 4.7uH 78mΩ ±20% SMD,4x4mm Power Inductors ROHSSunlordPower InductorsAO3400A
SOT-23-55℃~+150℃ 1 N-channel 1.45V 1.4W 30V 48mΩ@2.5V 5.7A 50pF 630pF 75pF 7nC@10V N-Channel SOT-23 MOSFETs ROHSAlpha & Omega SemiconductorMOSFETsDC-005-2.5A-2.0
插件-20℃~+70℃ 2mm 6.2mm DC Power Jack Panel Mount 插件 DC Power Connectors ROHSXKB ConnectionDC Power Connectors1812L200/12DR
1812-40℃~+85℃ 1.2mm 100A 12V 1W 20mΩ 2A 2s 3.41mm 3.5A 4.73mm 70mΩ 1812 Resettable Fuses ROHSLittelfuseResettable Fuses
README
hardware/README.mdDesign decisions
Power supply scheme
The ESP32-S3 uses 3.3V. I want onboard indicator LEDs, and the option to have offboard LEDs as well. Using addressable WS2812-type LEDs is flexible. These need a 5V supply. The fans draw 12V, so this necessitates two voltage regulators.
One option would be to use separate buck converters for both the 5V and 3.3V rails.
With no offboard LEDs, the 5V rail power draw will be low. WS2812B LEDs consume roughly 1mA each when idle. When lit at a fully-saturated color, they will consume about 20mA each. There are four onboard LEDs, so this means 4mA idle, and 80mA when lit.
This is relatively low power consumption. However, offboard LEDs may need significantly more power. If, for example, a 16-LED ring is used, then up to 400mA total may be needed.
During normal operation, the indicator light will be off. So, most of the time, the 5V current draw will be low.
To convert from the 12V supply to 5V, we'll use a buck converter. If we size the inductor for the maximum current draw, then the converter will potentially be noisy during typical operation.
So, we should instead use a linear regulator to convert the 5V to 3.3V, if possible. This will simplify the design, and increase the minimum current draw on the buck converter. Is it feasible?
The ESP32-S3 datasheet says that the power supply should support at least 500mA. The AMS1117-3.3 supports 1A max. The typical power draw of the ESP32-S3 running our ESPHome configuration is 30-120mA. A linear regulator burns the excess voltage as heat. For (worst-case) typical operation, the power consumed by the regulator will be .12A * (5V - 3.3V) = 200mW. This is acceptable.
Using this buck converter calculator, a 100uH inductor means that the maximum ripple current will be about 50mA.
The chosen inductor (SWPA8065S101MT) has a max DC resistance of 0.28Ω, and a max heat-rating current of 1.35A. If the ESP32-S3 draws 500mA, this leaves >500mA for LEDs. This is sufficient.
Filtering
I did a conducted emissions pre-test for v1.0, using a dual 5uH LISN between the board and an adjustable DC power supply. With the board on and idle (30-40mA pulled from the 12V source), I saw a few concerning peaks:
- A sharp peak around 725 kHz, about 10dB above the limit
- Sharp peaks around 3.6kHz, 1.4 MHz, 2.2 MHz, and 3.6 MHz - these are >3dB below the limit
- Broadband noise between 300kHz to 400kHz
Increasing the load on the buck converter slightly by turning on the indicator LED to full white (50-55mA pulled @12V), the peaks get sharper, with the 365 kHz peak exceeding the limit by 6dB, and the 1.4MHz peak exceeding the limit by ~8dB.
There isn't much change with one fan plugged in on full power.
Parts
167| Qty | Value | Footprint | References |
|---|---|---|---|
| 27 | SMAJ5.0A | Diode_SMD:D_SMA | D10, D11, D13, D14, D16, D17, D19, D20, D22, D23, D25, D26, D28, D29, D31, D32 +11 |
| 16 | 1k | Resistor_SMD:R_0402_1005Metric | R2, R5, R13, R16, R19, R22, R25, R28, R31, R34, R37, R39, R40, R44, R45, R47 |
| 13 | 10uF | Capacitor_SMD:C_0603_1608Metric | C2, C6, C19, C24, C25, C26, C27, C28, C29, C30, C31, C32, C33 |
| 11 | 220 | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R3, R14, R17, R20, R23, R26, R29, R32, R35, R38, R46 |
| 11 | D_TVS 12V | Diode_SMD:D_SMA | D2, D4, D9, D12, D15, D18, D21, D24, D27, D30, D45 |
| 10 | 100k | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R4, R12, R15, R18, R21, R24, R27, R30, R33, R36 |
| 10 | Conn_01x04 | Homebrew:CONN-TH_47053-1000 | J3, J4, J5, J6, J7, J8, J9, J10, J11, J12 |
| 9 | 100nF | Capacitor_SMD:C_0402_1005Metric | C1, C4, C7, C12, C13, C14, C16, C18, C34 |
| 6 | 100 | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R48, R49, R50, R51, R52, R53 |
| 4 | 22uF 25V | Capacitor_SMD:C_1206_3216Metric | C5, C8, C20, C23 |
| 4 | 47uF | Capacitor_SMD:C_1206_3216Metric | C3, C11, C15, C17 |
| 4 | MountingHole | MountingHole:MountingHole_3.2mm_M3_ISO7380 | H1, H2, H3, H4 |
| 4 | SW_Push | Homebrew:SW_TACTILE_5.1MM_TS-1187A-C-D-B | SW1, SW2, SW3, SW4 |
| 4 | WS2812B-2020 | Homebrew:LED-SMD_4P-L2.0-W2.0-TL_WS2812B-2020 | D35, D37, D38, D39 |
| 2 | 100k | Resistor_SMD:R_0402_1005Metric | R1, R6 |
| 2 | 5k1 | Resistor_SMD:R_0402_1005Metric | R7, R10 |
| 2 | Conn_01x02 | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | J13, J14 |
| 2 | Conn_01x08 | Homebrew:CONN-TH_8P-P1.25_HCTL_HC-1.25-8A | J16, J17 |
| 2 | D | Diode_SMD:D_SMA | D1, D42 |
| 1 | 100 | Resistor_SMD:R_0402_1005Metric | R11 |
| 1 | 100uH | Inductor_SMD:L_Sunlord_SWPA8040S | L1 |
| 1 | 10k | Resistor_SMD:R_0402_1005Metric | R43 |
| 1 | 110k 1% | Resistor_SMD:R_0402_1005Metric | R9 |
| 1 | 16k 1% | Resistor_SMD:R_0402_1005Metric | R8 |
| 1 | 220k | Resistor_SMD:R_0402_1005Metric | R42 |
| 1 | 220uF | Capacitor_SMD:CP_Elec_8x10 | C22 |
| 1 | 22nF | Capacitor_SMD:C_0402_1005Metric | C9 |
| 1 | 22pF | Capacitor_SMD:C_0402_1005Metric | C10 |
| 1 | 4.7uH | Inductor_SMD:L_Sunlord_SWPA4030S | L2 |
| 1 | 680k | Resistor_SMD:R_0402_1005Metric | R41 |
| 1 | AMS1117-3.3 | Package_TO_SOT_SMD:SOT-223-3_TabPin2 | U4 |
| 1 | AO3400A | Package_TO_SOT_SMD:SOT-23 | Q1 |
| 1 | Conn_01x03 | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J15 |
| 1 | Conn_01x06 | Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_Vertical | J2 |
| 1 | DC-005-2.5A-2.0 | Homebrew:CONN-TH_DC-005-2.5A-2.0 | DC1 |
| 1 | ESP32-S3-WROOM-1-N4 | RF_Module:ESP32-S3-WROOM-1 | U1 |
| 1 | HC-1.0-4PLT | Homebrew:CONN-SMD_4P-P1.00_HC-1.0-4PLT | U5 |
| 1 | MT2492 | Homebrew:SOT-23-6_L2.9-W1.6-P0.95-LS2.8-BL | U3 |
| 1 | Polyfuse | Fuse:Fuse_1812_4532Metric | F1 |
| 1 | QMB-09B-03 | Homebrew:BUZ-TH_BD9.0-P4.00-D0.6-FD | BUZZER1 |
| 1 | SRV05-4-P-T7 | Package_TO_SOT_SMD:SOT-23-6 | D3 |
| 1 | Strain Relief | Homebrew:3_pin_2.54mm_pitch_strain_relief | H5 |
| 1 | TYPE-C-31-M-12 | Homebrew:HRO_TYPE-C-31-M-12 | J1 |
Questions
How big is the Air filter controller PCB?
It measures 41 × 149 mm and has 4 copper layers, 1.6 mm thick.
What parts does the Air filter controller use?
167 parts, built around the ESP32-S3-WROOM-1-N4, MT2492, AMS1117-3.3 and HC-1.0-4PLT. 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 filter controller KiCad files?
From the ademuri/air-filter-controller repository on GitHub, at the commit this page was made from: the board is hardware/air-filter-controller.kicad_pcb and its schematic hardware/air-filter-controller.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Air filter controller design in my own project?
Its repository states no licence, so its author keeps all rights: ask ademuri before reusing the design.
Similar boards
- 6 layers187 × 109 mm

- 4 layers100 × 100 mm

Phmod
gallicchio/AMOD-and-RFMOD
The tutorial's 2x12 adapter (/mudd/133electronics/icepi-zero-dac-adc/adapterboard/) with a 2 x 6 right-angle Pmod socket on a 15 mm extension of its right-hand end, so an Icepi Zero can drive AMOD-A's and RF-MOD's Pmod…
234 parts - 2 layers110.1 × 110.4 mm

Mini
makerspet/oomwoo-esp32s3-cm
Pi CM4/CM5-compatible Compute Module using ESP32-S3 instead of CPU
116 parts1Apache-2.0 - 2 layers99 × 90 mm

- 2 layers120 × 80 mm

Spikeling v3.2
OpenSourceNeuro/Spikeling
A hardware implementation of spiking neurons for neuroscience teaching and outreach
233 parts21GPL-3.0 - 4 layers24.6 × 33.1 mm

Power supply2
jrseti/dishy1pi
Satellite dish motor control for Raspberry Pi, hardware and software
21 partsMIT - 4 layers100 × 100 mm

- 2 layers100 × 96 mm

Backlight
jackw01/scanlight
A better light source for scanning color negative film
69 parts397CERN-OHL-W-2.0