Repository navigation
Tutorial PSK31
PSK31 is the classic keyboard-to-keyboard chat mode on HF: a very narrow phase-shift-keyed signal (about 31 Hz) that is readable at low power. OnAir decodes every PSK signal in the 3 kHz passband at once and shows a chat log per signal.
- 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; signals sit 100 Hz to 3.9 kHz above it): PSK31 1.838, 3.58, 7.04, 10.142, 14.07 (the default), 18.1, 21.07, 24.92, 28.12 and 50.29 MHz.
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.
- Connect the radio and antenna and start OnAir. Open the group Amateur: digital and choose Keyboard chat (the entry reads Keyboard chat, 14.070 MHz).
- Choose the Mode: BPSK31 is what most stations send, PSK63 is twice as fast, QPSK adds error correction.
- Press Start (the panel says start the receiver to read the band before that). Every signal above the Threshold gets its own decoder.
- Click a signal on the waterfall or in the Signals table to read it in the big pane.
- Look at the CALLSIGNS list for callsigns found in the chat.
A list of signals, each with frequency (Hz above the dial and kHz), SNR and AFC (the tracked frequency offset), and the text. Chat lines show the time, the line and the callsign when found. The status line gives the noise floor and the number of decoded characters.
Signals table: frequency, SNR, AFC, text. Big pane: the picked signal's text. CALLSIGNS: Time, Line and Call. The spectrum covers dial + 0 to about 4 kHz.
- Mode: BPSK31, PSK63 and QPSK variants.
- Threshold: how far over the noise a signal must be to get a decoder.
- Listen and Clear.
- Signals visible but garbled. Wrong mode: try PSK63 or QPSK. A signal wider than 31 Hz is probably not BPSK31.
- Garbled text on a weak signal. PSK31 needs about +5 dB SNR; use QPSK for forward error correction.
- Many ghost decoders. Lower the gain or raise Threshold.
- Only one half of the text is right. Frequency offset: let the AFC settle, it follows drift.
- Nothing on 14.070. PSK31 activity varies with the time of day and the solar cycle; try 7.040 or 3.580 MHz in the evening.
- Keep the dial a few hundred Hz below the busy region so that the signals fall into the displayed passband.
- Keep a recording (Tutorial-Record-IQ-then-the-Signal-workbench) of a good opening and replay it to try the settings.
Receiving amateur signals is allowed in most countries; the text is public by design. Transmit works in OnAir and has been used on a real radio by the maintainer and in loop-back tests; you need an amateur licence to transmit (see Transmit and Legal).
BPSK31 sends 31.25 baud, differential binary phase-shift keying with a raised-cosine envelope, and a varicode alphabet in which common letters use fewer bits. QPSK31 adds a convolutional code (constraint length 5, rate 1/2) and a Viterbi decoder for error correction. PSK63 doubles the symbol rate.
Mode-PSK31, Tutorial-RTTY, Tutorial-CW, Tutorial-HF-digital-FT8-and-WSPR, Radio-RTL-SDR, FAQ, Troubleshooting
Getting started
Using OnAir
Tools and guides (0.2.7)
- Band survey
- Message database
- Watchlists
- TV recorder
- Time machine
- Pass scheduler
- Plugin SDK
- Headless server
- All guides
Radios
Modes by group
- TV
- Broadcast radio
- Aviation
- Maritime
- Satellite & navigation
- Two-way radio
- Cellular & rail
- Pagers
- IoT & sensors
- Weather & science
- Amateur: digital
- Amateur: voice & packet
- HF utility
- General & tools
Tutorials
- DVB-T2 TV with a HackRF
- FM radio with RDS
- Aircraft with ADS-B and the map
- Ships with AIS
- DAB+ digital radio
- Weather satellite images
- HF digital: FT8 and WSPR
- Digital voice: DMR, D-STAR, P25
- Pagers: POCSAG and FLEX
- Time stations and the clock
- Record IQ, then the Signal workbench
- The signal sample library
- Control a rig with Hamlib
- Two receivers and the multi-decoder
Reference
Help
Legal and privacy
More