Description
I'm trying to track down an issue with TensorFlow Lite Micro that's occurring for users of the Arduino IDE, but doesn't show up with the CLI that we use for continuous integration testing. I've narrowed the cause of the disparity to there being two different board packages for the Nano 33 BLE, but it's unclear which one is the correct one to use. I'm filing this bug to try to answer that question, so we can unblock our CI system and ship a new version of the TFL Micro library.
In the Arduino IDE, typing "mbed" into the board manager search brings up two different options:
The second one is marked as deprecated, so I (and I assume most users) install the first one titled "Arduino nRF528x Boards (Mbed OS)". When that library has been installed, the title actually changes to "Arduino mbed-enabled boards":
From inspection of the downloaded files (for example platform.txt, etc), this is actually based on the repository here:
https://github.com/arduino/ArduinoCore-nRF528x-mbedos
Surprisingly, this repository's README indicates that it's deprecated in favor of another repo:
https://github.com/arduino/ArduinoCore-mbed
It also includes an out-dated version of the Mbed OS, which doesn't include a fix TFL Micro needs for a CMSIS bug (ARMmbed/mbed-os#12568).
So the first big question is if the repo's README or the board manager index are correct - should the "nRF528x" board package be used or is it deprecated?
The second cause of confusion is that using the Arduino CLI with an FBQN of arduino:mbed:nano33ble specified appears to install the second package shown in the board manager screenshot, which seems to be based on https://github.com/arduino/ArduinoCore-mbed and includes a newer version of Mbed OS. This means when we're running our CI tests, we don't hit the Mbed/CMSIS bug, even though users of the IDE will. If the second board package is deprecated, I'd expect the first package to be chosen instead. This would cause our build to break, but at least it would reflect the typical user experience.
We'll go ahead and try to get a new release of the TFL Micro library out that includes a work-around patch for the CMSIS issue, but it would be very helpful if you could offer us some advice on what board package we should be using in the IDE, and what the expected behavior of the CLI is.