minicom

Linux GPLv2 | Used in: SG-03

What It Does

minicom is a text-based serial communication program for Linux, modeled after the classic DOS program Telix. It provides a full-featured terminal for connecting to serial devices — microcontrollers, routers, switches, modems, and embedded systems over UART. It supports file transfers (Zmodem, Xmodem, Ymodem), session logging, and saved connection profiles for different devices.

Why You Need It

Signal guide SG-03 uses serial communication to interact with Arduino boards and debug hardware projects. minicom is the traditional Linux serial terminal — it has been the go-to tool for embedded engineers and network administrators for decades. If you are SSH-ed into a headless Linux box and need to connect to a serial device, minicom is likely already in the package manager. Its menu-driven configuration and persistent saved settings make it particularly useful when you regularly connect to the same devices at the same baud rates.

How to Install It

Debian/Ubuntu:

sudo apt install minicom

Fedora/RHEL:

sudo dnf install minicom

Arch Linux:

sudo pacman -S minicom

macOS: minicom is not natively available on macOS. Use screen instead (pre-installed), or install minicom via Homebrew with brew install minicom if you specifically need it.

Source: salsa.debian.org/minicom-team/minicom

How to Use It

  1. Initial setup — Run the setup wizard to configure your default serial port and baud rate:
    sudo minicom -s

    Navigate to "Serial port setup." Press A to set the serial device (e.g., /dev/ttyUSB0), press E to set baud rate/parity/bits (e.g., 115200 8N1). Select "Save setup as dfl" to save as the default profile, then "Exit" to start the connection.

  2. Connect to a device — Once configured, just run:
    sudo minicom

    Or specify the device directly: sudo minicom -D /dev/ttyUSB0 -b 115200

  3. Capture session log — Press Ctrl+A then L to start logging all output to a file. Press the same combination again to stop. The log file is saved in your current directory by default.
  4. Send files (Zmodem) — Press Ctrl+A then S to open the file transfer menu. Select Zmodem (or Xmodem/Ymodem), navigate to the file, and send. The receiving device must also support the selected protocol.
  5. Exit minicom — Press Ctrl+A then X to quit. Confirm with "Yes." This closes the serial connection and releases the port.

Common Gotchas

Must run as root or be in the dialout group

Serial devices under /dev/ are owned by root and the dialout group. Either run minicom with sudo or add your user to the group: sudo usermod -aG dialout $USER. Log out and back in for it to take effect.

Hardware flow control is on by default

minicom enables hardware flow control (RTS/CTS) by default. Most USB-to-serial adapters and microcontrollers do not use it, which causes minicom to hang or show no output. In setup (minicom -s), go to "Serial port setup," press F to toggle "Hardware Flow Control" to "No."

Escape key is Ctrl+A, not Escape

All minicom commands start with Ctrl+A. Pressing Ctrl+A then Z shows the help screen with all available commands. This is the same escape key as GNU Screen, so they conflict if you run minicom inside a screen session — use Ctrl+A A to pass through to the inner program.

Default device may not match yours

minicom defaults to /dev/modem which likely does not exist on modern systems. You must configure the correct device path in setup. List your serial devices with ls /dev/ttyUSB* /dev/ttyACM* or check dmesg | tail after plugging in the USB adapter.

Saved configs are system-wide

When you run sudo minicom -s and save, the config is stored in /etc/minicom/. Named profiles can be saved with "Save setup as..." and recalled with minicom profile_name. This is useful for maintaining separate configs for different devices (e.g., one for Arduino at 9600, one for ESP32 at 115200).

Last Reviewed

Last reviewed: March 2026