FoxTrak APRS Firmware Updated

For a long time now, I have been using a FoxDelta FoxTrak for APRS in my car as M1GEO-7. Recently I had some problems with the GPS and tracker, and while trawling around looking for a fix, I found an improved firmware for the tracker.

The FoxTrak ships with the Rolf Bleher (DK7IN) Firmware, which works great. However, several newer features are offered by the aprstracker project (PE1RXQ/PE1ICQ). At the time of writing, this was version 0.11 (and 0.12 in beta, see below), and offered the following features:

  • Understands GPGGA (Location/Altitude) and GPVTG (Course) sentences
  • Smartbeaconing (based on Xastir)
  • Autodetects serial polarity (RS232 or TTL)
  • Supports 4800 (but claims 9600 Baud – actually requires aprstracker-0.12 for 9600 – see updates below)
  • Configurable via a serial null-modem cable
  • Included is a config program for Linux & bootable disk for others (see site)
  • Reports course and speed and altitude
  • Works with PIC16F84, PIC16F627, PIC16F628 and PIC16F648 controllers.
  • Sourcecode released under GNU GPL

Version 0.11 which I intended to use works only with PIC16F628 or PIC16F648 controllers. I settled for a PIC16F648A as that offered the most features for what I had. I programmed the chip and replaced the original DK7IN firmware 1.6 with aprstracker firmware 0.11. I powered the device up and noticed that the GPS light is illuminated always. The DCD light flickers with receive activity.

I decided to try and get the new tracker firmware to talk with the (new) programming software. There are two version available. I compiled the one included with the PIC firmware and used that. If you use the floppy disk, then you’re on your own, though I expect it to be the same. The atprogrammenu came compiled, but is also easily made with

gcc atprogrammenu.c -o atprogrammenu

Which results in a new binary file, atprogrammenu. Connecting the tracker via null modem cable (swaps TX and RX) to a serial port on the computer, I fired up atprogrammenu.

sudo ./atprogrammenu /dev/ttyS5

The console program loads. I pressed enter and my hardware was found. There is a manual for aprstracker-11 in English which explains what’s going on.

I made a few adjustments, such as my callsign, enabling altitude, changing to the New-N paradigm and adjusting the beacontext. I am using a Garmin GPS, and so using command N sets the GPS Config String [C] automatically. The differences are visible below.

Update, 12, June 2013: After changing radio from a Kenwood TK-762G(N)E to an old Tait T500, I noticed that a lot of the packets were being lost. Upon investigation, it turned out to be that the TX Delay [4] was too small, i.e. the transmitter didn’t have time to fully stabilise before the tracker sent data. I also turned off proportional pathing, because I found that in central London, it often takes a few relays to get out to an IGate, so many frames were simply lost.

Update, 15, September 2013: Helping a friend get into APRS, I noticed that version 0.11’s claim of 9600 baud GPS support wasn’t true. Having spoken with Arno, PE1ICQ, I was sent a copy of the aprstracker-0.12. This code isn’t actually ready for general release since it contains bugs with the altitude calculation; however, it does support 9600 baud NEMA GPS receivers. This code is open source, and available here: aprstracker-0.12.tar.gz. This code is entirely the work of PE1ICQ and PE1RXQ; I am just hosting this half-baked version since I get asked for it regularly. The code is released under GNU GPL v2, so I figured I am safe.

An online scrapbook full of half-baked projects and silly ideas.