Introduction: Wiimote Rubens Tube: Control Fire With Sound! (And a Nintendo Wiimote!)

A Ruben's tube is essentially a demonstration of standing waves in air.



Numerous very small holes are drilled at lengths through the top of the tube and propane or a similar gas is fed through it. By forcing sound waves into the tube through a speaker at one end, varying areas of pressure are created. The higher flames occur at points of higher pressure (nodes) and smaller flames at lower pressure (antinodes).



I'll even show you how to control the sound with a Nintendo Wiimote so you can play god and control fire with gestures.



This is an easy physics experiment that might take a little time to assemble the parts, but the construction of which is straightforward with a fantastic reward!

REMEMBER!! Anytime you are dealing with fire, take the necessary safety precautions such as :
--Clearing the area of all flammable substances
--Using care when adjusting the propane valve
--Use ONLY in a well ventilated area
--If underage, operate ONLY under the supervision of a responsible adult

To help you remember, here's a safety haiku:

Danger! Hot Fire!
Keep Space Clear of Kids and Pets
Poor Burning Puppies


Step 1: What the Heck Is This?

A bit of history from Wikipedia:

"August Kundt, in 1866, demonstrated an acoustical standing wave by placing seeds of lycopodium or cork dust in a tube. When a sound was made in the tube, the material inside lined up in nodes and antinodes in line with the oscillation of the wave, creating a standing wave. Later that century, Behn showed that small flames could be used as sensitive indicators of pressure. Finally, in 1905, using these two important discoveries, Heinrich Rubens, whom this experiment is named after, took a 4-metre-long tube and drilled 200 small holes into it at 2 centimeter intervals, and filled it with a flammable gas. After lighting the gas (whose flames all rose to near-equal heights), he noted that a sound produced at one end of the tube would create a standing wave, equivalent to the wavelength of the sound being made."

In many basic physics classes the Ruben's tube is used as a demonstration of the relationship between frequency and wavelength. Students visually measure standing wave. Then, because the speed of sound in propane is 235 m/s, the students can calculate the frequency being played into the Ruben's tube. 

As the sine waves are played through the propane, they compress the propane in certain sections thereby increasing its density. This in turn increases the pressure, and because the area is at a high pressure (and air likes to flow from high to low pressure... thank you Le Chatelier) more air molecules are forced out these holes in an effort to reach equilibrium causing the flames rise higher. In areas where the propane is not as compressed, the area specific pressure is lower resulting in lower flame heights. Essentially when you are visualizing the wave with fire you are seeing a standing wave. 

Since we know that frequency (f) equals speed (v) divided by wavelength (lamba) we are able to quantitatively determine the frequencies running through the Rubens tube. (f=v/lambda) Now, when doing this, remember that "v" is not the velocity of sound in air, (roughly 344 m/s) but rather the velocity of sound in your gas ( in this case propane, so 235 m/s). Also keep in mind that elevation and temperature affect this, but 235 is a good estimate. So, measure your wavelength from peak to peak (flame maxima) or trough to trough (flame minima), plug into the equation, and you get your frequency.

After some digging at the college library, I was able to unearth the original journal publication by von Heinrich Rubens:

It was published on December, 8th 1904 in the Verhandlungen der Deutschen Physikalischen Gesellschaft- a German physics journal.  The original tube used was brass. It was four meters long, 8 centimeters wide, and had about 100 holes which were each about 2 mm wide. He used Coal Gas which was inserted on one end through a brass cap, and then covered the other end with a rubber diaphragm. Interestingly his sources of sound were bells, an organ pipe, or tuning forks.


Step 2: Gather the Loot!

With the exception of the tube itself, all of this can be bought from Amazon.com or your local hardware store. Linked from the Wikipedia page you can find examples of other rubens' tube constructions, but I didn't have much luck with those simply because I couldn't come across a lot of the components they used. As I didn't have access to any school's physics department, I had to scrounge for locally available parts, which, in turn works out for you!

I ended up going through 5 revisions trying different propane regulators, tube materials, hole spacings, frequency drivers (speakers), and fittings. Keep in mind that none of these part dimensions are set in stone, but rather just what I found to be the most economically feasible while still producing a great effect.

A note on the tube material itself:

Didn't Work Optimally:
--PVC: (coated with various substances trying to counteract heat and eventual melting) worked for 4-5 minutes or so, and is great in terms of acquiring and drilling, but would turn to jelly after much use.
--Iron Piping: Heated up too easily and retained heat too long wreaking havoc on our end caps; hard to drill
--Ducting: worked acceptably, but optimal effect was not achieved presumably due to rigidity of material and/or shape.

Works but not feasible
--Copper Piping: worked well but hard to find in large diameters, heated up very easily, and is very expensive

Worked best:
--3.5+ ft. x 2" Diameter Aluminum Irrigation Pipe: (thinner is better as its easier to drill the holes). My local hardware stores didn't have anything suitable so I ordered this from Mid Atlantic Irrigation

So! On to the Bounty!

Needed:

--The insatiable urge to play with science and fire

--Aluminum Irrigation Pipe: The meat of the project
Mid Atlantic Irrigation

--Speakers: The Amazon linked ones are the exact speakers actually used- the speaker fits almost perfectly once you take the grill off.  At the time of writing this instructable these were ~$5 shipped so I'd probably find something cheaper these days.
Buy from Amazon

--Bernzomatic Pencil Thin Propane Torch: has to be "modified" a bit (discussed more later)
Buy From Amazon

--Propane
--1/2 Inch masking Tape
--Tubing: We used clear Polyurethane but any 3/8" tubing should work
--Drill Press: A normal drill can work, but you have to "dent" where the holes need to be in the tube first so it doesn't slip. The drill press was easiest.
--1/16" Drill Bit
--Hammer
--Silicone Sealant
--Nintendo Wiimote: Only if you're doing the Wiimote integration explained at the end
--Bluetooth Adaptor
--2" Slip x 3/4" FPT (female pipe thread): Found in the plumbing/PVC section at the local hardware store or Amazon.
--3/4" Elbow MPT (male pipe thread) x 3/8" Insert: Found at Building Supply Store (Home Depot)
--2" by 1 1/2" PVC Reducer Bushing: Found in the plumbing/PVC section at the local hardware store
--Wooden Blocks: can be useful for propping the tube up but are not necessary
--Lighter/Matches

--Software:
SigJenny: Great little program for creating your own sine waves
Mixx: DJ program needed to control the sound track output
GlovePie: Needed for interfacing a Wiimote with Mixx

Step 3: Step 1: Measuring and Drilling the Tube

Step 1: Measuring and Drilling the Tube

1. Lay 1/2" masking tape down the length of the tube.

2. At about 6" from the end of the tube mark an x on the tape. Continue marking x's every half inch in a straight line down the length of the tube until you are about 6" from the other end. (The 6" space serves as a necessary buffer to prevent the PVC end caps from over-heating.)

3. Using a 1/16" drill bit on a stable drill press, carefully drill though the center of every x you marked on the tape. If you do not have a drill press and only a normal drill, take a nail and hammer and "dent" where you will drill. This will prevent the drill bit from slipping.

4. Remove the masking tape and clean any residue left by the tape.

Your tube should look similar to mine below:


Step 4: Step 2: Modifying the Propane Regulator

Step 2: Modifying the Propane Regulator

The existing bernzomatic propane torch doesn't provide enough flow for a tube of this size. I have found that boring the nozzle out to 1/16" with the drill press adequately increases the flow.

(As of note... we finally happened upon this method after numerous failures. Building your own propane regulator we found out is a VERY BAD idea.)

Step 5: Step 3: Assembly

1. Gently hammer your 2" Slip x 3/4" FPT (female pipe thread) into one of your 2" by 1 1/2" Reducer Bushings.

2. (Sand the ends of your tube if they aren't smooth to prevent damaging the PVC)

3. You will want the PVC caps (both the assembly from step 1 and the other 2" by 1 1/2" reducer bushing) to fit as snugly as possible in order to prevent propane from escaping. To ensure a tight seal I wrapped each end of the tube in 1/2" masking tape until the PVC caps fit extremely tightly. Next, I removed the PVC caps, put silicone around the circumference, and gently hammered on the PVC caps. Let the silicone dry for the recommended time.

Step 6: Assembly (continued)

4. One of the ends of your tube should now be a 3/4" FPT hole and the other should be a 2" by 1 1/2" reducer bushing. The reducer bushing side will connect to your speaker. First remove one of your speakers grills (preferably the one without the power and volume controls). Wrap the 1/2" masking tape around the circumference of the PVC cap until it can form a snug seal when inserted into the speaker assembly. This seals the tube so successfully that there is no need for a latex membrane as seen in other Rubens Tubes. Note that these Micro Innovations speakers are nearly a perfect fit for the 2" PVC. 

5. Screw the 3/4" elbow MPT (male pipe thread) x 3/8" insert into the 3/4" threading on the non-speaker end on the tube. If you prefer you can cut the 3/8" ID (inner diameter) tubing into a more manageable size (I used 10'). Next, connect one end of the tubing to the 3/8" insert and the other to the propane regulator.

Step 7: Assembly (continued)

6. Make sure the propane regulator is completely off (all the way to the right) and attach propane regulator to the canister.

7. Check to make sure all connections are tight!

8. Connect the speaker's audio jack to your cd player/computer. Turn on speakers and make sure the volume is all the way down.

**You can use a fantastic little free program called SigJenny to generate pure sine waves on the fly to experiment with. Alternately, I have compiled a sampling of frequency tracks for your convenience. These can be found here:

Step 8: Lighting

1. Check once again that the holes are facing skyward and have a stick light handy. It is sometimes handy to prop the tube up on some scrap wooden blocks.

2. Holding the lit stick lighter over the tube hole's nearest to the intake, rotate the regulator left until gas is heard.

3. Once the first few are lit, make sure the rest are lit soon after to prevent gas buildup.

4. Once all the jets are lit, adjust the regulator until an approximately 1inch flame is evenly spread throughout the tube.

5. If the flames are bouncing, wait for the gas to stabilize (sometimes they are caused by vibrations in the tubing).

Thats it! You've built a Rubens Tube. In additional to driving sine waves or music through the tube, you might even hook up a microphone!

Hit the next step for the Wiimote Integration.

Step 9: Controlling Fire With a Wiimote!

So now that you have constructed your Rubens tube you are probably wondering how to get the Wiimote working so that you can "play God". This process is a touch more complex than simply building it, but if these steps are followed, it can be done fairly easily.



1. Download and install Mixx this will act as the DJ program to control the balance, pitch, etc.

2. Replace the Standard.kbd.cfg file in mixx's directory so that the keyboard shortcuts map correctly. Use the linked one.

3. Download and install GlovePie, this is the program that allows the wiimote to interface with the computer.

4. Now plug in and install the Bluetooth adapter into the computer. This should auto detect in windows, but if not use the driver cd that comes with the adapter. You will also need to install another set of drivers which you can obtain here

5. Now simply go into the windows explorer and click on the Bluetooth device, on the left hand column there will be a link to configure the Bluetooth device. While holding down buttons 1 and 2 on the wiimote to set it in "discover" mode, click "configure bluetooth devices". This should allow your wiimote to be detected.

6. Next open up glove pie and copy and paste the code (available on the next page) into the text editor screen. Then run the script.

7. Add any music you want to play into the mixx query list and press play, your wiimote should now be able to control the music. Whenever you want to use this on your Ruben's tubes just simply plug the speaker 3.5 mm jack into your computer's sound out port jack. For best effect, two Ruben's tubes should be used in a stereo effect. Make sure you have GlovePie running in the background and MIxx as the TOP open aplication.

The Controls are:

  • Volume: Hold down A- vertical tilt is up/down and swinging up/down moves it fast to some degree of accuracy.
  • Speaker Balance: Hold down B- swing left/right
  • Track Speed: D-Pad left and right
  • Play Track One/Two- D-Pad Up and Down
  • Momentary Bass Boost- (for flame jump) The "1" Button

I hope you enjoyed the Instructable and Happy Building!

Step 10: Auxillary: GlovePie Script

This is the script I wrote the work with Mixx and GlovePie. Many thanks to Carl Kenner, the creator of GlovePie and the creators of Mixx. Granted, I'm positive this code can be greatly cleaned up, but it works and is quite fun to play with. Post back here if you have problems with the code or programs.

Again, the controls are:

  • Volume: Hold down A- vertical tilt is up/down and swinging up/down moves it fast to some degree of accuracy.
  • Speaker Balance: Hold down B- swing left/right
  • Track Speed: D-Pad left and right
  • Play Track One/Two- D-Pad Up and Down
  • Momentary Bass Boost- (for flame jump) The "1" Button

\\\\\\\\\\\\Code Begins Now\\\\\\\\\\\\\\\\\\\

pie.FrameRate= 600Hz
debug = "angle="+Wiimote.pitch

/*An attempt to fling volume up and down quickly with gestures.
works okay but needs some refinement*/

var.MoveUp = Wiimote.RelAccy > 7, Wiimote.RelAccy < -7
var.MoveDown = Wiimote.RelAccy < -7, Wiimote.RelAccy > 7

if (wiimote.A= true) and (keepdown(var.MoveUp=true,700ms)) then
key.p=true
wait 1ms
key.p= false
endif

if (wiimote.A= true) and (keepdown(var.MoveDown=true,700ms)) then
key.l=true
wait 1ms
key.l= false
endif

//Gradual Volume up/down

if ( 0 < wiimote.Pitch) and (wiimote.A=true) then
key.P = true
wait 50ms
key.p= false
endif

if ( 0 > wiimote.pitch) and (wiimote.A=true) then
key.l =true
wait 50ms
key.l=false
endif

//rate of music and if sine wave, make scroll by varying pitch

if keepdown(wiimote.Left=true, 120ms)
key.F1=true
wait 40 ms
key.F1=false
endif
if keepdown(wiimote.Right=true, 120ms)
key.F2=true
wait 40 ms
key.F2=false
endif

//Bass Jump for Flame Jump
if pressed(Wiimote.1) then var.PressTimes = 30
if var.PressTimes > 0 then
Press key.c
wait 1ms
Release key.c
var.PressTimes = var.PressTimes - 1
endif

if released(Wiimote.1) then var.PressTimes2 = 30
if var.PressTimes2 > 0 then
Press key.x
wait 1ms
Release key.x
var.PressTimes2 = var.PressTimes2 - 1
endif

//Play start/stop
key.d= wiimote.up
key.b=wiimote.down

//Left and Right Balance- Swinging

var.MoveRight = Wiimote.RelAccX > 9, Wiimote.RelAccX < -9
var.MoveLeft = Wiimote.RelAccX < -9, Wiimote.RelAccX > 9

if (wiimote.B= true) and (keepdown(var.MoveRight=true,300ms)) then
key.M=true
wait .5ms
key.M= false
endif

if (wiimote.B= true) and (keepdown(var.Moveleft=true,300ms)) then
key.n=true
wait .5ms
key.n= false
endif

/*Resetting the balance, if all the way left or right, plus
and minus reset the balence to center respectively. I debated
using the multiple press variable as used in the Bass jump, but
the code ended up being longer and more complex than this...which
does the job.
*/

if (pressed(wiimote.Minus)) and (wiimote.B=true) then
press key.n
wait 1ms
release key.n
press key.n
wait 1ms
release key.n
press key.n
wait 1ms
release key.n
press key.n
wait 1ms
release key.n
press key.n
wait 1ms
release key.n
endif

if (pressed(wiimote.Plus)) and (wiimote.B=true) then
press key.M
wait 1ms
release key.M
press key.M
wait 1ms
release key.M
press key.M
wait 1ms
release key.M
press key.M
wait 1ms
release key.M
press key.M
wait 1ms
release key.M
endif

\\\\\\\\\\Code Ends Now\\\\\\\\\\\\\\\\\
The Instructables Book Contest

Participated in the
The Instructables Book Contest