Skip to content

Commit 2b7ebb6

Browse files
committed
Basic flash update script.
Detects a connected board, resets it into bootloader mode, mounts the RPI-RP2 drive (found via blkid) and unzips the latest release .uf2 (fetched from GitHub) to it. Not very fault tolerant. Requires firmware >= 0.0.5.
1 parent 81904da commit 2b7ebb6

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

update.sh

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
#!/bin/bash
2+
PRODUCT="picade-max-audio"
3+
FIRMWARE_VERSION=$(curl -sSL https://api.github.com/repos/pimoroni/$PRODUCT/releases/latest | grep "tag_name" | cut -d \" -f4)
4+
FIRMWARE_UF2="picade-max-audio.uf2"
5+
FIRMWARE="https://github.com/pimoroni/picade-max-audio/releases/download/$FIRMWARE_VERSION/$PRODUCT-$FIRMWARE_VERSION.zip"
6+
7+
echo "Installing firmware: $FIRMWARE_VERSION."
8+
9+
SERIAL_DEVICE=$(find /dev/serial/by-id -name "usb-Pimoroni_Picade_USB_Audio_*")
10+
DEVICE=$(blkid -L RPI-RP2)
11+
12+
if [[ -e "$SERIAL_DEVICE" ]]; then
13+
echo "Found Picade Max Audio at: $SERIAL_DEVICE"
14+
echo "multiverse:_usb" > "$SERIAL_DEVICE"
15+
DEVICE=""
16+
START=$EPOCHSECONDS
17+
while [[ -z "$DEVICE" ]]; do
18+
if (( EPOCHSECONDS-START > 10 )); then
19+
echo "RP2 bootloader device not found."
20+
exit 1
21+
fi
22+
sleep 1
23+
DEVICE=$(blkid -L RPI-RP2)
24+
done
25+
echo "Found RP2 on $DEVICE"
26+
MNT_TEMP=$(mktempi -t "$PRODUCT")
27+
sudo mount "$DEVICE" "$MNT_TMP" > /dev/null 2>&1
28+
FW_TEMP=$(mktemp -t "$PRODUCT")
29+
echo "Fetching $FIRMWARE..."
30+
wget -q "$FIRMWARE" -O "$FW_TEMP"
31+
echo "Installing firmware..."
32+
sudo unzip "$FW_TEMP" -d "$MNT_TEMP" "$FIRMWARE_UF2"
33+
rm "$FW_TEMP"
34+
sync
35+
sudo umount .tmp_update
36+
rm -r "$MNT_TEMP"
37+
else
38+
echo "Picade Max Audio not found?"
39+
exit 1
40+
fi

0 commit comments

Comments
 (0)