Skip to main content

Install rtl-sdr on a C.H.I.P

Check your hardware

First you should make sure that your rtl-sdr stick is properly connected to your c.h.i.p and that your power source is suitable to drive the chip plus the rtl-sdr. Some of them are consuming more than 500mA (which is out of spec for USB2.0) which can cause the system crashing if under load.

Connect your rtl-sdr to the c.h.i.p, login and run lsusb -t. You should see an output like the one on the screenshot below. The last two lines are the rtl-sdr stick.

Read More

The best for last: A complete Docker-RPi-RTL-SDR ADSB/ACARS Solution

 

After my last two blogposts [1][2], many of you asked “Why Docker on a Raspberry?” if you can install all the software directly (“There are so much tutorials“). Yeah, that’s right – but think how much work you have to invest to get the following setup running:

sdr_gear

  • Raspberry Pi 2 & 2 RTL-SDR Sticks
    • Nr 1 is monitoring ADSB via dump1090
    • Nr 2 is monitoring ACARS on 2 frequencies via acarsdec
  • FR24FEED (www.flightradar24.com) is taking the data from dump1090 and feeds it to FR24
  • FlightAirMap (PHP/MySQL) is taking the data from acarsdec and dump1090 to generate a comprehensive statistic and live map of your received data.
  • A Mysql server for storing the Data behind FlightAirMap

You need five services which you have to install/compile, to configure, to link and to manage.

But there is a much more convenient solution: docker-compose and one (!) configuration file 🙂

FlightAirMap & dump1090 Screenshots

flightairmap_3
FlightAirMap

flightairmap_2
FlightAirMap

flightairmap_1
FlightAirMap

dump1090
dump1090

Read More

RPI + Docker + ACARS: Receive “Aircraft SMS”

After the fantastic feedback i got for my blog post about ADSB reception with RTL-SDR (and Docker), the next point in my list is ACARS.

The basics: What is ACARS?

ACARS is short for Aircraft Communications Addressing and Reporting System, a digital data link between an aircraft and a ground station and/or satellite.

ACARS Terminal
ACARS Terminal

The on-board avionic computer system (aircraft) consists of the ACARS Management Unit (ACARS MU) and a Control Display Unit (CDU) for sending and receiving digital information messages from the ground-based stations.

Ground equipment is made up of a network of radio transceivers managed by a central site computer called AFEPS (Arinc Front End Processor System), which handles and routes messages. Generally, ground ACARS units are either government agencies such as the Federal Aviation Administration, an airline operations headquarters, or, for small airlines or general aviation, a third-party subscription service. Usually government agencies are responsible for clearances, while airline operations handle gate assignments, maintenance, and passenger needs. (Wikipedia)

 

This is a message send by the CFD (Central Fault Display) of an aircraft 😉

#CFB.1/WRN/WN1511161031 383100506MAINTENANCE STATUS TOILET

Or something like this

N12114 CO0070 1EHAM REQUEST GATE ASSIGNMENT ETA0447

You’re now interested how to receive such messages with minimal Hardware? You have your Raspberry Pi 2 ready? Docker installed? RTL-SDR attached? Then read on.

If not, start with my earlier blog posts to get the basics:

Read More

Raspberry Pi + Docker + RTL-SDR

In the last days, i tinkered with different things: I installed Docker onto a Raspberry Pi 2, built several docker images [1][2] and got myself two new RTL-SDR-Sticks.

Today, I’ll bring all these Projects together and show you how to build a virtual aircraft radar (screenshot) – so fasten your seatbelt 😉

DUMP1090
DUMP1090 Screenshot

I’m ready – tell me what I need

  • You’ll need a Raspberry Pi 2  – yes, 2! – Of course, you can go with a Pi 1 – but to be honest, this thingy has just not enough ram and only one core so it’s not really suitable for docker. But hey, if you like the pain – go on 😉
  • The Pi has to be prepared to run Docker – You can use the guide from my blog post if you need help
  • And of course you need a RTL-SDR Stick – so if you ever watched DVB-T on your Laptop, the chances are good that you already have a suitable Receiver. Some people over at Reddit compiled a nice list of sticks which are suitable for our little experiment. Oh, and an Antenna would be awesome 😉

List completed? All points checked? Great, let’s go on!

Read More

New RTL-SDR gear

I’ve played with these RTL-SDR sticks for several years now and I am still amazed about the possibilities I have with these cheap pieces of hardware. I managed to receive several data modes like ADS-B, ACARS, AIS and the wireless outdoor thermometer of my neighbor – I’ll write several follow-up posts on this topics 🙂

I decided to get two new Sticks for my collection – this time with a TCXO oscillator to get a more stable reception.

Modified Stick? Whats the deal?

Shift over time (source: rtl-sdr.com)
Shift over time (source: rtl-sdr.com)

A common problem for these sticks is frequency stability over time. As the oscillator is heating up under load, the frequency of the crystal measured in ppm (parts per million) will change – which causes the frequency to shift. Typical values for cheap sticks are +-150ppm. The real amount of frequency should could be several kHz, which make this behaviour really annoying for headless receivers (like ADSB receivers on a Raspberry Pi) – especially if you try to receive a narrow signal.

 

 

 

Read More

Optimise your Dockerfile

While i am building images for Docker on a Raspberry Pi, I searched for a way to keep my Images as small as possible because of the limited amount of disk space and also because of my $&#@ internet connection at home (really a pain in the $#@ if you want to push bigger images to the docker hub).

Let’s start with the base image for all of my sdr tools. This image derives from resins’s Debian Jessie Image and contains the basic “toolchain” for building/compiling rtl-sdr applications.

So, that’s the original Dockerfile were using to build my Baseimage (sysrun/rpi-rtl-sdr-base):

This Dockerfile gives us a container size of ~307MB.

Optimise the process

We don’t need the package cache (downloaded packages) to be integrated in our container. So adding a apt-get clean after our install will save us some space. The apt-get update is populating the /var/lib/apt/lists/ with stuff we also don’t need after the build. So just remove them

This saves us 22MB – in this case not much. But depending on the packages you install, it could be more.

If you’re doing this for a base container, keep in mind that you have to run apt-get update to repopulate your apt cache. If you miss this step, your apt-get install calls will fail! Also clean up again after you installed the new packages.

The final Dockerfile