summaryrefslogtreecommitdiff
path: root/ao-bringup/turnon_telebt
blob: 3e9fddaa4da8203bf26350cf266b9730ccb02a14 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#!/bin/sh

if [ -x /usr/bin/dfu-util ]; then
    DFU_UTIL=/usr/bin/dfu-util
else
    echo "Can't find dfu-util! Aborting."
    exit 1
fi

if [ -x /usr/bin/ao-usbload ]; then
	USBLOAD=/usr/bin/ao-usbload
else
	echo "Can't find ao-usbload!  Aborting."
	exit 1
fi

VERSION=4.0
REPO=~/altusmetrumllc/Binaries
PRODUCT=TeleBT

echo "$PRODUCT v$VERSION Turn-On and Calibration Program"
echo "Copyright 2017 by Bdale Garbee.  Released under GPL v3+"
echo
echo "Expectations:"
echo "\t$PRODUCT v$VERSION attached by USB"
echo "\t\twith coax from UHF to frequency counter"
echo

case $# in
    1)
        SERIAL="$1"
        echo "$PRODUCT-$VERSION serial number: $SERIAL" 
        ;;
    0)
        echo -n "$PRODUCT-$VERSION serial number: "
        read SERIAL
        ;;
    *)
        echo "Usage: $0 <serial-number>" 1>&2
        exit 1;
        ;;
esac

FLASH_FILE=$REPO/loaders/telebt-v$VERSION-altos-flash-*.bin
ALTOS_FILE=$REPO/telebt-v$VERSION-*.elf

$DFU_UTIL -a 0 -s 0x08000000:leave -D $FLASH_FILE

sleep 2

$USBLOAD --serial=$SERIAL $ALTOS_FILE || exit 1

sleep 3

dev=`ao-list | awk '/'"$PRODUCT"'-v'"$VERSION"'/ { print $3; exit(0); }'`

case "$dev" in
/dev/tty*)
	echo "$PRODUCT found on $dev"
	;;
*)
	echo 'No '"$PRODUCT"'-v'"$VERSION"' found'
	exit 1
	;;
esac

CALFILE=cal-$SERIAL.txt

echo 'E 0' > $dev

../ao-tools/ao-cal-freq/ao-cal-freq --nosave --output=$CALFILE --tty=$dev

# echo 'E 1' > $dev

CAL_VALUE=`cat $CALFILE`
echo $SERIAL","$CAL_VALUE >> cal_values
echo "Reflashing with calibration: $CAL_VALUE"
$USBLOAD --cal=$CAL_VALUE --tty=$dev $ALTOS_FILE || exit 1

echo -n "checking BlueTooth functionality... "
btdev=`hcitool scan | awk -F \- '/TeleBT/ { print $2 }'`
if [ "$btdev" = "$SERIAL" ]; then
	echo "working!"
else
	echo "device not found"
	exit 1
fi

echo -n "checking BTLE functionality... "
btdev=`sudo timeout -s SIGINT 5s hcitool lescan | awk -F \- '/TeleBT/ { print $2 }' | head -n 1`
if [ "$btdev" = "$SERIAL" ]; then
	echo "working!"
else
	echo "device not found"
	exit 1
fi

echo "$PRODUCT-v$VERSION $SERIAL is ready to ship"

exit $?