Matthew D. Laudato writes about software and technology


leave a comment »

Rocketry projects


Telemetry rig for the DX3

I’ve been into rocketry for years, first building and flying the small model rockets from Estes when I was a teen, and lately, making the move into high power rocketry.  Also since I was younger, I’ve loved electronics and am often tinkering with some project on my ‘e-bench’ in the basement. This project was a chance to bring both of those interests together and create a simple telemetry rig designed to transmit altitude data from a rocket and capture it on the ground for real-time display. I do big data for a living, so let’s just call this my ‘tall data’ project!

I currently fly only one high power rocket, the Madcow Super DX3 Payloader. It was a perfect choice for my L1, and I immediately designed and built a new payload section and added an altimeter bay so that I could fly in dual deploy mode (and thus actually recover the rocket on those L2 flights!). After reading an article in the June/July 2011 issue of Sport Rocketry by Paul Smith on connecting an XBee to a PerfectFlite MAWD, I started thinking about building and flying my own telemetry rig. I did so, and here’s how it works.

First, the wiring diagram for the in-flight ‘air station’ portion of the rig. All of this is housed in the altimeter bay. For switches I use standard rotary key switches from Doghouse Rocketry that are mounted through the wall of the altimeter bay so that they are accessible from the outside of the rocket. The altimeter and the XBee have separate power sources, since they have different power requirements and are electrically isolated from each other with the exception of the data link.


As you can see, the electrical connections are fairly simple – the DOUT from the altimeter is connected to the DIN of the XBee, and the GND wire from the altimeter data port is connected to the XBee GND, so that the two devices share a common signal ground. The XBee is configured to match the data rate of the altimeter (9600bps, 8 data bits, no parity bit, 1 stop bit). I also have the Stratologger SL100 set to send data ‘On Pad’, which means that as soon as the altimeter completes its continuity check, it will start to send data, which the XBee will detect and broadcast. This lets me double check the wireless downlink at the ground station before launch. Here’s a picture of the altimeter sled, showing both the XBee (top) and the altimeter (bottom) wired together in flight configuration:


You can see the XBee antenna on the upper right, and the blue and brown wires from the altimeter coming up from the bottom right. I use quick connects for everything except the altimeter switch, which makes it pretty easy to remove the sled to change batteries or do other maintenance.

The XBee is a great device for this application. When run in its default ‘transparent mode’, the XBee acts as a serial pipe – any data that is presented on its DIN pin is immediately transmitted over wireless, where it can be received by another XBee, which will in turn present that data on its DOUT pin. This helps to make the ground station very simple. I use a USB breakout board from Sparkfun to hold the XBee and to connect it to a USB port on my laptop. This makes the XBee show up as a serial device (COM6 in my case on the ground station laptop). The ground software is written in Processing, the open source physical computing platform. The software connects to the XBee serial port, reads any incoming data (which is originating from the air station on the rocket) and plots it. It also saves the data to a flat file for future use. Here’s a schematic of the ground station setup:


There is a small amount of configuration that you need to do in order to get 2 XBees on the same network so they can communicate with each other. The best reference that I’ve found is on Digi’s site (they make the XBee). Just follow the instructions there.

All the action at the ground station is taking place in the software. The source code for the Processing sketch that runs the ground station is available on github:

The code is pretty simple. All Processing sketches typically have a setup() routine, which in this case opens the serial port to the XBee and draws the initial plot background and axes. The serialEvent() routine waits for serial data to appear, reads and parses the data, and then plots it. There is a bit of logic to wrap around the plot back to the left side of the plot area after the rightmost data is plotted. There’s also logic to plot a data point only if it is an altitude value greater that 10 – that’s because the ‘On Pad’ setting causes the altimeter to continually send altitude data, which doesn’t change much until launch.

Here is a screen capture of the actual telemetry plot that was generated during a flight of the DX3 on an I170. I have to admit to watching the screen during flights more than I watch the actual rocket, because it is very cool!


So far I have obtained data on flights to 3300′ (on a J285 during my L2 certification flight). The 60mw XBees that I use claim a line of sight range of 1 mile, and can’t think of a better test of that range than to send one zooming a couple of thousand feet in the air! During flight I am routinely getting 20 altitude data points per second, which is the limit at which the PerfectFlite Stratologger SL100 will send data, so all available data is being transmitted and processed.

Leave a comment if you’d like to learn more, and happy flying!

– Matt

(I’m a NAR Level 2 certified High Power Rocket hobbyist. All of my interesting (to me anyway) rocket projects are described here. Enjoy!)

Written by Matthew D. Laudato

October 29, 2013 at 8:57 pm

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: