Danny's Lab

Engineering the World

Sending binary files via minicom

Published on: Mar 31, 2011
Reading time: 1 minute

Minicom is the defacto standard serial communication program for Linux, modeled after the old DOS program Telix. While Minicom isn't as advanced as Telix, it does offer quite a bit of functionality that satisfies most common needs. Unfortunately, it doesn't include a binary upload option.

While not commonly used, once in a while, you just need it. Fortunately, Minicom does allow you to define your own file transfer utilities. So here's a simple little script you can use that will give you a "binary upload" option in Minicom. To make things a little prettier, I used a little utility called 'pv' so that you can get a progress bar while it transfers your file.

If you don't already have it, you should be able to find it easily within your Linux distribution:

On RPM-based systems, just type:

sudo yum install pv

On Debian-based systems, type:

sudo apt-get install pv

Now create this script, and place it in your ~/bin/ directory as (for example) bin-xfr.

#!/bin/sh INFILE=/dev/null OUTFILE=/dev/null while [ $# -gt 0 ]; do case "$1" in -i) shift INFILE="$1" ;; -o) shift OUTFILE="$1" ;; -h|--help) echo "$0 -i infile -o outfile" ;; *) INFILE="$1" esac shift done cat << EOF binary-xfer utility for minicom Sending file ${INFILE} to ${OUTFILE} EOF /usr/bin/pv --force -i 0.25 -B 128  ${INFILE}  2>&1 > ${OUTFILE} # Use the line below if you don't have pv! # /bin/cat ${INFILE} > ${OUTFILE} cat << EOF File transfer complete EOF sleep 1

Now go over to minicom and go to the configuration menu (via ESC-O), then "File transfer protocols". You can add a section there called "binary", point it at your file, and specify:

  • Name: Binary
  • Program: /home/MYUSERNAME/bin/bin-xfer -o %l
  • Name: Y
  • U/D: U
  • FullScr: Y
  • IO-Red: N
  • Multi:N

Then leave the menu and save your options. Next time you send a file (via ESC-S), you should see "Binary" listed as an option.