Skip to content

Tutorial JT9

adswill edited this page Oct 17, 2026 · 1 revision

Tutorial: JT9

What it is

JT9 is a weak-signal mode with a very narrow signal (about 15 Hz) in one-minute slots. It was designed for the low bands and is mostly heard on 160 m to 30 m.

What you need

  • An HF-capable receiver. An SDRplay or an Airspy HF+ tunes the HF bands directly. An RTL-SDR reaches HF only in direct-sampling mode (Radio settings, see Radio-RTL-SDR; the RTL-SDR Blog V4 uses its built-in up-converter). A HackRF or another radio that starts above the HF bands needs an up-converter such as Ham It Up or SpyVerter, which you pick in Radio settings so that the whole app shows the true frequency (see Supported-radios). The mode asks for 2 Msps and keeps working down to 250 ksps, so even a small radio is enough: the signals sit within about 3 kHz of the dial frequency.
  • An HF antenna: a long wire of 10 m or more as far from household electronics as you can get it, a dipole cut for the band, or a magnetic loop for a noisy site. Keep the feed line away from switching power supplies and LED lighting, which are the usual source of S9 noise on a city balcony.
  • Frequencies (USB dial, from the OnAir frequency database): JT9 1.839, 3.572, 7.078, 10.14, 14.078 (the default), 18.104, 21.078 and 28.078 MHz. JS8Call shares 14.078 MHz and several other dials, so not everything you see there is JT9.
  • Time. These modes work in fixed slots that start at exact times, so the computer clock has to be right. OnAir shows the measured offset in the status line (the median DT in seconds and its spread) and warns when the clock is off; decodes still work up to about 2.5 s, beyond that you must fix it. Turn on NTP or sync the clock from GPS or a time station first: Tutorial-Time-stations-and-the-clock and the Clock tab described in Tutorial-Time-signals. When you open a recording instead of a live radio, OnAir finds the slots from the signals themselves (the status line says so).

Before you start

Lower the gain until the ADC level in the status line is well below full scale: strong broadcast stations next to an amateur band overload a direct-sampling RTL-SDR easily, and the result is spurs that look like signals. Use Auto-tune or Optimise gain (see Your-first-reception) rather than guessing. Choose upper sideband for all dial frequencies in the lists below; the decoders listen from the dial frequency upwards. A DC spike in the middle of the spectrum is normal for some radios and is not a signal: leave a few kHz of offset if you can.

Step by step

  1. Connect the radio and antenna and start OnAir. In the mode list open the group Amateur: digital and choose JT9 (the entry reads WSJT, 14.078 MHz).
  2. Check the frequency field. The start frequency is the dial frequency in upper sideband. The Band row of the mode panel jumps to the usual dial frequencies of the other bands for this mode.
  3. Press Start. OnAir decodes every signal in the 3 kHz passband at once; you do not pick a single signal as in a normal WSJT-X session.
  4. Watch the status line: it names the slot being searched, the number of decodes and the clock offset. Open Decodes for the list and Map for the stations placed by their locators.
  5. Press Listen if you want to hear the passband (dial + 200 Hz to 3.8 kHz) on the sound card; decoding is identical with or without it.
  6. Use Save results... (CSV or ADIF logbook) when you want to keep the decodes. Reporting to PSK Reporter is optional and off until you enable it under View > Data feeds (see Tutorial-HF-digital-FT8-and-WSPR).

What you should see

One group of decodes per minute; with few stations active the list can stay empty for many minutes. The narrow signal looks like a thin steady carrier on the waterfall.

Reading the screen

Decodes lists one row per message with the columns UTC, Call, Grid, dBm (WSPR) and Message, and the mode. The filter CQ only hides everything except calls looking for a contact, Clear empties the list and Show limits what is listed. Map places each station at the middle of its Maidenhead locator square; zoom and pan the map with the mouse. OnAir never draws an exact position, only the square.

Options and settings

  • Band buttons: jump between the dial frequencies of the mode.
  • Listen: audio of the passband.
  • Upside down too tries the mirror image as well, useful when a converter inverts the spectrum.
  • Sample rate: 2 Msps by default, 250 ksps is the lowest that works.

Troubleshooting

  • No decodes at all. Check that the dial frequency is the real one for the band, that you are on upper sideband and that the band is open (try a busy band such as 20 m in the daytime). With the gain too high everything is smeared; reduce it.
  • Decodes only in some slots, or a clock warning. The computer clock is off by more than about 2.5 s. Sync it, then wait for the next slot.
  • Very few decodes compared with a big station. The antenna is the limit, not the software. A short indoor wire hears the strongest few stations only.
  • Strange mirrored stations. An up-converter set to the wrong side (spectrum inversion) mirrors the band; correct it in Radio settings, or tick Upside down too.
  • High CPU use at 2 Msps. The mode works from 250 ksps; pick a lower sample rate in the radio settings.

Tips

  • Visit two or three bands one after another with a short stay each: a quiet band at one moment is busy a minute later.
  • Keep a recording (see Tutorial-Record-IQ-then-the-Signal-workbench) of a busy period and replay it to try settings without waiting for the band.
  • Receiving needs no licence in most countries; check your national rules.

Legal and privacy notes

Receiving amateur signals is allowed in most countries. Callsigns, locators and messages are public by design. OnAir reports spots only if you turn it on; if you do, use your own valid callsign. Transmit works in OnAir and has been used on a real radio by the maintainer and in loop-back tests, but you need an amateur licence to transmit; see Transmit and Legal.

Under the hood

JT9 is 9-FSK with one sync tone and eight data tones, a convolutional code (rate 1/2), 85 symbols, 60 s periods and about 15 Hz width.

Related

Mode-JT9, Tutorial-HF-digital-FT8-and-WSPR, Tutorial-Time-signals, Tutorial-JT65, Tutorial-JS8Call, Radio-RTL-SDR, Radio-SDRplay, Live-map, FAQ, Troubleshooting

Clone this wiki locally