Skip to main content
This guide covers common issues you may encounter when using minimodem and their solutions.

Audio Device Issues

Symptoms: Running minimodem --tx produces no soundSolutions:
1

Check audio system selection

Minimodem defaults to PulseAudio. If you’re using ALSA, specify it explicitly:
minimodem --tx --alsa 1200
For sndio users:
minimodem --tx --sndio 1200
2

Verify audio device

List available ALSA devices:
aplay -l
Specify a particular device:
minimodem --tx --alsa=1,0 1200
3

Check volume levels

Increase the transmission amplitude:
echo "test" | minimodem --tx --volume 1.0 1200
Default volume is 1.0. Try values between 0.5 and 1.0.
On Windows/Cygwin, you may see a PulseAudio capabilities warning on first run. Simply run the command again.
Symptoms: NOCARRIER message appears immediately, or no data is decodedSolutions:
  • Lower the confidence threshold (default is 1.5):
    minimodem --rx --confidence 1.0 1200
    
  • Use auto-carrier detection to automatically detect frequencies:
    minimodem --rx --auto-carrier 1200
    
  • Check if frequencies are inverted:
    minimodem --rx --inverted 1200
    
  • Verify the correct baud rate is being used. Try common rates:
    • 300 for Bell103
    • 1200 for Bell202
    • rtty for amateur radio RTTY
Too low a confidence value (< 1.0) can result in false carrier detection and garbage output.
Problem: Receiver doesn’t seem to process audio inputCheck input device:
arecord -l  # List recording devices
Specify input device explicitly:
minimodem --rx --alsa=hw:1,0 1200
Test with an audio file first:
minimodem --tx --file test.wav 1200 < input.txt
minimodem --rx --file test.wav 1200

Decoding Issues

Causes and Solutions:

Wrong Baud Rate

Ensure transmitter and receiver use the same baud rate:
# Transmitter
minimodem --tx 1200
# Receiver must also use 1200
minimodem --rx 1200

Frequency Mismatch

Manually specify mark and space frequencies:
minimodem --rx --mark 1200 --space 2200 1200

Sample Rate Issues

Try adjusting the sample rate (default is 48000 Hz):
minimodem --rx --samplerate 44100 1200

Incorrect Framing

For protocols with non-standard framing:
minimodem --rx --startbits 0 --stopbits 1.5 45.45
Understanding confidence values:The confidence metric is based on signal-to-noise ratio (SNR) and acts as a “squelch” control.
  • confidence=inf: Perfect signal (rate perfect)
  • confidence > 5.0: Very clean signal
  • confidence 2.0-5.0: Good signal
  • confidence 1.5-2.0: Acceptable signal (default threshold)
  • confidence < 1.5: Noisy signal
Adjusting thresholds:
# Accept noisier signals
minimodem --rx --confidence 1.0 1200

# More pedantic analysis (higher CPU usage)
minimodem --rx --limit 5.0 1200

# Lower limit for faster processing
minimodem --rx --limit 1.8 1200
Use --quiet to suppress confidence reporting if you only need the decoded data.
Solutions:
  1. Increase confidence search limit:
    minimodem --rx --limit 3.0 1200
    
  2. Check for bandwidth issues:
    minimodem --rx --bandwidth 100 1200
    
  3. Use appropriate stop bits (especially for RTTY/Baudot):
    minimodem --rx rtty  # Uses 1.5 stop bits
    minimodem --rx tdd   # Uses 2.0 stop bits
    
  4. Enable USOS for Baudot if needed:
    minimodem --rx --baudot --usos 1 45.45
    

Protocol-Specific Issues

Caller-ID uses Bell202 at 1200 bps with special framing:
minimodem --rx callerid
Common issues:
  • Timing: Caller-ID is transmitted between first and second ring
  • Some systems use MDMF, others use SDMF format
  • May require --inverted flag depending on your telephone system
Record the audio to a file first, then decode offline for testing:
arecord -f S16_LE -r 48000 -c 1 callerid.wav
minimodem --rx --file callerid.wav callerid
Standard RTTY parameters:
minimodem --rx --auto-carrier rtty
Common problems:
  • Wrong shift: RTTY typically uses 170 Hz shift
  • Inverted tones: Try --inverted
  • USOS convention: Some systems (like German DWD) don’t use USOS:
    minimodem --rx --usos 0 rtty
    
Amateur radio RTTY is typically found near 14.085 MHz on 20m band.
NOAA SAME (Specific Area Message Encoding) protocol:
minimodem --rx same
Requirements:
  • Uses 520.83 bps with 0 start bits, 0 stop bits
  • Sync byte 0xAB
  • Messages begin with ZCZC preamble
If not decoding:
  • Ensure adequate signal strength from weather radio
  • Use --confidence 1.0 for weaker signals
  • Try --auto-carrier if frequency is off

Performance Issues

Reduce CPU usage:
  1. Lower the confidence search limit:
    minimodem --rx --limit 1.5 1200
    
  2. Disable benchmarks (if compiled with them): Ensure you’re not running with --benchmarks flag
  3. Use integer samples instead of float:
    minimodem --tx 1200  # Default uses 16-bit integer
    
  4. Adjust sample rate to minimum needed:
    minimodem --rx --samplerate 24000 1200
    

Build and Installation Issues

Missing dependencies:On Debian/Ubuntu:
sudo apt-get install build-essential pkg-config \
     libasound2-dev libfftw3-dev libpulse-dev libsndfile1-dev
On macOS:
brew install fftw libsndfile pkg-config
Regenerate build files:
autoreconf -i
./configure
Test failures can occur due to:
  • Floating point precision: Some tests verify “perfect” decoding
  • Audio backend issues: Tests use file-based audio by default
  • System performance: Very slow systems may have timing issues
Run individual tests:
cd tests
./01-self-test-1200.test
Skip tests and install anyway:
make
sudo make install  # Skip 'make check'
See Installation for full Windows setup.Common problems:
  1. Missing packages: Install all required Cygwin packages:
    • gcc-core, pkg-config, make, automake, autoconf
    • libsndfile1, libsndfile-devel
    • libpulse0, libpulse-simple0, libpulse-devel
    • fftw3, libfftw3_3, libfftw3-devel
  2. Configure options: Must disable ALSA and sndio on Windows:
    ./configure --without-alsa --without-sndio
    
  3. PulseAudio warning: Normal on first run, just run the command twice

Getting Help

If you’re still experiencing issues:

Debug Information

Include this information when reporting issues:
  • Minimodem version: minimodem --version
  • Build configuration: ./configure --help
  • Test output: make check
  • Sample audio file (if possible)

Community Support

  • Check existing GitHub issues
  • Provide detailed error messages
  • Include command line used
  • Specify audio backend (ALSA/PulseAudio/sndio)
Many issues can be diagnosed by first testing with audio files (--file) before using real-time audio devices.

Build docs developers (and LLMs) love