Skip to main content
Complete reference of all command-line options available in minimodem.

Mode Options

-t, --tx, --transmit, --write
flag
Transmit mode: read data from stdin and output FSK audio
minimodem --tx 1200
echo "data" | minimodem -t 1200
-r, --rx, --receive, --read
flag
Receive mode: decode FSK audio input to data (default mode)
minimodem --rx 1200
minimodem -r 1200

Encoding Options

-8, --ascii
flag
Use ASCII 8-N-1 encoding (8 data bits, no parity, 1 stop bit)Default for most baud rates.
minimodem --tx --ascii 300
minimodem --tx -8 300
-7
flag
Use 7-bit encoding (7-N-1)For 7-bit ASCII or protocols requiring 7 data bits.
minimodem --tx -7 1200
-5, --baudot
flag
Use Baudot 5-N-1 encoding (5 data bits)Uses Baudot/ITA-2 character encoding with LTRS/FIGS shifts.
minimodem --tx --baudot 45.45
minimodem --rx -5 45.45
-u, --usos {0|1}
integer
Select Baudot USOS (US) or ITA-2 (0) character setControls which Baudot character table is used:
  • 0: ITA-2 international standard (default)
  • 1: USOS United States standard
minimodem --rx --baudot --usos 1 45.45
--binary-output
flag
Output raw binary data without character decodingUseful for protocols with binary data or custom encodings.
minimodem --rx --binary-output 1200 > data.bin
--binary-raw {nbits}
integer
Raw binary mode with specified number of bits per frameDisables start/stop bits and character decoding. Outputs raw bit values.
minimodem --rx --binary-raw 16 1200

Frequency Options

-M, --mark {mark_freq}
float
Set mark (1 bit) frequency in HzOverride automatic frequency selection.
minimodem --tx --mark 1200 1200
minimodem --tx -M 2200 1200
-S, --space {space_freq}
float
Set space (0 bit) frequency in HzOverride automatic frequency selection.
minimodem --tx --space 2200 1200
minimodem --tx -S 1200 1200
-i, --inverted
flag
Invert mark and space frequencies (swap)Useful for inverted signal polarity or non-standard equipment.
minimodem --rx --inverted 1200
minimodem --tx -i 300

Frame Format Options

--startbits {n}
integer
default:"1"
Number of start bits per frame (0-20)Standard serial has 1 start bit. Some protocols use 0 or multiple start bits.
minimodem --tx --startbits 2 1200
minimodem --rx --startbits 8 600  # UIC mode uses 8
--stopbits {n.n}
float
default:"1.0"
Number of stop bits per frame (fractional allowed)Standard values:
  • 1.0: One stop bit (most common)
  • 1.5: RTTY standard
  • 2.0: TDD/TTY standard
  • 0.0: No stop bits (e.g., SAME protocol)
minimodem --tx --stopbits 1.5 45.45
minimodem --rx --stopbits 2.0 45.45
minimodem --rx --stopbits 0 520.83
--invert-start-stop
flag
Invert start and stop bit polaritySwaps the expected mark/space values for framing bits:
  • Normal: start=space(0), stop=mark(1)
  • Inverted: start=mark(1), stop=space(0)
minimodem --rx --invert-start-stop 1200
--msb-first
flag
Transmit/expect most significant bit firstDefault is LSB-first (least significant bit transmitted first).
minimodem --tx --msb-first 1200
--sync-byte {0xXX}
hex
Use synchronization byte preambleFor protocols requiring sync bytes (like NOAA SAME):
  • In TX: sends 16 sync bytes before data
  • In RX: looks for sync byte pattern and suppresses them in output
minimodem --tx --sync-byte 0xAB 520.83
minimodem --rx --sync-byte 0x55 1200

Receive Options

-a, --auto-carrier
flag
Automatically detect carrier frequencyScans audio spectrum to find the carrier instead of using fixed frequencies. Useful when frequency is unknown or may vary.
minimodem --rx --auto-carrier 1200
minimodem -r -a 300
Not recommended for time-critical protocols like caller ID.
-c, --confidence {threshold}
float
default:"1.5"
Minimum confidence threshold for signal detectionControls signal-to-noise squelch:
  • Lower values: accept weaker signals, more false detections
  • Higher values: require cleaner signals, fewer errors
  • Typical range: 1.0 to 3.0
minimodem --rx --confidence 2.0 1200
minimodem --rx -c 1.2 300
-l, --limit {limit}
float
default:"2.3"
Maximum confidence search limitPerformance vs. quality tradeoff:
  • Lower values: faster, may miss optimal frame position
  • Higher values: slower, better for noisy/difficult signals
  • Special: INFINITY for exhaustive search
minimodem --rx --limit 3.0 1200
minimodem --rx -l 1.5 300     # Faster
-b, --bandwidth {rx_bandwidth}
float
RX filter bandwidth in HzOverride automatic bandwidth selection:
  • Narrower: better noise rejection, requires accurate tuning
  • Wider: more frequency tolerance, more noise
Default values:
  • 200 Hz for 400+ baud
  • 50 Hz for 100-400 baud
  • 10 Hz for under 100 baud
minimodem --rx --bandwidth 100 1200
minimodem --rx -b 25 300
--rx-one
flag
Exit after receiving one complete transmissionAutomatically exits when carrier is lost after first message. Useful for batch processing or scripting.
minimodem --rx --rx-one --file audio.wav 1200

Transmit Options

-v, --volume {amplitude}
float
default:"1.0"
Output signal amplitudeValues:
  • 0.0 to 1.0: amplitude level (1.0 = maximum)
  • E: FLT_EPSILON (minimum possible value, for testing)
minimodem --tx --volume 0.5 1200    # Half volume
minimodem --tx -v 0.1 300           # 10% volume
minimodem --tx --volume E 1200      # Minimum
--lut {tx_sin_table_len}
integer
default:"4096"
Sine wave lookup table lengthControls TX tone generation quality vs. memory:
  • Larger values: higher quality, more memory
  • Smaller values: lower quality, less memory
  • 0: disable LUT (calculate sin on-the-fly)
minimodem --tx --lut 8192 1200      # Higher quality
minimodem --tx --lut 1024 300       # Lower memory
minimodem --tx --lut 0 1200         # No LUT
--tx-carrier
flag
Transmit continuous carrier toneMaintains carrier (idle mark tone) even when no data is being transmitted. Useful for keeping receiver locked or testing.
minimodem --tx --tx-carrier 1200
--print-eot
flag
Print ”### EOT” message when transmission endsOutputs end-of-transmission marker to stderr.
echo "test" | minimodem --tx --print-eot 1200

Audio Options

-f, --file {filename}
string
Read from or write to audio file instead of audio deviceSupports WAV, FLAC, and other formats (via libsndfile).
  • TX mode: writes audio to file
  • RX mode: reads audio from file
minimodem --tx --file output.wav 1200
minimodem --rx --file recording.flac 1200
minimodem -r -f audio.wav 300
-R, --samplerate {rate}
integer
default:"48000"
Audio sample rate in HzCommon values: 8000, 11025, 22050, 44100, 48000, 96000Higher sample rates provide better accuracy but use more resources.
minimodem --tx --samplerate 44100 1200
minimodem --rx -R 22050 300
-A, --alsa[=device]
string
Use ALSA backend with optional device specificationDirect ALSA audio device access:
  • Without argument: use default ALSA device
  • With argument: specific ALSA device (e.g., plughw:1,0)
minimodem --tx --alsa 1200
minimodem --rx --alsa=plughw:0,0 1200
minimodem -r -A hw:1,0 300
Only available if minimodem was compiled with ALSA support.
-s, --sndio[=device]
string
Use sndio backend with optional device specificationOpenBSD sndio audio system:
  • Without argument: use default sndio device
  • With argument: specific sndio device
minimodem --tx --sndio 1200
minimodem --rx --sndio=snd/0 1200
Only available if minimodem was compiled with sndio support.
--float-samples
flag
Use floating-point sample format instead of 16-bit integerProvides higher precision for TX audio generation. RX always uses float samples internally (required for FFT).
minimodem --tx --float-samples --file output.wav 1200

Output Options

-q, --quiet
flag
Suppress status messagesDisables CARRIER/NOCARRIER and other status output to stderr. Only decoded data or errors are displayed.
minimodem --rx --quiet 1200
minimodem -r -q 300 > data.txt
--print-filter
flag
Filter non-printable characters in outputReplaces non-printable characters with ’.’ for display. Useful for debugging or displaying binary protocols.
minimodem --rx --print-filter 1200

Utility Options

-V, --version
flag
Display version information and exitShows minimodem version, copyright, and license information.
minimodem --version
minimodem -V
--benchmarks
flag
Run performance benchmarks and exitTests tone generation performance with different configurations. Useful for comparing system performance.
minimodem --benchmarks

Experimental Options

The following options are experimental and may not be stable:
--Xrxnoise {factor}
float
Experimental: Add noise to received signal for testing
minimodem --rx --Xrxnoise 0.1 1200

Common Option Combinations

minimodem --tx --volume 0.8 --lut 8192 --float-samples \
  --samplerate 48000 1200
Maximum quality transmission settings.
minimodem --rx --confidence 2.5 --limit 3.5 --bandwidth 50 300
Settings for difficult reception conditions.
minimodem --rx --limit 1.5 --confidence 1.2 1200
Lower latency, prioritize speed over accuracy.
minimodem --rx --file input.wav --rx-one --quiet 1200 > output.txt
Batch process audio file without status messages.
minimodem --tx -M 2200 -S 1200 --startbits 2 --stopbits 1.5 \
  -7 --msb-first 600
Fully customized framing and frequencies.

Option Categories Quick Reference

Basic

  • --tx / --rx
  • --file
  • --quiet
  • --version

Encoding

  • --ascii / -8
  • -7
  • --baudot / -5
  • --binary-output
  • --binary-raw

Frequencies

  • --mark
  • --space
  • --inverted
  • --auto-carrier

Frame Format

  • --startbits
  • --stopbits
  • --invert-start-stop
  • --msb-first
  • --sync-byte

Receive

  • --confidence
  • --limit
  • --bandwidth
  • --rx-one

Transmit

  • --volume
  • --lut
  • --tx-carrier
  • --print-eot

Audio

  • --samplerate
  • --alsa
  • --sndio
  • --float-samples

Examples

minimodem --tx 1200

Build docs developers (and LLMs) love