Sending binary files via minicom
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.