# Weather Fax

At the end you have weather charts for ships as picture files on your computer. You also have the text warnings that coast stations send on 518 kHz. You need a shortwave receiver with upper sideband, an antenna and one free program.

Spurious Emissions · Rev A · checked 2026-10-10 · https://spurious-emissions.net/guides/weather-by-radio/

Some links are affiliate links: if you buy through them, I may earn a commission at no extra cost to you. As an Amazon Associate I earn from qualifying purchases.

## 1. What this guide builds

A receiver, an antenna and a computer that turn two marine broadcasts into files. The first broadcast is radiofax, also called weather fax: a weather chart sent as a sliding tone. The second is NAVTEX: short text warnings from coast stations, all on one frequency.

| Signal | What you get | Frequency | Antenna | Radio | Decoder | Computer |
|---|---|---|---|---|---|---|
| Radiofax | Weather charts as pictures | Shortwave, 2 to 23 MHz. The list for the US is in section 7 | Wire or loop | Any receiver with upper sideband | fldigi, mode WEFAX-IOC576 | Any PC or Mac with a sound input |
| NAVTEX | Text warnings and forecasts | 518 kHz | The same | The same, if it tunes to 518 kHz | fldigi, mode NAVTEX | The same |

In this guide, "USB" always means the computer socket. I write "upper sideband" in full for the receiver mode. Your radio and fldigi label that mode "USB".

```
 wire or loop -- coax -- receiver (upper sideband) -- sound -- computer -- fldigi
                         dial = assigned frequency              |
                         minus 1.9 kHz for a chart              +-- charts: PNG files
                         dial = 517.000 kHz for NAVTEX          +-- warnings: text
```

My own station does this with other parts. The receiver is an RX-888 Mk II with the program ka9q-radio. The decoders are small programs I wrote myself, and they are not public. Section 11 shows what you can do on that hardware with public programs.

## 2. What you need

A part marked ◆ is what I use. A blank box is for your pencil. Prices are US dollars unless the cell says otherwise, as listed by the named seller on 2026-10-07. They change.

### The lowest-cost path

Most licensed operators own every part of this path. It costs nothing new.

| ☐ | Part | Job | Connector | Note |
|---|---|---|---|---|
| ☐ | A shortwave transceiver or receiver with upper sideband | Tunes one broadcast at a time | Your antenna socket | It must show the dial frequency to 0.1 kHz |
| ☐ | A wire antenna for shortwave, or the antenna you transmit with | Receives the signal | As fitted | Outdoors is better than indoors |
| ☐ | A sound path from the receiver to the computer | Carries the tone to fldigi | A USB cable if the radio has a built-in sound device. If not, a 3.5 mm cable to the computer's line input | Section 5 |
| ☐ | A computer with Windows, macOS or Linux | Runs fldigi | | Any PC of the last 10 years. I did not measure the load |
| ☐ | [fldigi](http://www.w1hkj.com) | Decodes charts and NAVTEX | | Free, license GPL-3.0. Version 4.2.13 was the newest on 2026-10-10 |

What this path gives up: it hears one frequency at a time. You choose the frequency for the time of day, by hand. My station listens on four chart frequencies and on 518 kHz all day.

### What I use

| ☐ | Part | Job | Connector | Price | Note |
|---|---|---|---|---|---|
| ☐ | ◆ [MLA-30+ active loop](https://www.amazon.com/dp/B095K89WND?tag=spuriousemiss-20) with its power injector | Shortwave and 518 kHz | SMA | See listing, Amazon | Mine is still indoors, the worst place for it |
| ☐ | ◆ [Turn Island Systems F3060](https://turnislandsystems.com/product/f3060-filter-shelf-30-60-mhz-lpf/) low-pass filter | Removes signals above 30 MHz | SMA | $80, Turn Island Systems | Keep its shelf filter bypassed for 518 kHz |
| ☐ | ◆ [TAPR RF Limiter](https://tapr.org/product/rf-limiter/) | Protects the receiver input | SMA | $20, TAPR | Needed if you also transmit |
| ☐ | ◆ [RX-888 Mk II](https://opensourcesdrlab.com/products/rx888-mkii-16bit-sdr-receiver-radio-ltc2208-adc-upgrade-rx888?DIST=QU5PHQ%3D%3D) | Receives all of shortwave at once | SMA in, USB 3.0 out | $152.79, OpenSourceSDRLab, 2026-10-11 | Needs a PC and ka9q-radio |
| ☐ | ◆ [ka9q-radio](https://github.com/ka9q/ka9q-radio) | Cuts one channel for each broadcast | | Free | The build steps are in [Build the station](/guides/build-the-station/), section 11 |

What this path adds: every frequency at once, all day, with no hand on the dial. What it costs: a second guide to build it, and decoders that run without a screen (section 11).

A narrow SDR is a third path. I did not test one for this job, so this guide gives no parts list for it. Section 5 says what such a path needs.

## 3. Before you start

**Skills.** You tune a receiver in upper sideband. You install a program. You choose a sound device in a settings window. No command line is necessary for the lowest-cost path.

**Time.** About one hour to the first chart, if a broadcast is on the air. A chart takes about 7 to 10 minutes. NAVTEX may need a wait until night.

**Accounts.** None.

**Values to choose first.**

| Placeholder | Meaning | Example form |
|---|---|---|
| `<STATION>` | The radiofax station nearest to your ocean | A call sign from section 7 |
| `<ASSIGNED>` | One assigned frequency of that station, in kHz | From section 7 |
| `<DIAL>` | `<ASSIGNED>` minus 1.9 kHz | Section 7 |
| `<LOCATOR>` | Your grid locator, 4 characters are enough | fldigi uses it to name NAVTEX stations |

**The law.** This guide is for reception only. Never transmit on these frequencies. I am not a lawyer, and this is what I read for the United States. The charts are works of the US National Weather Service, so they are in the public domain. NAVTEX is a safety broadcast for ships. US law (47 U.S.C. section 605) limits what a person may pass on from a radio message that is not meant for the public. I show that a warning arrived and what kind it was. I do not publish its text, because a warning can name a vessel or a person.

## 4. The antenna and the radio-frequency chain

Both broadcasts are strong signals made for small ship antennas. A simple antenna is enough. Its position matters more than its type.

1. Use the shortwave antenna that you have. A dipole, an end-fed wire or a vertical all work for reception.
2. If you have no antenna, put a wire of 10 m or more outdoors, as high as you safely can.
3. Keep the antenna away from the electronics in the house. Switching power supplies and network equipment make most of the noise.
4. Connect the antenna to the receiver with 50 ohm coax.

> **Caution.** An outdoor antenna cable can carry a surge into your equipment. Ground the cable where it enters the building, and bond that ground to the building's own grounding electrode system. In the US the rule is National Electrical Code Article 810. Use a licensed electrician if you are not sure.

### If you use the active loop

Build the chain in this order, antenna first.

```
loop -- RG-6 -- power injector -- F3060 (30 MHz low-pass in,
        shelf filter bypassed) -- RF limiter -- RX-888 Mk II, HF input
```

- Put the injector first on the loop cable. Every part after it then sees no DC.
- Keep the F3060 shelf filter bypassed. It cuts 28 dB below 1 MHz, and NAVTEX is at 518 kHz.
- For the loop, height matters little. Distance from the electronics in the house matters a lot.

### 518 kHz is not shortwave

NAVTEX is just below the AM broadcast band. Check three things before you expect a signal.

1. Check that your receiver tunes to 517 kHz in upper sideband. Many general-coverage transceivers do. Some are less sensitive there.
2. Check that no high-pass filter or broadcast-band filter is in the antenna line.
3. Expect a weak signal from a short antenna. A long wire or an active loop helps at this frequency.

## 5. The sound path into the computer

fldigi decodes sound. It needs the receiver's audio on a sound input of the computer.

### A radio with a built-in sound device

1. Connect the radio to the computer with a USB cable.
2. Install the radio maker's driver, if the maker's manual asks for one.
3. Result: the computer shows a new sound input with the radio's name.

### A radio with only a headphone or line output

1. Connect the radio's line output or headphone socket to the computer's line input with a 3.5 mm cable.
2. Use the line input, not the microphone input, if the computer has both.
3. Set the radio's volume low. Raise it in section 6 until fldigi shows a signal with no overload.

### An SDR

An SDR has no sound output of its own. Two more programs do that job.

- An SDR program that tunes the SDR and demodulates upper sideband.
- A virtual audio cable: a program that makes a sound output of one program appear as a sound input of another.

Set the SDR program to upper sideband with a filter of 3 kHz or wider. Send its sound to the virtual audio cable. Select the same cable as the input in fldigi. I did not run this path, and I name no programs for it (section 16).

### Receiver settings for a chart

Set these on the receiver before you start fldigi.

| Setting | Value | Why |
|---|---|---|
| Mode | Upper sideband | The schedule says so |
| Filter | 2.4 kHz or wider, 3 kHz if you have it | The tone moves from 1500 Hz (black) to 2300 Hz (white) |
| Noise blanker and noise reduction | Off | They can damage the tone |
| Automatic gain control | Slow, or as you like it | I did not compare the settings |
| Transmit | Disabled, or the microphone unplugged | Reception only |

## 6. Install and set up fldigi

fldigi is a free program for many amateur digital modes. Two of its modes do this job: WEFAX-IOC576 for charts and NAVTEX for the text warnings.

1. Download fldigi from <http://www.w1hkj.com> or from <https://sourceforge.net/projects/fldigi/files/fldigi/>.

   | System | File on 2026-10-10 |
   |---|---|
   | Windows | `fldigi-4.2.13_setup.exe` |
   | macOS | `fldigi-4.2.13.dmg` |
   | Linux | Your distribution's package, or build `fldigi-4.2.13.tar.gz` |

2. Install it and start it.
3. Result: on the first start, fldigi may show a setup wizard. It makes a working folder: `fldigi.files` in your user folder on Windows, `.fldigi` in your home folder on macOS and Linux.
4. Open the menu **Configure**, then **Config Dialog**.
5. Open the page for the operator. Enter `<LOCATOR>` in the locator field. A callsign is not necessary for reception.
6. Open the sound card page. Select **PortAudio**. On Linux with PulseAudio, the fldigi manual recommends PulseAudio.
7. Select your receiver's sound input as the capture device.
8. Save the configuration and close the window.
9. Tune the receiver to any busy frequency.
10. Result: the waterfall at the bottom of the fldigi window shows moving signals. The waterfall is a picture of the sound: frequency from left to right, time from top to bottom.
11. Adjust the sound level. The waterfall background must be dark, and strong signals must be bright. A waterfall that is bright everywhere means too much level.

If the waterfall stays black, the sound does not arrive. Go to section 14.

### The two settings pages for this guide

Both pages are in the Config Dialog, under **Modem**. The defaults are correct for US stations. Read them once.

| Page | Setting | Default | Meaning |
|---|---|---|---|
| Modem/Wefax | Center freq | 1900 Hz | The middle of the fax tone in the sound |
| Modem/Wefax | Frequency shift | 800 Hz | Black is 400 Hz below the middle, white is 400 Hz above. The fldigi manual names one German station that uses 850 Hz |
| Modem/Wefax | Max Image Rows | See the page | fldigi saves the picture and starts a new one at this number of lines |
| Modem/Wefax | Filter | Start with medium (fldigi manual) | Narrow, medium or wide |
| Modem/Wefax | Fax images destination directory | The `images` folder in the working folder | Where the charts go |
| Modem/Navtex | Log Navtex messages to Adif file | Off | Keeps each message in the fldigi log file |

## 7. Find your station and its schedule

The US National Weather Service makes the charts. Four US Coast Guard stations and one Defense Department transmitter site in Honolulu send them. One document lists every radiofax station in the world: "Worldwide Marine Radiofacsimile Broadcast Schedules", <https://www.weather.gov/media/marine/rfax.pdf>. The copy I read is dated March 7, 2025.

### The US stations

Assigned frequencies in kHz, and the hours (UTC) for a frequency that is not on all day.

| Station | Call sign | Ocean | Assigned frequencies |
|---|---|---|---|
| Point Reyes, California ◆ | NMC | North-east and tropical Pacific | 4346 (0140 to 1608), 8682, 12786, 17151.2, 22527 (1840 to 2356) |
| Kodiak, Alaska | NOJ | North Pacific, Alaska waters | 2054, 4298, 8459, 12412.5 |
| Honolulu, Hawaii | KVM70 | Central Pacific | 9982.5 (0519 to 1556), 11090, 16135 (1719 to 0356) |
| Boston, Massachusetts | NMF | North Atlantic | 4235 (0230 to 1039), 6340.5, 9110, 12750 (1400 to 2239) |
| New Orleans, Louisiana | NMG | Gulf, Caribbean, tropical Atlantic | 4317.9, 8503.9, 12789.9, 17146.4 (1200 to 2045) |

I receive Point Reyes. In about a week, three of its frequencies gave me charts: 4346, 8682 and 12786 kHz. 17151.2 kHz gave none. I do not listen on 22527 kHz.

### How to find your own nearest station

1. Open <https://www.weather.gov/media/marine/rfax.pdf>.
2. Read the table of contents. The stations are in groups by region of the world, then by country.
3. Go to the stations on your ocean. Each entry has the call sign, the frequencies, the hours and the list of charts.
4. Choose two or three stations within a few thousand kilometers. Shortwave does not always favor the nearest one.
5. Write down each `<ASSIGNED>` frequency and the hours when it is on.

Some entries in that document are old. The document says so itself: its schedules came "from official and unofficial sources". For a US station, the station's own schedule file is the better source. The one for Point Reyes is <https://www.weather.gov/media/marine/hfreyes.txt>. The chart pages of all five US stations are at <https://www.weather.gov/marine/radiofax_charts>.

### The tuning offset: 1.9 kHz

The schedule gives the **assigned frequency**. That is the middle of the fax signal. A single-sideband receiver shows the **carrier frequency** on its dial. Every US schedule has the same note: the carrier frequency is 1.9 kHz below the assigned frequency.

```
<DIAL> = <ASSIGNED> - 1.9 kHz, upper sideband
```

With this dial setting, the middle of the fax tone is at 1900 Hz in the sound. That is the default of fldigi.

| Station | Dial frequencies in kHz, upper sideband |
|---|---|
| NMC ◆ | 4344.1, 8680.1, 12784.1, 17149.3, 22525.1 |
| NOJ | 2052.1, 4296.1, 8457.1, 12410.6 |
| KVM70 | 9980.6, 11088.1, 16133.1 |
| NMF | 4233.1, 6338.6, 9108.1, 12748.1 |
| NMG | 4316.0, 8502.0, 12788.0, 17144.5 |

### Which frequency at which hour

Every frequency of a station carries the same chart at the same time. Choose the one that reaches you.

- At night, try the low frequencies first (2 to 6 MHz).
- By day, try the high frequencies first (12 to 22 MHz).
- Near sunrise and sunset, try the middle (8 to 9 MHz).

### When a chart starts

The Point Reyes schedule of 2026-10-10 has six blocks a day. Each block starts with a test pattern at these times (UTC): 0140, 0655, 1120, 1400, 1820 and 2320. After the test pattern, a new chart starts about every 10 minutes. The schedule file names each chart: satellite pictures, surface analyses, wind and wave forecasts, 500 millibar charts. At 1124 and 2324 the station sends its own schedule as a chart.

## 8. The first chart

### What you hear

A chart has four parts. Learn the sound of each one.

| Part | Sound | Length | Job |
|---|---|---|---|
| Start tone | A rasp: black and white 300 times a second | About 5 seconds | Tells the receiver that a chart starts |
| Phasing lines | A steady tone with a short click twice a second | About 30 seconds | Shows where each line starts |
| The chart | A scratchy tone that repeats twice a second | About 7 minutes for 800 lines | 120 lines a minute, half a second each |
| Stop tone | A rasp at 450 times a second | About 5 seconds | Ends the chart |

### Receive a chart from its start

1. Find the next start time of your station in its schedule. Start 5 minutes early.
2. Set the receiver to upper sideband.
3. Tune the receiver to `<DIAL>`.

   ```
   Example for NMC on 8682 kHz:   dial 8680.1 kHz, upper sideband
   ```

4. In fldigi, open the menu **Op Mode**, then **WEFAX**, then **WEFAX-IOC576**.
5. Result: the text area of fldigi changes to a blank picture with a row of controls. The waterfall cursor moves to 1900 Hz.
6. Check that the **LPM** control shows `120`. Every US chart is sent at 120 lines a minute with IOC 576.
7. Check that **Auto** is on. fldigi then centers the picture from the phasing lines.
8. Wait for the start tone. Do not press a button.
9. Result: the label of the picture shows the state of the reception. It changes when fldigi hears the start tone, then the phasing lines.
10. Look at the picture. Lines appear from the top, two each second. The **Row** number counts them.
11. Wait for the stop tone.
12. Result: fldigi saves the chart as a PNG file and clears the picture for the next chart.

IOC is the index of cooperation: a number that fixes the shape of the picture. All charts in the US schedules use 576.

### Start in the middle of a chart

You tuned in late, and the picture stays blank. fldigi still waits for a start tone.

1. Press **APT**. fldigi stops the wait for the start tone.
2. Press **Phase**. fldigi stops the wait for the phasing lines and draws the picture now.
3. Result: lines appear, but the chart is split. Its left edge is somewhere in the middle of the picture.
4. Turn **Auto** off.
5. Change **Align** until the edge of the chart is at the edge of the picture.

The **Cont'** control sets continuous reception. In that mode fldigi does not wait for a start tone. It cuts the picture into pieces of equal length (the Max Image Rows setting).

### Phasing: why a chart comes out split

The sender and your computer do not agree on where a line starts. The phasing lines fix that. Each one is black with one short white pulse at the line start. fldigi finds the pulse and puts it at the edge of the picture. If noise hides the phasing lines, the chart is whole but shifted: the right part is on the left. Use **Align** to move it.

### Slant correction: why a chart leans

The sender's clock and your sound device's clock do not run at exactly the same rate. Each line then starts a little early or a little late. Over 800 lines the small error adds up, and every vertical edge leans to one side.

1. Receive a chart with a clear vertical edge. The border of a chart is a good one.
2. Look at the edge. If it leans, change **Tilt** by a small step.
3. Look at the next lines, or at the next chart. If the lean is larger, change **Tilt** in the other direction.
4. Repeat until the edge is vertical.
5. Result: fldigi keeps the Tilt value in its configuration. You do this one time for each sound device.

fldigi can also measure the clock error of the sound device with its WWV mode. The fldigi manual has the steps. I did not run them.

### Save the chart

fldigi saves a chart by itself when it detects the end. You can also press **Save** at any moment to save the picture as it is.

| Item | Value |
|---|---|
| Folder on Linux | `$HOME/.fldigi/images` |
| Folder on Windows | `fldigi.files\images` in your user folder |
| Folder on macOS | The `images` folder in `.fldigi` in your home folder. I did not confirm this one |
| File name | `wefax_<date>_<time>_<frequency>_<note>.png` |
| Open the folder | Menu **File**, **Folders**, **WEFAX images...** |

The other controls: **Clear** removes the picture. **Mag** changes its size on the screen. **Noise** removes single dots that differ from both neighbors. **Bin** saves the chart as pure black and white, which makes a smaller file.

## 9. What a noisy chart looks like, and why

Most of my charts are not clean. In 8 days my station decoded about 320 chart copies, and about 1 in 4 was clean. A "copy" is one chart on one frequency: the same chart often arrives on two or three frequencies.

A chart is drawn in time. One line is half a second, and the picture grows downward. So every fault in the signal has a shape that tells you its cause.

| What you see | Likely cause | What to do |
|---|---|---|
| Thin horizontal streaks of black and white dots | A burst of noise. It lasted a fraction of a second, so it damaged one line or a few | Nothing, or try another frequency of the same station |
| Wide horizontal bands that fade to grey or to dots, then come back | The signal faded for some seconds | Try another frequency. Low at night, high by day |
| Dots over the whole chart, lines of the map still visible | A weak signal, or noise from the house | Move the antenna away from electronics. Try the **Noise** control |
| The whole picture is dots, with no map | No signal, the wrong dial frequency, or the wrong sideband | Check `<DIAL>` and the mode. Listen: is the rasp of the chart there? |
| The chart is whole, but its right part is on the left | The phasing lines were missed | Use **Align** (section 8) |
| Every vertical edge leans | Clock error of the sound device | Set **Tilt** (section 8) |
| Edges appear twice, a little apart | The signal may arrive by two paths of different length | Try another frequency |
| Black areas are white, and white areas are black | The receiver may be in lower sideband | Set upper sideband |
| Vertical bars at the same place in every line | A steady interfering tone or carrier | Try another frequency. Find the source if it is in your house |
| The chart stops at half its height | fldigi lost the signal, or took noise for a stop tone | Try another frequency |

The second and third columns are my reading of how the system works. I checked them against my own noisy charts by eye, not by measurement.

Compare your chart with a clean copy. The Weather Service publishes the same charts on the internet at <https://www.weather.gov/marine/radiofax_charts>.

## 10. NAVTEX: text warnings on 518 kHz

NAVTEX carries navigational warnings, weather warnings and forecasts, and search and rescue notices as short text. Every coast station of the international English service uses one frequency, 518 kHz. So the stations take turns.

### Why it is mostly a night signal

The US Coast Guard gives the designed range as about 400 nautical miles. It says that coverage changes with radio noise, the season and the time of day. At 518 kHz, the daytime ionosphere absorbs the signal that goes up, so only the ground wave is left. At night that absorption stops, and a station far away can reach you.

My own result agrees. On the first afternoon, four time slots in a row were silent. Every message that my station decoded began between 0200 and 1400 UTC. That is evening to early morning on the US west coast. In that time I heard four stations: Astoria, Tofino, Prince Rupert and Kodiak.

### Station letters and time slots

A letter names each station. The same letter sets its time slot. The cycle is 4 hours long and has 24 slots of 10 minutes. Letter A starts at 0000 UTC, B at 0010, C at 0020, and so on. Each station sends 6 times a day.

| Station | Letter | First slot (UTC), then every 4 hours |
|---|---|---|
| Miami, Florida | A | 0000 |
| San Francisco, California ◆ | C | 0020 |
| Prince Rupert, British Columbia ◆ | D | 0030 |
| Charleston, South Carolina | E | 0040 |
| Boston, Massachusetts | F | 0050 |
| New Orleans, Louisiana | G | 0100 |
| Tofino, British Columbia ◆ | H | 0110 |
| Kodiak, Alaska ◆ | J and X | 0130 and 0350 |
| Portsmouth, Virginia | N | 0210 |
| Honolulu, Hawaii | O | 0220 |
| Cambria, California | Q | 0240 |
| San Juan, Puerto Rico | R | 0250 |
| Astoria, Oregon ◆ | W | 0340 |

The US rows are from the National Weather Service schedule. The two Canadian rows are from my station's own table, and their times follow the letter rule. A ◆ marks a station in my part of the Pacific. The Coast Guard page says the Guam station (V) has not sent on 518 kHz since July 2018.

A letter is used again in other parts of the world. fldigi uses your locator to choose the nearer station of that letter.

### The message

Every message has the same frame.

```
EXAMPLE MESSAGE

ZCZC WA42
CAPE EXAMPLE LIGHT REPORTED UNLIT.
MARINERS USE CAUTION.
NNNN
```

I wrote this message for the guide. I did not receive it, and Cape Example is not a real place.

- `ZCZC` starts every message. `NNNN` ends it.
- The first character of the code is the station: `W` is Astoria.
- The second character is the kind of message: `A` is a navigational warning.
- The last two characters are a number from 00 to 99. A ship's receiver uses it to skip a message it already has.

| Letter | Kind of message |
|---|---|
| A | Navigational warning |
| B | Meteorological warning |
| C | Ice report |
| D | Search and rescue information, piracy warnings, tsunamis and other natural phenomena |
| E | Meteorological forecast |
| F | Pilot and vessel traffic service messages |
| G | AIS service messages |
| H | LORAN messages |
| J | GNSS messages |
| K | Other electronic navigation systems |
| L | Navigational warnings, additional to A |
| V to Y | Special services |
| Z | No message on hand |

In the US, a forecast that contains a warning is sent with the letter B, not E.

The signal is frequency-shift keying: two tones 170 Hz apart, at 100 baud. Each character is sent twice, a fraction of a second apart. So the receiver can repair a character if one of the two copies is lost.

### Receive NAVTEX with fldigi

1. Wait for the evening. Find the next slot of the station nearest to you in the table.
2. Set the receiver to upper sideband.
3. Tune the receiver to 517.000 kHz.
4. Use the same filter as for a chart, or a narrower one that still passes 1000 Hz.
5. In fldigi, open the menu **Op Mode**, then **Navtex/SitorB**, then **NAVTEX**.
6. Result: the picture area changes back to a text area. The waterfall cursor is at 1000 Hz.
7. Turn **AFC** on. fldigi then follows the signal if it is a little off the cursor.
8. Wait for the slot.
9. Result: two thin lines appear on the waterfall, 170 Hz apart, around 1000 Hz. Text appears in the text area some seconds later.
10. Read the header: `ZCZC`, then the four-character code.

Why 517.000 kHz: 518 kHz is the middle of the signal. A dial frequency 1 kHz lower puts that middle at 1000 Hz in the sound, which is the default of fldigi's NAVTEX mode. Another dial frequency also works. Then click on the waterfall between the two lines.

If the text is only random characters and the two lines are clearly there, press **Rv**. That control swaps the two tones.

To keep the messages, turn on "Log Navtex messages to Adif file" on the page Modem/Navtex. Each message then goes into the fldigi log file with its time, frequency and station.

## 11. Run it unattended

### With one receiver and fldigi

fldigi saves every chart by itself. So one receiver can collect charts all day on one frequency.

1. Choose the frequency that is on for the most hours at your place. For Point Reyes, 8682 and 12786 kHz are on at all broadcast times.
2. Tune the receiver to `<DIAL>`. Select WEFAX-IOC576.
3. Leave **Auto** on and **Cont'** off.
4. Set the computer so that it does not sleep.
5. Result: the `images` folder gets one PNG file for each chart that fldigi detects.

fldigi needs a screen and one mode at a time. It cannot wait for charts and for NAVTEX at the same moment on one copy of the program.

### With an RX-888 Mk II and ka9q-radio

My receiver hears every frequency at once. ka9q-radio gives each broadcast its own channel as a sound stream on the home network. My decoders read those streams. They are my own programs and they are not public. The steps below use public programs. I did not run them.

1. Build the receiver as in [Build the station](/guides/build-the-station/), sections 4 and 11.
2. Add two sections at the end of `/etc/radio/radiod@hf.conf`. The frequencies are dial frequencies.

   ```ini
   [WEFAX]
   disable = no
   data = wefax.local
   mode = usb
   freq = "4344k100 8680k100 12784k100 17149k300"

   [NAVTEX]
   disable = no
   data = navtex.local
   mode = usb
   freq = "517k000"
   ```

3. Start the receiver again.

   ```bash
   sudo systemctl restart radiod@hf
   ```

4. Record the channels to sound files with `pcmrecord`, a program of ka9q-radio.

   ```bash
   mkdir -p ~/wefax && pcmrecord -d ~/wefax wefax.local
   ```

5. Result: one sound file for each channel in `~/wefax`, while a signal is there.
6. Decode a recording. Use one of these.

   | Program | Job | How | Limits |
   |---|---|---|---|
   | fldigi | Charts and NAVTEX from a recording | Menu **File**, **Audio**, **Playback** | Needs a screen |
   | [Isobar](https://github.com/skgsara/isobar) | Charts from a recording, with no screen | `isobar-decode recording.wav out.pgm` | A new project. IOC 576 only. Its line is 1500 dots wide, not the standard 1810 |
   | [fventuri/navtex](https://github.com/fventuri/navtex) | NAVTEX from a sound stream, with no screen | `sox <file.wav> -b 16 -e signed -c 1 -r 11025 -t raw - \| ./navtex_rx_from_file 11025` | It is the fldigi decoder as a small program. Last change in 2024 |

In ka9q-radio, write a frequency with its unit letter. `517k000` is 517 kHz. A plain `517000` is not the same thing (section 14).

## 12. Sharing

This step is optional. Nothing in this guide sends data to anyone, and no network shows your station on a map.

> **Caution.** A saved chart tells when and on what frequency you received it. fldigi puts the date, the time and the frequency in the file name. The chart itself shows its issue time. Rename the file before you share it if you do not want to give that.

- A chart is a US government work. You may publish it.
- Do not publish the text of a received NAVTEX message. It can name a vessel or a person. Say that a message arrived, and what kind it was.
- Do not put your town or your callsign in a picture or a file name if you want your position to stay private.

## 13. Check that it works

1. **Sound.** Tune to any busy frequency. The fldigi waterfall shows signals within seconds.
2. **Dial.** Tune to `<DIAL>` during a broadcast block. You hear the scratchy tone that repeats twice a second. On the waterfall, the energy is between 1500 and 2300 Hz, and the cursor is at 1900 Hz.
3. **Start.** At a scheduled start time, you hear the rasp of the start tone, then about 30 seconds of clicks. The label of the picture changes. Wait up to 15 minutes for the next chart if you missed one.
4. **Lines.** The **Row** number goes up by 2 each second.
5. **Length.** A chart ends after about 7 to 10 minutes. The typical chart at my station has about 830 lines, which is 6.9 minutes.
6. **File.** A new PNG file is in the `images` folder. Open it. The chart has a title, a time of issue and "NWS" in its legend.
7. **Slant.** The border of the chart is vertical. If not, set **Tilt**.
8. **NAVTEX.** In the evening, at the slot of your nearest station, two lines 170 Hz apart appear on the waterfall. Text follows, and it starts with `ZCZC`. Wait through one full cycle of 4 hours before you decide that nothing arrives.

## 14. If it does not work

| Symptom | Likely cause | What to do |
|---|---|---|
| The waterfall is black | No sound arrives at fldigi | Select the correct capture device. Raise the level. On macOS, allow fldigi to use the microphone input |
| The waterfall is bright everywhere | Too much sound level | Lower the receiver's volume or the input level |
| You hear the chart, but the picture stays blank | fldigi waits for a start tone | Wait for the next chart, or press **APT** and **Phase** (section 8) |
| The picture is only dots | The dial is on the assigned frequency, not 1.9 kHz below | Tune to `<DIAL>` |
| Black and white are exchanged | Lower sideband | Set upper sideband |
| The chart is split | Phasing was missed | **Align** (section 8) |
| The chart leans | Clock error of the sound device | **Tilt** (section 8) |
| The chart is squeezed or stretched, or its lines do not join | The wrong LPM value | Set **LPM** to `120` |
| One chart is saved as many short files, or many charts as one long file | The start or stop tone was missed in noise | Change **Max Image Rows**. Try a better frequency |
| No signal on any frequency at the scheduled time | The band is closed for that path, or the station is off the air | Try the other frequencies. Try another station. Read the station's schedule file again |
| No chart on the highest or lowest frequency | That frequency is on only for part of the day | Read the hours in section 7 |
| NAVTEX is silent all day | 518 kHz is mostly a night signal | Listen from the evening to the early morning |
| NAVTEX is silent at night too | The receiver or the antenna is weak at 518 kHz, or a filter cuts it | Section 4, "518 kHz is not shortwave" |
| NAVTEX and the low bands are weak behind an F3060 | Its shelf filter is on | Bypass it |
| NAVTEX text is random characters | The tones are swapped, or the signal is too weak | Press **Rv**. Wait for a stronger station |
| A ka9q-radio channel for 518 kHz hears nothing | The frequency has no unit letter. In ka9q-radio, `22500` means 22.5 MHz | Write `517k000` |
| Shortwave is full of signals that should not be there (RX-888) | No 30 MHz low-pass filter | Fit the filter |
| The loop has no signal | The limiter blocks the DC for the loop | Put the injector first on the loop cable |

## 15. What I did wrong

- **I listened for NAVTEX in the afternoon.** The first four slots were silent. The cause was the time of day, not the equipment. Every message since then came at night.
- **My antenna is still indoors.** The loop is near the computer. Three of four chart frequencies work in spite of that, but many charts have streaks of noise.
- **One of my notes had wrong slot times for two NAVTEX stations.** My station's table and my reception times agreed with each other, and not with the note. The published schedule agrees with the table. Use the published schedule.
- **A count of copies is not a count of charts.** One broadcast chart often arrives on two or three frequencies. About 320 copies in 8 days is far fewer different charts.

## 16. Not run and not confirmed

Be strict with this list. My station proves that the signals arrive and what they look like. It does not prove the fldigi steps.

- **I do not use fldigi.** No fldigi step in this guide was run at my station or on any computer for this guide. The menu names, control names, defaults, folders and the file name come from the fldigi manual source and program source that I read on 2026-10-10.
- **The fldigi source I read is version 4.1.23**, from a copy on GitHub last changed in June 2023. The newest release is 4.2.13. A label or a default may differ in 4.2.13. I could not open the manual on the author's own site that day: the site's certificate did not match.
- The exact names of the operator page and the sound card page in the Config Dialog of 4.2.13.
- The default of **Max Image Rows**. The manual says 2500. The 4.1.23 source says 4000.
- That **Tilt** changes the lines already drawn, or only the lines after the change.
- That the **Rv** control is shown in NAVTEX mode. The source reads a "reverse" setting in the NAVTEX decoder. I did not see the screen.
- The folder for charts on macOS. The manual names only Linux and Windows.
- That fldigi asks for microphone permission on macOS.
- How fldigi is packaged in each Linux distribution, and which version each one has.
- The lengths of the start tone and the stop tone. My notes say about 5 seconds each for the US charts. One entry for another country in the worldwide schedule says 10 seconds for the start tone.
- That a general-coverage transceiver of your model is sensitive enough at 518 kHz.
- The best setting of the receiver's automatic gain control for a chart.
- The SDR path in section 5. I ran no SDR program with a virtual audio cable, and I name none.
- Every step of "With an RX-888 Mk II and ka9q-radio" in section 11. The form of the channel sections follows the example files of ka9q-radio. I did not run `pcmrecord` this way. I did not confirm the filter width of its `usb` mode, or the names of the files it writes.
- Isobar and fventuri/navtex. I read their README files. I ran neither.
- The table in section 9. It is my reading of the causes, checked by eye on my own charts.
- The explanation of daytime absorption at 518 kHz is general radio knowledge. The Coast Guard page says only that coverage changes with the time of day.
- The times of the two Canadian NAVTEX stations. They come from my station's table and the letter rule, not from a Canadian source that I read.
- The NAVTEX schedule of the National Weather Service lists times for the weather forecasts. I take them as the start of each station's slot.
- The Kodiak frequency. The worldwide schedule gives 12412.5 kHz as assigned. A Weather Service page lists 12410.6 kHz, which is the same channel as a dial frequency.
- Schedules change. I read each one on 2026-10-10. Read it again before you rely on a time.
- The prices are those of 2026-10-07 from [Build the station](/guides/build-the-station/). I did not check them again.
- I am not a lawyer. The paragraph on the law is what I read, for the United States only.

## 17. Sources

All were read on 2026-10-10, except where a line says otherwise.

**Schedules and frequencies.** Worldwide Marine Radiofacsimile Broadcast Schedules, National Weather Service, dated March 7, 2025: <https://www.weather.gov/media/marine/rfax.pdf> · Point Reyes schedule: <https://www.weather.gov/media/marine/hfreyes.txt> · Point Reyes chart page: <https://www.weather.gov/marine/ptreyes> · All US radiofax chart pages: <https://www.weather.gov/marine/radiofax_charts> · US Coast Guard broadcasts, with the frequency list and the NAVTEX schedule: <https://www.weather.gov/marine/uscg_broadcasts> · Pacific schedule page: <https://ocean.weather.gov/shtml/pacsch.php> (named by the episode, not read again that day)

**NAVTEX.** US Coast Guard Navigation Center: <https://www.navcen.uscg.gov/navtex-maritime-safety-broadcasts>

**fldigi.** Home: <http://www.w1hkj.com> · Releases: <https://sourceforge.net/projects/fldigi/files/fldigi/> · Source copy: <https://github.com/w1hkj/fldigi> (manual pages `WEFAX.txt`, `Navtex.txt`, `SoundCardSetup.txt`, `New-Install.txt`, `Menus.txt` in `fldigi_doxygen/user_src_docs/`, and the program files `wefax.cxx`, `wefax-pic.cxx`, `navtex.cxx`, `fl_digi.cxx`, `confdialog.cxx`, `configuration.h`)

**Other decoders.** <https://github.com/skgsara/isobar> · <https://github.com/fventuri/navtex>

**ka9q-radio.** <https://github.com/ka9q/ka9q-radio> (read `docs/utils/pcmrecord.md`, `docs/utils/monitor.md` and the example files `60m.conf`, `w1aw.conf`, `ibp.conf` in `config/examples/fragments/`)

**My station.** The fact sheet of episode 8, with one reading of the station on 2026-10-06: rounded counts only. [Build the station](/guides/build-the-station/), checked 2026-10-07, for the parts, the prices, the filter figures and the traps.

**Rules.** 47 U.S.C. 605: <https://www.law.cornell.edu/uscode/text/47/605> (read for Build the station on 2026-10-07).
