General Questions
What is minimodem?
What is minimodem?
Minimodem is a general-purpose software audio FSK (Frequency-Shift Keying) modem. It’s a command-line program that can:
- Decode (receive) audio modem tones at any specified baud rate
- Generate (transmit) audio modem tones at any specified baud rate
- Work in real-time via system audio devices
- Process audio files in batch mode
- Support various standard FSK protocols
What protocols does minimodem support?
What protocols does minimodem support?
Minimodem supports multiple FSK protocols:
- Bell103 (300 bps) - Classic 300 baud modem
- Bell202 (1200 bps) - Common for Caller-ID and packet radio
- V.21 (300 bps) - ITU-T V.21 standard
- RTTY (45.45 bps) - Radioteletype, popular in amateur radio
- TTY/TDD (45.45 bps) - Telecommunications Device for the Deaf
- NOAA SAME (520.83 bps) - Weather alert broadcasts
- Caller-ID (1200 bps) - Telephone caller identification
- UIC-751-3 (600 bps) - Train-to-ground communication
- Custom rates - Any floating-point baud rate value
What can't minimodem do?
What can't minimodem do?
Minimodem is focused on FSK modulation and doesn’t support:
- AX.25 framed packets - Use ax25 tools instead
- Modem control (“AT”) commands - Not a Hayes-compatible modem
- DTMF tones - No telephone dialing tone generation
- PSK, QAM, or other modulation schemes - FSK only
- Error correction protocols - Raw data only, no built-in error correction
For packet radio (AX.25), use minimodem with tools like
direwolf or soundmodem.Is minimodem free and open source?
Is minimodem free and open source?
Yes! Minimodem is released under the GNU General Public License version 3 (GPLv3).
- Free to use, modify, and distribute
- Source code available on GitHub
- Contributions welcome
- Created by Kamal Mostafa
Technical Questions
What sample rate should I use?
What sample rate should I use?
Default: 48000 Hz (48 kHz) works for most applications.Guidelines:
- Low baud rates (< 300 bps): 24000 Hz or 48000 Hz
- Medium baud rates (300-1200 bps): 48000 Hz (default)
- High baud rates (> 1200 bps): 48000 Hz or higher
- Very high rates (> 6000 bps): May need 96000 Hz or higher
What's the difference between mark and space frequencies?
What's the difference between mark and space frequencies?
In FSK (Frequency-Shift Keying):Auto-detection:
- Mark frequency - Represents binary ‘1’ (or ‘mark’ state)
- Space frequency - Represents binary ‘0’ (or ‘space’ state)
- Mark: 1200 Hz (binary 1)
- Space: 2200 Hz (binary 0)
What is the confidence value?
What is the confidence value?
The confidence value is a quality metric based primarily on SNR (signal-to-noise ratio).Typical values:
inf(infinity) - Perfect signal, rate perfect5.0+- Very clean signal2.0-5.0- Good signal1.5- Default minimum threshold1.0-1.5- Noisy but potentially usable< 1.0- Too noisy
Should I use ALSA or PulseAudio?
Should I use ALSA or PulseAudio?
Default: Minimodem uses PulseAudio by default on Linux (if available).PulseAudio:Using sndio (BSD systems):
- ✅ Easier for desktop systems
- ✅ Better integration with modern Linux desktops
- ✅ Automatic device management
- ❌ May have higher latency
- ✅ Lower latency
- ✅ Better for embedded systems
- ✅ More direct hardware control
- ❌ Requires manual device selection
What's the difference between Baudot and ASCII?
What's the difference between Baudot and ASCII?
ASCII (8-N-1):
- 8 data bits per character
- No parity
- 1 stop bit (typically)
- 256 possible characters
- Default for most baud rates
- 5 data bits per character
- No parity
- 1.5 or 2.0 stop bits
- 32 possible codes (uses shift for uppercase/symbols)
- Used by RTTY and TTY/TDD
Baudot is more bandwidth-efficient but has a limited character set.
Usage Questions
How do I transfer files between computers?
How do I transfer files between computers?
Basic file transfer:On the transmitting computer:On the receiving computer:Tips for reliable transfers:
- Use a physical audio cable for best results
- Higher baud rates (1200+) work well over cable
- Lower baud rates (300 or less) work better for acoustic coupling
- Consider adding error detection at the application layer
Can I use minimodem with radio?
Can I use minimodem with radio?
Yes! Minimodem works great with radio:Amateur radio RTTY:Transmitting (requires transmitter):Common frequencies:
- RTTY: 14.085 MHz (20m), 7.040 MHz (40m)
- NOAA SAME: 162.400-162.550 MHz
- Use
--auto-carrierfor unknown transmitter frequencies - RTTY typically uses 170 Hz shift
- May need
--inverteddepending on your radio’s mode (USB/LSB) - Adjust
--confidencefor weak signals
How do I test minimodem without hardware?
How do I test minimodem without hardware?
Using audio files:Type in Terminal 1, and it should appear in Terminal 2 (if speakers and microphone are close enough).Run built-in tests:
-
Generate a test transmission:
-
Decode the test file:
What's the maximum reliable baud rate?
What's the maximum reliable baud rate?
Depends on your medium:
- Audio cable: Up to 12000 bps or higher
- Acoustic (air): 100-300 bps
- Telephone line: 1200-2400 bps
- FM radio: 300-1200 bps
- HF radio: 45-300 bps (RTTY/PSK)
Higher baud rates require higher audio quality and are more susceptible to noise and distortion.
Can I use minimodem for Caller-ID?
Can I use minimodem for Caller-ID?
Yes! Minimodem supports both MDMF and SDMF Caller-ID formats.Receiving Caller-ID:Tips:
- Connect your phone line to computer’s audio input (use appropriate interface)
- Caller-ID is transmitted between the first and second ring
- You may need
--inverteddepending on your country/system - Signal appears for only a short time, so start listening before the call
Platform-Specific Questions
Does minimodem work on Windows?
Does minimodem work on Windows?
Yes, using Cygwin:Minimodem can be built and run on Windows using Cygwin. See the Installation guide for detailed instructions.Key points:
- Requires Cygwin environment
- Uses PulseAudio for audio
- Must configure with
--without-alsa --without-sndio - First run may show PulseAudio warning (run twice)
Does minimodem work on macOS?
Does minimodem work on macOS?
Yes!Installation:Or use the install script:Audio backend:
- macOS build typically uses file-based audio
- For real-time audio, consider using PulseAudio via Homebrew
- Or use
soxfor audio device bridging
Can I use minimodem on embedded systems?
Can I use minimodem on embedded systems?
Yes! Minimodem has been used on:
- Raspberry Pi - Works great, all features available
- OpenWRT routers - Successfully tested
- Embedded Linux - Designed for low-resource systems
- Use
--without-pulseaudioand use ALSA directly - Lower baud rates reduce CPU usage
- Adjust
--limitto reduce computational load - Consider
--without-benchmarksat build time
Troubleshooting
Where can I find more help?
Where can I find more help?
If you’re experiencing issues:
- Check the Troubleshooting guide
- Review the Use Cases for examples
- See the Command Reference for all options
- Check GitHub issues for similar problems
- Contribute to the project via Contributing
Still Have Questions?
Documentation
Browse the complete documentation
Examples
See practical command examples
Use Cases
Learn about real-world applications
GitHub
View source code and report issues