Warbler – 1200 Bit/s BPSK AX.25 soundcard demodulator


Warbler is a piece of software which can be used to demodulate a 1200Bit/s AX.25 BPSK signal (e.g. from AMSAT-OSCAR 16/PACSAT or ITAMSAT-OSCAR 26), using the PC’s soundcard.


Here’s a screenshot, showing PACSAT (AO-16) downlink:



Operating instructions

Warbler expects an audio signal with a carrier frequency between 1400 and 1800Hz. Limited Doppler correction is provided within this range. Connect the audio output of your SSB transceiver / receiver to the line or microphone input. Set the audio level such that the “Audio Level” bar is in the green range. The Costas loop will now attempt to lock onto the received signal, in case of lock, the “Sync” flag is displayed in green. Recovered carrier frequency is displayed by the slider and in numerical form. By default, the AX.25 INFO field is displayed in ASCII. By checking the “Display INFO in HEX” checkbox, it will be displayed in Hexadecimal notation.

Warbler logs to a KISS file named “warbler.kss”, in the directory from which Warbler is run (usually the “\dist” directory). Warbler appends all received frames to this file every time the program is run. Another file, named “warbler.asc” is also created, this is for a future implementation of logging to an ASCII file. In the current version, nothing is written to this file.


Known bugs

Note that warbler is still in development, some known bugs:

-some spurious frames (caused by noise) may make it through the AX.25 Frame Check Sum calculation and may therefore be displayed in the terminal, as of version 1.0.2, an optional check for pid = f0 is included, thereby virtually eliminating this problem


Operating System compatibility

Warbler has been tested on the following operating systems:

- Windows XP

- Linux (Slackware distribution, tnx PE1RXQ)



Warbler may be distributed freely and may be used freely for non-commercial purposes.

Warbler is supplied for free, if you like the program, please make a donation to AMSAT!


Revision history

V1.0.0 Beta

-          first release


V1.0.1 Beta

-          disabled window resizing

-          fixed sample rate incompatibility


V1.0.2 Beta

-          improved the demodulator algorithm

-          more efficient GUI print algorithm

-          included optional check for pid = f0


V1.0.3 Beta

-          fixed an exception bug

-          included optional timestamp (local time, not UTC yet)

-          included optional PASSALL function and display of FCS

-          included decoding of AO-16 MBL short telemetry frames (special non-UI frames), tnx Mike, DK3WN

-          HEX values now displayed with leading zeroes (e.g. “0A” instead of “A”)

-          fixed minor bugs



Download v1.0.3 Beta version


Installation instructions

Warbler requires you to have the latest JAVA Runtime Environment (JRE) installed – download latest JRE

To run Warbler, unzip the file, open the “\dist” directory and double-click the “warbler.jar” file


Test audio

-          Howard, G6LVB has a .wav file of AO-16 audio on his site which can be used to test Warbler

-          Jeroen, PE1RXQ maintains the PI4TUE groundstation, which tracks AO-16 and IO-26 continuously. Audio files of AO-16 in .flac format (requires plugin to play in Winamp) can be found on this page (look for files ending with .flac)



Warbler is based on a software implementation of a Costas-loop demodulator which compensates for Doppler shift over a 400Hz range, followed by a clock recovery algorithm which controls an integrate-and-dump for matched filtering detection. After this, an AX.25 parser takes care of flag detection, de-NRZI, de-bitstuffing and AX.25 frame content extraction.



Previous versions (these may contain bugs!)

Download v1.0.1 Beta version


Download v1.0.2 Beta version



Comments / bugreports and suggestions are welcome!


<insert my call here> at amsat.org


Last update: 01 December 2007


Wouter Jan Ubbels PE4WJ