Overview
Minimodem supports a variety of standard FSK protocols for different applications including telecommunications, amateur radio, emergency alerts, and transportation systems.Bell System Protocols
Bell 103 (300 baud)
Classic 300 baud modem standard used in early computer communications and acoustic couplers.Specifications
- Baud rate: 300 bps
- Mark frequency: 1270 Hz
- Space frequency: 1070 Hz
- Frequency shift: 200 Hz
- Modulation: FSK
- Bandwidth: 50 Hz
Framing
- Data bits: 8 (ASCII)
- Start bits: 1
- Stop bits: 1
- Total frame: 10 bits
- Encoding: ASCII 8-N-1
Bell 103 originated at Bell Labs in 1962 and became the de facto standard for 300 baud modems worldwide.
Bell 202 (1200 baud)
High-speed protocol used for caller ID, packet radio, and faster data transmission.Specifications
- Baud rate: 1200 bps
- Mark frequency: 1200 Hz
- Space frequency: 2200 Hz
- Frequency shift: -1000 Hz
- Modulation: FSK
- Bandwidth: 200 Hz
Framing
- Data bits: 8 (ASCII)
- Start bits: 1
- Stop bits: 1
- Total frame: 10 bits
- Encoding: ASCII 8-N-1
Bell 202 is commonly used for caller ID (CLID) transmission on telephone lines between the first and second ring.
ITU-T Standards
V.21 (300 baud)
International standard similar to Bell 103 but with different frequencies.Specifications
- Baud rate: 300 bps
- Mark frequency: 980 Hz
- Space frequency: 1180 Hz
- Frequency shift: 200 Hz
- Modulation: FSK
- Bandwidth: 50 Hz
Framing
- Data bits: 8
- Start bits: 1
- Stop bits: 1
- Total frame: 10 bits
- Encoding: ASCII 8-N-1
Telegraphy Protocols
RTTY (Radio Teletype)
Classic radioteletype protocol used extensively in amateur radio and maritime communications.Specifications
- Baud rate: 45.45 bps
- Mark frequency: 1585 Hz (default)
- Space frequency: 1415 Hz
- Frequency shift: -170 Hz
- Modulation: FSK
- Bandwidth: 10 Hz
Framing
- Data bits: 5 (Baudot)
- Start bits: 1
- Stop bits: 1.5
- Total frame: 7.5 bits
- Encoding: Baudot/ITA2
Baudot Character Set
Baudot Character Set
RTTY uses the 5-bit Baudot (International Telegraph Alphabet No. 2) character set with LETTERS and FIGURES shift states:
- LETTERS mode: Standard alphabet
- FIGURES mode: Numbers and punctuation
- Special shift characters toggle between modes
- Character set defined in
src/baudot.c
The 45.45 baud rate comes from mechanical teleprinter limitations: 1/45.45 ≈ 22ms per bit.
TDD/TTY (Telecommunications Device for the Deaf)
Baudot-based protocol for telecommunications accessibility.Specifications
- Baud rate: 45.45 bps
- Mark frequency: 1400 Hz
- Space frequency: 1800 Hz
- Frequency shift: 400 Hz
- Modulation: FSK
- Bandwidth: 10 Hz
Framing
- Data bits: 5 (Baudot)
- Start bits: 1
- Stop bits: 2.0
- Total frame: 8 bits
- Encoding: Baudot/ITA2
TDD differs from RTTY primarily in stop bit duration (2.0 vs 1.5) and frequency pair, optimized for telephone line transmission.
Emergency Alert Systems
NOAA SAME (Specific Area Message Encoding)
Emergency alert system protocol used by NOAA Weather Radio and the Emergency Alert System.Specifications
- Baud rate: 520.83 bps
- Mark frequency: 2083.33 Hz
- Space frequency: 1562.5 Hz
- Frequency shift: -520.83 Hz
- Modulation: FSK
- Bandwidth: 520.83 Hz
Framing
- Data bits: 8
- Start bits: 0
- Stop bits: 0
- Preamble: 16 × 0xAB sync bytes
- Encoding: ASCII (specific format)
SAME Message Components
SAME Message Components
- ZCZCZCZ: Preamble (sync bytes 0xAB)
- ORG: Originator code (WXR, CIV, EAS, etc.)
- EEE: Event code (tornado warning, test, etc.)
- PSSCCC: Location codes (up to 31 areas)
- +TTTT: Valid time period (15-minute increments)
- JJJHHMM: Date/time of issue (Julian day + time)
- LLLLLLLL: Station callsign
Caller ID
Bell 202 Caller ID
Telephone caller identification protocol using Bell 202 modulation.Specifications
- Baud rate: 1200 bps
- Mark frequency: 1200 Hz
- Space frequency: 2200 Hz
- Frequency shift: -1000 Hz
- Timing: Between 1st and 2nd ring
Framing
- Data bits: 8
- Start bits: 1
- Stop bits: 1
- Protocol: SDMF or MDMF
- Encoding: ASCII/Binary
Caller ID mode is receive-only (
--tx is not supported). The protocol uses special framing defined in databits_decode_callerid().Minimodem automatically handles caller ID protocol decoding, including message type, length, and checksum validation.
Railway Communications
UIC-751-3 (Train/Ground)
European train control system protocol for train-to-wayside communication.Specifications
- Baud rate: 600 bps
- Mark frequency: 1300 Hz
- Space frequency: 1700 Hz
- Frequency shift: 400 Hz
- Modulation: FSK
Framing
- Data bits: 39
- Start bits: 8
- Stop bits: 0
- Frame format: Fixed pattern
- Variants: Train / Ground
Custom Protocols
You can create custom protocols by specifying all parameters:Advanced Options
Inverted Start/Stop Bits
Inverted Start/Stop Bits
Some protocols use inverted framing (start=mark, stop=space):
MSB First Bit Order
MSB First Bit Order
Transmit/receive most significant bit first:
Sync Byte Protocol
Sync Byte Protocol
Create protocols with synchronization preambles:This transmits 16 sync bytes before data payload.
USOS (Baudot Shift Mode)
USOS (Baudot Shift Mode)
Control LETTERS/FIGURES shift behavior in Baudot:
Protocol Comparison Table
| Protocol | Baud Rate | Mark Hz | Space Hz | Data Bits | Stop Bits | Use Case |
|---|---|---|---|---|---|---|
| Bell 103 | 300 | 1270 | 1070 | 8 | 1.0 | Classic modems |
| Bell 202 | 1200 | 1200 | 2200 | 8 | 1.0 | Fast data, Caller ID |
| V.21 | 300 | 980 | 1180 | 8 | 1.0 | International standard |
| RTTY | 45.45 | 1585 | 1415 | 5 | 1.5 | Amateur radio |
| TDD | 45.45 | 1400 | 1800 | 5 | 2.0 | Accessibility |
| SAME | 520.83 | 2083.33 | 1562.5 | 8 | 0 | Emergency alerts |
| Caller ID | 1200 | 1200 | 2200 | 8 | 1.0 | Phone ID |
| UIC-751-3 | 600 | 1300 | 1700 | 39 | 0 | Railway control |
Binary Protocols
For raw binary data without character encoding:Binary modes use
databits_decode_binary() instead of ASCII or Baudot decoders.Protocol Selection Logic
Minimodem’s protocol detection insrc/minimodem.c:main():
- Check for named protocol (rtty, tdd, same, callerid, uic, V.21)
- If numeric value, use as custom baud rate
- Apply protocol-specific defaults
- Override with command-line options
- Calculate automatic frequencies if not specified
See Also
- FSK Modulation - Understanding the underlying modulation
- Baud Rates - Detailed baud rate configuration