Table of Contents
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Receives and decodes Radio Teletype (RTTY) transmissions using Baudot/ITA2 5-bit encoding over FSK (frequency-shift keying). The decoder produces live text output and supports automatic baud rate detection.
Settings
- Frequency: The center frequency to receive on. Frequency step is 100 Hz. Adjustable via the encoder knob or on-screen numpad.
- RF Amp (0 or 1): Enables/disables the internal RF amplifier.
- LNA gain (0–40): Low-noise amplifier gain. See Receive Quality Issues.
- VGA gain (0–62): Variable-gain amplifier gain. See Receive Quality Issues.
- RSSI: Signal strength indicator.
- Volume: Audio output volume. The received audio (mark/space tones) is passed to the speaker or headphone output.
- Baud: Sets the expected symbol rate. Options:
Auto,45,45.45,50,75,100,110,150,200bps. See Auto-Baud below.
Decoded Text Area
The main body of the screen is a scrolling text console that displays decoded Baudot/ITA2 characters in real time. Both letter and figure shift states are handled automatically. The console does not auto-scroll — new text appends at the current position.
Shift
The frequency shift between mark and space is fixed at 170 Hz. This is the standard narrow shift used by most amateur radio RTTY and many commercial RTTY stations. The shift is not user-configurable in this app.
Auto-Baud
When Baud is set to Auto, the decoder measures incoming pulse widths and continuously refines its estimate of the symbol rate. It starts with a default of approximately 45.45 baud (the most common RTTY rate) and updates as more signal is received.
The auto-baud algorithm uses a fast-lock approach: a new baud estimate is accepted after 3 consecutive pulses agree with a candidate width. If no signal is detected for approximately 0.5 seconds (12,000 samples at 24 kHz), the baud estimate resets to the 45.45 baud default.
When a specific baud rate is selected, baud detection is bypassed and the decoder locks immediately to the configured rate. This results in faster and more reliable locking when the transmission rate is known in advance.
Squelch and Polarity
Squelch is automatic and based on the measured spread between the mark and space signal levels. It opens when spread exceeds a threshold and closes when the signal fades — there is no manual squelch control.
Polarity (which tone is mark and which is space) is also detected and corrected automatically. If only one tone is received continuously for more than ~0.3 seconds, the decoder flips polarity and resets the UART state machine.
Signal Processing
The baseband runs at 3.072 MHz and passes through three decimation stages to reach a final demodulation rate of 24 kHz (3.072 MHz → 384 kHz → 48 kHz → 24 kHz). FM demodulation is used to discriminate between the mark and space frequencies, followed by envelope tracking, a Schmitt trigger slicer, and a 5-bit asynchronous UART state machine to extract Baudot characters.
Settings Persistence
The selected baud rate is saved to rx_rtty.ini on the SD card when App Settings is enabled in the global Settings menu.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Start here
Contributors
How to collaborate
Contributing Guidelines
How to ask questions correctly
Hardware
- PortaPack Versions (which one to buy)
- Features
- HackRF Versions
- Description of the hardware
- Enclosure/cases
- Repairs
- Mods
User manual
Intended use and Legality
- Usage cautions
- First steps
- Firmware update procedure
- User interface
- Powering the PortaPack
- Troubleshooting
- Won't boot
- Config Menu
- Firmware upgrade
- Diagnose firmware update in Windows
- Receive Quality Issues
- No TX/RX
- TX Carrier Only
- H2+ speaker modifications
- Dead Coin Cell Battery
- Factory Defaults
- SD card not recognized by PC with the SD-card over USB selected
- DFU overlay
- Full reset
- SolveBoard
- How to Format SDCard
- What if I don't like some of the apps
Applications
- 📥 Receivers
- 📤 Transmitters
- ADS-B(S) TX
- Adult Toys
- APRS TX
- BHT Xy/EP
- BLE TX
- BLESpam
- Burger Pager
- CVS Spam
- EPIRB
- FlipperTX
- GPS Sim
- Hopper
- Jammer
- KeeLoq TX
- Key fob TX
- LGE Tool
- MDC-1200 TX
- Morse TX
- OOK
- OOK Brute
- OOK Editor
- P25 TX
- POCSAG TX
- RDS
- RTTY TX
- SAME TX
- Signal gen
- Soundboard
- Spectrum Painter
- SSTV
- TEDI/LCR
- TouchTunes
- TPMS TX
- 🔄 Transceivers
- 🟡 Recon
- 🔴 Capture
- ▶️ Replay
- 🖲️ Remote
- 🔍 Looking Glass
- 🛠️ Utilities
- 🎮 Games
- ⚙️ Settings
- 💻 HackRF Mode
Misc
Developer Manual
- Compilation of the firmware
- Compile on WSL with ninja
- How to compile on Windows faster with WSL 2
- Using Docker and Kitematic
- Docker command-line reference
- Using Buddyworks and other CI platforms
- Notes for Buddy.Works (and other CI platforms)
- Using ARM on Debian host
- All in one script for ARM on Debian host
- Compile on Arch based distro (exclude Asahi), or other weird distros
- Dev build versions
- Notes About ccache
- Create a custom map
- Code formatting
- PR process
- Description of the Structure
- Software Dev Guides
- Tools
- Research
- UI Screenshots
- Maintaining
- Creating a prod/stable release (Maintainers only)
- Maintaining rules
- Development States Notes
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Note
The wiki is incomplete. Please add content and collaborate.
Important
- This is a public wiki. Everything is visible to everyone. Don't use it for personal notes.
- Avoid linking to external tutorials/articles; they may become outdated or contain false information.