AndroidAPRS

From Noisebridge
Jump to navigation Jump to search


AndroidAPRS is an Google Android application for doing APRS. Here is a little about how it works; if you have further questions, contact nils.

With an external radio and a phone of adequate processing power, this application can receive beacons over RF, decode them, and plot them on the map. That allows us to track balloons to figure out where they're going so we can retrieve them.

Spacebridge uses the Google G1 running Android as a flight computer on balloons. Thus we can connect up the headset output of the G1 to a radio in order to transmit APRS beacons.

Spacebridge also uses a Google Nexus One running Android as a tracking computer. We can connect up the headset output of a radio to the microphone input of the G1 in order to receive APRS beacons over RF.

There is also an internet APRS infrastructure (APRS-IS). Nodes known as "igate"s receive beacons from RF and retransmit them over the internet. Most places in the US have Igate coverage (either directly or via a digipeater), so if you transmit an APRS becaon via RF, most likely an igate will receive the packet and retransmit it over the internet.

One popular website for viewing APRS packets that have made it to APRS-IS is http://aprs.fi/.

Its features are:

  • Transmit APRS beacons via internet
  • Transmit APRS beacons via RF (with external radio)
  • Receive APRS beacons via internet
  • Receive APRS becaons via RF (with external radio; doesn't work on the G1)
  • Plot APRS locations on map
  • Show raw APRS packets

To demo AndroidAPRS on the G1 at Yuri's night, I have it configured as follows:

  • Automatically beacon every 37 seconds.
  • Disable mic-e format (it's less easy to read manually via the raw packets screen)
  • Transmit via headset port (to demo what APRS audio sounds like)
  • Disable listen via headset port; it can cause problems if this option is enabled on the g1 since it doesn't have as much CPU power as the nexus one
  • Enable listen via internet with a range of 100km. (The range filtering only works properly if you have beacon transmitting enabled.)
  • Don't transmit via internet, since I don't want it using my callsign if other people are messing with it
  • Disable audio loopback, disable gate packets
  • disable navigate to callsign. This only works on Android 2.1, which the G1 is not running.

It does not know about all packet formats, but it will get a good portion of the packets received and plot them on the map.

When you're on the settings screen, "Automatically beacon" will turn off when you're making changes; you will have to re-enable it after you're done making changes on the setting screen.


The "vox delay" is a HDLC NO-OP tone that gets played before the transmitted beacon. (HDLC is the encoding scheme that APRS uses to transmit data). This allows a radio to be configured in VOX mode to start its transmitter after it detects noise, and still transmit the whole packet. Otherwise we would have to activate the push-to-talk (PTT) pin of the radio in order to start transmitting, and the G1 does not have easily accessible GPIO (general purpose IO) pins available.


The AndroidAPRS application was written by Nils McCarthy. It's in alpha test right now, but after further features and polishing it will most likely be released to the Google Android Application Market.