AllYarnsAreBeautiful/ayab-desktop

AppImage: Firmware flashing fails

Closed this issue · 4 comments

dl1com commented

Version: test230514
Platform: AppImage on Debian 11

Trying to flash the AYAB firmware fails.

First reason:

The firmware flash tool tries to use firmware/uno/uno_0-95.hex, whereas it should be firmware/ayab_monolithic_uno.hex I assume.

2023-05-14 13:17:35,510 FirmwareFlash DEBUG    port /dev/ttyACM2
CompletedProcess(args=['which', 'avrdude'], returncode=0, stdout=b'/usr/bin/avrdude\n', stderr=b'')
2023-05-14 13:17:35,524 FirmwareFlash DEBUG    /usr/bin/avrdude -p atmega328p -c arduino -P /dev/ttyACM2 -b115200 -D -Uflash:w:"/tmp/.mount_AYAB-tInOpEi/src/main/resources/base/ayab/firmware/uno/uno_0-95.hex":i 
2023-05-14 13:17:36,860 FirmwareFlash INFO     Error flashing firmware: Command '/usr/bin/avrdude -p atmega328p -c arduino -P /dev/ttyACM2 -b115200 -D -Uflash:w:"/tmp/.mount_AYAB-tInOpEi/src/main/resources/base/ayab/firmware/uno/uno_0-95.hex":i ' returned non-zero exit status 1.
2023-05-14 13:17:36,861 root     DEBUG    MessageBox error: 'Error flashing firmware.'

Additionally:

ls /tmp/.mount_AYAB-tInOpEi/src/main/resources/base/ayab/firmware shows there is no *.hex file contained in the AppImage at all.

➜  firmware pwd
/tmp/.mount_AYAB-tInOpEi/src/main/resources/base/ayab/firmware
➜  firmware ls
avrdude_bin   avrdude.exe  firmware.json  libusb0.dll
avrdude.conf  avrdude_mac  lib            manifest.txt

I've located the devops bug.

The firmware flash dialog needs to be updated to reflect the new way that we are bundling the firmware. Instead of the user choosing from a menu to select which hex file to flash, it should just flash whatever hex file is there under src/resources/.../firmware. I'll put that in a separate PR.

dl1com commented

The firmware flash dialog needs to be updated to reflect the new way that we are bundling the firmware. Instead of the user choosing from a menu to select which hex file to flash, it should just flash whatever hex file is there under src/resources/.../firmware. I'll put that in a separate PR.

As the way we handle the firmware in the application will change sooner or later by #414, we may just alter the firmware.json for now

{
    "controller": {
        "uno":[
            {
                "url":"/",
                "version":"1.0.0 (prototype)",
                "file":"ayab_monolithic_uno.hex"
            }
        ]
    }
}
dl1com commented

tested, works so far at least under Linux with test230626