I have successfully created an APRS iGate using a Raspberry PI, RTL-SDR, mini WiFi adapter, SD card, and 5v micro-USB power supply.
I used several set of instructions from the internet including Marco Kubon’s blog post, Jason Fitxpatrick’s How-to-Geek wifi article, ReadiesCards thread on mini-httpd, and various debugging techniques that are best found by using Google if and when a problem exists.
The only reason I have the HTTP server integrated into the iGate is to make it easy to check the logs using any web browser, including from my iPhone and iPad. All maintenance is done using SSH. Like I said, “geek skills required”.
The hardware is all commonly available:
- Raspberry Pi Basic Starter Kit (Raspberry Pi, Case, and WiKi adapter)
- 4GB SD Card
- Micro-USB Wall Charger (needs to output a minimum of 800ma but 1a is better)
- RTL-SDR RTL2832U E4000 Tuner (I took a risk and found a compact E4000 SDR on eBay)
FYI: The cheaper and more common R820T based RTL-SDR dongles may work but I started with one of those and had issues. Then I switched to the E4000 tuner and managed to get things working. I did not go back and try to get the R820T based dongle working. Read into that what you want but given how much time I wasted on this project, I have not had the energy or desire to do more experimenting.
The one thing I will conclude with is that I do not yet fully trust this iGate. It seems stable but more than once – while getting the system working – I’d start up the software and it would not receive any messages. I think most of the issues are the lousy test antenna but I won’t know until I drop this in place of my stable 2m-radio based iGate.
Time to retract my opinion that you can’t make an iGate with an SDR and a Raspberry Pi. It turns out you can if you have the right software defined radio.
The most common RTL-SDR (USB radio receiver dongle) is the current crop of offerings which use the R820T chip for its tuner. These are also the least expensive at $10-$15 when ordered from any of the Chinese or Taiwanese vendors. The harder to find version uses an older E4000 tuner. These are also more expensive and many buyers have reported receiving a “free upgrade” when ordering the old style. Needless to say this causes problems since you really need the old E4000. In addition to looking for “E4000″ in the description, also look at the frequency range. It should be 50Mhz – 2200Mhz.
I finally took a chance and ordered a different RTL-SDR which claimed to be a real E4000 design. It didn’t look like any of the pictures others had posted for the “real deal” but the vendor claimed these were real. After 24 days on a boat, the little things arrived.
I tested them and they reported they had the E4000 tuner. The final test was to plug it into the Raspberry Pi, load the software test, and see if I could receive APRS messages.
IT DID !
The final packaging is not complete but the design uses PoE (power over Ethernet) and mount the small package near the base of the antenna and only run an Ethernet cable to it.
An iGate is a simple base station which receives APRS messages over the air and transfer them to the internet. A simple iGate uses a radio receiver, a terminal node controller (converts modulated audio to a data), and a computer. The source data is modulated into audio, transmitted, received, and then demodulated back to data.
All of the iGates I've built have used a traditional radio. This time I tried using a Software Defined Receiver or SDR. These are strange cheap little decides. They are marketed as digital TV receivers but they support an extremely wide frequency range.
It all started with an internet article that described using an SDR with a Raspberry Pi. I don't know what the author was smoking but it doesn't work. (I take it back – read here) It will generate underrun errors. A Google of the error and either SDR or Raspberry Pi and there are lots of reports and no answers. I used my primary computer and SDR Sharp software to verify the dongle and antenna. Then I switched to the XO laptop which has just enough juice to make it all work. The steps are geeky enough but here is the cliff notes edition …
- install the necessary computer tools and libraries
- “git” the source for rtl-sdr
- build and install rtl-sdr
- run rtl_fm and pipe it to aplay to create virtual device
- configure soundmodem to use the virtual sound device
- configure aprx to use soundmodem
Just like using a radio, the SDR needs a good antenna. The antenna that comes with the RTL-SDR is basically worthless.