FoxTrak Updated Firmware
From George Smart's Wiki
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 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  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.