- friendly serial communication program

minicom [options] [configuration]

a communication program include script language , capture to file, multiple users with individual configurations,

A with all the documention found here, this is tersified and arranged in what I feel is a sensible order. See the man minicom for the truth. This is a very old program and some of the options don;t make sense anymore.

Starts up in the configuration menu.
Useful if minicom refuses to start up or for the first time
 | Filenames and paths     
 | File transfer protocols
 | Serial port setup     
 | Modem and dialing    
 | Screen and keyboard 
 | Save setup as dfl  
 | Save setup as..   
 | Exit             
 | Exit from Minicom

Filenames and paths 
A - Download directory :   
B - Upload directory   :  
C - Script directory   : 
D - Script program     : runscript  
E - Kermit program     :           
F - Logging options               

File transfer protocols 
    Name             Program                 Name U/D FullScr IO-Red. Multi  
A  zmodem     /usr/bin/sz -vv -b              Y    U    N       Y       Y   
B  ymodem     /usr/bin/sb -vv                 Y    U    N       Y       Y   
C  xmodem     /usr/bin/sx -vv                 Y    U    N       Y       N   
D  zmodem     /usr/bin/rz -vv -b -E           N    D    N       Y       Y   
E  ymodem     /usr/bin/rb -vv                 N    D    N       Y       Y   
F  xmodem     /usr/bin/rx -vv                 Y    D    N       Y       N   
G  kermit     /usr/bin/kermit -i -l %l -b %b  Y    U    Y       N       N   
H  kermit     /usr/bin/kermit -i -l %l -b %b  N    D    Y       N       N   
I  ascii      /usr/bin/ascii-xfr -dsv         Y    U    N       Y       N   
J    -                                              
K    -                                             
L    -                                            
M  Zmodem download string activates... D         
N  Use filename selection window...... Yes      
O  Prompt for download directory...... No      

Serial port setup 
A -    Serial Device      : /dev/tty8                   
B - Lockfile Location     : /var/lock                    
C -   Callin Program      :                               
D -  Callout Program      :                                
E -    Bps/Par/Bits       : 115200 8N1                      
F - Hardware Flow Control : Yes                              
G - Software Flow Control : No                                

Modem and dialing
A - Init string .........               
B - Reset string ........              
C - Dialing prefix #1.... ATDT        
D - Dialing suffix #1.... ^M         
E - Dialing prefix #2.... ATDP      
F - Dialing suffix #2.... ^M       
G - Dialing prefix #3.... ATX1DT  
H - Dialing suffix #3.... ;X4D^M 
I - Connect string ...... CONNECT  
J - No connect strings .. NO CARRIER            BUSY   
                          NO DIALTONE           VOICE 
K - Hang-up string ...... ~~+++~~ATH^M               
L - Dial cancel string .. ^M                        
M - Dial time ........... 45      Q - Auto bps detect ..... No 
N - Delay before redial . 2       R - Modem has DCD line .. Yes
O - Number of tries ..... 10      S - Status line shows ... DTE speed 
P - DTR drop time (0=no). 1       T - Multi-line untag .... No       

Screen and keyboard
A - Command key is         : ^A      
B - Backspace key sends    : BS     
C - Status line is         : enabled
D - Alarm sound            : Yes   
E - Foreground Color (menu): WHITE
F - Background Color (menu): BLACK
G - Foreground Color (term): WHITE
H - Background Color (term): BLACK
I - Foreground Color (stat): WHITE
J - Background Color (stat): BLACK
K - History Buffer Size    : 2000
L - Macros file            : .macros 
M - Edit Macros                     
N - Macros enabled         : Yes   
O - Character conversion   :      
P - Add linefeed           : No  
Q - Local echo             : No 
R - Line Wrap              : No
S - Hex Display            : No
T - Add carriage return    : No 
Do not initialize. Useful if you quit from minicom without resetting, and want to restart a session.
Potentially dangerous as no check for lock files etc. is made, so a normal user could interfere with things like UUCP...
Override command-key (^A) with the Meta or ALT key. Can also be configured in menus,
default command key to Ctrl-A and use this option when you have a keyboard supporting Meta or ALT keys.
Minicom assumes that Meta key sends the ESC prefix, see --metakey8
as --metakey, but expects that Meta key sets the 8th bit of the character
Use terminal status line. Only on terminals that support it and that have the relevant information in their termcap or terminfo database entry.
Literal translation of characters with the high bit set.
Translates the IBM line characters to ASCII. Many PC-unix clones will display character correctly without translation
As with --ansi but expects ISO8859 character set.
Turns line-wrap on
Turn on output in hex mode.
Attribute usage. default, on
Terminal type. override $TERM . Useful to create a termcap entry for use on the console, that initializes the screen to raw mode so that in conjunction with the -l flag, the IBM line characters are displayed untranslated.
Color usage. There is no termcap support for color(?), these escape sequences are hard-coded Default off
Run the named script at startup., BEFORE dialing the entries specified with --dail. also use --dail to start dialing at startup,
--dial=ENTRY[,entryb …]
Dial an entry from the dialing directory on startup. index number, or substring of the name of the entry.
specify a name that has multiple entries in the directory, they are all tagged for dialing.
Pseudo terminal to use. overrides the terminal port in the configuration files, but only if it is a pseudo TTY.
Must be of the form (/dev/)tty[p-z/][0-f], (/dev/)pts[p-z/][0-f] or (/dev/)pty[p-z/][0-f]. For example, /dev/ttyp1, pts/0 or /dev/ptyp2.
Open capture file at startup.
Format for the status line.
%H Escape key for help screen.
%V Version string of minicom.
%b Information on connection, such as baud rate.
%T Terminal type.
%C Cursor mode.
%D Device path, possibly shorted to remaining available space.
%t Online time.
%% % character.
Example: %H for help | %b | Minicom %V | %T | %C | %t
character set of the remote system and convert it to the character set of the local side. Example 'latin1'.
7bit mode for terminals which aren't 8bit capable. 8bit is default if the environment is configured for this via LANG or LC_ALL, 7bit otherwise.
8bit characters pass through without any modification. 'Continuous' means no locate/attribute control sequences are inserted without real change of locate/attribute. This mode is to display 8bit multi-byte characters such as Japanese. Not needed in every language with 8bit characters. (For example displaying Finnish text doesn't need this.)
Display help and exit.
Print the minicom version.

Use $MINICOM for command-line arguments, which can be over-ridden on the command line. Example:

                 MINICOM='-m -c on'
                 export MINICOM
configuration The configuration argument , defaults from minirc.dfl. If you however give an argument to minicom, it will try to get its defaults from a file called "minirc.configuration". So it is possible to create multiple configuration files, for different ports, different users etc. Most sensible is to use device names, such as tty1, tty64, sio2 etc. If a user creates his own configuration file, it will show up in his home directory as ".minirc.dfl" or ".minirc.configuration".


Minicom is window based. To pop-up a window press ^A Control-A), and the function key (a-z or A-Z).
Press ^Az for help screen of commands. This escape key can be altered when minicom is configured (-s option or C-A O)
       For every menu the next keys can be used:
       UP     arrow-up or 'k'
       DOWN   arrow-down or 'j'
       LEFT   arrow-left or 'h'
       RIGHT  arrow-right or 'l'
       CHOOSE Enter
       CANCEL ESCape.
The upper 24 lines are the terminal-emulator screen. In this window, ANSI or VT100 escape sequences are interpreted.
If there is a line left at the bottom, a status line . If this is not possible the status line will be displayed sith ^A.
terminals with a status line that will be used if the termcap information is complete and the -k flag has been given.

commands C-A Pressing C-A a second time will just send a C-A to the remote system. If you have changed your "escape character" to some- thing other than C-A, this works analogously for that character. A Toggle 'Add Linefeed' on/off. If it is on, a linefeed is added before every carriage return displayed on the screen. B Gives you a scroll back buffer. You can scroll up with u, down with d, a page up with b, a page down with f, and if you have them the arrow and page up/page down keys can also be used. You can search for text in the buffer with s (case-sensitive) or S (case-insensitive). N will find the next occurrence of the string. c will enter citation mode. A text cursor appears and you specify the start line by hitting Enter key. Then scroll back mode will finish and the contents with prefix '>' will be sent. C Clears the screen. D Dial or go to the dialing directory. E Toggle local echo F A break signal is sent to the modem. G Run script (Go). Runs a login script. H Hangup. I Toggle the type of escape sequence that the cursor keys send between normal and applications mode. (See the status line below). J Jump to a shell. On return, the whole screen will be redrawn. K Clears the screen, runs kermit and redraws the screen upon return. L Turn Capture file on off. If turned on, all output sent to the screen will be captured in the file M Sends the modem initialization string. If you are online and the DCD line setting is on, you are asked for confirmation before the modem is initialized. N Toggle between three states, whether each line is prefixed with current date and time, a timestamp is added every second, or no timestamps. O Configure minicom. Puts you in the configuration menu. P Communication Parameters. Allows you to change the bps rate, parity and number of bits. R Receive files. Choose from various protocols (external). If you have the filename selection window and the prompt for down- load directory enabled, you'll get a selection window for choosing the directory for downloading. Otherwise the download directory defined in the Filenames and paths menu will be used. S Send files. Choose the protocol as with receive . If you don't have the filename selection window enabled (in the File transfer protocols menu), you'll just have to write the filename(s) in a dialog window. If you have the selection window enabled, a window will pop up showing the filenames in your upload directory. You can tag and untag file- names by pressing spacebar, and move the cursor up and down with the cursor keys or j/k. The selected filenames are shown highlighted. Directory names are shown [within brackets] and you can move up or down in the directory tree by pressing the spacebar twice. Finally, send the files by pressing ENTER or quit by pressing ESC. T Choose Terminal emulation: Ansi(color) or vt100. You can also change the backspace key here, turn the status line on or off, and define delay (in milliseconds) after each newline if you need that. W Toggle line-wrap on/off. Y Paste a file. Reads a file and sends its contests just as if it would be typed in. Z help screen. Q Quit without resetting the modem. If macros changed and were not saved, you will have a chance to do so. X Exit minicom, reset modem. If macros changed and were not saved, you will have a chance to do so.


       By pressing C-A D the program puts you in the dialing directory. Select a command by pressing the capitalized  letter  or  moving
       cursor  right/left  with  the arrow keys or the h/l keys and pressing Enter. You can add, delete or edit entries and move them up
       and down in the directory list. By choosing "dial" the phone numbers of the tagged entries, or if nothing is tagged,  the  number
       of  the  highlighted entry will be dialed. While the modem is dialing, you can press escape to cancel dialing. Any other key will
       close the dial window, but won't cancel the dialing itself. Your dialing directory will be saved into the file ".dialdir" in your
       home directory.  You can scroll up and down with the arrow keys, but you can also scroll complete pages by pressing the PageUp or
       PageDown key.  If you don't have those, use Control-B (Backward) and Control-F (Forward). You can use the space bar to tag a num-
       ber  of  entries  and  minicom will rotate trough this list if a connection can't be made. A '>' symbol is drawn in the directory
       before the names of the tagged entries.

       The "edit" menu 
       A - Name  The name for this entry
       B - Number and its telephone number.
       C - Dial string #
                 Which specific dial string you want to use to connect. There are three different dial strings (prefixes  and  suffixes)
                 that can be configured in the Modem and dialing menu.
       D - Local echo can be on or off for this system (if your version of minicom supports it).
       E - Script The script that must be executed after a successful connection is made (see the manual for runscript)
       F - Username The username that is passed to the runscript program.  It is passed in the environment string "$LOGIN".
       G - Password The password is passed as "$PASS".
       H - Terminal Emulation Use ANSI or VT100 emulation.
       I - Backspace key sends What code (Backspace or Delete) the backspace key sends.
       J - Linewrap Can be on or off.
       K - Line settings
                 Bps  rate,  bits,  parity and number of stop bits to use for this connection.  You can choose current for the speed, so
                 that it will use whatever speed is being used at that moment (useful if you have multiple modems).
       L - Conversion table
                 You may specify a character conversion table to be loaded whenever this entry answers, before running the login script.
                 If this field is blank, the conversion table stays unchanged.
       The edit menu also shows the latest date and time when you called this entry and the total number of calls there, but doesn't let
       you change them.  They are updated automatically when you connect.

       The moVe command lets you move the highlighted entry up or down in the dialing directory with the up/down arrow keys or the k and
       j keys. Press Enter or ESC to end moving the entry.

CONFIGURATION By C-A O Filenames and paths This menu defines your default directories. A - Download directory where the downloaded files go to. B - Upload directory where the uploaded files are read from. C - Script directory Where you keep your login scripts. D - Script program Which program to use as the script interpreter. Defaults to the program "runscript", but if you want to use something else (eg, /bin/sh or "expect") it is possible. Stdin and stdout are connected to the modem, stderr to the screen. If the path is relative (ie, does not start with a slash) then it's relative to your home directory, except for the script interpreter. E - Kermit program Where to find the executable for kermit, and it's options. Some simple macro's can be used on the command line: '%l' is expanded to the complete filename of the dial out-device, '%f' is expanded to the serial port file descriptor and '%b' is expanded to the current serial port speed. F - Logging options Options to configure the logfile writing. A - File name Here you can enter the name of the logfile. The file will be written in your home directory, and the default value is "minicom.log". If you blank the name, all logging is turned off. B - Log connects and hangups This option defines whether or not the logfile is written when the remote end answers the call or hangs up. Or when you give the hangup command yourself or leave minicom without hangup while online. C - Log file transfers Do you want log entries of receiving and sending files. The 'log' command in the scripts is not affected by logging options B and C. It is always executed, if you just have the name of the log file defined.

File Transfer Protocols Protocols defined here will show up when C-A s/r is pressed. "Name" in the beginning of the line is the name that will show up in the menu. "Program" is the path to the protocol. "Name" after that defines if the program needs an argument, e.g. a file to be transmitted. U/D defines if this entry should show up in the upload or the download menu. Fullscr defines if the program should run full screen, or that minicom will only show it's stderr in a window. IO-Red defines if minicom should attach the program's standard in and output to the modem port or not. "Multi" tells the filename selection window whether or not the pro- tocol can send multiple files with one command. It has no effect on download protocols, and it is also ignored with upload pro- tocols if you don't use the filename selection window. The old sz and rz are not full screen, and have IO-Red set. However, there are curses based versions of at least rz that do not want their stdin and stdout redirected, and run full screen. All file transfer protocols are run with the UID of the user, and not with UID=root. '%l', '%f' and '%b' can be used on the command line as with kermit. Within this menu you can also define if you want to use the filename selection window when prompted for files to upload, and if you like to be prompted for the download directory every time the automatic download is started. If you leave the download directory prompt disabled, the download directory defined in the file and directory menu is used.

Serial port setup

A - Serial device /dev/tty1 or /dev/ttyS1 for most people. /dev/cuan is no longer recommended as these devices are obsolete and Use /dev/ttySn instead. You may also have /dev/modem as a symlink to the real device. If you have modems connected to two or more serial ports, you may specify all of them here in a list separated by space, comma or semicolon. When Minicom starts, it checks the list until it finds an available modem and uses that one. (However, you can't specify different init strings to them... at least not yet.) To use a UNIX socket for communication the device name must be prefixed with "unix#" following by the full path and the filename of the socket. Minicom will then try to connect to this socket as a client. As long as it cannot connect to the socket it stays 'offline'. As soon as the connection establishes, minicom goes 'online'. If the server closes the socket, minicom switches to 'offline' again. B - Lock file location On most systems This should be /usr/spool/uucp. or /var/lock. If this directory does not exist, minicom will not attempt to use lockfiles. C - Callin program If you have a uugetty or something on your serial port, it could be that you want a program to be run to switch the modem cq. port into dialin/dialout mode. This is the program to get into dialin mode. D - Callout program And this to get into dialout mode. E - Bps/Par/Bits Default parameters at startup. If one of the entries is left blank, it will not be used. So if you don't care about locking, and don't have a getty running on your modemline, entries B - D should be left blank. Modem and Dialing Here, the parameters for your modem are defined. I will not explain this further because the defaults are for generic Hayes modems, and should work always. This file is not a Hayes tutorial :-) The only things worth noticing are that control charac- ters can be sent by prefixing them with a '^', in which '^^' means '^' itself, and the '\' character must also be doubled as '\\', because backslash is used specially in the macro definitions. Some options however, don't have much to do with the modem but more with the behaviour of minicom itself: M - Dial time The number of seconds before minicom times out if no connection is established. N - Delay before redial Minicom will redial if no connection was made, but it first waits some time. O - Number of tries Maximum number of times that minicom attempts to dial. P - Drop DTR time If you set this to 0, minicom hangs up by sending a Hayes-type hangup sequence. If you specify a non-zero value, the hangup will be done by dropping the DTR line. The value tells in seconds how long DTR will be kept down. Q - Auto bps detect If this is on, minicom tries to match the dialed party's speed. With most modern modems this is NOT desirable, since the modem buffers the data and converts the speed. R - Modem has DCD line If your modem, and your O/S both support the DCD line (that goes 'high' when a connection is made) minicom will use it. When you have this option on, minicom will also NOT start dialing while you are already online. S - Status line shows DTE speed / line speed You can toggle the status line to show either the DTE speed (the speed which minicom uses to communicate with your modem) or the line speed (the speed that your modem uses on the line to communicate with the other modem). Notice that the line speed may change during the connection, but you will still only see the initial speed that the modems started the connec- tion with. This is because the modem doesn't tell the program if the speed is changed. Also, to see the line speed, you need to have the modem set to show it in the connect string. Otherwise you will only see 0 as the line speed. T - Multi-line untag You can toggle the feature to untag entries from the dialing directory when a connection is established to a multi-line BBS. All the tagged entries that have the same name are untagged. Note that a special exception is made for this menu: every user can change all parameters here, but some of them will not be saved. Screen and keyboard A - Command key is the 'Hot Key' that brings you into command mode. If this is set to 'ALT' or 'meta key', you can directly call commands by alt-key instead of HotKey-key. B - Backspace key sends There still are some systems that want a VT100 to send DEL instead of BS. With this option you can enable that stupidity. (Eh, it's even on by default...) C - Status line is Enabled or disabled. Some slow terminals (for example, X-terminals) cause the status line to jump "up and down" when scrolling, so you can turn it off if desired. It will still be shown in command-mode. D - Alarm sound If turned on, minicom will sound an alarm (on the console only) after a successful connection and when up/downloading is complete. E - Foreground Color (menu) indicates the foreground color to use for all the configuration windows in minicom. F - Background Color (menu) indicates the background color to use for all the configuration windows in minicom. Note that minicom will not allow you to set foreground and background colors to the same value. G - Foreground Color (term) indicates the foreground color to use in the terminal window. H - Background Color (term) indicates the background color to use in the terminal window. Note that minicom will not allow you to set foreground and background colors to the same value. I - Foreground Color (stat) indicates the foreground color to use in for the status bar. J - Background Color (stat) indicates the color to use in for the status bar. Note that minicom will allow you to set the status bar's foreground and background colors to the same value. This will effectively make the status bar invisible but if these are your intentions, please see the option K - History buffer size The number of lines to keep in the history buffer (for backscrolling). L - Macros file is the full path to the file that holds macros. Macros allow you to define a string to be sent when you press a certain key. In minicom, you may define F1 through F10 to send up to 256 characters [this is set at compile time]. The filename you specify is verified as soon as you hit ENTER. If you do not have permissions to create the specified file, an error message will so indicate and you will be forced to re-edit the filename. If you are permitted to create the file, minicom checks to see if it already exists. If so, it assumes it's a macro file and reads it in. If it isn't, well, it's your problem :-) If the file does not exist, the filename is accepted. M - Edit Macros opens up a new window which allows you to edit the F1 through F10 macros. N - Macros enabled - Yes or No. If macros are disabled, the F1-F10 keys will just send the VT100/VT220 function key escape sequences. O - Character conversion The active conversion table filename is shown here. If you can see no name, no conversion is active. Pressing O, you will see the conversion table edit menu. Edit Macros Here, the macros for F1 through F10 are defined. The bottom of the window shows a legend of character combinations that have special meaning. They allow you to enter special control characters with plain text by prefixing them with a '^', in which '^^' means '^' itself. You can send a 1 second delay with the '^~' code. This is useful when you are trying to login after ftp'ing or telnet'ing somewhere. You can also include your current username and password from the phone directory in the macros with '\u' and '\p', respectively. If you need the backslash character in the macro, write it doubled as '\\'. To edit a macro, press the number (or letter for F10) and you will be moved to the end of the macro. When editing the line, you may use the left & right arrows, Home & End keys, Delete & BackSpace, and ESC and RETURN. ESC cancels any changes made while ENTER accepts the changes. Character conversion Here you can edit the character conversion table. If you are not an American, you know that in many languages there are characters that are not included in the ASCII character set, and in the old times they may have replaced some less important characters in ASCII and now they are often represented with character codes above 127. AND there are various different ways to represent them. This is where you may edit conversion tables for systems that use a character set different from the one on your computer. A - Load table You probably guessed it. This command loads a table from the disk. You are asked a file name for the table. Prede- fined tables .mciso, .mcpc8 and .mcsf7 should be included with the program. Table .mciso does no conversion, .mcpc8 is to be used for connections with systems that use the 8-bit pc character set, and .mcsf7 is for compatibility with the systems that uses the good old 7-bit coding to replace the characters {|}[]\ with the diacritical characters used in Finnish and Swedish. B - Save table This one saves the active table on the filename you specify. C - edit char This is where you can make your own modifications to the existing table. First you are asked the character value (in decimal) whose conversion you want to change. Next you'll say which character you want to see on your screen when that character comes from the outside world. And then you'll be asked what you want to be sent out when you enter that character from your keyboard. D - next screen E - prev screen Yeah, you probably noticed that this screen shows you what kind of conversions are active. The screen just is (usu- ally) too small to show the whole table at once in an easy-to-understand format. This is how you can scroll the table left and right. F - convert capture Toggles whether or not the character conversion table is used when writing the capture file. Save setup as dfl Save the parameters as the default for the next time the program is started. Instead of dfl, any other parameter name may appear, depending on which one was used when the program was started. Save setup as.. Save the parameters under a special name. Whenever Minicom is started with this name as an argument, it will use these parame- ters. This option is of course privileged to root. Exit Escape from this menu without saving. This can also be done with ESC. Exit from minicom Only root will see this menu entry, if he/she started minicom with the '-s' option. This way, it is possible to change the con- figuration without actually running minicom. STATUS LINE The status line has several indicators, that speak for themselves. The mysterious APP or NOR indicator probably needs explana- tion. The VT100 cursor keys can be in two modes: applications mode and cursor mode. This is controlled by an escape sequence. If you find that the cursor keys do not work in, say, vi when you're logged in using minicom then you can see with this indicator whether the cursor keys are in applications or cursor mode. You can toggle the two with the C-A I key. If the cursor keys then work, it's probably an error in the remote system's termcap initialization strings (is). LOCALES Minicom has support for local languages. This means you can change most of the English messages and other strings to another lan- guage by setting the environment variable LANG.


If minicom is hung, kill it with SIGTERM . (This means kill -15, or since sigterm is default, just plain "kill minicompid>". This will cause a graceful exit of minicom, doing resets and everything. You may kill minicom from a script with the command "! killall -9 minicom" without hanging up the line. Without the -9 parameter, minicom first hangs up before exiting.

ANSI Escape sequences may begin with ESC (Arrow up is ESC [ A), Minicom does not know if the escape character it gets is you pressing the escape key, or part of a sequence. a 1-second timeout is builtin, like in vi. For systems that have the select() system call the timeout is 0.5 seconds.

DEBIAN SPECIFIC In Debian GNU/Linux systems, minicom is not setuid root. Users need to be added to the dialout group to use serial port devices.


Configuration files in /etc/minicom.
Demo files for runscript(1), and the examples of character conversion tables in /usr/share/doc/minicom.
The conversion tables are named mc.* in the tables subdirectory, but copy the ones you need in your home directory as something beginning with a dot.
            System-wide defaults in /etc/minicom/minirc.dfl