
MistMakerV1-4
Dav1dyang/Programmable-Mist-Maker
An open-source, low-cost ultrasonic mist maker designed to share commercial humidifier circuits and empower creators with accessible, well-documented hardware.

An open-source, low-cost ultrasonic mist maker designed to share commercial humidifier circuits and empower creators with accessible, well-documented hardware.
MistMaker Battery Kit V0-4 is an open-source printed circuit board by Dav1dyang, from the Dav1dyang/Programmable-Mist-Maker repository on GitHub, published under the MIT licence. It is a 2-layer board of 38 × 25.1 mm with 105 parts on 44 nets, routed with 362 tracks and 110 vias.
It is built around the TPS61023DRL, UCC27511ADBV and LP4060B5F, with the PH-2PWB, DMT10H009LCG-7-VB and PMEG10010ELRX-TP among its other parts. Its parts include 22 resistors, 15 connectors, 12 capacitors, 6 ICs and 4 diodes. It belongs with the power boards of this library.
Open-source, programmable ultrasonic mist maker kits — by shuang cai & David Yang at ByProduct Lab.
📖 Documentation · 🛒 Buy a kit · 📜 OSHWA certified US002742 · ✍️ Build story on Hackster

Most mist-maker circuits online are undocumented black boxes. This project fills that gap: tested reference circuits, full KiCad sources, an Arduino library, and honest notes about what went wrong along the way — so creators, educators, and engineers can explore mist as a material. First presented as a hands-on workshop at the Open Hardware Summit 2025.
| Board | Power | Best for | Status |
|---|---|---|---|
| Extension Kit | USB-C | First builds, desks, classrooms | V0.1 — hardware + firmware ready |
| Battery Kit | Li-Po + USB-C | Portable builds, installations | V0.4.1 — in production, bench-validated |
| Block Kit | Li-Po + USB-C | Drop-in container UX, 14 LEDs | V0.1 — demoed at OHS 2026 |
| I2C MultiPack | TBD | Multi-emitter installations | In design |
| Legacy V1.4 | USB / Li-Po | Reproducing the original workshop kit | Shipped, frozen |
The two shipping boards: Extension Kit V0.1 (left) and Battery Kit V0.4.1 (right).
Each variant folder has its own README with pin maps, an order-ready BOM + JLCPCB production files, and build instructions. Board-by-board guides with interactive schematics live on the documentation site.
Blink → Breath → WaterDetect →
PhoneDemo (control it from your phone).firmware-examples/home-assistant/
joins Home Assistant with no code at all (ESPHome).An ESP32 drives a piezo disc at its 108.7 kHz resonance through a MOSFET and a 3-legged tapped inductor — an autotransformer + LC tank that steps 5 V up to the ~80 Vpp the disc needs, while a current-sense amp lets the firmware detect the disc and the water level on one ADC pin. The full story — atomization science, why that strange inductor is everywhere in Shenzhen and nowhere at DigiKey, and a verified alternative circuit — is at docs.byproductlab.com/how-it-works.
| Path | Contents |
|---|---|
variants/<board>/ | Per-board KiCad project, BOM, production files, BringUp firmware, enclosure |
legacy/v1-4/ | The original workshop kit, preserved as documented (incl. duck & UFO enclosure STLs) |
firmware-examples/ | ESPHome / Home Assistant configs |
docs/ | The documentation site (MkDocs), incl. docs/assets/photos/ |
assets/ | Legacy V1.4 photos and the design-progress GIFs |
[!NOTE] Reproducing the legacy V1.4 board? It has a few quirks the V0.x boards designed away (power sequencing, upload-while-misting) — fixes are preserved on the Legacy V1.4 docs page.
[!WARNING] Water + electronics + time = biology. Use distilled or clean tap water, clean the container regularly, and let cotton sticks dry between uses. Never run a disc dry for long, and never drive the circuit without a disc attached. Full notes in the docs.
Open source under the MIT License, certified open source hardware (OSHWA US002742). Designed and tested by David Yang and shuang cai, inspired by community reverse-engineering and YouTube teardowns — full reference list in the docs.
Parts of the documentation were drafted with AI assistance; all technical content is validated against bench measurements and datasheets.
Contact: contact@byproductlab.com · @dav1dyang
| Qty | Value | Footprint | References |
|---|---|---|---|
| 8 | Conn_01x01 | Connector_Wire:SolderWirePad_1x01_SMD_1x2mm | J4, J5, J9, J11, J12, J13, J14, J15 |
| 5 | 10KΩ | PCM_JLCPCB:R_0402 | R8, R14, R16, R18, R19 |
| 5 | 10uF | PCM_JLCPCB:C_0603 | C5, C6, C12, C15, C16 |
| 4 | TestPoint | SparkFun-Connector:TestPoint-1.0mm | TP2, TP3, TP4, TP6 |
| 3 | 22uF | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C7, C8, C9 |
| 3 | 5.1KΩ | PCM_JLCPCB:R_0402 | R5, R6, R7 |
| 3 | G*** | kibuzzard-69EB898A | kibuzzard-69EB898A, kibuzzard-69EB898A, kibuzzard-69EB898A |
| 3 | G*** | kibuzzard-69EB8976 | kibuzzard-69EB8976, kibuzzard-69EB8976, kibuzzard-69EB8976 |
| 2 | 100K | PCM_JLCPCB:R_0402 | R13, R21 |
| 2 | 100KΩ | Resistor_SMD:R_0603_1608Metric | R11, R17 |
| 2 | 10uF | PCM_JLCPCB:C_0402 | C13, C14 |
| 2 | 30KΩ | PCM_JLCPCB:R_0402 | R4, R15 |
| 2 | Conn_01x07_Socket | Connector_PinSocket_2.54mm:PinSocket_1x07_P2.54mm_Vertical | J7, J8 |
| 2 | Conn_01x07_Socket | DavidLib_Connector:PinSocket_1x07_P2.54mm_Vertical_MiniSilk | J1, J10 |
| 2 | G*** | kibuzzard-69DF44F0 | kibuzzard-69DF44F0, kibuzzard-69DF44F0 |
| 2 | G*** | kibuzzard-69DF4510 | kibuzzard-69DF4510, kibuzzard-69DF4510 |
| 2 | MountingHole_Pad | DavidLib_Connector:MountingHole_2.7mm_M2.5_ISO7380_Pad_SmallerPad | H1, H2 |
| 2 | PH-2PWB | DavidLib_Connector:PH2PWB | J2, J3 |
| 1 | 0.1uF | Capacitor_SMD:C_0603_1608Metric | C1 |
| 1 | 10Ω | PCM_JLCPCB:R_0603 | R2 |
| 1 | 150Ω | PCM_JLCPCB:R_0402 | R9 |
| 1 | 1kΩ | Resistor_SMD:R_0402_1005Metric | R10 |
| 1 | 1uF | Capacitor_SMD:C_0402_1005Metric | C10 |
| 1 | 2.2Ω | PCM_JLCPCB:R_0603 | R3 |
| 1 | 220K | PCM_JLCPCB:R_0402 | R22 |
| 1 | 22Ω | PCM_JLCPCB:R_0402 | R20 |
| 1 | 2N7002 | PCM_Package_TO_SOT_SMD_AKL:SOT-23 | Q1 |
| 1 | 3 Legged Inductor | DavidLib_Power:IND-SMD_3P-CD75 | L1 |
| 1 | 30mΩ | Resistor_SMD:R_1206_3216Metric | R1 |
| 1 | 732K | PCM_JLCPCB:R_0402 | R12 |
| 1 | AP7361C-3.3V | PCM_SparkFun-Semiconductor-Standard:DFN-8_3x3mm_P0.65mm_EP2.25x1.5mm | U2 |
| 1 | DMT10H009LCG-7 | DavidLib_Switch:DMP3007SCG7 | Q4 |
| 1 | G*** | kibuzzard-69EB87F5 | kibuzzard-69EB87F5 |
| 1 | G*** | kibuzzard-6A488614 | kibuzzard-6A488614 |
| 1 | G*** | kibuzzard-6A38CD61 | kibuzzard-6A38CD61 |
| 1 | G*** | kibuzzard-69E03B47 | kibuzzard-69E03B47 |
| 1 | G*** | kibuzzard-69DF40F6 | kibuzzard-69DF40F6 |
| 1 | G*** | kibuzzard-69EB47E7 | kibuzzard-69EB47E7 |
| 1 | G*** | kibuzzard-69DF3D93 | kibuzzard-69DF3D93 |
| 1 | G*** | kibuzzard-69EB8D01 | kibuzzard-69EB8D01 |
| 1 | G*** | kibuzzard-69EB8B1C | kibuzzard-69EB8B1C |
| 1 | G*** | kibuzzard-69DF414F | kibuzzard-69DF414F |
| 1 | G*** | kibuzzard-69DF407A | kibuzzard-69DF407A |
| 1 | G*** | kibuzzard-69EB84CC | kibuzzard-69EB84CC |
| 1 | G*** | kibuzzard-69DF40D0 | kibuzzard-69DF40D0 |
| 1 | G*** | kibuzzard-69DF3D6E | kibuzzard-69DF3D6E |
| 1 | G*** | kibuzzard-69EB87CA | kibuzzard-69EB87CA |
| 1 | G*** | kibuzzard-6A316FBE | kibuzzard-6A316FBE |
| 1 | G*** | kibuzzard-69EB470E | kibuzzard-69EB470E |
| 1 | G*** | kibuzzard-6A317060 | kibuzzard-6A317060 |
| 1 | G*** | kibuzzard-69EB8824 | kibuzzard-69EB8824 |
| 1 | G*** | kibuzzard-69EB8B4D | kibuzzard-69EB8B4D |
| 1 | G*** | kibuzzard-69EB4726 | kibuzzard-69EB4726 |
| 1 | G*** | kibuzzard-6A2F79F4 | kibuzzard-6A2F79F4 |
| 1 | G*** | kibuzzard-69EB8840 | kibuzzard-69EB8840 |
| 1 | GRAPHIC | Mist_Library:DUCKY_ICON_S | TP1 |
| 1 | INA180A3 | Package_TO_SOT_SMD:SOT-23-5 | U3 |
| 1 | LED_G | SparkFun-LED:LED_0402_1005Metric | LED1 |
| 1 | LED_R | SparkFun-LED:LED_0402_1005Metric | LED2 |
| 1 | LED_W | SparkFun-LED:LED_0402_1005Metric | LED3 |
| 1 | LP4060B5F | DavidLib_Power:BATT_Charger_SOT-23-5_Min_Silk | U1 |
| 1 | PMEG10010ELRX-TP | PCM_JLCPCB:D_SOD-123FL | D1 |
| 1 | Qwiic_Vertical | SparkFun-Connector:JST_1x04_P1.0mm_Vertical_SMD | J6 |
| 1 | SolderJumper_2_Close | Jumper:SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mm | JP5V5 |
| 1 | TPS2116DRLR | DavidLib_Mux:TPS62932DRLR | IC2 |
| 1 | TPS61023 | DavidLib_Power:SOT-563 | IC1 |
| 1 | TS-1088-AR02016 | DavidLib_Switch:TS1088AR02016 | S2 |
| 1 | UCC27511ADBV | Package_TO_SOT_SMD:SOT-23-6 | U4 |
| 1 | XEL4030-102MEC | DavidLib_Power:XEL4030102MEC | L2 |

Dav1dyang/Programmable-Mist-Maker
An open-source, low-cost ultrasonic mist maker designed to share commercial humidifier circuits and empower creators with accessible, well-documented hardware.

Dav1dyang/Programmable-Mist-Maker
An open-source, low-cost ultrasonic mist maker designed to share commercial humidifier circuits and empower creators with accessible, well-documented hardware.

maxim75/cc1101_receiver_esp32
ESP32-S3 firmware that receives RF packets from two radios simultaneously and displays decoded data on an SH1107 128×128 OLED and serial monitor.
zgeez/Pixel-Badge
Wearable 32x32 LED badge with Zephyr firmware, BLE control, passive NFC, and a Flutter Android app, built around a custom nRF52840 PCB.

emertcakir/OpenAirScope
Open-source air quality and environmental monitoring node with STM32H743 + ESP32-C3, LoRaWAN, RS485, USB-C, Li-ion charging, and multi-sensor support.

embedrapp/ai-pendant-recorder
AI pendant recorder firmware, PCB, and mechanical design


weiweiweiopen/self-powered-iv-curve-tester-with-single-dssc
Single-DSSC energy-harvesting I-V tester: KiCad hardware, relay switching, GPIO firmware, and energy estimates.
Mitchlol/Open-Pixel-Poi
Open source, 3D printable, LED pixel Poi: PlatformIO / Flutter / KiCad / STLs

Ajakovski/Chess-Master-Board
A chess board that sees every piece, lights every move, and thinks alongside you
It measures 38 × 25.1 mm and has 2 copper layers, 1.6 mm thick.
105 parts, built around the TPS61023DRL, UCC27511ADBV, LP4060B5F and PH-2PWB. 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 Dav1dyang/Programmable-Mist-Maker repository on GitHub, at the commit this page was made from: the board is variants/battery-kit/hardware/kicad/MistMaker-Battery-Kit-V0-4.kicad_pcb and its schematic legacy/v1-4/hardware/MistMakerV1-4.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).