Comnav, a radio console on a Raspberry Pi

Comnav is a portable communication and navigation console. It’s a Raspberry Pi 4 with the official 7-inch touchscreen, an HQ camera, and an RTL-SDR Blog V4 dongle that receives from 500 kHz to 1.7 GHz. It boots straight into a fullscreen console with no desktop, no login and no keyboard. Position comes from an old Moto G7 broadcasting its GPS over Wi-Fi.

It plots aircraft from ADS-B over a vector coastline, verified against real traffic past 20 nautical miles. It shows a spectrum waterfall, decodes AIS from ships, reads tire-pressure sensors off passing cars (a Toyota at 32.75 PSI inside thirty seconds), and has a scanner that searches the band, listens to what it finds, and decides whether each signal is voice, data, Morse or a dead carrier.

What the air taught it

The scanner passed every bench test before it met an antenna. These are the things only real signals showed, mostly Olympia’s NOAA weather transmitter on 162.475 MHz.

Real speech doesn’t look like the model of speech. The classifier was built against band-limited noise and called NOAA a carrier. Off the air, narrowband FM voice puts only a third of its energy between 300 Hz and 3 kHz. What survives is the envelope: speech varies by 0.6 to 0.7 of its own mean, block after block, where open squelch varies by 0.1 and data by 0.01.

A vote must not count silence. Speech has gaps, the gaps read as carrier, and a plain majority called half of every real conversation dead air. Voice is a positive identification and carrier is the absence of one, so a second that’s 30% voice is voice.

One wrong answer must not be permanent. Before those fixes, the scanner auto-blocked NOAA after twenty seconds of reading it as a carrier. That was the feature working correctly on a wrong input. Blocking now takes three separate strikes.

SIGKILL wedges the dongle. Killing the radio process outright leaves the USB device streaming into nothing. After eight restarts it opened fine, reported no error, and delivered no samples, and the scanner sat in a pipe read forever. Readers get SIGTERM now, and a block that doesn’t arrive in five seconds counts as a dead radio.

The classifier shows its work. Every reception carries the numbers its label came from, which turned “it says DATA and I don’t know why” into a five-minute diagnosis.

Where it stands

The aircraft plot, AIS decoding, the waterfall, sensor decoding, GPS and the scanner are verified on the Pi against live signals. AIS decodes correctly when tested with injected signals, but no real ship has shown up. Budd Inlet is a dead end and the shipping lanes are well north. AM airband search, Morse on the air and anything on HF are still untested.

Keys

j k
next and previous link
Enter
open it
/
search
g h
home
g e
essays
g r
recipes
g i
instructions
g g
top of the page
G
bottom of the page
u
up a level
H L
back and forward
?
this list
Esc
close, or leave a text box