Tales from the Hamshack

Powering APRS With an RTL-SDR IGate With Aprx – Part 2

| Comments

In part 2 of my RTL-SDR powered APRS series I’m going to discuss how I configured an IGate using aprx. The first order of business however is getting the RTL-SDR to receive, and decode APRS traffic. The software I used is called multimonNG the installation of this package is pretty straight forward.

# git clone https://github.com/EliasOenal/multimon-ng.git
# cd multimon-ng
# mkdir build
# cd build
# qmake ../multimon-ng.pro
# make
# sudo make install

Once this is complete, we can fire up rtl_fm which we built in the part 1 and by using the Unix Pipe we are going to send the output of the receiver through multimon-ng and then onto the network. The command I’m using to start the receiver is as follows:

# rtl_fm -g 80 -f 144.390M -s 22050|multimon-ng -t raw -a AFSK1200 -f alpha -A /dev/stdin| netcat -l 6666

This opens the receiver and sets the gain to 80, on the North America APRS calling frequency of 144.390mhz, with a sample rate of 22050hz. The output of the reciever is then sent into multimon-ng which uses the AFSK1200 decoder and the -A flag tells it specifically to use the APRS format. Due to some limitations in how multimon-ng works getting the output into something usable requires interacgint with /dev/stdin. If we ended the command there, the decoded APRS packets would be displayed on the terminal for you like the following entries:

lars@bmc ~ $ rtl_fm -g 80 -f 144.390M -s 22050|multimon-ng -t raw -a AFSK1200 -f alpha -A /dev/stdin
multimon-ng  (C) 1996/1997 by Tom Sailer HB9JNX/AE4WA
             (C) 2012-2014 by Elias Oenal
available demodulators: POCSAG512 POCSAG1200 POCSAG2400Found 1 device(s):
Enabled demodulators: AFSK1200
  0:  Generic, RTL2832U, SN: 77771111153705700

Using device 0: Generic RTL2832U
Found Rafael Micro R820T tuner
Tuner gain set to 49.60 dB.
Tuned to 144643575 Hz.
Oversampling input by: 46x.
Oversampling output by: 1x.
Buffer size: 8.08ms
Exact sample rate is: 1014300.020041 Hz
Sampling at 1014300 S/s.
Output at 22050 Hz.
APRS: W2MN-9>S0RY7V,W5OEM-12*,WD5IYT-2*,WIDE2-1:`}Nbl7'v/"77}
APRS: WD5IYT-2>APNU19:!3019.41NS09748.12W#PHG9550 APRS DIGI UIDIGI 1.9b3 Austin b1
APRS: KF5DMO>SPQU6V,WD5IYT-2*,WIDE1*,WIDE2-1:`}JWl //"5]}/TinyTrak4 Alpha

The last three lines in the above block are actual APRS packets received by the RTL-SDR, decoded by multimon-ng, and displayed on the terminal. This is fun but ultimately I want to push those messages into the APRS network. For this I need to add an IGate like aprx. Installing aprx is much like everything else we’ve done so far.

# git clone https://github.com/PhirePhly/aprx.git
# cd aprx
# ./configure
# make clean
# make
# sudo make install

Next we need to configure aprx. For this edit /etc/aprx.conf. The file is well commented, and should be pretty straight forward. In my case, I set the following fields:

  • mycall
  • myloc
  • passcode
  • server
  • filter

Then in the section I set aprx up to use a TCP socket.

tcp-device      localhost 6666 TNC2

From this point we need to adjust the line we used to start the receiver, as aprx is listening to a network socket, and not looking at a terminal for packets. So we go back to our initial command and pipe the output from /dev/stdin into netcat and are left with the following:

# rtl_fm -g 80 -f 144.390M -s 22050|multimon-ng -t raw -a AFSK1200 -f alpha -A /dev/stdin| netcat -l 6666

Finally we start aprx

# aprx

And if we want to see the packets as they come in we can tail the aprx-rf.log

lars@bmc ~ $ tail -f /var/log/aprx/aprx-rf.log 
2014-12-11 03:59:48.152 APRSIS    R W5ROX-3>APOT30,WIDE1-1,WIDE2-1,qAR,W5ROX:!3034.44N/09724.99W_081/001g002t060p000h78b10196T2WX
2014-12-11 04:00:04.576 APRSIS    R KF5RLL-2>APRX28,TCPIP*,qAC,T2TAS:!3032.53N/09735.37WxPHG0000 Hutto,TX - TX/RX-IGate - Linux/Aprx-2.08 - Uptime 108(hrs)
2014-12-11 04:00:05.848 APRSIS    R kc5wxt>APRS,TCPIP*,qAC,THIRD:@110400z3006.00N/09718.00W_163/001g006t061r000P002h87b10202
2014-12-11 04:00:20.635 APRSIS    R KC5AFM-1>APZAFM,TCPIP*,qAC,FIRST:!3031.57NI09747.27W#Cedar Park Digi Tx-iGate
2014-12-11 04:00:23.406 APRSIS    R KC5AFM-9>APOTU0,WIDE1-1,WIDE2-1,qAR,AE5UM:!3032.07N/09749.74W>070/029/A=000966 13.6V
2014-12-11 04:00:23.624 APRSIS    R KC5AFM-9>APOTU0,WIDE1-1,WIDE2-1,qAR,KF5RLL-2:!3032.07N/09749.74W>070/029/A=000966 13.6V 
2014-12-11 04:00:26.710 APRSIS    R KE5RCS-A>APJI23,TCPIP*,qAC,KE5RCS-AS:!3044.65ND09736.13W&RNG0010 1.2 Voice 1293.2000 -20 MHz
2014-12-11 04:00:26.824 APRSIS    R KE5RCS-C>APJI23,TCPIP*,qAC,KE5RCS-CS:!3044.65ND09736.13W&RNG0035 2m Voice 145.130 -0.600 MHz
2014-12-11 04:00:26.824 APRSIS    R KE5RCS-B>APJI23,TCPIP*,qAC,KE5RCS-BS:!3044.65ND09736.13W&RNG0035 440 Voice 440.575 +5.00 MHz
2014-12-11 04:00:30.812 APRSIS    R WB5FMZ-1>APRS,WIDE2-2,qAR,KC5AFM-1:@000001z3032.06N/09745.43W_110/000g000t056r000P001h93b10212/ 15171,12.1V73F45%,F=0,V053105 LOC

That’s it for now.


Powering APRS With an RTL-SDR and Xastir – Part 1

| Comments

Recently I purchased a RTL-SDR to play with. These are dirt cheap on Amazon or Ebay usually to the tune of $10 or less shipped to your door. I had a few different ideas of how I would use this, but first on my list was to build an APRS receiver & decoder.

First I had to figure out how to get my RTL-SDR working on Linux. First we need to install a bunch of pre-requisite packages on our Debian/Ubuntu system.

# sudo apt-get install doxygen doxygen-gui doxygen-latex doxygen-dbg doxygen-doc gnuradio-dev gnuradio libgnuradio* libboost-all-dev libusb-1.0-0-dev libusb-1.0-0 gnuradio build-essential cmake mono-complete monodevelop libportaudio2 fftw3-dev

Next we need to download and install the rtl-sdr drivers. Please follow This Link for more information.

After installing the drivers, we need to patch gnu-radio. Please follow This Link for more information.

Next we need to blacklist the standard dvb_usb_rtl28xxu kernel module. Run the following command:

# sudo echo "blacklist dvb_usb_rtl28xxu" >> /etc/modprobe.d/blacklist.conf

Next we need to install kalibrate. Kalibrate is a tool used to calibrate the RTL-SDR using GSM towers in the 900mhz band.

# git clone https://github.com/steve-m/kalibrate-rtl cd kalibrate-rtl 
# ./bootstrap && CXXFLAGS='-W -Wall -O3' 
# ./configure 
# make 
# sudo make install 

Finally, I installed SDR # which isn’t technically necessary for APRS decoding, but it is a fun way to play with the RTL-SDR that doesn’t requiring doing a lot of hacking in Gnu-Radio.

I’m going to wrap up Part 1 here. This should get you to a working state with your RTL-SDR. In Part 2 I’ll go into getting the Ham Radio side of the software configured.

That’s all for now.


Kenwood TM-D700A Install 2007 Toyota Tacoma

| Comments

A few weeks ago at my wife’s urging I purchased a new vehicle. New is a bit of a misnomer as the truck is a 2007 Toyota Tacoma, however it is new to me.

NewTruck In any case part of the reason for purchasing a truck was to take it on adventures around Texas. One of the things on my wife’s list is to drive down the National Sea Shore and camp on the beach. I’ve believed that having a good set of communications gear in your car or truck while traveling is an important part of being prepared so I set out to install my Kenwood TM-D700A in the Tacoma.

Antenna MountHere’s my small “around town” Comet SBB-2 Antenna on a Comet “hatch back” mount I had laying around in the parts box. I’ve got a few larger antennas, but while around town this makes pulling into the parking garages easier.

Power and CoaxI attached the body of the radio to the bottom of the drivers seat by wedging the mount between the steel springs and the foam. Then I applied four velcro straps to keep it in place. The power and coax are tucked in the wiring loom holders under the kick panels.

Control FaceI ran the cable for the control unit under the center console. Then under/behind the coin tray on the right side of the steering wheel. Currently the mic is just pulled up from next to the seat. I intend to extend the RJ-45 and mount the mic from the back of that change tray as well.

Higher resolution versions of the images above can be found HERE. I will work on taking some more detailed, daytime photos of the install soon.

Next on my list for the truck is to install an inexpensive CB Radio inside the center console under the arm rest. I don’t really have a desire to talk on the CB, however several of the Overland groups in the area use them to communicate while camping and traveling together.

Finally I’d like to add a Byonics MicroTrak-RTG dedicated APRS transmitter.

That’s all for now.


New Antenna Project

| Comments

Thanks to a post on an Amateur Radio Facebook page I am going to start building a K4KI0 wideband hexbeam antenna. I’ve been looking at both the Hex-Beam and Spiderbeam antennas for a number of years now.

Based on where we live, I’m finally in a place where building and raising one of these antennas is a possibility. Over the next few weeks I’m going to start collecting the parts to construct my own.


Just a Photo

| Comments

I still have a lot of work to do before I’ll be proud of my shack.  At the same time I thought it might be fun to post a teaser shot.

I need to get the rest of my office / shack cleaned up and organized.  Once that’s done I’ll snap a few photos of the whole room.  I also need to get at least one more set of antennas up for the FT-847.  I was thinking a set of four Linenblad antennas, in addition to another VHF/UHF vertical.



Motorcycle Mobile

| Comments

On my list of things to do since I started riding my motorcycle was find a way to attach a radio to the bike.  If I rode one of the big touring bikes this would have been a trivial process.  Half of those bikes come with antennas, and radio mounts built into them from the factory.

Unfortunately (or perhaps fortunately) I ride a Kawasaki Ninja 500r Sport Bike.  This means space in general is at a premium, and locations for mounting radio bits are hard, if not impossible to come by.  I managed to come up with a workable solution though.

It started by buying a spare top tail fairing.  This was $12 from someone on the Ninja 500 forums.  Next I took a sma window clip antenna mount apart to steal both the coax, and the bulkhead connector.  I drilled a hole in the spare fairing, and mounted the bulkhead.

Diamond HT Antenna MountedNext I had to find a good way to mount the HT on the bike.  I decided that my Yaesu VX-7R was the perfect radio for the job as it’s water resistant to 3 meters.  This means if it rains I’m unlikely to destroy an expensive piece of hardware.  I also already owned a throat vibration mic for this radio which should eliminate any wind or engine noise while riding.  I settled on replacing the swivel belt clip with a 2″ square piece of plastic that is screwed into the back of the radio.  I then attached six ½″ Neodymium magnets to the plastic square.  This holds the radio quite firmly to the steel tank.

The final piece of the puzzle was powering the VX-7R.  I have one of the filtered Yaesu E-DC-5B Power Adapters for the car.  The motorcycle doesn’t have an accessory outlet, however I do have a battery tender connection.  A quick trip to the auto parts store, lead me to one of these Battery Tender to Female Cigarette Adapters.   With the bike running I have plenty of power to keep the VX-7R fully charged.

I took the bike for a short ride, intending to head all the way into work, but high winds sent me back home for the car.  No problems at all with the installation.  The radio stayed exactly where I put it, and I couldn’t be happier with the overall performance.

If any of you are Motorcycle Mobile, I’d love to see your installations as well!  Drop me a line via the comment link at the top of this post.



ZEBLOG – a New Software Project

| Comments

I have the personal goal of becoming a better programmer.  As a result I’ve decided on a first software project.  I’m calling it zeblog (subject to change) which will be a python & curses based amateur radio logging software.  I have set up a software repository in in git for this project, which you can view by clicking HERE

Currently the only thing there is a user story, license, and readme.    I have the goal of using a MySQL database as the back end so that later I can write web modules that show near realtime log status.  I’d like to eventually show things like “35 of 50 states worked” and “23 of 100 unique countries worked for DXCC”  I’ve talked about perhaps writing a restful API so an Android/iOS front end could be written for mobile operations.   In general I have a lot of goals for zeblog.  In the short term I would settle for basic logging functionality with an easy “Export to LOTW” function.

If you are interested in helping with this project please contact me at “My first name” dot “My call sign” dot ORG.


Ham Radio Logging

| Comments

I decided to use yfklog written by DJ1YFK as my ham radio logging software.  It is a small perl script, with a curses front end.  The  interface is simple but that works great because I can host my logs on a remote server that’s in a datacenter.  I’ve also finally gone through the process of getting my Log Book Of The World account set up.   Thinking it would be nice to use that to maybe work towards DXCC and WAS awards.

yfklog in action
In an effort to simplify the process of sending my logs to LOTW, I think I’m going to work on building a Jenkins job that will export my logs from yfklog once a week in the proper format.  Then take that export and sign it using the Linux command line build of LOTW to sign and send my logs to the ARRL.

Have any of you done anything similar?


First Contacts Since 2007

| Comments

Yesterday I managed to get my antenna in the air.  It’s not a perfect straight shot inverted V like I planned but it’s closer to that then not.  In any case I started tuning up and down the bands and managed to make a pair of contacts.

The first was W1AW P0 — Operating just outside of Lincoln Nebraska.  I got a 59 signal report from that station.

The second was AK0AK — Operating from Macon Missouri.  In this case I got a 55 signal report.

Both contacts were on 40m LSB.  I spent a bunch of time yesterday listening to a few nets, while researching digitial audio interfaces for my TS-850, and CAT control cables.