Building a vortex cannon controller

Every year I and some friends are invited to the “fathers day” fair at the Danish national technical museum. Each year we build something fun and slightly dangerous to entertain the “big kids”. This year we opted on building a gas and oxygen explosion powered vortex cannon:

After e few initial experiments it became clear that the mixture oxygen/gas ratio had a great effect on the result of the explosion so we decided to build a controller for supplying the two gasses in a controlled manner.

Oxygen and propane gas was supplied from pressure tanks through individual pressure regulators.  A set of needle valves and mechanical flow gauges allowed for the flow rate of each gas to be controlled precisely.  A set of electromagnetic valves was used to turn the gas flow on and off. The mixture of gasses could now be controlled by varying the individual opening time of the valves.

I then build this control box:

The three knobs adjust the amount of oxygen , propane and the ignition delay.  Experiments showed that the explosions depended on the gasses allowing to mix for some time as well as the mixture ratio. A key switch (for obvious reasons), a control light and fire button.

The vortex cannon is (again for obvious reasons) meant to be used outside and sometimes away from mains power. Thus a lead/acid gel battery us used for power. A 12 to 5V regulator provide power for an Arduino and 4 channel relay board. Three of the relays switches 12V from the battery to two XLR connectors. These connectors provide connection to the gas valves and igniter. The fourth relay was used as a convenient way to drive the 12V control lamp. A I2C display the current settings as well as start up information.

When the firing button is pressed the Arduino is programmed to supply the gasses in a staggered way so that they may start flowing at different times but always are cut off at the same time. This ensures an  even mixture of the gasses.

To ignite the gasses a universal automotive ignition coil was used.

To drive the coil I made a simple driver circuit. The timing is generated by a ATTINY85 microcontroller.

This circuit could be useful for other projects so here is the source as a AVRstudio project,

Igniter in action

Cannon shooting some kids..

After completing the control box I realized that I had not provided any means of charging the battery. Rather than removing the battery for charging or adding a charging port I made a small change to the program. If the fire button is held down when the box is powered up a special mode is entered where one relay is turned on allowing charging through one of the existing connectors.




Leave a Reply