OctagonalCombustionTOY
A Propane Vapor Flame Effect
(Boosh, aka Poofer) Fire Art Project
All information on this website is copyright Creative Commons Attribution-Sharealike (CC_BY_SA) Tim Deagan 2023
OCT, the Octagonal Combustion Toy
● Propane Vapor Flame Effect (aka Boosh, Poofer)
● Driven by the OCT Boosh controller that accepts
o MIDI (driven from Ableton Live)
o Manual control
● fed by 4 100lb Propane cylinders/HP Regulators
● into three accumulators
o (1) 20 gal. (100 lb)
o (2) 6 gal. (40 lb)
● to (8) ½” valve burners
● piloted using Hot Surface Ignitor (HSI) pilots
● designed by Tim Deagan
tttiiimmm@@@dddeeeaaagggaaannn...nnneeettt (use every third character to email me)
CLICK BELOW FOR Google Photos Album with OCT Photos!
System Diagrams
ARDUINO SOURCE CODE
#include "MIDIUSB.h"#include <Arduino.h>
// define valve pinsconst int b1 = 2;const int b2 = 3;const int b3 = 4;const int b4 = 5;const int b5 = 6;const int b6 = 7;const int b7 = 8;const int b8 = 9;
// define MIDI Notesconst int Note1 = 36;const int Note2 = 37;const int Note3 = 38;const int Note4 = 39;const int Note5 = 40;const int Note6 = 41;const int Note7 = 42;const int Note8 = 43;
// First parameter is the event type (0x09 = note on, 0x08 = note off).// Second parameter is note-on/note-off, combined with the channel.// Channel can be anything between 0-15. Typically reported to the user as 1-16.// Third parameter is the note number (48 = middle C).// Fourth parameter is the velocity (64 = normal, 127 = fastest).
void setup() { pinMode(13,OUTPUT); // set onboard LED to output pinMode(b1,OUTPUT); // set pin to output pinMode(b2,OUTPUT); // set pin to output pinMode(b3,OUTPUT); // set pin to output pinMode(b4,OUTPUT); // set pin to output pinMode(b5,OUTPUT); // set pin to output pinMode(b6,OUTPUT); // set pin to output pinMode(b7,OUTPUT); // set pin to output pinMode(b8,OUTPUT); // set pin to output
digitalWrite(b1, 0); // set pin OFF digitalWrite(b2, 0); // set pin OFF digitalWrite(b3, 0); // set pin OFF digitalWrite(b4, 0); // set pin OFF digitalWrite(b5, 0); // set pin OFF digitalWrite(b6, 0); // set pin OFF digitalWrite(b7, 0); // set pin OFF digitalWrite(b8, 0); // set pin OFF}
void loop() { midiEventPacket_t rx; // initialize a MIDI event holder do { // start a loop rx = MidiUSB.read(); // read in the MIDI event if (rx.header != 0) { // if there really is an event then... switch(rx.header){ // examine the header case 0x09: // NOTE ON event Ignite(rx.byte2); // Open a solenoid valve break; // exit case 0x08: // NOTE OFF event Extinguish(rx.byte2); // Close a solenoid valve break; // exit } } } while (rx.header != 0); // if there are mode events keep going}
int Ignite(int key){ switch(key){ case Note1: digitalWrite(b1,1); break; case Note2: digitalWrite(b2,1); break; case Note3: digitalWrite(b3,1); break; case Note4: digitalWrite(b4,1); break; case Note5: digitalWrite(b5,1); break; case Note6: digitalWrite(b6,1); break; case Note7: digitalWrite(b7,1); break; case Note8: digitalWrite(b8,1); break; }}
int Extinguish(int key){ switch(key){ case Note1: digitalWrite(b1,0); break; case Note2: digitalWrite(b2,0); break; case Note3: digitalWrite(b3,0); break; case Note4: digitalWrite(b4,0); break; case Note5: digitalWrite(b5,0); break; case Note6: digitalWrite(b6,0); break; case Note7: digitalWrite(b7,0); break; case Note8: digitalWrite(b8,0); break; }}
#include "MIDIUSB.h"
int lastState = LOW; // the previous state from the input pinint currentState; // the current reading from the input pin
void setup() { Serial.begin(115200); pinMode(2, INPUT_PULLUP); pinMode(13,OUTPUT);}
void loop() { currentState = digitalRead(2);
if(lastState == HIGH && currentState == LOW){ controlChange(8, 10, 65); // Set the value of controller 10 on channel 8 to 65 digitalWrite(13,HIGH); } else if(lastState == LOW && currentState == HIGH){ digitalWrite(13,LOW); } lastState = currentState; // save the the last state}
void controlChange(byte channel, byte control, byte value) { midiEventPacket_t event = {0x0B, 0xB0 | channel, control, value}; MidiUSB.sendMIDI(event);}
Google Doc with some of the MIDI patterns and how to visualize them:
BURNER PIX
Basically a reversed Air Mixture fitting with a Hot Surface Igniter (HSI) attached to it so that the reversed air draw holes in the fitting serve to blow propane vapor (mixing with air,) across the HSI which ignites the main flow. It helps to drill out the center hole of the fitting.
DIGITAL FABRICATION FILES
I'm pulling together all the DXF, SVG, STL, and other fabrication files and sharing them on Google Drive. You can access them here:
I wrote a book on how to safely build propane vapor flame effects!
Click on the image to go to Amazon if you want to
build foundry/furnace torches, DIY propane fire pits, Rubens Tubes,
booshes, poofers, or other awesome flame effects!
Here are Amazon Associate links to some of the essential parts used in OCT:
This is a 120VAC Hot Surface Igniter for stoves, furnaces, etc. I've standardized on these even though it means providing AC power. It needs around 2.75A, so something like 300 watts. They can be used with an AC dimmer with sufficient wattage capacity at a lower power. As long as they're glowing, they'll serve to ignite. They take about 20-30 seconds to reach their target heat, so they work best if left continuously on. The element is brittle, especially when hot, so you have to be careful with them.
Gas rated Solenoid valves are the heart of most boosh (aka poofer) systems. It's essential to make sure you shop for solenoid valves that describe themselves as gas capable since propane is corrosive to rubber and many other gasket materials. These valves typically use nitrile gaskets which are propane safe. 12VDC solenoids are the most commonly used valves, but they are available in 120VAC as well. The size of the valve is one of the determining factors for the size of the boosh, but having (and paying a premium for,) valves that are bigger than the feedlines doesn't really buy you anything. Be sure to use yellow teflon gas tape (or gas dope,) to seal the incoming vapor since these valves are generally all that are keeping you propane from leaking into the air.
Yellow teflon tape is 'gas rated'. The only real difference from white tape used for water plumbing is that it's thicker. But that thickness helps it avoid shredding and sending tiny tendrils into a regulator or valve, so always use the proper tape (or its alternative, proper dope.)
It's really helpful to have one or more gauges at different points in your plumbing to keep track of what pressures you're running. Always use a gauge rated for higher pressure than you'll run in the system!
I've started using these devices at the nozzle after the solenoid. They have a set of 6 holes drilled at an angle that feed into a central hole. This causes a venturi effect and brings some air into the propane vapor allowing it to obtain some oxygen and become more flammable. Mixing some oxygen into the vapor is required for an igniter to successfully light the output (pure propane vapor won't burn which is why you don't need a flashback arrestor in a propane effect.) I usually drill out the central hole to make it a bit wider to increase the flow. These aren't great for effects that are trying to make the biggest boosh in the world, but they work great for medium to smaller effects! Recently, I've been running these in-line backwards so the edge holes spray propane. This is an awesome way to get a turbulent, oxygenated mix for the pilot to ignite.
If you have to lift or move heavy things, a lot of the time a chain hoist is your best option. You pull on a loop of chain that is geared and raises or lowers the hook (on a different chain.) The beauty is that you can stop and let go and the heavy object doesn't move (or fall!) Also, you can change direction without unlatching a pawl or doing something that is risky. A very small person can safely move very heavy things with this. Much better than a come-along and way easier to setup and use than an electric winch. You can even use horizontally if you're careful.
When adding a microcontroller to your flame project, the Arduino series is hard to beat. Its massively supported, has a vast amount of code and libraries available, easy IDE. I tend to use the Mega version, even though it may be overkill, as my standard board. It has the horsepower to decode MIDI, DMX, deal with sensors, and has a LOT of available IO. To improve the 'field serviceable' capabilities of your controller, it's awesome to be able to easily (and securely, ) attach and remove connections. I love using screw terminal shields for this. Most terminal shields have the wire inputs sticking out to the sides. This shield puts them on top and is much easier to deal with once the controller is in the unit.
If you're ever likely to get inspected by a fire marshal, or even if you just want to have a solid safety system, you need both a mushroom-style emergency stop switch and a keyed switch, either of which will shut down your system. The emergency stop (aka 'Kill') switch can be slapped down quickly and requires a quarter turn to reset. This unit conveniently combines both the key and the kill into a single switch. You can mount it in its enclosure or remove the switch and panel mount it in your own controller. There is a video on the site as to how to easily pop off the bottom switch part so the mushroom part can be removed. Whatever you do, don't unscrew the metal central screw or spring-loaded components will leap out and you'll likely never get it to work right again.
One of the really awesome aspects of doing boosh (okay, poofer,) flame art is letting other people fire it off. They get SO EXCITED. Of all the things you can do to increase that excitement, I really haven't found anything more compelling than asking 'Do you want to hit the BIG RED BUTTON?' People's eyes light up! This 100mm button is HUGE. It's got a built-in LED so it's illuminated. It feel fabulous when ou smack it and launch a fireball! BIG RED BUTTON!!!!