Description
Describe the problem
The tool performs three distinct operations:
- Check the board's operating system version, and if outdated flash the new version.
- Check the board's BLE firmware version, and if outdated flash the new version.
- Flash the user application binary.
For this reason, the release package must contain the operating system and BLE firmware files in addition to the tool executable. These files are stored in subfolders under the firmwares
folder of the repository.
Previously, the zip
command used to generate the release packages for Windows hosts was not correctly configured to recurse into the folder when generating the archive. This resulted in the release package only containing an empty folder where the firmware files should have been located. This caused uploads to fail when the target board had an outdated operating system or BLE firmware version.
🐛 Due to a bug in the task that generates the Windows release packages, the firmware files are not included in the release package.
Lines 29 to 32 in 5b2ddaf
Lines 44 to 47 in 5b2ddaf
The problem is that the firmware files are in subfolders of bin/firmwares
, but the zip
command is not configured to recurse into subfolders when adding files to the archive.
To reproduce
- Download the Windows release package.
You can get it from the "Assets" section of the GitHub release page, or from Arduino's downloads server (URL can be obtained from the package index). - Extract the release package.
- Check for the presence of the firmware files.
🐛 The bin/firmwares
folder is empty.
Uploading a sketch to a board that has an outdated operating system or BLE firmware version from a Windows system will fail:
"C:\Users\foo\AppData\Local\Arduino15\packages\Intel\tools\arduino101load\2.3.0/arduino101load" "-dfu=C:\Users\foo\AppData\Local\Arduino15\packages\arduino\tools\dfu-util\0.9.0-arduino1" "-bin=C:\Users\foo\AppData\Local\arduino\sketches\F26E67875F02AABB8985E441730DA8A7/Racing.ino.bin" -port=COM6 "-v" -ble_fw_str="ATP1BLE00R-1631C4439" -ble_fw_pos=169984 -rtos_fw_str="" -rtos_fw_pos=0 -core=2.0.0
arduino101load Version: 2.3.0 Commit: 176b46a Date: 2023-02-15T09:28:44Z
Starting download script...
Serial Port: COM6
BIN FILE C:\Users\foo\AppData\Local\arduino\sketches\F26E67875F02AABB8985E441730DA8A7/Racing.ino.bin
Waiting for device...
Device found!
Verifying BLE version: ATP1BLE00R-1631C4439
ATTENTION: BLE firmware is being flashed
DO NOT DISCONNECT THE BOARD
No such file or directory: Could not open file C:\Users\foo\AppData\Local\Arduino15\packages\Intel\tools\arduino101load\2.3.0\firmwares\2.0.0\ble_core.bin for reading
dfu-util 0.9
Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2016 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/
exit status 74
Failed uploading: uploading error: exit status 1
Expected behavior
The firmware files are present in the
arduino101load version
Operating system
- Windows
Operating system version
- Windows 11
Additional context
The bug is not present in the tasks for generating the Linux and macOS release packages, so only Windows users are affected.
Originally reported at https://forum.arduino.cc/t/arduino-geno-101-ctc-error/1379850.
Workaround
Manually copy the firmware files from this repository to your local installation of arduino101load. Instructions are available here:
https://forum.arduino.cc/t/arduino-geno-101-ctc-error/1379850/14
Keywords
-
"quark"
-
"quark.bin"
-
"RTOS"
Issue checklist
- I searched for previous reports in the issue tracker
- I verified the problem still occurs when using the latest version
- My report contains all necessary details