
E0001 fader driver
Karpuls/E0001-fader-driver-board
Motorized fader driver board (ALPS RSA0N11M9A0J clone): STM32C051, DRV8210P, touch sense, I2C

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.
Wisp is an open-source printed circuit board by huulanka, from the huulanka/wisp repository on GitHub, published under the MIT licence. It is a 4-layer board of 60 × 80 mm with 91 parts on 51 nets, routed with 688 tracks and 339 vias.
It is built around the ESP32-S3-WROOM-1-N8, BH1750FVI-TR and BME280, with the SGP41-D-R4, SCD41-D-R2 and USBLC6-2SC6 among its other parts. Its parts include 19 resistors, 17 capacitors, 15 diodes, 9 connectors and 7 ICs. It belongs with the home automation and IoT boards and the ESP32 boards of this library.
Wisp is an open-source, self-hosted ESP32 room climate monitor. No cloud — it publishes readings over MQTT into your own Home Assistant instance, which exposes them to Apple HomeKit.
It tracks:
All hardware, firmware, and infrastructure needed to build and run one live in this single repo.
| Path | What's there | Status |
|---|---|---|
/hardware | KiCad project for the PCB — schematic, layout, Gerbers, BOM/CPL. ESP32-S3-WROOM-1 module, I2C sensors, USB-C only, 4-layer board. | Schematic and PCB routed, DRC clean, fab outputs exported. |
/firmware | ESP-IDF firmware in Rust (esp-idf-svc), publishing sensor data over MQTT with OTA updates. | Not started. Design: docs/firmware-architecture.md. |
/infra | Docker Compose: Mosquitto (MQTT, TLS, ACLs), a self-hosted OTA server, and Home Assistant bridging MQTT into HomeKit. | Not started. Design: docs/infra-architecture.md. |
/docs | Design concept, sensor rationale, expandability notes. | concept.md, hardware-expandability.md. |
The SGP41 replaces the more common BME680: the BME680's gas reading only becomes useful through Bosch's closed-source BSEC library, which doesn't sit well with an MIT-licensed firmware. Sensirion's Gas Index Algorithm (BSD-3-Clause) does the same job openly. Dropping the BME680 would also drop barometric pressure, so the BME280 sits alongside the SGP41 for that — and because the SCD41 needs ambient pressure to compensate its own CO2 reading, that pressure reading isn't a bonus, it feeds the primary measurement.
Temperature and humidity are read from the SCD41; the BME280's readings are kept as an independent cross-check rather than the source of truth, so firmware can notice a failing sensor.
Full rationale: docs/concept.md.
home/climate/<room>/{co2,temperature,humidity,voc,nox,pressure,lux}First room: living room.
Each subfolder is licensed separately, matching its content type:
/hardware → CERN-OHL-S v2/firmware → MIT/docs → CC-BY-4.0| Qty | Value | Footprint | References |
|---|---|---|---|
| 11 | PESD5V0L1UL | D_SOD-882 | D2, D3, D5, D6, D7, D8, D9, D10, D13, D14, D15 |
| 8 | 100nF | C_0805_2012Metric | C2, C7, C9, C10, C16, C17, C18, C19 |
| 5 | 4.7k | R_0805_2012Metric | R8, R9, R10, R11, R14 |
| 4 | 10uF | C_0805_2012Metric | C3, C5, C12, C13 |
| 4 | MountingHole_M3 | MountingHole_3.2mm_M3 | MH1, MH2, MH3, MH4 |
| 3 | 10k | R_0805_2012Metric | R3, R4, R20 |
| 3 | 1uF | C_0805_2012Metric | C4, C20, C21 |
| 3 | 220R | R_0805_2012Metric | R15, R16, R17 |
| 2 | 22uF | C_0805_2012Metric | C6, C14 |
| 2 | 5.1k | R_0805_2012Metric | R1, R2 |
| 1 | +3V3 | TestPoint_Pad_1.5x1.5mm | TP5 |
| 1 | 1-Wire Bus | PinHeader_1x03_P2.54mm_Vertical | J7 |
| 1 | 100R | R_0805_2012Metric | R12 |
| 1 | 100k | R_0805_2012Metric | R18 |
| 1 | 1N4148W | D_SOD-123 | D11 |
| 1 | 1k | R_0805_2012Metric | R13 |
| 1 | 2.2k | R_0805_2012Metric | R21 |
| 1 | 2.2uH | L_1210_3225Metric | L1 |
| 1 | 330R | R_0805_2012Metric | R7 |
| 1 | 4.7R | R_0805_2012Metric | R22 |
| 1 | 500mA | Fuse_1812_4532Metric | F1 |
| 1 | AO3400A | SOT-23 | Q3 |
| 1 | AP63203WU-7 | TSOT-23-6 | U2 |
| 1 | Analog Sensor Pad | PinHeader_1x03_P2.54mm_Vertical | J8 |
| 1 | BH1750FVI-TR | BH1750FVI-TR_WSOF6 | U6 |
| 1 | BME280 | Bosch_LGA-8_2.5x2.5mm_P0.65mm_ClockwisePinNumbering | U7 |
| 1 | BOOT | SW_SPST_PTS810 | SW2 |
| 1 | Buzzer | Buzzer_CUI_CPT-9019S-SMT | BZ1 |
| 1 | EN | TestPoint_Pad_1.5x1.5mm | TP9 |
| 1 | ESP32-S3-WROOM-1-N8 | ESP32-S3-WROOM-1 | U3 |
| 1 | Expansion Header | PinHeader_1x08_P2.54mm_Vertical | J9 |
| 1 | GND | TestPoint_Pad_1.5x1.5mm | TP6 |
| 1 | GREEN | LED_0805_2012Metric | D12 |
| 1 | I2S Mic (INMP441) | PinHeader_1x05_P2.54mm_Vertical | J4 |
| 1 | IO0 | TestPoint_Pad_1.5x1.5mm | TP10 |
| 1 | JTAG_MTCK | TestPoint_Pad_1.5x1.5mm | TP2 |
| 1 | JTAG_MTDI | TestPoint_Pad_1.5x1.5mm | TP1 |
| 1 | JTAG_MTDO | TestPoint_Pad_1.5x1.5mm | TP4 |
| 1 | JTAG_MTMS | TestPoint_Pad_1.5x1.5mm | TP3 |
| 1 | LED_DOUT | TestPoint_Pad_1.5x1.5mm | TP13 |
| 1 | MMBT3904 | SOT-23 | Q4 |
| 1 | RESET | SW_SPST_PTS810 | SW1 |
| 1 | Reed/Hall Contact | PinHeader_1x02_P2.54mm_Vertical | J6 |
| 1 | SCD41-D-R2 | Sensirion_SCD4x-1EP_10.1x10.1mm_P1.25mm_EP4.8x4.8mm | U4 |
| 1 | SCL | TestPoint_Pad_1.5x1.5mm | TP8 |
| 1 | SDA | TestPoint_Pad_1.5x1.5mm | TP7 |
| 1 | SGP41 | Sensirion_DFN-6-1EP_2.44x2.44mm_P0.8mm_EP1.25x1.7mm | U5 |
| 1 | SS14 | D_SMA | D4 |
| 1 | Second I2C Bus | PinHeader_1x04_P2.54mm_Vertical | J2 |
| 1 | Switched DC Output | PinHeader_1x03_P2.54mm_Vertical | J5 |
| 1 | UART0_RX | TestPoint_Pad_1.5x1.5mm | TP12 |
| 1 | UART0_TX | TestPoint_Pad_1.5x1.5mm | TP11 |
| 1 | USB-C | USB_C_Receptacle_HRO_TYPE-C-31-M-12 | J1 |
| 1 | USBLC6-2SC6 | SOT-23-6 | U8 |
| 1 | WS2812B | LED_WS2812B_PLCC4_5.0x5.0mm_P3.2mm | D1 |
| 1 | mmWave UART (LD2410) | PinHeader_1x04_P2.54mm_Vertical | J3 |
It measures 60 × 80 mm and has 4 copper layers, 1.6 mm thick.
91 parts, built around the ESP32-S3-WROOM-1-N8, BH1750FVI-TR, BME280 and SGP41-D-R4. 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.
From the huulanka/wisp repository on GitHub, at the commit this page was made from: the board is hardware/kicad/wisp.kicad_pcb and its schematic hardware/kicad/wisp.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Karpuls/E0001-fader-driver-board
Motorized fader driver board (ALPS RSA0N11M9A0J clone): STM32C051, DRV8210P, touch sense, I2C

o7-machinehum/phantomdrive
Seemingly normal USB drive with a hidden security feature

IvanVeloz/smart-usb-plug
A smart plug for USB with energy measurement and Matter over Thread support

pushtiujeniya/esp32-c6-environmental-logger
This repository contains an Environmental Sensor Station and Data Logger powered by the ESP32-C6-WROOM-1 microcontroller.

aleemacc/air_quality_sensor
PCB design for a custom air quality measuring device

CPSLO-AI-Campus-Fire-Detection/senseboard
PCB for sensor stack and compute for fire detection system


Eniemooo/Sensor-HAT
Open-hardware indoor air sensor (CO2, VOC/NOx, T/RH, light, sound): HAT for Raspberry Pi or standalone with Seeed XIAO + ESPHome. KiCad 10.