ADS-B and PiAware

I had a lot of fun poking around at dump1090 after I got it set up and working. To be honest, it was mostly just the programming equivalent to peering into the depths of the source code and kicking at rocks. But, when I read that FlightAware was crowdsourcing data from dump1090, and that I could use Raspberry Pi for data acquisition, I decided that I wanted to participate. My reward? An enterprise level subscription to FlightAware! The installation was fairly simple, it only took about an hour and that includes download time for the PiAware disk image.

For better reception, I ordered an antenna tuned for 1090Mhz.
I’m not ready to wrangle with the HOA over getting an outdoor antenna just yet, so I got the indoor version and have it set up in a window upstairs. It picks up a lot more than the antenna that comes with the rtl-sdr and it is hidden behind the blinds.


Posted in RTL-SDR, Software | Leave a comment

Freq Show Project 2

In order to get my device setup to run the FreqShow python script I needed to make a few configuration changes. First I needed to be able to view my terminal on a bigger screen, I was beginning to get a headache from squinting at the TFT. First I boot the Pi, run $startx then I open a terminal and run $FRAMEBUFFER=/dev/fb0 startx & which will start xwindows on my connected HDMI monitor. So far, so good, next I need a network connection. I connect my usb WiFi and run $ lsusb to see if it is showing up. My device shows up as a RTL8188CUS 802.11n which is correct. I then check to see if the kernel has anything loaded to run the device… 8192cu shows up… and after a little googling that looks like it should work, but… I still need to configure the WiFi device to connect. In order to check to make sure the WiFi sees my wireless network I run $sudo iwlist wlan0 scan | grep Busted… erg. The pipe symbol is not working on my keyboard. I am also noticing that SHIFT+3 gives me the British Pound instead of the good ‘ol “hashtag aamazing”. My keyboard configuration must have defaulted back to GB somehow. $sudo dpkg-reconfigure keyboard-layout worked to load the menu and after I changed the settings to US, a reboot fixed the layout.

$sudo iwlist wlan0 scan | grep Now works and editing the /etc/wpa-supplicant/wpa-supplicant file to add:
network={ ssid="<My SSID>" psk="<My WiFi password>" }
worked to connect to my WiFi network after I pulled the interface down and back up again. <code>$sudo ifdown wlan0</code> then <code>$sudo ifup wlan0</code>.

Step 1: Adding packages
Install packages using apt-get. Run $apt-get update then apt-get install. The outline on adafruit lists several required packages: cmake, build-essential, python-pip, python-numpy, libusb-1.0-0-dev, and git.

Step 2: Building RTL-SDR
The steps from the adafruit guide worked without a hitch. I won’t regurgitate the steps here, but after pulling the source down from the git repository it was the typical cmake, make, make install process. My homework should be hunting down the meaning of the two flags used for cmake. One is obviously giving instructions to add rules for <code>udev</code> to manage the RTL-SDR hardware in <code>/dev</code>.

Step 3: Building Freq Show
The setup has instructions to run <code>$sudo pip install pyrtlsdr</code> to add python support for RTL-SDR. After pulling down the FreqShow source from the git repository, I gave the script a basic test to make sure everything was working. Once it loads I set the Center Frequency, to a local FM station, and the Minimum and Maximum Intensity. Both the graph for frequency intensity the spectrogram clearly show the signal centered on the station I chose. Check out the waterfall!

Shows a local FM station's frequency intensity plotted over time.

Shows a local FM station’s frequency intensity plotted over time.

Next Steps:

  • Does the code support a wider or more narrow frequency range?
  • How does varying the intensity impact different types of readings?
  • What else can I pick up?
  • I’d like to use this for the TPMS project to test whether I’m getting readings before recording.


Posted in RTL-SDR | Leave a comment

Freq Show Project

I found a great starter project for the Raspberry Pi and got inspired to build a Freq Show RTL-SDR scanner. The project is outlined on Adafruit’s site (by a Mr. Tony Dicola). I had everything needed except the PiTFT screen, so I picked up the recommended 3.5″ TFT off of their site (along with an optional battery charger so I can walk around sans cords.) I’m currently using an older 2.8″ TFT display while I wait on the new one.

Pictured is an older 2.8" TFT display.

Pictured is an older 2.8″ TFT display.

Tomorrow I’m going to finish up with the build, all the steps to load RTL-SDR look very familiar to what I encountered when setting up a Kali installation to run an RTL-SDR dongle. The only major difference is this build requires both the pip and numpy python packages to run Mr. Dicola’s FreqShow source code. If I can get plugged in without too much difficulty I am planning on making an attempt to get it to run on the 2.8″ TFT.

Once I’m fairly confident in picking up a few frequencies I’m thinking I may attempt to rebuild the TFT installation step by step using the manual method. It’s been a while since I’ve needed to recompile a kernel and it looked like there were a few steps in there where I could learn a thing or two.

I’m also considering combining this with another project I came across describing recording and decoding TPMS packets from the raw transmissions. There was a lot of very interesting “guess-work” done to pull details out of raw signal data that I was very impressed with. I would like to make a similar attempt at pinpointing the ID’s and readings of my own tires. This is one of those instances where the process is as fascinating, if not more fascinating, than the goal.


Posted in Uncategorized | Leave a comment

Violent Python Chapter One SHA-512 example

I’m tinkering with some examples from the “Violent Python” and “Grey Hat Python” texts and as I go I’m attempting to make sure the code works Python version 3.x… and on both Linux and Windows platforms. In “Violent Python” Chapter one you write a basic password cracker using a dictionary file.The Crypt() function, understandably, did not work on my Windows installation. As a work around I needed to install the passlib package.

I created and set the password for a user, aeneuman, on a linux installation and used:
# cat /etc/shadow | grep aeneuman
I copied the output from the command to my passwords.txt file. I then manually entered the password I used for the account into my dictionary.txt file; this way I have a known example to work from.

I used pip to import the passlib package and went to work updating the example code to work for SHA-512. I noticed the format for the line was slightly different. There is an additional delimiter, $ and a few extra fields. The first field determines the algorithm being used, 6 is used when SHA-512 is used for encryption. The next field contains the salt used to “seed” the encryption algorithm. How convenient! Computing the digest without a known salt would require a significant amount of extra computation. The third field is the digest. One important thing to note is that the example is using SHA-512 with the default number of rounds (equal to 5000). I needed to add this to my call to the sha512.encrypt function in order to get the a matching digest for my known example.

Example Digest:



[*] Cracking Password For: aeneuman
[+] Found Password: Whatmeworry?
Process finished with exit code 0


Posted in Cyber, Software | Leave a comment

Pythonic Rig

So, I’ve been thinking about taking a certain certification course that is very hands on and will require a certain amount of scripting and coding. I’ve got a few books in the same area of interest that use Python, so it will be my language of choice. I decided to update my rig’s IDE because even though I enjoy coding using Vim, I sometime like to fly through coding using intellisense and quick references.

I decided to upgrade Python 3.4 because if any of my old code or packages haven’t been ported over then it will be good practice; either working around it or porting the code myself. Also, packages like numpy/scipy/matplotlib have been moved over to 3.x for a good while… so, no excuses. I also decided to work from a Windows rig because my linux box is being used on another project currently.

I installed 3.4 without a hitch and then realized that I could not find a binary installer for numpy… hmm, pretty sure I used one before. So I downloaded the code and ran and hit an error, it stated it could not find a C++ compiler (even though I know at least one is out there). Rather than getting bogged down in hacking away… adding and removing system paths; I decided to take a step back. I did a little research and one of the alternatives is to use Anaconda. This looked interesting, but I did not want (or need) the number of libraries that come with that huge Distribution. Voila… MiniConda! Now I can use the package manager, Conda, to install only the packages I want to install.

I then installed PyCharm as my IDE and, under File->Settings for each project, I can set the Interpreter to the MiniConda or “pure” Python installation depending on what I’m working on. Now I’m happily coding away updating some old 2.x code while freshening up on my pep8. Also, my eyes are enjoying the Darcula theme!

Posted in Computers, Software | Leave a comment

ADS-B and dump1090

I picked up a digital TV USB dongle off of Amazon a while back and have been trying to find the time to hook it up and mess around. I was reading through an issue of Make and got inspired by an article, so I made a first pass and I’m glad I did! I am currently watching planes take off and land at the local airport in my browser and I have to say it is pretty cool. dump1090 will surf and decode ADS-B signals from local aircraft and “dump” that data. The interactive mode dumps (and refreshes) to the local console and using the -net switch will launch a web interface displaying the data in google maps.


  • EEPC Netbook running Kali Linux v1.1.0
  • NooElec NooElec R820T SDR & DVB-T (running lsusb shows: 0bda:2838 Realtek Semicinductor Corp. RTL2838 DVB-T)
  • GnuRadio, rtl-sdr, gr-osmosdr, and dump1090

I used apt-get to install GnuRadio and used git to pull the rtl-sdr source from it’s repository. I needed to add the libusb-1.0-0-dev to compile rtl-sdr. I then pulled from the gr-osdmosdr repository using git which required libboost1.49-all-dev to compile. (At some point I needed to run rmmod dvb_usb_rtl28xxu rtl2832 to get the usb device to function. I am not sure if this was because of user error or is simply a necessary step.) I pulled the dump1090 code from it’s git repository and compiled I was able to immediately run:./dump1090 --interactive --net --net-http-port 8081

I could then browse to and view aircraft as they move through the vicinity. Not all aircraft using ADS-B will encode their GIS or altitude. So, I need to manually adjust the map from “0,0″ to reflect my actual location.

I’m planning on rebuilding the setup because currently GnuRadio does not “see” the dongle as an input device. I’m assuming that there is probably just a setting in some esoteric .conf file needs to be adjusted… but getting some more experience with GnuRadio and the RTL2832 on some additional frequencies would be great. I am able to use rtl_sdr to dump local FM (ex. 90.1FM): ./rtl_sdr /tmp/cap.bin -s 1.8e6 -f 90.1e6 works like a charm.


Posted in Computers, RTL-SDR | Leave a comment

WordPress App on my Nexus 5

Maybe I’ll blog more! Please don’t hold your breath.

Continue reading

Posted in Uncategorized | Leave a comment

Kaggle Rocks

Sweet website for data geeks like me. You get to play with real world data and possibly win prizes to boot. But who cares, you did read the part where I said you get to play with real world data and work on really interesting problems, right? Every Comp Sci department should start a team.

Posted in Computers, Data, Geekery | Leave a comment

Motorcycles I want in some particular order…

The next bike I’m going to buy, hopefully this summer, a great all around mule. Good for highway and trail miles.
Triumph Scrambler

The next two could flip depending on if I end up living in town or out in the country.

A great off road two-stroke thumper for some serious canyon crawling and cow trail riding.
Suzuki RM 250

A really classic eye-turner for cruising around town on the weekends. As close as you can get to a 1960′s just-off-the-line bike in today’s market.
Royal Enfield Bullet G5 Classic

I’ll have to decide on what cruiser I want to buy way down the road. I’m torn between a Harley or a Victory. But, I’m probably going to be financially set for this bike 4 or 5 years down the road, so I’ve got plenty of time to mull it over.

Posted in Motorcycles, Rides | Leave a comment

Way to go Netflix

Grabbing the horns and airing an original series, with Kevin Spacey no less. Maybe the networks will finally catch on after Hulu and Netflix start taking over. I mean it’s not  a new season of Firefly, but it’s still really great news.

Posted in Geekery, TV | Leave a comment