Created by shuang cai & David Yang
Have you ever wondered how a humidifier works—or imagined using mist as part of an interactive or artistic installation?
This project shows you how to build your own low-cost, programmable ultrasonic mist maker. Using a piezoelectric disc, a custom PCB, and a Xiao ESP32C6 microcontroller, you’ll be able to control mist output through code and simple hardware.
Developed for a hands-on workshop at Open Hardware Summit 2025, this project is designed for creators, educators, and engineers. We’re sharing everything—our PCB design, code, and build process—so you can explore mist as a material and tool in your own work.
Project GoalsThe goal of this project is to develop an open-source, easy-to-use, and programmable mist maker that empowers creators, educators, and engineers to treat mist as a creative material. While many ultrasonic mist maker circuits are commercially available, they often lack documentation, battery support, or integration with microcontrollers—making them difficult to customize or embed in other projects. By creating a plug-and-play system with clear instructions and a custom library, this project aims to make mist more accessible and programmable for interactive and experimental use.
We want to:
- Explain how ultrasonic mist makers function as transducers using high-frequency vibration
- Provide a well-documented, tested, and open-source reference design
- Enable easy integration into battery-powered or IoT systems
- Share lessons learned through circuit design, prototyping, and debugging
- Offer a custom library to simplify control and customization
Ultrasonic mist makers operate using high-frequency vibrations to atomize water into a fine vapor. The device integrates multiple subsystems—piezoelectric transduction, voltage amplification, and digital control—to reliably and efficiently generate mist.
Working PrincipleUltrasonic Vibration:
- The piezoelectric disc resonates at ~108.7 kHz.
- When driven by a high-frequency signal, it oscillates rapidly, creating ultrasonic waves.
- Water is pulled through small center holes in the disc, forming a cool mist.
Voltage Amplification & Resonance:
- A 3-legged tapped inductor is used, commonly seen in commercial humidifier designs.
- This inductor functions as a tapped autotransformer and LC resonator.
- It boosts the voltage to the piezo, achieving ~80 Vpp from a 5V input.
- The alternating voltage amplitude drives the piezo to move.
- This behavior was confirmed experimentally and aligns with reverse-engineered humidifier schematics and BigCliveDotCom’s teardown.
PWM Switching:
- A logic-level N-channel MOSFET (e.g., AO3400A) switches the circuit.
- It is driven by an ESP32-C6 GPIO pin generating PWM at ~108.7 kHz.
- The MOSFET toggles the grounded leg of the piezo-inductor loop.
Power Supply System:
- The TPS61023 boost converter steps up LiPo or USB input to 5V.
- V1.4 boards also include the MCP73831 for safe battery charging.
- Reverse current protection and TVS diodes help prevent power path issues from inductive kickback.
Physical Design:
- The piezo is placed inside a water reservoir made from recycled containers.
- Only the piezo touches water; electronics remain sealed and dry.
- Mist strength and reliability depend on matching the resonance of the piezo and inductor.
- The tapped 3-legged inductor is hard to source but crucial for efficient voltage boosting in a small footprint.
- Piezo performance degrades with incorrect orientation, low water levels, or dirt buildup.
- Extra components like RC snubbers, diodes, and capacitors significantly improve stability.
- Piezo Disc (108.7 kHz): Vibrates water using ultrasonic waves. This disc has microscopic holes at the center to push water droplets from a sponge-backed side to the front. It's important to check the disc's datasheet before purchasing—discs vary by frequency, construction, and compatibility with inductors.
- 3-Legged Inductor (28 μH to 800 μH Ratio): Functions both as an LC resonator and auto-transformer to amplify voltage. While there's other ways to create mist without this component, this specialized inductor is key to compact, efficient commercial humidifier circuits. It's not easily found on Digikey, Mouser, or Amazon, but is widely available via Aliexpress, Taobao, and similar vendors by searching “三腳電感” in Chinese.
- MOSFET (e.g., AO3400A): Switches the PWM signal; must be logic-level (5V compatible).
- PWM Signal: Generated by the microcontroller at ~108.7 kHz.
- DC Boost Converter (TPS61023): Steps up voltage from 3.3V or LiPo battery to 5V.
- Boost input voltage to 5V for inductor and piezo disc
- PWM signal drives the MOSFET gate
- MOSFET switches the inductor-piezo loop rapidly
- LC resonance amplifies voltage
- Piezo disc push and pull rapidly to atomize water into mist
- Xiao ESP32-C6 powers the circuit via USB or battery
- V1.4 includes MCP73831 for battery charging and protection
This alternative mist maker circuit drives a piezo disc using a resonant LC circuit formed by a fixed inductor (680 µH) in series with the piezo element’s built-in capacitance. A PWM signal at 108.7 kHz from the ESP32 Pico controls a MOSFET, which rapidly switches current through the inductor. This high-frequency switching causes the LC circuit to resonate, generating high-voltage AC across the piezo disc, producing mist. A 100 nF capacitor blocks DC from reaching the disc, and a potentiometer allows users to adjust the input voltage, tuning mist intensity. This setup avoids the complexity of a tapped inductor while maintaining effective misting performance.
Hardware BreakdownV1.4 Schematics and Board Design
GitHub: https://github.com/Dav1dyang/Programmable-Mist-Maker
Kicad: https://drive.google.com/drive/folders/1GCPvqYGoEEoAgowHQRCqyZBl2H6xYYd8?usp=sharing
Main Board: Mist Maker v1.4
- Microcontroller: Xiao ESP32-C6
- Battery IC: MCP73831 (safe charge/discharge)
- DC Boost: TPS61023
- Protection: Series diode + TVS diode on 5V rail
- PCB Format: All SMD components except inductor
- USB and LiPo battery compatible via Xiao’s USB port
- Optional external switch and LEDs
- ESD & reverse voltage protection
- Open-source and OSHWA-certificated US002742
We encountered several issues during development and implemented specific fixes. When running on battery power, the mist maker initially didn't work properly due to limitations of the Xiao's 3.3V regulator, which we resolved by using a dedicated power IC to bypass the built-in regulator. We also noticed a startup delay issue, which we fixed by disabling OTA and adding a delay between enabling the TPS61023 and activating the MOSFET signal. Additionally, we found that programming would fail when the mist maker was running, so we added a pull-down resistor on the MOSFET gate and implemented a pull-down to disable the boost converter during uploads.
Assembly InstructionsRequired Materials
- Soldering iron & solder
- Multimeter (optional)
- Container for mist output (e.g., food tub, bottle, jar) (optional)
Steps
- Solder components onto PCB (or use pre-soldered boards)
- Connect the piezo disc and inductor to output terminals
- Attach LiPo battery or USB power
- Upload Arduino code via USB-C
- Mount electronics in container and add water (keep electronics dry)
- Ensure the piezo disc’s white ring faces up (mist exits here)
- Power on and activate the mist function
- GitHub Test Code
- Simple PWM mist maker code
- Custom Arduino Library
- Ensure a stable 5V at the inductor input
- Mist strength varies with water depth and voltage
- If mist flickers, check connections and battery charge
- Never operate without water (can overheat the piezo disc)
- Never operate without piezo disc (MOSFET can overheat)
- STL/STEP enclosure models (all in Github)
- KiCad schematic & PCB files (all in Github)
These resources were critical in informing our circuit design, debugging process, and documentation approach:
Technical Documentation- MDPI Journal: Ultrasonic Atomization Study
- Texas Instruments: TPS61023 Datasheet
- Adafruit: TPS61023
- Adafruit GitHub: MCP73831 Charger Circuit
- SparkFun: BSS138 Logic Level Converter Guide
- GreatScott!: How Ultrasonic Humidifiers Work (YouTube)
- BigCliveDotCom: Commercial Design Breakdown (YouTube)
- Nick Electronics: How humidifier works (YouTube)
- Electronics StackExchange: Tapped Inductor for Mist Maker
- EDN Network: Basic Mist Maker Explanation
Forums:
- TPS61023 EN Pin Behavior
- Reverse Voltage Protection Discussion
- Capacitor Purpose in LC Circuit
- LC Circuit Behavior
- LC Calculation Based on Piezo Capacitance
- Forums:TPS61023 EN Pin BehaviorReverse Voltage Protection DiscussionCapacitor Purpose in LC CircuitLC Circuit BehaviorLC Calculation Based on Piezo Capacitance
- AO3400 Datasheet: UMW AO3400A PDF
- Alternative MOSFET: Diodes Inc. DMP2045U PDF
- BSS138 Logic Shifter: Adafruit Product Page
- JLCPCB Tariff FAQ: JLC Tariff Policy
- JLCPCB DFM Viewer: Design Rule Checker
- Designed by David Yang & Shuang Cai
- Credits can be located in this google sheet: https://docs.google.com/spreadsheets/d/1s2eFMs6D-Qut28dHDV7D_Vbfdt_GcQxocgcqsKYrpJY/edit?usp=sharing
- PCB prototyping with Seeed Studio Xiao & JLCPCB
- Hosting at Open Hardware Summit 2025, Edinburgh
- Instagram: @fkialmostforgot,@dav1dyang
- GitHub: https://github.com/Dav1dyang/Programmable-Mist-Maker
- email: davidyangemail@gmail.com,shuangcai64@gmail.com
This documentation was drafted and refined using ChatGPT (GPT-4o). ChatGPT was used to:
- Summarize complex debugging notes and prototyping iterations
- Draft technical explanations for ultrasonic mist circuits
- Reformat messy logs into readable sections
- Clarify design reasoning and improve accessibility of language
- Cross-check component specifications and datasheet
The tool helped maintain clarity and consistency across evolving hardware versions. All technical content was reviewed and validated against actual test results and datasheet references before inclusion.
Comments