Narrow-band radio telemetry


Senior Member
A popular topic on this form is how best to transmit digital data over a low power radio link (recent posts cover electric vehicle development and balloon instrumentation!). There are many approaches to this challenge but I have achieved consistently good performance from the system described below, and hope the information proves useful to others who need inherently robust telemetry.

The telemetry data is Frequency Shift Key (FSK) modulated to make it suitable for transmission over a narrow-band radio link, without having to resort to specialised communication routines (e.g. pre/post -amble code and other data padding). FSK modulation is a well-established method of reliably transmitting and storing digital information on general-purpose audio equipment. It was used with early generation home computers for storing programmes on audiocassettes and for digital communication over dial-up telephone lines. Many amateur radio operators still employ FSK modems (sending to a mic input and receiving from a speaker output) for long distance digital communication over voice quality links. Although they increasing use PC sound cards in place of dedicated hardware to process and demodulate the received signals.

PICAXE -14M code to scan three digital and five analog inputs at a rate of 15Hz.

setfreq m8 ‘8MHz operation
let dirsc = %000 'Change C0-3 from outputs to inputs
pause 2000 ‘Pause for 1 second

serout 2,N600, ("!RSET",CR) 'Automatically selects the StampPlot operating mode….
serout 2,N600, ("!RSET",CR)
serout 2,N600, ("!ERRT",CR)
serout 2,N600, ("!TMAX 20",CR) ‘N.B. set-up parameters must be received by the PC before data
serout 2,N600, ("!SPAN 0,255",CR) (or entered via the PC keyboard).
serout 2,N600, ("!SHFT ON",CR)
serout 2,N600, ("!FLSH ON",CR)
serout 2,N600, ("!NUMB 6",CR)
serout 2,N600, ("!CSUM ON",CR)
serout 2,N600, ("!PLOT ON",CR)
serout 2,T600, ("!USEB ON",CR)
pause 2000

b0=pins AND %00001110 * 16 'Shift digital inputs 1-3 into 7-5
readadc 0, b1 'Analog input, leg 7
readadc 1, b2 ' ,, ,, ,, 10
readadc 2, b3 ' ,, ,, ,, 9
readadc 3, b4 ' ,, ,, ,, 8
readadc 4, b5 ' ,, ,, ,, 3
b6=b0+b1+b2+b3+b4+b5 'Generate checksum
serout 2, N600, (b0,b1,b2,b3,b4,b5,b6) 'Send digital and analog channels in binary format @ 1200bps
goto scan 'Next frame

When configured as a modulator, the Consumer Microcircuits Limited FX614 modem chip produces a low distortion sine wave that maintains a continuous phase when transitioning between the two keying frequencies of 1200 Hz and 2200Hz. (the PICAXE example code can of course be edited to work with other modem chips that are capable of operating at lower data rates). These characteristics produce few harmonics and require only modest bandwidth performance from the communication channel. The input signal to the chosen radio transmitter should be adjusted to obtain the maximum undistorted audio level at the output of the radio receiver.

A second FX614 demodulates the audio FSK signal from the radio receiver output and presents the digital data to a PC serial port. In addition to demodulator circuitry the FX614 also has a band-pass filter, which is able to extract data from signals that sound like noise only. Although the FX614 is quite tolerant of input signal amplitude variations, it may still be necessary to initially adjust the receiver’s output for minimum data dropout. The demodulator is powered from the RTS output (pin7) of the PC serial port using a 5.1V zener diode and series resistor.

PC Display software
An ideal way to display and archive the received serial data is to use the StampPlot Pro application from SelmaWare Solutions. This Windows software accepts serial data and presents multiple channels on a real-time scrolling display. Selected blocks of data may also be exported to a spreadsheet for processing. An evaluation version of StampPlot may be downloaded from This site also provides extensive documentation, including how to use the optional on-line maths functions (using this feature is much easer than trying to perform PICAXE maths before transmission.)

StampPlot expects to receive ASCII values by default but also has the option of accepting data as binary values. To make the most efficient use of the available bandwidth, the latter format is used and selected by the set-up parameters at the start of the PICAXE programme. The binary operating mode offers the option of including a checksum byte with each transmitted frame. StampPlot rejects frames that fail the checksum test and retains the last set of acceptable points on the chart, until updated by the next acceptable frame. This is a particularly useful form of display when sending data over interferance or dropout prone links. The above software therefore attaches a checksum to each data packet before transmission.

Although it may often be more appropriate to use radio transmitter and receiver modules that have integral modems, the approach described above is compatible with a wide range of voice grade communications and storage equipment (scanners, wireless handsets and camcorder audio channels etc). With different versions of the modem chips it would also be possible to maximize range by using even lower data rates.