Hi. I’ve been messing with the AIR controller recently for the past few days and have not managed to get a unit to properly update from VEXos 1.0.0.0 → 1.0.1.0.
On VEXCode AIR, the firmware updater appears to freeze in the UI, but logs a download error in DevTools after a file transfer write packet times out (discussed below).
What I’ve tried:
- The instructions at https://kb.vex.com/hc/en-us/articles/40275823085972-Updating-VEX-AIR-s-Firmware exactly.
- Repeating the instructions on both a Windows 11 and Linux system.
- Repeating the instructions on a second (brand new, never used) controller unit.
- Repeating the instructions with the drone both paired and unpaired.
- Using the firmware updater in the VSCode extension.
- Manually invoking
vexcomwith theVEXOS_CTRL_1_0_1_0.vexosfirmware file.
Investigation
I’ve tried to identify the source of this problem and have found that the following happens:
- VEXCode attempts to initialize a file transfer with the controller.
- The file transfer initializes and VEXCode starts sending packets containing firmware chunks.
- At a random point during the write process, a write packet will time out and VEXCode will either retry sending a packet, or the file transfer will timeout entirely (the end result is the same, though).
- The transfer exits, failing with
AA 55 56 04 13 D5 12 D5, indicating an invalid transfer initialization NACK (at least when interpreting this packet under the CDC encoding used by pros-cli).
Is there anything I’m doing obviously wrong here, or is this a known bug?
