BLE Doesn't Complie on the Thing Plus

I’m getting this error code when trying to upload the ledControl.ino example in the ArduinoBLE library. The example complies fine on my nano 33, so I’m guessing it has something to do with the sparkfun board. I’m running ArduinoBLE 1.1.3 and Sparkfun Apollo3 Boards 1.2.0.

Arduino: 1.8.13 (Windows 10), Board: “SparkFun Artemis Thing Plus, 921600, SparkFun Variable Loader (Recommended)”

WARNING: library ArduinoBLE claims to run on samd, megaavr, mbed architecture(s) and may be incompatible with your current board which runs on apollo3 architecture(s).

In file included from C:\Program Files (x86)\Arduino\libraries\ArduinoBLE\src/ArduinoBLE.h:26,

from C:\Program Files (x86)\Arduino\libraries\ArduinoBLE\examples\Central\LedControl\LedControl.ino:19:

C:\Program Files (x86)\Arduino\libraries\ArduinoBLE\src/BLETypedCharacteristics.h:60:61: error: ‘word’ was not declared in this scope

class BLEWordCharacteristic : public BLETypedCharacteristic {

^~~~

C:\Program Files (x86)\Arduino\libraries\ArduinoBLE\src/BLETypedCharacteristics.h:60:65: error: template argument 1 is invalid

class BLEWordCharacteristic : public BLETypedCharacteristic {

^

exit status 1

Error compiling for board SparkFun Artemis Thing Plus.

You need version 2.00 of the Artemis driver. For that you need to add a new json-reference file for Apollo3. The current Sparkfun boards reference file will only know 1.2 as latest version of the driver. see post viewtopic.php?f=169&t=53466&start=15.

Also read the remarks about the boards.txt file that you need to update on IDE 1.8.13 otherwise you will have other errors. Take the latest that I posted.

Actually forget about the boards.txt file replacement. There is now a new version 2.0.1 online which has this already corrected. That said the 2.0.1 is HUGE (2.9GB) compared to the already large 2.0.0 (1.1GB). In the 2.0.1 the .git directory (1.8GB) is included by error , so you need to have a little more patience in download and install. But it does compile :slight_smile:

Okay that was confusing to figure out but it complies. It has a ton of warnings (kind of annoying) and takes forever to compile.

Is there any way to make it go faster? It says the Sparkfun Variable Bootloader is “out of order”.

Also is there any way to see what % of memory is occupied? I won’t use the full memory but it’s helpful to know when a sketch may cause memory stability issues.

I’m going to lay out my steps if anyone else has issues in the future.

  • In Arduino, go to file>preferences> Additional Board Manager URLS:
  • Enter the raw latest version URL: https://raw.githubusercontent.com/spark … index.json
  • Click ok to return back to the IDE. Close the IDE and then go to the boards manager. Type in “Artemis” and the latest version should appear. Click to install.
  • Thanks for adding those steps!

    There is no way to make it go faster other than purchasing a faster CPU

    In the future we will update the core to display memory usage information. Until then you could use GCC tools like “arm-none-eabi-size executable.elf/af” (the executable would be found in the temporary build output of the sketch - follow the compile output messages (verbose) to find it on your computer)

    I would like to add a BIG THANK YOU to Sparkfun. I am studying how BLE stack works and it is IMPRESSIVE to see how this brings MBED, Arduino, ArduinoBLE and CORDIO together. No wonder it takes time to compile as this has many dependencies. It is very complex to a point that it is nearly a miracle that one can sent and receive over BLE communication. No wonder this took a lot of time. It shows that a modular layer design is not easy. Great job !!