MistMaker is an Arduino library for controlling piezoelectric mist maker modules using PWM, current sensing, and optional button toggling. It was developed for the custom PCB released during the Open Hardware Summit 2025 workshop session.
This project is Open Source Hardware Certified under OSHWA ID US002742, enabling educators, artists, and developers to explore the creative potential of mist as a material and medium.
- 108.7kHz PWM control for mist actuation
- Current sensing via analog input
- Toggle control using a button
- LED status indicator
- Designed for ESP32-based boards (tested on Seeed Studio XIAO ESP32-C6)
- Modular and reusable class-based structure
- Optional DMX-512 reception example (ESP32 + RS485 transceiver)
- Optional ESP‑NOW Wi‑Fi control example (wireless 0–255 level)
- Seeed Studio XIAO ESP32-C6 (or compatible ESP32 board)
- Certified Mist Maker PCB from OHS 2025
- Piezo mist module
- Optional: Button (for manual toggle) and LED (for status)
This library is designed for ESP32-based boards and relies on ESP32's LEDC PWM API for high-frequency mist control. It has been tested with:
- Seeed Studio XIAO ESP32-C6
- ESP32 DevKit V1
- ESP32-S3
❗ This library does not support AVR-based boards like Arduino Uno or Mega out of the box.
If you are using a different board and wish to adapt the library, you may need to:
- In the libary code, replace
ledcWrite()andledcAttach()with genericanalogWrite()or board-specific PWM functions - Adjust analog read scaling (12-bit vs 10-bit ADC)
- DMX example depends on an external DMX library (e.g.
ESP32DMX). Install from Library Manager and wire an RS485 transceiver (MAX485). The first DMX channel maps to mist power (0–255). - ESP‑NOW example puts the device in station mode and listens for a one‑byte payload
{ level }to set power wirelessly.
-
In Arduino IDE, go to:
Sketch > Include Library > Add .ZIP Library... -
Paste this URL into your browser and download the ZIP file:
Download Library ZIP -
Select the downloaded ZIP file in Arduino IDE.
-
You're done! Now you can access example code via:
File > Examples > MistMaker > SimpleControlFile > Examples > MistMaker > BlinkFile > Examples > MistMaker > DMX_ReceiverFile > Examples > MistMaker > ESPNow_Control
Clone this subfolder manually and place it inside your Arduino libraries directory:
git clone https://github.com/owochel/MistMaker.git
cp -r MistMaker ~/Documents/Arduino/libraries/Note: Your library location may be different. Look at Arduino Support Article here to see how you can locate your Libary folder.
• Hardware: CERN-OHL-P v2 • Code: MIT License
⸻
Certified by OSHWA Certification ID: US002742
⸻
This README and the library were written with the support of ChatGPT (GPT-4o) to:
- Summarize logs and prototyping notes
- Clarify complex circuit behavior
- Reformat documentation for aesthetic accessibility
All technical data was reviewed and validated against physical test results and datasheets.
⸻
Created by David Yang and shuang cai Released at the Open Hardware Summit 2025