Flying model rockets is fun, but there is always the question of how high did it go. Using a programmable micro-controller and some sensors, you can monitor the entire phase of flight and measure acceleration and altitude, among other things. With this project, I’ll show you how I did just that, using off-the-shelf open source hardware and software to build an Arduino compatible flight telemetry system.

Model rocketry telemetry is nothing new. Amateurs have been stuffing electronics in rockets since the beginning of the hobby. A programmable micro-controller coupled with a low-power radio, however, allows us to take the hobby to a whole new level. What makes this project notable is:
- Wireless data transmission allowing in-flight monitoring or post-flight data downloading without the need to physically access the on-board hardware.
- Constructed from easily available open source hardware and software, allowing anyone with modest soldering and programing skills to put together a configuration to acquire and record any data they desire. No custom PCBs, chip programmers, or toolchains to setup as in my last well received, but little followed Instructable (http://www.instructables.com/id/Buggy-A-Crafty-Programmable-LED-Creature/)!

If you haven't heard of Arduino yet, or if you are rolling your eyes at "yet another Arduino project", you should read Phillip Torrone's take on it and his prediction that "within the next 5 to 10 years, the Arduino will be used in every school to teach electronics and physical computing."

Details, in brief:
A 50 gram, on-board micro-controller collects pressure and acceleration data and then transmits it on 915 mHz using a Hope RM12 module at a rate of about 50 reading per second. A separate micro-controller connected to a laptop via USB receives the data and transfers it to a serial port. A software program running on the same computer graphically displays the data as it is collected, and also saves it to disk for further analysis. Piece of cake, right?

Step 1: Hardware

The heart of this system is an Arduino compatible JeeNode micro-controller designed by Jean-Claude Wippler from the Netherlands (http://jeelabs.org/ ). It contains an Atmel Atmega 328P, which has more memory and runs faster than my first computer (a Sinclair ZX-81). The JeeNode has a significantly smaller footprint than a standard Arduino, similar to Lady Ada’s Boarduino, but also has an integrated Hope RM12B wireless module. Additionally, the JeeNode has the I/O pins grouped in to four “Ports” to facilitate standardizing sensor connections, and runs at 3.3V. JeeLabs has developed a number of sensor/breakout boards, called "Plugs" using the IC2 interface, meaning they can be piggybacked on to the same port, making the JeeNode extremely extendable. In addition to the hardware, JeeLabs provides a software library making the use of ports and assessing sensor data very easy.

I used the following hardware, available in the U.S. from Modern Device (http://shop.moderndevice.com/ ) or elsewhere from JeeLabs (http://jeelabs.com/ ).
  *JeeNode Kit ($22.50) (a.k.a. “Transmitter”)
  *JeeLink Module ($36.50, assembled) (a.k.a. “Receiver”)
  *JeeLabs Pressure Plug ($21.95) Bosch BMP085 barometric pressure and temperature sensor.
  *USB BUB Board Kit ($14.00) or FTDI programming cable
  *JeeLabs Gravity Plug ($20.00) BMA020 3-axis accelerometer sensor
  *JeeLabs Memory Plug ($9.50) (1 x 128KB STMicroelectronics M24M01 EEPROM)

For the full setup, you are in for about $125 + shipping. You could fly with just a Pressure Plug for altitude. You will also need batteries and a holder (I got mine at RadioShack). Consider this a small investment in your continuing Maker education. You only need one JeeLink and USB BUB. You can add or reuse as many JeeNodes as projects you dream up (or just type “Arduino” in the Instructables search box). The sensors and Port library can also be used with a standard Arduino with some effort.

I do not work for or have financial interest in JeeLabs. In fact, I would have a hard time pointing to the Netherlands on a map. I have, however, worked with Jean-Claude’s tech and find it well engineered, documented, and supported. Those are three requirements to get my hard earned money in my pursuit of hobby. I hope this sends more his way.

Makers Solder :
Each of the kits have instructions online and require some soldering. The sensors need headers soldered depending on how you position them. If you are unsure of your soldering skill, check out http://www.instructables.com/id/How-to-solder/ . If you want to see what building the kit involves, check out http://jeelabs.org/2010/09/26/assembling-the-jeenode-v5/ . Once you build this, you can definitely claim you can solder. Hacking is all about mad skills.

In my hardware configuration for the Transmitter, all the IC2 sensors are connected to Port 3, and I have a single LED and resistor hooked to the Port 4 digital & GND lines. Any variation from this layout can be easily accounted for in the Transmitter program by changing the Port numbers. I’m powering the JeeNode using 2 x AA in a plastic RadioShack battery holder. The flight assembly weighs in at about 50g, of which a little less than half is battery. A light-weight lithium ion battery would be ideal for this, but because of the near constant radio operation, it would take a bit more than a CR2032 coin cell (yes, I tried). 
wow i am going to use that
<p>great idea!</p><p>another way to calculate the height of a rocket is to stand a set distance away, use a protractor to measure the angle relative to the ground and use trigonometry, but this requires less work and allows you to find more information about your rocket.</p>
You could try using an Xbee radio. There are plenty of versions available with different ranges from 100 meters up to 16km
<p>I wish the computer was a commodore or atari. </p>
I know it's been a while, but I can't get any kind of response from the JeeLink when I upload Transmit. Is there some further change that I should make to get this to work? I know the included libraries needed to be updated before any of the codes would compile.
When all else fails, fall back to the last working sketch. Have you been able to get the example Jeenode code for each of the sensors to work? What all have you got hooked up?
The RF12 demo works fine on the JeeLink and both the receive and transmit sketches compile. I have the Jeenode and plugs connected as you recommend in the instructable. But when I try to test it I get no response from the receiver.
Sorry you are having trouble. I'll have to pull out my hardware and see if I can replicate the problem. What Arduino IDE are you using?
1:1.0.5, the most recent stable version.
Hey aspro648, how did you make the rocket??? can you gave me a steps in making your rocket...???<br><br>God Bless.<br>
Surely somebody has done a soda-rocket Instructable. I built mine based on an article in Make Vol. 5.
Great addition to the literature of Makeology. Always something to glean from other's projects. We all stand on the shoulders of giants and you've done some nice &quot;up-stretching&quot;! Thanks for a great 'ibble.
Tried your project, but the sketch doesn't compile. You made changes to the Ports library that are not part of the official version &quot;setRange, getRange, setSettings, &amp; getSettings. Could you tell us what they are? <br> <br>Thanks
Sorry! It turns out I modified the Ports library to get the accelerometer +-8g settings. I've uploaded the modified file to the instructable. Let me know how that works.
A water rocket can pull 8Gs?? Wow...
8G was the limit on the accelerometer. The simulator calculated 60G. That's probably more than twice what a Estes rocket with a C motor would pull. I've got a 250G sensor now and just need some flight time!
again, wow. And i wouldn't be surprised if an Estes rocket with a c motor could pull 40-60Gs, those things are fast, if you use a d motor, you can barely see it leave the ground before its 700 feet in the air.
Could you put a small antenna with an amplifier on it and get a range of miles? Or would it be possible to use GPS. I'm wondering in hopes of doing a near space balloon project without having to use the SPOT GPS system that we have. I've done the project with the SPOT and a CBL with sensors but I thought it would be cooler to do the project more from scratch...
If you are looking to extend range, I think an XBEE radio would be the way to go. They have a higher power transmitter and more antenna options.<br><br>For a balloon, I would definitely go GPS because you would want to track it's horizontal movement as well as altitude. I've seen a couple of balloon projects that return fantastic photos from 100k+ feet.
OK. We'll continue with using the SPOT GPS system then, tt worked well last time. Plus you can track it on the internet which makes it nice.
Great project, and i appreciate the video. Why do you need the wireless capabilities, when it seems you can download it via USB after the flight? Is it just for convenience?
The original idea was to monitor it in-flight, but the range has been limited. It is nice to not have to hook it up to query it, and also, since the non-volatile memory is limited, it lets you start the read &amp; record cycle right before launch.<br><br>I've got the radio range up to 300 feet now, and am working on a standard Estes rocket to try it out on.
what's the range for the wireless transmission?
The way it was set up, only about 100 ft. I think I had a loose solder joint. I just put on 1/2 wave mono-pole wires (~6&quot;) on both the transmitter and receiver it was getting good reception at 300 feet (91 m). The transmit power is only 15 ma, so I guess we can hope for too much more than that.
This is an awesome build and a great Instructable! Thanks for sharing and the links.<br><br>Well Done!
Great! I'm working on an I'ble involving shocks and I always wondered if the electronics would survive it.<br>You have answered my question!
That is awesome!
thanks! i think i'll try this!

About This Instructable


125 favorites


More by MakersBox: Arduino Drawing Robot Low-Cost, Arduino-Compatible Drawing Robot Arduino Clock Project for Ahmed
Add instructable to: