Description
This project is an APRS iGate for ARISS program's digipeater aboard the International Space Station. I have a 2m FM radio tuned to 145.825 MHz. As the ISS passes over my location, the radio passes the received signal from the ISS to a Terminal Node Controller (TNC) that resides atop the Raspberry Pi. The TNC decodes the audio tones and creates data packets the Raspberry Pi can receive, process and pass along to the APRS Internet Service (APRS-IS) network.By documenting the setup and allowing others to more easily create iGates for the ISS digipeater, this ensures coast-to-coast and around-the-world coverage for the ISS APRS-listening network. You do not have to have a satellite tracking system to receive APRS packets from the ISS. If you have an antenna and the resources, consider building an ISS iGate.
I created my first Raspberry Pi iGate in the Spring of 2014. I hope the wider ham community enjoys my iGate and inspires others to build their own. I have also built a Raspberry Pi WebSDR and I'm working on a 20m WebSDR receiver as well as an amateur radio satellite tracker. Click here for a list of my other amateur radio related Raspberry Pi projects.
You can see packets I (and other ISS iGates) have reported here: http://www.arris.net
Parts Used
My ISS iGate setup consists of:- Raspberry Pi Model B and power, 8Gb+ SD card & case (I just use the bottom half as a base)
- TNC-X TNC-Pi Kit - My build notes are on my blog. (TNCPi Manual - 643kb)
- 802.11b/g/n wireless USB adapter (RTL 8188 chipset)
- An old Alinco 2m mobile radio from a hamfest (cheap)
- A cobbled-together cable with DB9-to-RJ45 connectors to interface the TNC and radio (see manual or blog post)
- 2m mag mount whip antenna - nothing special
Software
- Raspbian has been my OS of choice for the Raspi, for no particular reason
- aprx is the main program that takes the serial data coming off the TNC and routes them to APRS-IS
- logrotate is setup to manage the log files via a cron job
Documentation
Configuration
Note: Before we begin, note that many of the files you're editing will need to be edited through sudo. Use your favorite editor (vi, nano, pico) like this: sudo vi filename.In /boot/cmdline.txt, locate and edit the line reads like this
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
and remove the console=... and kgdboc=... parts so it looks like this:dwc_otg.lpm_enable=0 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
T0:23:respawn:/sbin/getty .L ttyAMA0 115200 vt100
To comment out the line, simply put a # in front of the line.(Be sure to download the most recent .deb version for the armhf architecture.)
sudo dpkg -i aprx_2.08.593-1_armhf.deb
(...or whatever your filename is.)sudo apt-get install -f
Below is a snapshot of my aprx.conf file.
mycall N5DUX-10myloc lat 3233.46N lon 09444.90W<aprsis> #login N5DUX-10 # login defaults to $mycall passcode 8888 server rotate.aprs2.net #server noam.aprs2.net #heartbeat-timeout 0 # Disabler of heartbeat timeout</aprsis><logging> pidfile /var/run/aprx.pid rflog /var/log/aprx/aprx-rf.log aprxlog /var/log/aprx/aprx.log</logging><interface> serial-device /dev/ttyAMA0 19200 8n1 KISS callsign $mycall # callsign defaults to $mycall tx-ok false # TNC2 monitor can not have transmitter telem-to-is false</interface>
sudo service aprx restart
cat /var/log/aprx/aprx-rf.log
Networking
My shack is detached from my house, in the Fall of 2015 I ran a (relatively) short run of fiber to the shack in a buried conduit to provide solid network capability. In the shack I have a multi-port switch for my computer and other Raspberry Pi projects I have running. In the past I have use wireless so if you want to create a set-it-and-forget-it type setup in the back of your garage, storage shed, shack or attic, wireless is an option.Future Expansion/Refinement
I hope to tweak/modify my setup in the future. A couple ideas I have:- Listen for and respond locally (somehow) to MAREA packets. (One idea, make a perl/python script to trigger from the exec phrase in aprx.conf.)
©2024, N5DUX