Hackaday - [link]

Code - [github]

Ferret was a quick high altitude balloon tracker knocked up in an afternoon for a balloon launch (Project Orion) launched on 07/03/10 from Churchill College, Cambridge.

Credit goes to Iain at CUSF for original code and hardware design.


The main payload contained only GSM tracking systems and no other in-flight tracking, hence the need for a quick and simple RF tracker.

This consisted of an Arduino board with an EM-406a GPS and Radiometrix NTX2 narrowband FM module. The arduino simply parsed the NMEA sentences output from the GPS unit and formatted them into a string to be transmitted over the radio. The broadcast frequency was 434.650MHz and many people tuned in to help track the balloon.

Power was supplied by 4xAA Energiser Lithium cells regulated to 5V by the onboard Arduino regulator (also provided some amount of heat).

The ferret was simply strapped to the outside of the main payload and covered in foam for some thermal and moisture protection. The very low frequency drift of the radio during flight indicates that covering the payload in foam was thermally adequate.


The GPS of choice was an EM-406a, simply because that is what we had lying around the lab at the time. This GPS is very good at getting a lock quickly and also has an inbuilt RTC which is useful as it can keep time even when the GPS loses lock on satellites, eliminating the need for a seperate onboard RTC.

The downside of this unit is that it cuts out at 24km altitude, but this is not too much of an issue for a basic tracker. During the time the balloon is above 24km, a directional antenna such as a Yagi is sufficient to keep a track of it. As soon as the payload drops below 24km on descent, the GPS regains a lock and the descent can be tracked and the landing spot thereby predicted and located.


The arduino had one pair of PWM pins set to 64kHz frequency and two values were used to emulate serial between 2V and 2V2 into the NTX2 TXD pin. From the ground, listening to AM-SSB USB at the radio frequency produces tones which are then fed into a computer running dl-fldigi to decode them.

The packet format was consistent with UKHAS specification and clients ran dl-fldigi to decode the 50 baud RTTY from the balloon and upload it to the central web tracker at spacenear.us/tracker. The checksum was a CRC16 one, implemented on the arduino using an existing software library.

A sample packet follows:



The antenna was constructed in about half an hour using a small piece of copper-clad PCB with a hole drilled into it and some RG-174 coax cable. The basic design was a 1/4 wave whip with radials.

The RF output from the radio was connected to the central driven element with the coax braid being connected to the RF GND at the radio end and the copper on the PCB (and then to the radials) at the antenna end - see pictures.

Electrical tape was used to keep water from coming into contact with the connections on the antenna, and plastic drinking straws to keep the radials and driven element straight.



Thanks to everyone who helped with the launch and recovery.