by Antony Chazapis
I have been evaluating various options to run APRS mobile for some time now. I have tried using PocketPacket on my iPhone, but I really wanted something more permanent. A search through the available DIY projects on the Internet led me to Trackuino (code and resources here) and its derivative, Naranjino. Trackuino is a simple APRS tracker that uses an Arduino. Its main design focus has been to support high-altitude balloon flights and includes a shield schematic and PCB that interfaces a GPS module, a radio module, and temperature sensors to the main board. The microcontroller repeatedly performs the task of reading the current location from the GPS, converting it to an APRS packet, modulating the packet into a sound stream, and keying the radio to send the data out.
To apply Trackuino to a much simpler setup, both the software and hardware needed some changes. For instance, the provided version of the software (1.4) would not compile using the latest Arduino app (1.0.5). In the process of modifying the code, I added support for running a beacon without a GPS – with set coordinates, setting the symbol in the configuration file, showing the current temperature and voltage on an LCD module, and disabling one of the two temperature sensors. I also tried using software-based serial for communicating with the GPS, but that didn’t work, as it seems that there were no interrupts left to compose the output audio waveform.
On the hardware side, I completely redesigned the shield, as I would use it with an external GPS and a stand-alone radio transceiver. I was lucky enough to find a serial GPS unit that supports TTL-level output, so no extra components were necessary to connect it to Arduino’s serial RX pin. To interface with the radio, I used a transistor to pull PTT to ground and a coupling capacitor for the audio output, as the sound wave produced by the Arduino swings between 0V and 5V. Before the coupling capacitor, I also added a simple low-pass filter, as suggested by the Naranjino docs.
The hardware design was quickly put together on perforated board, I loaded the software, prepared all necessary cables, and rushed out for a field test! Success! I could even see myself heading south on the Internet, as local packets are also gated to the global APRS-IS network from SV1UY (see what’s happening here). Now I can never hide.
My version of the code and shield is available at github.
Update: As the GPS unit I was using had to be returned to its owner, I ordered a new one – the cheapest I could find on ebay, a GlobalSat BR-355. The BR-355 does not have a TTL-level output, so an interfacing circuit was necessary. I employed the design used by the Arduino Single-Sided Serial Board, which uses a transistor to reverse the incoming signal and convert it to TTL-level. Moreover, I experimented with the value of the capacitor in the audio output filter and found out that a much lower value is needed (10nF instead of 100nF). The smaller capacitor raises the filter’s cutoff frequency, thus the packets sound clearer and are decoded every time. The shield files have been updated to reflect these changes.