Created by shuang cai & David Yang
This Open Source Hardware Certified ultrasonic mist maker project transforms recycled containers and a custom PCB into a small-form-factor mist device. It is a fully documented, low-cost circuit with accessible explanations of misting mechanics, design challenges, and power needs.
Full Documentation on Hackster.io
This project explain ultrasonic mist maker designs and provides:
- A tested, open-source reference circuit
- Lessons learned through prototyping and debugging
- A replicable and modifiable electronics system
Most mist circuits online lack documentation—this guide fills that gap with working examples and full KiCad/Arduino files.
Mist generation involves:
- Ultrasonic Vibration: A piezo disc (108.7 kHz) oscillates rapidly to turn water into mist.
- Voltage Boosting: A 3-legged inductor (auto-transformer) amplifies 5V input to approximately 30–40 Vpp.
- PWM Switching: An ESP32-C6 sends a 108.7 kHz PWM signal to a MOSFET.
- Power Supply: TPS61023 provides stable 5V from LiPo or USB input.
More details: Notion Documentation
| Component | Function |
|---|---|
| Piezo Disc (108.7 kHz) | Vibrates water to generate mist |
| Tapped Inductor (3-legged) | Boosts voltage through LC resonance |
| AO3400A MOSFET | Switches circuit at high frequency |
| TPS61023 Boost Converter | Powers piezo from battery or USB |
| MCP73831 | LiPo charging and protection |
| Seeed Studio XIAO ESP32-C6 | Controls mist and PWM |
- Boost 3.3V/USB to 5V
- ESP32 outputs PWM (108.7 kHz)
- MOSFET switches inductor-piezo loop
- LC resonance boosts voltage
- Piezo emits mist
| Issue | Fix |
|---|---|
| Mist fails on battery | Bypass Xiao's 3.3V regulator with external boost converter |
| Uploading code fails | Add pull-down to MOSFET gate; disable boost during upload |
| Startup delay | Disable OTA; add delay before activating mist |
Materials:
- PCB (v1.4)
- Piezo disc
- 3-legged inductor
- Xiao ESP32-C6
- Soldering tools
- Battery or USB-C cable
- Recycled container
- Cotton Sticks
Steps:
- Solder all components
- Connect piezo and inductor
- Attach battery or USB
- Upload firmware via Arduino
- Seal in container (keep electronics dry)
- Power on and activate mist
When connecting the board for development or testing:
- Always connect the USB cable first before applying battery power
- If battery power is connected before USB, the serial port will not be detected in the Arduino IDE
- The proper sequence is: connect USB → establish serial connection → apply battery power (if needed)
- Once the USB connection is established, battery power can be applied without disrupting the serial connection
- When operating in standalone mode without a computer, either power source can be used independently
This repository includes example sketches using the MistMaker library.
💡 Note: You must install the MistMaker library for these examples to compile and run properly.
-
SimpleControl.ino
A basic test sketch that uses a button to toggle the mist maker on and off.Features:
- 108.7kHz PWM output for the mist maker
- Button toggle for mist on/off
- Serial output with status information
-
Blink.ino
A blink-style sketch that turns the mist maker on and off at a fixed 2-second interval.Features:
- 108.7kHz PWM output for the mist maker
- Automatic on/off blinking every 2 seconds
- Serial output with status information
💡 Note: You don't need the library to run the code below.
- WithoutLibrary-108kHz_Output_3V3_XIAOC6.ino - Basic test with button control without using the libary
The example sketch provides:
- 108.7kHz PWM output for the mist maker
- Button toggle for mist on/off
- Serial output with status information
Warning
Because the device uses a water reservoir and cotton sticks to introduce water into the electronic systems, careless operation may lead to bacterial growth or contamination over time.
Please make sure to use distilled or clean tap water in the reservoir, fully clean the container every day, and clean the cotton sticks fully and let dried between each use.
- KiCad Files:
- PDF Exports:
- Bill of Materials (CSV)
- Enclosure Models and PCB Footprint
- TPS61023 Datasheet – Texas Instruments
- MCP73831 Datasheet – Microchip
- GreatScott! Ultrasonic Mist Explanation (YouTube)
- BigCliveDotCom Mist Maker Teardown (YouTube)
Full reference list in: Notion Documentation
This README and technical documentation were written with the support of ChatGPT (GPT-4o) to:
- Summarize logs and prototyping notes
- Clarify complex circuit behavior
- Reformat documentation for accessibility
All technical data was reviewed and validated against physical test results and datasheets.
Open-source under MIT License. Designed and tested by David Yang and shuang cai
Inspired by community reverse-engineering, YouTube teardowns, and a desire to share back with the open hardware world.



