Ilma, a Navtex Receiver for Raspberry Pi

sailingcode1 pts1 comments

Ilma, a Navtex Decoder for the Raspberry Pi | Sailing through Code 25/05/2026 Ilma, a Navtex Decoder for the Raspberry Pi

I’m a sailor and I built a Ilma,1 a Navtex2 decoder for the Raspberry Pi. Getting weather forecasts and navigational warnings is essential when sailing offshore. The Pi receives radio broadcasts, saves them as audio files and decodes them using multi-level error correction. The Navtex messages are saved in a database3 and accessible via web interface and push notification.

⇨ Ilma’s website

The Raspberry Pi Zero 2 W in a project box with a knob encoder and a small OLED display.

Why use a seemingly dated 1970s technology like Navtex when we can have broadband internet via satellite even in the middle of an ocean? Because Starlink, a private company, does not seem that reliable to me and needs quite a lot of power (Mini: 30 W during active use4 vs. 1–2 W for the Pi5) – significant on a sailboat. Navtex is a free international service operated by governments.

Existing software decoders6 mostly assume a sailor at a laptop. What I wanted instead was a headless service: RTL-SDR in, Pi running unattended on boat battery power and sending messages into a database, web UI and push warnings out. Standalone commercial Navtex receivers run reliably and at very low energy consumption,7 but they’re closed appliances and don’t let you extend the receiver, e.g. to RTTY, weatherfax, or the future option to republish Navtex messages on a Signal K bus for consumption by OpenPlotter.

From the sinking of the Titanic to Navtex

Navtex is a maritime safety information system for broadcasting navigational warnings and weather forecasts. Navtex is part of the Global Maritime Distress and Safety System (GMDSS).8 On the 518 kHz medium frequency,9 messages are transmitted by stations with a range of a few hundred nautical miles. Each station has a 10-minute time slot every four hours.10 The NAVAREA I (Northeast Atlantic, North Sea, Baltic Sea) schedule fills the four-hour cycle with 21 stations across 11 countries:11

Country B1 Station Times (UTC)<br>Belgium T Oostende 0310 0710 1110 1510 1910 2310<br>V Oostende (UK svc) 0330 0730 1130 1530 1930 2330<br>Estonia U Tallinn 0320 0720 1120 1520 1920 2320<br>Faroe Islands D Tórshavn 0030 0430 0830 1230 1630 2030<br>France A Cross Corsen 0000 0400 0800 1200 1600 2000<br>Germany S Pinneberg 0300 0700 1100 1500 1900 2300<br>Iceland R Saudanes 0250 0650 1050 1450 1850 2250<br>X Grindavik 0350 0750 1150 1550 1950 2350<br>Ireland Q Malin Head 0240 0640 1040 1440 1840 2240<br>W Valentia 0340 0740 1140 1540 1940 2340<br>Netherlands P Coastguard Radio 0230 0630 1030 1430 1830 2230<br>Norway L Rogaland 0150 0550 0950 1350 1750 2150<br>M Jeløy 0200 0600 1000 1400 1800 2200<br>N Ørlandet 0210 0610 1010 1410 1810 2210<br>Sweden H Bjuröklubb 0110 0510 0910 1310 1710 2110<br>I Grimeton 0120 0520 0920 1320 1720 2120<br>J Gislövshammar 0130 0530 0930 1330 1730 2130<br>United Kingdom E Niton 0040 0440 0840 1240 1640 2040<br>G Cullercoats 0100 0500 0900 1300 1700 2100<br>K Niton (FR svc) 0140 0540 0940 1340 1740 2140<br>O Portpatrick 0220 0620 1020 1420 1820 2220<br>Navtex uses frequency-shift keying (FSK) to encode text.12 Specifically, the frequency of a carrier wave is rapidly shifted by 170 Hz, where the high frequency is a mark (1), and the low frequency is a space (0). Using FSK, 7-bit characters are encoded using the CCIR 476 set and transmitted at 100 baud (about 14 characters per second, halved by error correction). This kind of text transmission, called SITOR-B (for Simplex Teleprinter Over Radio), was developed by the Dutch PTT in 1970. It uses forward error correction (FEC)13 of characters to compensate for noise at the radio link. An example of a Navtex message looks as follows:14

OE44ISSUED BY THE MET OFFICE AT 0620 ON FRIDAY 27 MARCH<br>GALE WARNINGS: ROCKALL MALIN HEBRIDES SE ICELAND<br>THE GENERAL SITUATION AT MIDNIGHT<br>LOW GERMAN BIGHT 1001 MOV SEAWARDS AND LOSING ITS<br>IDENTITY. NEW LOW EXP JUST W OF ROCKALL 989 BY MIDNIGHT<br>TONIGHT<br>24-HR FCSTS<br>LUNDY FASTNET<br>SE VEER SW 5 OR 6, INCR 7, PERHAPS GALE 8 LATER. MOD OR<br>ROUGH, BECMG ROUGH OR VERY ROUGH LATER. OCCASIONAL RAIN,<br>FOG PATCHES DEVELOPING. GOOD BECMG POOR OR VERY POOR …<br>The technique is an improvement over radioteletype (RTTY) that uses the ITA2 character code. Its predecessor was the Baudot code invented for telegraphy by Emile Baudot in the 1870s. These are codes for telegraphic transmission, of which Morse was the first. The first transatlantic telegraph cable in 1858 was a glorious achievement, but of no value to ships.

The use of radio waves was a milestone for the safety of ships. Electromagnetic waves, self-sustaining oscillations of electric and magnetic fields, need no medium to travel – no Aristotelian aether – and propagate through vacuum at the speed of light. Guglielmo Marconi sent the first wireless telegraph signals across the Atlantic in 1901. The Marconi company was responsible for radiotelegraphy on the RMS Titanic. The two radio operators of the RMS Titanic were...

navtex radio ilma raspberry frequency warnings

Related Articles