Control a fog machine with Arduino UNO and NW.js React app.
The Fog Machine is one of the most popular props in Escape Rooms, offering spooky supernatural effects or revealing light or laser beams.
- basic fog machine with a wired remote control
- Arduino UNO with Ethernet shield and SD card
- SRD relay shield
120/220V 10A relays are required because fog machine power is 400W - 700W or more.
It is as simple as cutting and rewiring the power cable and the remote control cable.
Open the wired remote control box and replace the pushbutton connection with a connection to the SRD relay shield.
This video may help:
The SD card is necessary to store the fog sequence but optional if you want to control the fog sequence from the controller app only:
Fog sequence: spit fog for T2 seconds, pause T3 seconds, do that N times then pause T1 minutes and starts again for ever.
Install lastest Arduino IDE and download the FogMachine sketch available from this GitHub repository.
Open FogMachine sketch in Arduino IDE and set the Arduino IP address:
String ip = "192.168.1.201"; //<<< ENTER YOUR IP ADDRESS HEREUpload FogMachine sketch to the Arduino
Sketch uses 27460 bytes (85%) of program storage space. Maximum is 32256 bytes.
Global variables use 1127 bytes (55%) of dynamic memory, leaving 921 bytes for local variables. Maximum is 2048 bytes.
Download and unzip the app archive:
- fog-controller-win64.zip (92.1 MB)
Alternatively, download the .7z app archive and unzip with 7-Zip:
- fog-controller-win64.7z (64.6 MB)
Run fog-controller.exe
If necessary, pass protection Windows Smartscreen that prevents the execution of the downloaded file.
Fog Controller app source code is available from this GitHub repository, as a Javascript coder, feel free to fork and hack your own controller app.
Fog program sequence:
- spit fog for T2 seconds, pause T3 seconds, do that N times then pause T1 minutes and starts again for ever.
Houdini MC users
Houdini MC control props with HTTP GET/POST requests (see Interacting with a Controller (e.g. Arduino/Raspberry Pi) tutorial).
| API | RESPONSE | DESCRIPTION |
|---|---|---|
| GET /fog/1 | 200 - OK | Activate fog relay |
| GET /fog/0 | 200 - OK | Deactivate fog relay |
| GET /power/1 | 200 - OK | Activate power relay |
| GET /power/0 | 200 - OK | Deactivate power relay |
| GET /sequence/1 | 200 - OK | Start fog program sequence |
| GET /sequence/0 | 200 - OK | Stop fog program sequence |
| GET /settings/37,3,5,15 | 200 - OK | Set T1,N,T2,T3 |
| GET / | 37|3|5|15|0|0|0|0 | T1|N|T2|T3|power|fog|sequence|sd card |
xcape.io Room users
xcape.io Room software use MQTT and offers automation to control finely Fog Machines.
xcape.io provides source code for many props at GitHub:
- Relay Prop: a no-code prop and control panel to command relays with Arduino Mega 2560
- ArduinoProps library and its examples
- PyQt5 Prop Control library: PyQt5 library to create control panels for escape room props
With xcape.io Room automation, the fog machine can be fully controlled, including 3-5 minutes preheating.
You'll find here all the source code to hack and build your own Fog Controller app or Arduino FogMachine sketch:
- app is available in English and French, you can easily add your own language
- you can replace the Arduino Ethernet Shield with Arduino Nano, Arduino MKR Wifi 1010 or any other Arduino compatible board
- all the source code is available in this repository with some documentation:
Jean-Michel (Jim) FAURE (December 8th, 2020)
- company: FAURE SYSTEMS®
- mail: dev at faure dot systems
- github: fauresystems
- web: Faure●Systems




