programmable-mist-maker

Public

@dav1dyang

Share programmable-mist-maker

Check access before sharing the link.

Who can open this board

Anyone can open this board. No sign-in is required.

This link opens the latest version. Copying it does not grant additional access.

Loading…

README

Programmable Mist Maker

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.

The boards

BoardPowerBest forStatus
Extension KitUSB-CFirst builds, desks, classroomsV0.1 — hardware + firmware ready
Battery KitLi-Po + USB-CPortable builds, installationsV0.3 — hardware + firmware ready
Block KitLi-Po + USB-CDrop-in container UX, 14 LEDsV0.1 — demoed at OHS 2026
I2C MultiPackTBDMulti-emitter installationsIn design
Legacy V1.4USB / Li-PoReproducing the original workshop kitShipped, frozen

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.

Start here

  1. Pick a board — the Extension Kit is the easiest first build; the Battery Kit cuts the cord. (Or buy one assembled and tested.)
  2. Flash the variant's BringUp sketch to verify the hardware feature by feature.
  3. Install the MistMaker Arduino library (v1.1+) and work through the examples: MistBlink → MistDimming → WaterDetect → WiFiPhoneControl (control it from your phone).
  4. Smart home? firmware-examples/home-assistant/ joins Home Assistant with no code at all (ESPHome), or use the HomeAssistant_MQTT library example.

How it works

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.

Repo map

PathContents
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
assets/Photos and media

[!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.

Use and care

[!WARNING] Water + electronics + time = biology. Use distilled or clean tap water, clean the container regularly, and let cotton wick 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.

License & credits

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: [email protected] · @dav1dyang

Comments

No comments yet. Be the first to ask about this board.

Ask about this board

Sign in to BoardRepo

New here? Signing in creates your account; there is no separate sign-up.