Songs propagating through the air, decoded at sea
Offshore, the three things you most care about are the weather, the menu, and the watch scheme. For weather predictions, I built a Navtex receiver that runs on a Raspberry Pi minicomputer. Its power needs are trivial compared to Starlink.1
Navtex is part of the global maritime distress and safety system (GMDSS). Coast stations broadcast navigational warnings and weather forecasts on 518 kHz. In the North Sea and Baltic region, twenty-one stations from Corsen to Tallinn share a four-hour cycle.2 The technology is from the 1970s and reads like it: a hundred baud, two tones 170 Hz apart, a teleprinter code with built in error correction to survive a noisy channel.
Why bother with it in times of broadband internet via satellite? The reason ships listen to the radio at all goes back to the Titanic. Her two radio operators were busy sending passengers’ telegrams, on which they earned a commission, while ice warnings from the Mesaba and the Californian never reached the bridge. The inquiry that followed pushed through the convention that still requires every ship at sea to keep a radio watch.3 Navtex is a direct descendant of that night.

The receiver: a Raspberry Pi Zero 2 W in a project box with a rotary knob and a small OLED display.
I built my own receiver rather than buy one, because I wanted something I could open up and extend. It is a Raspberry Pi Zero 2 W in a project box, with a knob, a tiny display, and a software-defined radio dongle the size of a memory stick feeding off a weatherproof antenna by NASA Marine. The whole thing draws less than two Watt, runs unattended, saves messages to a database, and pushes the urgent ones to my phone. I first played with a wire antenna in the mast over a stormy Christmas in Terschelling in 2023, decoding weather charts on a laptop and wondering whether a Pi might one day do it on its own. Then the project slept for two years.
The receiver’s name is Ilma. In the Finnish Kalevala, Ilma is the air, and the songs of the world travel through it to act at a distance.
Here’s a Dutch Coast Guard Navtex transmission sent from Den Helder – a gale warning. The barometric pressure had just dropped by 4 hPa over 6 hours.
PB07
031738 UTC JUN 26
GALEWARNING, 03 JUN 17:33 UTC.
GERMAN BIGHT. HUMBER. THAMES. DOVER.
SOUTH TO SOUTHWEST 7.
DOGGER.
SOUTH TO SOUTHWEST 6.
END OF GALEWARNING
Straight lines
In addition to Navtex, Ilma also decodes RTTY and WEFAX. Weather fax sends the actual chart, isobars, fronts and all, as a slowly scanned image rather than as text. Decoding it sent me back to mathematics I should have learned at school. The radio delivers its signal as pairs of numbers, one of them an “imaginary” number, the square root of a negative. Descartes coined the word as an insult in the 1630s, in the Dutch Republic he had moved to for its freedom of thought. Three centuries later those same imaginary numbers are quietly the foundation of every digital radio. Fitting, then, that my test signals came in over a receiver in the Netherlands.
The hard part of fax is that two clocks must agree: the transmitter’s, in Pinneberg near Hamburg, and the cheap one in my dongle. They never quite do. A drift of a few parts in a million is enough to walk the image sideways line by line, so a chart that should be square comes out as a leaning parallelogram. Most of the work was teaching Ilma to measure that drift and pull the lines back upright.

It finally came right with a chart from the Royal Navy transmitter at Northwood: a 48-hour wind forecast for the North Atlantic, received at my desk in Switzerland some 750 km (400 nautical miles) away. The vertical lines are straight, which after weeks of crooked ones was a triumph.
The same hardware reads RTTY, the radioteletype the German weather service still sends on short wave. The first clean message it caught was a navigational warning from Pinneberg: a lightbuoy off the island of Juist had gone dark overnight.
The messages are read from a phone or tablet over the boat’s wifi, filtered by area and type, with the barometer’s 24-hour trend alongside. Ilma’s code is open source.

The web interface. A filter selects message type, for example navigational warnings or meteorological forecasts.
Footnotes
-
Starlink Mini draws around 30 W in active use per SpaceX’s datasheet; a Raspberry Pi Zero 2 W with the radio dongle attached draws roughly 1–2 W. ↩
-
Schedule per ITU GMDSS.1/Circ.21, Annex 7, Table 4, the IMO-coordinated list of Navtex coast stations for NAVAREA I (Northeast Atlantic, North Sea, Baltic). ↩
-
SOLAS regulation IV/12.2 requires every ship at sea to keep a radio watch for maritime safety information. On the Titanic, see the British Wreck Commissioner’s Inquiry, 1912, and the Titanic Inquiry Project. ↩