Files
IronOS/Flashing/flash_ts100_linux.sh
Ben V. Brown 347968e4ef Fillout settings functions
Settings menu works
Movement working & TMP calibrated
Tip reading sensibily
Accuracy seems ok
Trimmed down overshoot by biasing integral
Saving to flash working, detailed idle
Sleep mode
Description scrolls
Building for DFU working
Motion detection update
Use manual alg instead, using highpass filter, then sum current change vs rolling average
Re-shuffle the pwm code organisation
2017-09-12 12:59:06 +10:00

131 lines
3.1 KiB
Bash

#!/bin/bash
# TS100 Flasher for Linux by Alex Wigen (https://github.com/awigen)
DIR_TMP="/tmp/ts100"
function usage() {
echo
echo "#################"
echo "# TS100 Flasher #"
echo "#################"
echo
echo " Usage: $0 <HEXFILE>"
echo
echo "This script has been tested to work on Fedora."
echo "If you experience any issues please open a ticket at:"
echo "https://github.com/Ralim/ts100/issues/new"
echo
}
GAUTOMOUNT=0
function disable_gautomount {
GSETTINGS=`which gsettings`
if [ $? -ne 0 ]; then
return 1
fi
gsettings get org.gnome.desktop.media-handling automount | grep true > /dev/null
if [ $? -eq 0 ]; then
GAUTOMOUNT=1
gsettings set org.gnome.desktop.media-handling automount false
fi
}
function enable_gautomount {
if [ "$GAUTOMOUNT" -ne 0 ]; then
gsettings set org.gnome.desktop.media-handling automount true
fi
}
function is_attached {
output=`lsblk -b --raw --output NAME,MODEL | grep 'DFU\\\\x20Disk'`
if [ $? -ne 0 ]; then
return 1
fi
DEVICE=`echo $output | awk '{print "/dev/"$1}'`
}
instructions="not printed"
function wait_for_ts100 {
is_attached
while [ $? -ne 0 ]; do
if [ "$instructions" = "not printed" ]; then
echo
echo "#####################################################"
echo "# Waiting for TS100 config disk device to appear #"
echo "# #"
echo "# Connect the soldering iron with a USB cable while #"
echo "# holding the button closest to the tip pressed #"
echo "#####################################################"
echo
instructions="printed"
fi
sleep 0.1
is_attached
done
}
function mount_ts100 {
mkdir -p "$DIR_TMP"
sudo mount -t msdos -o uid=$UID "$DEVICE" "$DIR_TMP"
if [ $? -ne 0 ]; then
echo "Failed to mount $DEVICE on $DIR_TMP"
exit 1
fi
}
function umount_ts100 {
mountpoint "$DIR_TMP" > /dev/null && sudo umount "$DIR_TMP"
if [ $? -ne 0 ]; then
echo "Failed to unmount $DIR_TMP"
exit 1
fi
rmdir "$DIR_TMP"
}
function cleanup {
enable_gautomount
if [ -d "$DIR_TMP" ]; then
umount_ts100
fi
}
trap cleanup EXIT
if [ "$#" -ne 1 ]; then
echo "Please provide a HEX file to flash"
usage
exit 1
fi
if [ ! -f "$1" ]; then
echo "'$1' is not a regular file, please provide a HEX file to flash"
usage
exit 1
fi
if [ `head -c1 "$1"` != ":" ] || [ `tail -n1 "$1" | head -c1` != ":" ]; then
echo "'$1' doesn't look like a valid HEX file. Please provide a HEX file to flash"
usage
exit 1
fi
disable_gautomount
wait_for_ts100
echo "Found TS100 config disk device on $DEVICE"
mount_ts100
echo "Mounted config disk drive, flashing..."
cp -v "$1" "$DIR_TMP/ts100.hex"
sync
echo "Waiting for TS100 to flash"
sleep 5
echo "Remounting config disk drive"
umount_ts100
wait_for_ts100
mount_ts100
echo "Flash result: "
ls "$DIR_TMP"/ts100*