PhosphorPSK decodes PSK31 (Phase Shift Keying) signals in real time using your iPhone's microphone. Hold your phone near a shortwave radio tuned to a PSK31 signal and watch the text appear on an authentic phosphor CRT display, character by character.
No internet connection required. No external hardware. No account. Just your iPhone and a radio.
FEATURES
- Real-time BPSK decoding via microphone — PSK31, PSK63, and PSK125
- Locks onto the strongest signal in the passband — isolate the one you want by tuning your radio
- Canonical G3PLX Varicode, decoded exactly
- Live FFT spectrum display with carrier cursor and scrolling waterfall
- BPSK vector scope — watch the constellation snap into place as it locks
- Carrier, SNR, level, and lock readouts
- Session logging with full decoded text, timestamps, and signal parameters
- Amber and green phosphor CRT themes with scanlines, vignette, and glow effects
- Adjustable input gain, manual or automatic carrier tuning
- No accounts, no tracking, no network access
DSP ENGINE
Complex numerically-controlled-oscillator downconvert to baseband, a two-stage matched filter (a raised-cosine filter then the G3PLX pskcore filter), amplitude-waveform symbol-timing recovery, and differential BPSK bit decision feeding a Varicode assembler. The receive chain is ported from fldigi, the reference PSK31 implementation. PhosphorPSK locks the strongest signal in the passband; you isolate the one you want by tuning your radio. All signal processing runs entirely on-device.
DECODER ACCURACY
PhosphorPSK has been tested against raised-cosine pulse-shaped synthetic signals and genuine off-air PSK31 recordings. Detailed test results, methodology, and decoded output are available in the decoder test report.
WHERE TO FIND PSK31
- 20m band: around 14.070 MHz
- 40m band: around 7.070 MHz
- 80m band: around 3.580 MHz
- 15m band: around 21.070 MHz
- 30m band: around 10.142 MHz
Set the radio to USB and tune so the signal sits around 1 kHz of audio. A shortwave receiver, SDR, or WebSDR audio played through a speaker is all you need.
SUPPORT
Need help? Have a question, bug report, or feature request?
- Ask a question — get help with using PhosphorPSK
- Report a bug — let us know if something isn't working
- Request a feature — suggest improvements or new functionality
You can also browse existing issues to see if your question has already been answered.