Hardware & Assembly¶
The recording system is built around an ESP32-DevKitC microcontroller that drives two LED channels (IR + White) via logic-level MOSFETs and reads a DHT22 environmental sensor. This is the standard, recommended setup.
Full step-by-step assembly guide
This page is a quick wiring & pinout reference. The complete assembly instructions (with build photos) are maintained in the project README on GitHub.
Alternative board
An ESP32-S3-BOX-3 (Alternative) with an integrated touchscreen is also supported. It uses different GPIO pins but the same firmware (auto-detected). Use it only if you need the display โ for most users the ESP32 DevKit below is the simpler choice.

Required components¶
Full parts list with ordering links (example vendors โ equivalents work too).
1. ESP32 microcontroller¶
Option A โ ESP32-DevKitC (standard, recommended)
- Custom firmware with LED control and sensor support (v2.2 or higher)
- GPIO pins: GPIO 4 (IR LED), GPIO 15 (White LED), GPIO 14 (DHT22)
- Order: AZDelivery ESP32 DevKitC (Amazon)
Option B โ ESP32-S3-BOX-3 (Alternative)
- Board with integrated 2.4" touchscreen; requires the ESP32-S3-BOX-3-DOCK for GPIO access
- GPIO pins: GPIO 10 (IR LED), GPIO 11 (White LED), GPIO 12 (DHT22)
- See the ESP32-S3-BOX-3 configuration guide
2. LED system¶
- IR LED โ 850 nm, 12 V (e.g. LED Streifen 2538 120 LED/m IR 850 nm): buyledstrip.com
- White LED โ broad-spectrum, 24 V (e.g. 24 V COB 320 L/m iNextStation): Amazon
Different LED voltages
IR and White LEDs run on different voltages (12 V vs. 24 V) โ use two separate PSUs and never cross the rails.
3. DHT22 sensor¶
- Temperature โ40โฆ80 ยฐC (ยฑ0.5 ยฐC), humidity 0โ100 % RH (ยฑ2โ5 %)
- Board with integrated pull-up resistor (no external resistor needed)
- Order: DHT22 sensor board (Amazon)
4. Power supplies & MOSFETs (logic-level, 3.3 V)¶
- ESP32 power: 5 V via USB (from the computer)
- IR LED power: 12 V DC, 2โ5 A: buyledstrip.com
- White LED power: 24 V DC, 2โ5 A: buyledstrip.com
- BOJACK IRLZ34N MOSFET 30 A / 55 V (IRLZ34NPBF): Amazon
Common ground required
A common ground between USB/ESP32 ground and both PSU grounds is mandatory.
5. Connectors, wiring, screw kit¶
- 3ร WAGO 221-413 COMPACT lever connectors (3-conductor): Amazon
- PSU connector DC plug: buyledstrip.com
- 220 ฮฉ resistor (gate series resistor): Elegoo resistor kit (Amazon)
- Magnets: Amazon
- White-light LED connector: Amazon
- Wires and connectors: Amazon
- Glue: Amazon
- Hot glue gun: Amazon
- Screw kit incl. hex keys: Amazon
6. Camera¶
- Hik Robotics MV-CS-013 60GN (near-infrared) โ request via the UC2 company (imprint) or annolution shop
- Product page: hikrobotics.com
7. 3D-printed parts¶
- See 3D-Printed Parts for all STL/STEP files and print settings.
Pin reference โ ESP32 DevKit¶
GPIO 4 โ IR LED MOSFET gate (PWM, 15 kHz)
GPIO 15 โ White LED MOSFET gate (PWM, 15 kHz)
GPIO 14 โ DHT22 data (with 10 kฮฉ pull-up)
3.3V โ DHT22 VCC
GND โ DHT22 GND, common ground hub (WAGO #W2)
LED system assembly (IRLZ34N MOSFETs)¶
Each LED channel is switched by one logic-level IRLZ34N MOSFET driven directly from an ESP32 GPIO โ no gate driver needed.
MOSFET specifications
- Model: BOJACK IRLZ34N (IRLZ34NPBF)
- Type: N-channel logic-level MOSFET
- Maximum ratings: 30 A, 55 V
- Gate threshold: 1โ2 V (logic-level, works with 3.3 V from the ESP32)
- Package: TO-220

Assembled LED driver stage โ dual IRLZ34N MOSFETs with WAGO connectors.
MOSFET connection details
- Gate โ ESP32 GPIO (4 or 15) via a 220 ฮฉ resistor
- Drain โ LED connection (โ) [12 V for IR, 24 V for White]
- Source โ common ground (WAGO #W2)
- LED connections:
- IR LED: (+) from 12 V PSU via WAGO #W1
- White LED: (+) from 24 V PSU via WAGO #W3
- DHT22:
- GND โ common ground W2 (or best: directly to ESP32 GND)
- VCC โ 3.3 V at the ESP32
- Data โ GPIO 14
IRLZ34N (IR LED): IRLZ34N (White LED):
Gate โ ESP32 GPIO 4 (220 ฮฉ) Gate โ ESP32 GPIO 15 (220 ฮฉ)
Drain โ IR LED (โ) / 12 V loop Drain โ White LED (โ) / 24 V loop
Source โ common ground (W2) Source โ common ground (W2)
Good to know
- IRLZ34N is logic-level compatible (works with a 3.3 V gate voltage).
- No additional driver circuit is needed between ESP32 and MOSFET.
- PWM frequency: 15 kHz (set in firmware).
- Handles high-power LED strips (up to 30 A theoretical; typically 1โ3 A).
Safety notes
- IR LEDs are invisible โ use an IR viewer card to verify operation.
- Add a heatsink on the MOSFET if driving >2 A continuous (usually not the case).
- Add a flyback diode (1N4007) across the LED if using inductive loads.
- Ensure a common ground between ESP32, PSUs, and MOSFETs.
- Use appropriately gauged wire for the current loads.
Power distribution (WAGO)¶
WAGO #W1: 12 V+ โ IR LED (+)
WAGO #W3: 24 V+ โ White LED (+)
WAGO #W2: common ground (CRITICAL!)
โโ 12 V PSU GND
โโ 24 V PSU GND
โโ ESP32 GND
โโ both MOSFET sources
โโ both LED cathodes (โ)
Common ground is mandatory
The USB/ESP32 ground and both PSU grounds must be tied together at WAGO #W2. Without a common ground the MOSFET gates float and the LEDs will not switch reliably.
DHT22 sensor¶
- The DHT22 board has an integrated pull-up resistor โ no external resistor needed.
- Direct 3-wire connection to the ESP32.
- Use short wires (<40 cm) for reliable communication.
Why 3.3 V (not 5 V)?
The DHT22 datasheet allows 3.3โ6 V (5 V optimal), but this setup runs the sensor at 3.3 V for perfect logic-level matching:
- ESP32 GPIO operates at 3.3 V logic โ
- DHT22 powered at 3.3 V โ
- Integrated pull-up at 3.3 V โ
- All signal levels matched โ
5 V can give marginally more stable readings, but 3.3 V works reliably and avoids any level-shifting. The sensor has been tested extensively at 3.3 V with stable temperature/humidity readings.
Power budget¶
| Component | Voltage | Current | Notes |
|---|---|---|---|
| ESP32 | 5 V USB | ~500 mA | powered from computer |
| DHT22 | 3.3 V | 1โ2 mA | from ESP32 3.3 V pin |
| IRLZ34N gates (2ร) | 3.3 V | <1 mA each | logic-level, driven by GPIO |
| IR LED strip | 12 V | 1โ3 A | via MOSFET, dedicated 12 V PSU |
| White LED strip | 24 V | 1โ3 A | via MOSFET, dedicated 24 V PSU |
Signal specifications¶
PWM (GPIO 4, 15): 3.3 V logic, 15 kHz, duty 0โ100 %, rise/fall <1 ยตs.
DHT22 (GPIO 14): single-wire digital, 10 kฮฉ pull-up to 3.3 V, ~0.5 Hz.
Serial: UART over USB, 115200 baud, 8N1, no flow control.
Photos & 3D parts¶
- Hardware Photos โ assembled setup, imager body, mounts.
- 3D-Printed Parts โ STL/STEP files and print settings.
Firmware¶
Flash the ESP32 straight from your browser โ no toolchain needed โ via the Firmware Installer (Chrome/Edge). Arduino IDE / PlatformIO instructions are in the project README.
Troubleshooting¶
- ESP32 not detected: use a data USB cable, install CH340/CP2102 drivers, try another port.
- LEDs not switching: check PSU power, verify PWM on the gate (0โ3.3 V square wave), confirm common ground.
- DHT22 reads 0.0: confirm 10 kฮฉ pull-up and 3.3 V, data on GPIO 14 (not GPIO 4).