The UK based Raspberry Pi Foundation has announced the availability of the latest advancement in the Raspberry Pi single board computer series. The Raspberry Pi 4 Model B offers:
1.5 GHz quad-core 64 bit Arm Cortex-A72 CPU
Up to 4 GB RAM
Full throughput gigabit ethernet speed
Dual band wireless networking
4k video decode in hardware
For the first time, the amount of memory is an option selected at time of purchase.
While some may view this upgrade as incrememental, those with larger memory or dual monitor needs will see this as a transformative improvement. A new release of the Raspian operating system based upon Debian Buster will support the RPi 4 B+ and its new features.
A complete desktop kit is also being offered. Can the Raspberry Pi replace your desktop PC? Perhaps.
Note: This article was originally published in March 2017. I’ve revisited and updated it in preparation for a talk that I’ll be giving at the 2018 Winter SWL Fest. I’ve simplified the installation process. While doing so, I learned that Google now requires an API key for the application to have access to their maps. My github fork of the dump 1090 code has been updated to account for this development.
A key component of next generation air traffic control is Automatic Dependent Surveillance – Broadcast (ADS-B). The current FAA mandate is for all included aircraft to output ADB-B transmissions no later than January 1, 2020. But you don’t have to wait to receive and map ADS-B. There is a lot of air traffic to be seen.
Some folks are using complete downloadable images that are set up to feed flight tracking services such as FlightAware. If you’re interested in doing this, The SWLing Post featured an article that you’ll enjoy. I wanted to explore whether I could use some items already on hand to see a map of overhead aircraft on any computer on my home network.
I pulled out an older Raspberry Pi Model B and a 4 GB SD-Card and installed a copy of Raspbian Stretch Lite. The Model B has been retroactively called a Raspberry Pi 1 Model B. It is equipped with 512 MB of RAM, two USB ports and a 100mb Ethernet port.
I decided to use a spare older RTL-SDR stick based on the RTL2832U and R820T chips. This USB device comes with a small antenna that I hoped would be good enough to get me started. It is not in any way optimized for the 1090 MHz signals that are used by ADS-B and is roughly 19 parts per million (ppm) off frequency. It cost a bit over $10 at a hamfest a couple of years ago. The designs have improved since the early models were offered. Newer models include a TCXO (thermally compensated crystal oscillator) for stability and accuracy.
I needed software to take signals from the RTL-SDR stick and plot them on a map. That software is “dump1090”, originally written by Salvatore Sanfilippo. I added an install stanza to the Makefile, along with a systemd service file, for a smooth system install. I also needed to install the RTL-SDR USB drivers. The complete installation runs “headless”, meaning no monitor, keyboard or mouse need be connected. Remote management can be done via ssh.
There is a security change that comes along with Stretch. ssh is now disabled by default. After copying the initial Stretch image to the SD card and BEFORE removing it to place the Raspberry Pi, mount the boot partition and create an empty file named “ssh”. If you are not using ethernet, you could also pre-configure wifi settings.
First, bring the Raspbian Stretch installation up to date.
–quiet runs in the background
–net starts a webserver so that you can access via a web browser
–lat set to YOUR decimal latitude (negative for South)
–lon set to YOUR decimal latitude (negative for West)
–ppm if you know the ppm tolerance of your device (otherwise omit)
–gain -10 which sets gain automatically
A full parameter list can be reviewed by typing dump1090 --help.
With an antenna connected you can perform a quick device check by typing dump1090 --interactive. If all is well you’ll see a screen like this:
Hex Mode Sqwk Flight Alt Spd Hdg Lat Long Sig Msgs Ti/
-------------------------------------------------------------------------------
A39D11 S 6 1 4
A25D36 S 1775 7 4 3
AAA593 S 2575 205 075 7 2 7
A25238 S 4 1 12
A0480B S 19650 8 28 3
ACF4DD S 3825 7 2 14
A41F61 S FDX3018 2800 211 025 40.428 -74.332 23 83 0
A6FFFE S 1753 LXJ550 30475 371 226 8 63 0
C060B3 S 4625 6 14 1
ACF69B S 23250 6 25 1
A2D27C S 24000 13 42 2
A0BF90 S 9500 249 257 5 3 9
A7D30A S 40000 8 111 1
AE0192 S SPAR958 32675 22 93 0
ACC040 S 7825 8 146 2
ACA5DF S 26600 6 79 0
A80C7B S 4550 9 108 1
A7CC00 S 7825 35 123 0
ACF841 S 1507 14425 50 132 0
A8C802 S NKS149 23575 332 216 39.995 -74.262 12 160 0
A61949 S UAL1105 2725 14 60 0
AC2E20 S 1006 19925 22 130 0
AB766A S DAL1526 8525 216 038 40.444 -74.213 81 249 0
AA4440 S 5400 253 066 6 6 13
Control-C exits this screen.
Now start the dump1090.service.
sudo systemctl start dump1090.service
If all goes well, a netstat -an will show that there is a binding to port 8080.
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN
Now you can start up a web browser from any computer on your home network and see a map of planes overhead. If your router supports internal dynamic DNS you can name the RPi and access via something like http://skynet:8080. Alternatively, use the IP address, which can be obtained via ifconfig.
In this case, the URL would be http://192.168.1.123:8080.
Once the map appears, re-position it to your part of the world and enjoy learning about what is flying overhead. You can enhance your enjoyment by listening to your closest airport tower or air traffic control frequencies on a scanner. These transmissions use amplitude modulation (AM) and can be monitored an another RTL-SDR stick or a scanner, even a relatively old model.
The K2DLS DV4mini image for the Raspberry Pi 2 and 3 (only!) has been updated to include the October 12 release of the DV4mini Control Panel. This includes XRF through letter Z and REF up to 100 for the D-Star users. The image will fit nicely on an 8 GB SD Card.
A common concern of those running applications on a Raspberry Pi is SD Card exhaustion. It seems that after some amount of write activity, some SD cards fail to record further data. I first noticed this on an APRS system when system updates disappeared upon reboot.
The systemd journal is a useful tool that has largely replaced the syslog in modern Linux systems. It can also be redirected from the SD card to volatile memory. Note that by changing this you will reduce the number of SD card writes but your journal will not survive reboots.
The key to changing the storage location of the journal is found in /etc/systemd/journald.conf. Look for this line:
[Journal]
#Storage=auto
Uncomment the line by removing the #. Change auto to volatile:
[Journal]
Storage=volatile
Restart the systemd journal and your journal data will be written to /run/log, which is memory resident.
sudo systemctl restart systemd-journald.service
Only use good quality SD cards such, such as the SanDisk Ultra Class 10 memory cards. I recently had one that failed but was pleased when the SanDisk warranty program replaced the card at no charge.
A key component of next generation air traffic control is Automatic Dependent Surveillance – Broadcast (ADS-B). The current FAA mandate is for all included aircraft to output ADB-B transmissions no later than January 1, 2020. But you don’t have to wait to receive and map ADS-B. There is a lot of air traffic to be seen.
Some folks are using complete downloadable images that are set up to feed flight tracking services such as FlightAware. If you’re interested in doing this, The SWLing Post recently featured an article that you’ll enjoy. I wanted to explore whether I could use some items already on hand to see a map of overhead aircraft on any computer on my home network.
I pulled out an older Raspberry Pi Model B and a 4 GB SD-Card and installed a copy of Raspbian Jessie Lite. The Model B has been retroactively called a Raspberry Pi 1 Model B. It is equipped with 512 MB of RAM, two USB ports and a 100mb Ethernet port.
I decided to use a spare older RTL-SDR stick based on the RTL2832U and R820T chips. This USB device comes with a small antenna that I hoped would be good enough to get me started. It is not in any way optimized for the 1090 MHz signals that are used by ADS-B and is roughly 19 parts per million (ppm) off frequency. It cost a bit over $10 at a hamfest a couple of years ago. The designs have improved since the early models were offered. Newer models include a TCXO (thermally compensated crystal oscillator) for stability and accuracy.
I needed software to take signals from the RTL-SDR stick and plot them on a map. That software is “dump1090”, originally written by Salvatore Sanfilippo. I added an install stanza to the Makefile, along with a systemd service file, for a smooth system install. I also needed to install the RTL-SDR USB drivers. The complete installation runs “headless”, meaning no monitor, keyboard or mouse need be connected. Remote management can be done via ssh.
First, bring the Raspbian Jessie installation up to date.
sudo apt-get update
sudo apt-get upgrade
Add some needed packages.
sudo apt-get install git cmake libusb-1.0-0-dev
Compile and install RTL-SDR drivers.
git clone git://git.osmocom.org/rtl-sdr.git
cd rtl-sdr
mkdir build
cd build
cmake ../ -DINSTALL_UDEV_RULES=ON
make
sudo make install
cd ~
sudo cp ./rtl-sdr/rtl-sdr.rules /etc/udev/rules.d/
Prevent native DVB-T drivers from loading.
cd /etc/modprobe.d
sudo vi blacklist.conf
Add blacklist dvb_usb_rtl28xxu to the file and save. You may now reboot. After the system comes back online, plug in your RTL-SDR device and the driver should load. You may test by running rtl_test -t. If the device is properly seen by the driver you should see the following:
Found 1 device(s):
0: Realtek, RTL2838UHIDIR, SN: 00000001
Using device 0: Generic RTL2832U OEM
Found Rafael Micro R820T tuner
Supported gain values (29): 0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6
[R82XX] PLL not locked!
Sampling at 2048000 S/s.
No E4000 tuner found, aborting.
Don’t be concerned by the “No E4000 tuner found” message. The E4000 is an older chipset that is no longer used by today’s RTL-SDR devices.
Compile and install the dump1090 code.
https://github.com/K2DLS/dump1090.git
cd dump1090
make
sudo make install
sudo systemctl daemon-reload
–quiet runs in the background
–net starts a webserver so that you can access via a web browser
–lat set to YOUR decimal latitude (negative for South)
–lon set to YOUR decimal latitude (negative for West)
–ppm if you know the ppm tolerance of your device (otherwise omit)
–gain -10 which sets gain automatically
A full parameter list can be reviewed by typing dump1090 --help.
With an antenna connected you can perform a quick device check by typing dump1090 --interactive. If all is well you’ll see a screen like this:
Hex Mode Sqwk Flight Alt Spd Hdg Lat Long Sig Msgs Ti/
-------------------------------------------------------------------------------
A39D11 S 6 1 4
A25D36 S 1775 7 4 3
AAA593 S 2575 205 075 7 2 7
A25238 S 4 1 12
A0480B S 19650 8 28 3
ACF4DD S 3825 7 2 14
A41F61 S FDX3018 2800 211 025 40.428 -74.332 23 83 0
A6FFFE S 1753 LXJ550 30475 371 226 8 63 0
C060B3 S 4625 6 14 1
ACF69B S 23250 6 25 1
A2D27C S 24000 13 42 2
A0BF90 S 9500 249 257 5 3 9
A7D30A S 40000 8 111 1
AE0192 S SPAR958 32675 22 93 0
ACC040 S 7825 8 146 2
ACA5DF S 26600 6 79 0
A80C7B S 4550 9 108 1
A7CC00 S 7825 35 123 0
ACF841 S 1507 14425 50 132 0
A8C802 S NKS149 23575 332 216 39.995 -74.262 12 160 0
A61949 S UAL1105 2725 14 60 0
AC2E20 S 1006 19925 22 130 0
AB766A S DAL1526 8525 216 038 40.444 -74.213 81 249 0
AA4440 S 5400 253 066 6 6 13
Control-C exits this screen.
Now start the dump1090.service.
sudo systemctl start dump1090.service
If all goes well, a netstat -an will show that there is a binding to port 8080.
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN
Now you can start up a web browser from any computer on your home network and see a map of planes overhead. If your router supports internal dynamic DNS you can name the RPi and access via something like http://skynet:8080. Alternatively, use the IP address, which can be obtained via ifconfig.
In this case, the URL would be http://192.168.1.123:8080.
Once the map appears, re-position it to your part of the world and enjoy learning about what is flying overhead. You can enhance your enjoyment by listening to your closest airport tower or air traffic control frequencies on a scanner. These transmissions use amplitude modulation (AM) and can be monitored an another RTL-SDR stick or a scanner, even a relatively old model.
I wanted to install the Let’s Encryptcertbot package on a Raspbian Jessie installation that hosts my Asterisk PBX. I had manually installed a certificate but decided that the automated certificate installation is advantageous. Certbot is available as a backport.
W: GPG error: http://ftp.debian.org jessie-backports InRelease: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY 8B48AD6246925553 NO_PUBKEY 7638D0442B90D010
Step 3 — The two bolded keys needed to be added to the gpg keyring:
# gpg --keyserver pgpkeys.mit.edu --recv-key 8B48AD6246925553
gpg: requesting key 46925553 from hkp server pgpkeys.mit.edu
gpg: key 46925553: public key “Debian Archive Automatic Signing Key (7.0/wheezy) ” imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
# gpg -a --export 8B48AD6246925553 | sudo apt-key add -
OK
# gpg --keyserver pgpkeys.mit.edu --recv-key 7638D0442B90D010
gpg: requesting key 2B90D010 from hkp server pgpkeys.mit.edu
gpg: key 2B90D010: public key “Debian Archive Automatic Signing Key (8/jessie) ” imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
# gpg -a --export 7638D0442B90D010 | sudo apt-key add -
OK