Category: Airband

LakeShark: P25 Phase 1, FM, POCSAG, ADS-B and Sub-GHz with an RTL-SDR on the LilyGO T-Display P4 (ESP32-P4)

Thank you to Samuel Reynolds (aka SAMS0N1TE on GitHub), for writing in and sharing with us his project called 'LakeShark'. LakeShark is firmware for the LilyGO T-Display P4 (an ESP32-P4-based microcontroller with a 4.1 Inch touchscreen, detachable keyboard, GPS, and nine-axis motion sensor), which allows a USB-connected RTL-SDR Blog V3 or V4 to be used for P25 Phase 1 trunking, FM, POCSAG, ADS-B, and sub-GHz capture. Samuel writes:

LakeShark supports P25 Phase I conventional and trunked voice, analog FM, POCSAG pager decoding and 1090 MHz ADS-B, with a spectrum display and waterfall for tuning around.

There are a few other things that might interest your readers:

  • Passive sub-GHz pulse recording with export to Flipper .sub files, so captures can be transferred to a Flipper and opened in its Sub-GHz app.'
  • Offline maps showing aircraft and MeshCore nodes, plus GPS track recording with GPX export.
  • Mixed P25/FM scan lists and a field journal for saving notes with radio readings, position and sensor data.
  • MeshCore messaging and LoRa experiments using the onboard SX1262. The optional MIX-RF keyboard adds CC1101, nRF24 and NFC tools.

The T-Display-P4 touchscreen works on its own, but you can also use the keyboard or connect a Flipper Zero over Bluetooth. LakeShark also supports a headless ESP32-P4 Nano receiver controlled from the Flipper. That lets you keep the radio and antenna in a bag while tuning from the Flipper.

Version 2.2.0 is available now. Experimental work includes manually tuned P25 Phase II decoding, HackRF support and GPS-based scan filtering. Those have separate limitations documented in the wiki. Next steps include live-RF validation, Phase II automatic call following and further work on portable power and everyday usability.

There’s also an experimental CELL WATCH app for surveying cellular-band activity and comparing it against a saved baseline. It’s meant for spotting changes worth investigating, rather than identifying a cell site as malicious or claiming to detect an IMSI catcher.

LakeShark builds on xtrsdr, OP25 and other open-source projects. ADS-B Scope also provided a reference for part of the aircraft position decoding. Full credits are in the README.

Showcase, photos and overview:
https://terminalbay.com/?m=lakeshark-showcase

Source and credits:
https://github.com/SAMS0N1TE/LakeShark

Version 2.2.0 downloads:
https://github.com/SAMS0N1TE/LakeShark/releases/tag/v2.2.0

Flipper companion app:
https://github.com/SAMS0N1TE/LakeShark-Flipper

Wiki and guides:
https://terminalbay.com/?m=wiki

LakeShark is part of a growing repertoire of ESP32-P4 microcontroller RTL-SDR applications. Just last week we posted about OrcSDR, a standalone RTL-SDR application built around the M5Stack Tab5. Back in May, we also posted about a portable open-source 1090 MHz ADS-B firmware for the LILYGO T-Display-P4.

Previously, RTL-SDR applications have only run on full general-purpose CPUs running an OS like Windows/Linux/MacOS/Android. But the ESP32-P4 has shown that commodity microcontrollers are now powerful enough to run an RTL-SDR too, via custom bare-metal drivers and software.

LakeShark Running on A LilyGO T-Display-P4 next to a HackRF (left) and Flipper Zero (right).
LakeShark running on A LilyGO T-Display-P4 next to a HackRF (left) and a Flipper Zero (right).
LarkShark Screens
LarkShark Screens

SDR–: A Software-Defined Radio Application with Visual Signal Path

Thank you to Julian for writing in and sharing with us his interesting project called SDR-- (SDR minus minus). SDR-- is an open-source app that lets you wire devices, decoders, and displays together on a desktop window or browser-based canvas. It is described as "a software-defined radio application with a visual signal path. Connect devices, decoders, displays, and recorders on a canvas, then pin the controls you use to a rack."

A separate Rust server, which can sit on the same PC or a remote computer (like a Raspberry Pi), handles the DSP. Julian notes that SDR-- has native RTL-SDR support, and decoders for ADS-B, AIS, POCSAG, FT8, SSTV, and RDS are already implemented, with more in progress. The app also has a built-in signal generator and a repository of IQ recordings that can be used for experimentation and testing the various decoders.

The project releases are available on GitHub releases, and they cover Windows, Linux, and MacOS. 

SDR-- Screenshot
SDR-- Screenshot

AVARE ADS-B Receiver for Android Updated

All the way back in 2014, we posted about Avare ADS-B Receiver, which back then was a simple RTL-SDR ADS-B receiver and map for Android devices. The author of this app, TFL, recently wrote in and shared that the app is now a modern, fully featured ADS-B app, having added many new features such as UAT decoding with aviation weather products and NEXRAD weather radar/lightning strikes shown on the map, aircraft pictures, better SDR support, traffic filters, and audio alerts.

ADSB Receiver lets you collect live air traffic data directly on your Android device using any RTL-SDR (RTL2832U) dongle and an OTG cable. No cloud. No fees. Just raw RF decoded in real time.

  • Dual-band reception — 1090 MHz Extended Squitter (ES) for worldwide traffic, and 978 MHz UAT for US general aviation traffic plus integrated weather products (METAR, TAF, PIREP, SIGMET, AIRMET, WINDS, NOTAM)
  • Live aircraft details — tap any target on the map to pull a live photo alongside aircraft type and registered operator
  • NEXRAD weather imagery — receive official NEXRAD radar images over UAT 978 MHz
  • Network send/receive —
    • Forward all received data to any GDL90-capable EFB app (AvareX, ForeFlight, iFlyGPS, DroidEFB, and others)
    • Stream dump1090/dump978 frames to any SDR tool on your network, or ingest from an external source
  • Bias Tee and Gain support — power an external LNA or active antenna, adjust Gain as needed
  • Proximity alerts — configurable range-based traffic warnings with optional callsign filtering; useful for drone pilots monitoring airspace
  • Data logging — save all received data
  • Metric support — instead of imperial values

Webpage: https://hiz.ch/index.php/adsb-receiver-avare-adsb

Play Store Links:

https://play.google.com/store/apps/details?id=bs.Avare.ADSB
https://play.google.com/store/apps/details?id=bs.Avare.ADSB.Pro

AVARE ADS-B Receiver Android App
AVARE ADS-B Receiver Android App

FoxSDR: A From-Scratch Software-Defined Radio Receiver for Windows

Thank you to an anonymous contributor (known only as wonderingStars on GitHub) for writing and sharing their project, 'FoxSDR'. FoxSDR is advertised as a 'software-defined radio receiver written from scratch'. Like most receiver programs, it includes a spectrum and waterfall and various demodulation modes.

Key features include a Windows desktop application and optional browser-based interface, a built-in ADS-B decoder and map, and native support for drivers for the HackRF, Airspy R2/Mini/HF+, RTL-SDR, SDRplay RSPs, Mirics MSi2500, RX888 mk2 and the ALDAMN-Pluto. Being browser-based means that the server can run remotely and be placed close to the antenna to reduce signal losses, and the SDR can be accessed from any networked device. They have also recently added AIS, APRS, SSTV, Morse, RTTY, POCSAG, Inmarsat-C, ACARS, SSTV, NOAA APT, GOES HRIT/LRIT, WEFAX, two-tone paging, EAS/SAME alerts, 406 MHz distress beacons, VOR, ERT utility meters, 433 MHz weather sensors, a satellite pass predictor and map, a band survey engine, and OpenStreetMap map imagery.

The contributor writes that FoxSDR is currently Windows-only; however, they will add full Linux support once the Windows version is completely stable. They note that they are in the final stages of the beta and that, based on telemetry, they have over 100 installs in the last month and a few dozen people using it on any given day. They note that their three-year development plan includes support for all operating systems, including Android.

FoxSDR Interface
FoxSDR Interface

ADSBee m1421: The World’s Smallest Dual-Band ADS-B Receiver

'Pants for Birds' recently announced the release of the ADSBee m1421 module, which they describe as the world's smallest dual-band ADS-B receiver.

The ADSBee m1421 is based on the LR2021 chip, and while it supports dual-band 1090 MHz and 978 MHz UAT, they note that 1090 MHz support is somewhat limited. This is because the LR2021 can listen to only one Mode S packet type, so it cannot receive squawk codes and receives fewer non-ADS-B packets. This, however, does not affect the usual application: tracking aircraft. The LR2021 also cannot implement timestamping or RSSI, meaning that MLAT is not possible.

Apart from its ADS-B capabilities, they have also broken out the LR2021’s 2.4 GHz front end as a waveguide, allowing it to be used as a mesh transmitter or LoRa receiver.

 

The ADSBee m1421 Module - Described as as the world's smallest ADS-B Receiver.

Overhead 1090: New iOS/tvOS ADS-B Mapping App for Local PiAware/dump1090 Receivers

Thank you to Michael Russo for submitting news about the release of his new Apple iOS/tvOS app called 'Overhead 1090'. Overhead 1090 is an iPhone/iPad/Apple TV client for dump1090-compatible RTL-SDR-based receivers such as dump1090-fa, readsb, and PiAware builds. Michael writes:

It reads the aircraft.json feed over the LAN and adds what the stock web maps don't have: a persistent logbook of every airframe received, daily traffic reports, and a sightings feed for emergency squawks and rare types. The Apple TV version is the headline feature: a full-screen steerable radar scope for the living room.

Everything is local. No cloud, no account, no analytics (App Store label is "Data Not Collected"). It supports multiple receivers and includes a demo mode with sample traffic. One $4.99 purchase covers all three platforms.

Overhead1090 Apple App Screenshots
Overhead1090 Apple App Screenshots

Overhead Sky: A Mac App That Names Local Aircraft in your Menu Bar

Thank you to Chris Miller for submitting news about the release of his (paid) Mac app called Overhead Sky. This app sits in the MacOS menu bar, and names aircraft as they pass overhead, by making use of the adsb.lol ADS-B data aggregator.

The app costs $24.99 one off, or $3.99 monthly, however Chris writes that people who feed adsb.lol with an RTL-SDR or other SDR get the app discounted at $9.99. Chris writes that detecting people feeding to adsb.lol was a challenge, and shares his methods below:

I started on a commercial flight-data API and found it bills per aircraft returned rather than per call, which means one person leaving the app running over a busy sky costs more in a month than the app costs in a year. So I went to the community feeds and read the licences properly, and most said no. airplanes.live is non-commercial. ADS-B Exchange's affordable tier is a non-commercial community tier, and the site is Jetnet-owned now. adsb.lol is ODbL, which permits commercial use with attribution. So that is what it runs on, credited in the app, on the privacy page, and in the App Store description.

Two things follow from being a paid product living on a volunteer commons, both written down before it went on sale. Ten percent of profit goes back to the ADS-B open-data community, totalled once a year and published so the promise stays checkable. And anyone who feeds pays $9.99 instead of the full sticker.

The verification is the part I think fits your readership best. adsb.lol has no login, so the app calls GET /0/me, which reports the caller's own receiver based on the source IP of the request. If your Mac shares a public IP with your receiver, your beast or mlat client shows up and you are verified with no input at all. That call has to run from the user's machine rather than my server, because through a proxy it would judge my IP and match nobody.

The same reasoning sets the data path. Positions go from the Mac straight to adsb.lol, coarsened to about a one kilometre square first, because adsb.lol rate limits per IP and routing every user through one Cloudflare egress would have earned the block it deserved. Only route lookups pass through my server, carrying a callsign already on the user's screen and no location, unlogged.

So that leaves two honest gaps, since they belong in any piece about this. The app reads the aggregated network rather than a local dump1090 or tar1090 feed, so it is API-backed rather than receiver-backed today. And I do not run a receiver myself yet (though I hope to eventually).

Overhead Sky
Overhead Sky

9GRadio: An Android RTL-SDR App for Spectrum Monitoring and Decoding Analog/HAM/Aviation/Marine Radio Traffic

Thank you to Richard (9G5AR) for writing in and sharing with us the release of his open source Android app called 9GRadio. Richard writes that 9GRadio is an app designed for spectrum monitoring/analysis and the decoding of analog/ham/aviation and marine radio traffic.

In terms of demodulation it supports AM, FM, NFM, WFM, WFM Stereo, USB, LSB, CW, CWR, DSB and RAW IQ modes.

For digital decoding, it supports APRS, digital voice modes such as DMR, D-STAR, YSF, dPMR, NXDN, and aircraft, marine, and datalink modes such as ADS-B, AIS, ACARS, RDS, and multilateration.

Richard also notes that 9GRadio includes a full multilateration stack for locating transmitters, which works with 2+ networked 9GRadio receivers. Interestingly, the multilateration stack is noted to be protocol-agnostic, meaning it should work not only with ADS-B, but also with any mode that provides a digital identity for a transmission, such as AIS, ACARS, RDS, and digital voice modes.

The app is not available on the Google Play Store, but the APK is available for sideloading on the project's GitHub Releases page, along with the open source code.

9GRadio GIF of various screens
9GRadio GIF of various screens