Upgraded valve in the compressed air rocket launcher…

The first valve I used in my rocket launcher was a “direct acting” type, which has a very small aperture, limiting the flow rate. Although the launcher worked well in practice, I was curious to see if I could find a better valve, with a larger flow rate to get a more spectacular launch!

Here’s the original layout with the direct acting valve:


After a bit of research, it sounded like an “indirect acting” type would have a higher flow rate (these are also known as “servo operated” or “pilot operated” valves). There’s a good explanation of the working principles here.

As this is just a fun project, I also wanted something quite cheap! The valve I chose was a 12V solenoid with a claimed pressure rating of 0.02-0.8MPa (3psi – 116psi). Note that the minimum is typical of a servo valve, as it will not open without some pressure on the input side. The valve had two 1/2″ BSP male threads for input/output, and another removable plastic plug with 1/2″ BSP thread which is intended to provide access to clean a removable filter. In my case, I removed the filter and used that spare port to attach the pressure sensor.

The new output side of the launcher is pictured below. It’s basically a complete replacement for the assembly shown above, and connects directly to the plastic pipework.


The upright 15mm copper tube is the output, and a longer “launch tube” is attached to that with a push-fit 15mm coupler (allowing it to be removed for easier storage..) The input side is the disconnected compression fitting at the bottom left. The pressure sensor is the cylinder on the right side (car oil pressure sensor).

The new valve did not disappoint! It performs much better than the direct acting valve. The first launch at about 40psi was maybe 3x the altitude with the previous valve at 80psi, showing that the valve flow rate was the limiting factor. Unfortunately on the second launch I lost the rocket in a neighbour’s garden and had to go and ask for it back… ahem.

Rocket control panel finished!

I’ve basically finished my rocket control panel, except for a few software tweaks I have planned. It now has an LCD display to display pressure and status!


I decided to have a round LCD gauge display. This is actually a rectangular 1.8″ TFT display with 160×128 resolution, mounted behind a circular 32mm diameter hole. To make a circular mask to hide the edges of the backlight, I printed a black circular frame onto an Inkjet Transparency, and sandwiched this between the LCD and the front panel. It also serves as a protective film for the LCD.

The display I’m using is the Hobbytronics TFT Serial, largely because I had one spare from another project. This display is unusual in having an on-board Arduino ATmega328 to control the display in response to a basic set of drawing commands sent over 9600 baud serial.

For this application, I wanted to have an analogue gauge effect, which meant filling circular arcs. To achieve this, I wrote a scanline polygon filling routine, which is used to draw small quads, for each 10 degree segment of the arc. To get good performance, I added this polygon fill to the LCD firmware, so that only the polygon coordinates need to be sent via serial.

The gauge is only selectively redrawn (only the parts that change) to improve performance. With these tweaks, the display is fast enough to produce a smoothly animated gauge.

The brains of the operation is a small Arduino Nano board (actually a cheap clone). This has a serial output to drive the display, and various analogue and digital I/O pins to control the rocket.

There are several switches used to operate the launcher:

  • Key switch to select low/high pressure modes (safety feature)
  • Fire button (push button, triggers the solenoid valve)
  • Arm switch (toggle switch, enables the fire button)
  • Pump switch (toggle switch, enables the compressor pump to pressurise the launcher) All switches are active low, and pull individual GPIO pins to ground. Internal GPIO pull-ups are used, rather than external resistors.

There’s a 2-channel relay board used to switch a 12V car tyre compressor (100psi maximum pressure) to pressurise the system, and a 12V solenoid valve to launch. These are controlled by two active low GPIO pins.

Pressure is measured using a car oil pressure gauge (rated 0-100psi and 18-126ohm). This is connected to an analogue input, with a 1K resistor to the 5V rail forming a potential divider. ADC raw values were recorded at several 10psi increments, and a straight line fitted in Excel to get the (hard coded) parameters needed to approximately convert ADC values to PSI.

All the connections between the controller and the main launcher go over a long 4 core screened cable, with 5-pin DIN connectors at both ends (5V, /Fire, /Pump, Pressure, Ground=Screen).

The code for the controller is up on Github here: nano-launcher. The TFT display firmware isn’t yet committed, pending a bit of clean up.

Making the Rocket Control Panel…

Heh heh, this is going to be the control panel for the rocket:


I wanted this thing to look the part, so I’ve got a toggle switch with a flip up cover to “arm” it, and the mandatory big red button to fire. The toggle switch at the bottom left will be for the pump, and the key switch at top left will limit the maximum pressure. The big black hole in the middle is for a display, yet to be fitted.

The case is made of black ABS with a brushed aluminium front panel. The front panel is fairly thin (about 1mm) and was drilled using a step drill, including the large 32mm hole in the centre.

The switches make a very satisfying clunk when toggled!

Compressed Air Rocket Launcher!

Inspired by an existing project I saw linked on Hackaday, I couldn’t resist having a go at building a compressed air rocket launcher. To keep the costs down, I tried to use commonly available plumbing fittings where possible (40mm solvent weld waste pipe). Originally I planned to use larger diameter pipe, but reducing fittings didn’t seem that easy to source locally.

Here’s my first prototype assembled, with the rocket (made of 15mm pipe insulation foam) in situ. The rocket is concealing a length of 15mm copper pipe which serves as the launch tube:


To get a reasonable volume of air in a small footprint, the pipework is folded into an S shape, rather than having one long length. The two parallel pipes at the left were intended to be closer together, but I accidentally welded in a longer pipe than I planned, and there was no going back 🙂

The 40mm pipe is solvent welded, and has two screw on access plugs at either end. These have been drilled through, and fitted with tank connectors, along with the various reducing fittings needed to connect the inlet and outlet valves.

This next shot shows a close-up of the outlet side which consists of a 12V solenoid valve (the black cylinder) which is normally closed, and fires a blast of compressed air when it opens. The other cylindrical component is an oil pressure sensor, which I plan to use to measure the air pressure. The pressure sensor has NPT thread, so an adaptor is needed for BSP thread. There’s also a 1/4 BSP female 3 way tee fitting used to connect the pressure sensor in circuit.


Various 1/4″ and 1/2″ brass hexagon busheshexagon nipples and other parts are needed to connect these together, with PTFE tape used on all joints. The final output is through a compression wallplate elbow, with a vertical 15mm copper pipe for the launch tube.

The inlet is a standard Schrader valve, so that a 12V car tyre pump compressor can be used to pressurise the system.


There was some guesswork in the design, because I didn’t bother to calculate what sort of volume of air was needed, and wasn’t sure if the solenoid valve would have a high enough flow rate (it has quite a narrow bore). I just decided to try it and see what happens.

Obligatory warning: if you build something like this, be aware that the plastic pipe could explode and shatter under pressure.

Having built it, I donned safety glasses, retired to a safe distance and pressurised it. At the first attempt I managed to get it up to 30psi, due to a slow air leak. The first launch was pretty impressive, and the foam rocket (lacking flights at this point) narrowly missed landing on the roof of the house! Adding some cardboard flights to the rocket improved the aim dramatically.

Some reassembly of the outlet joints cured the leak, and I’ve since had it up to 60psi. I’m going to box it up before pushing it to higher pressures. The compressor is rated for 100psi (just under 7 bar) so it will be interesting to see how high this thing can go 🙂

Next steps are to build a box for it, and to make the control unit. I’m planning to give it a mission control look with key switch, flip up covered toggle switch and big red button to launch… to be continued!