One of the goals of my Arduemetry project is to use it as a miniature APRS tracker. My original concept of accomplishing this was to pass the NMEA serial GPS data through the ATmega firmware and into a separate tracker module (like an OT1+) which would modulate and control the radio (SRB MX146LV) module.
My biggest problem was with the available tracker modules. All of them tend to operate at 5V. I am determined to use my ATmega chip at 3.3V to simplify interfacing to things like the GPS module, uSD card, XBee radio, and I2C devices such as the MX146. After searching and searching I finally stumbled upon a solution. I found this project website from someone who has similar goals: http://trackuino.blogspot.com.
His take on things is to do all of the GPS parsing, APRS packet formation, radio control, and modem output in the ATmega328 chip. He even interfaced with the same radio module as I was trying to do! Needless to say I was excited because I could now eliminate having a separate tracker module and just do it all in my main MCU.
I had already built in controls for I2C and radio ready outputs, so I just hooked up PWM modulation and PTT outputs to the radio socket and I was ready to go. After some modifications to the Trackuino firmware to have it work in the .pde/Arduino IDE format (thanks Javi!), I uploaded it to my Arduemetry V1.0 board and was sending valid APRS packets out to my Kenwood TH-D7. Awesome! It still needs some tweaks to solve some interrupt and timer issues between the modem code and my NewSoftSerial GPS interface (which is already addressed in my V2.0 design), but it was great to see this all working together. It’s also only using ~30% of the code space so I think I should still have room to do GPS and other sensor logging to the uSD card at the same time.