Nano 33 ble senes arm.math.h error

nano 33 ble senes arm.math.h error

Multiple libraries were found for “SoftwareSerial.h”

Used: /home/builder/opt/libraries/latest/espsoftwareserial_6_12_2

Not used: /home/builder/opt/libraries/latest/printoo_library_1_0_2

Not used: /home/builder/opt/libraries/latest/dabble_1_5_2

Using library espsoftwareserial_6_12_2 at version 6.12.2 in folder: /home/builder/opt/libraries/latest/espsoftwareserial_6_12_2

/tmp/524589400/Nano33BLESenseFirmware_copy/Nano33BLESenseFirmware_copy.ino:5:10: fatal error: arm_math.h: No such file or directory

#include <arm_math.h>

^~~~~~~~~~~~

compilation terminated.

exit status 1

I’m trying to do Arduino Science Journal using Nano 33 Blue Sense, but I got an arm_math.h error.
Is there any solution?

I would comment out the line to see if that file is needed at all. If nothing becomes undefined, you’re done.

/tmp/902825497/Nano33BLESenseFirmware_copy/Nano33BLESenseFirmware_copy.ino:220:7: error: ‘colorCharacteristic’ was not declared in this scope

if (colorCharacteristic.subscribed() && APDS.colorAvailable()) {

^~~~~~~~~~~~~~~~~~~

/tmp/902825497/Nano33BLESenseFirmware_copy/Nano33BLESenseFirmware_copy.ino:220:7: note: suggested alternative: ‘BLEWordCharacteristic’

if (colorCharacteristic.subscribed() && APDS.colorAvailable()) {

^~~~~~~~~~~~~~~~~~~

BLEWordCharacteristic

/tmp/902825497/Nano33BLESenseFirmware_copy/Nano33BLESenseFirmware_copy.ino:225:50: error: ‘class BLEFloatCharacteristic’ has no member named ‘subscribed’

bool doTemperature = temperatureCharacteristic.subscribed();

^~~~~~~~~~

/tmp/902825497/Nano33BLESenseFirmware_copy/Nano33BLESenseFirmware_copy.ino:226:44: error: ‘class BLEFloatCharacteristic’ has no member named ‘subscribed’

bool doHumidity = humidityCharacteristic.subscribed();

^~~~~~~~~~

/tmp/902825497/Nano33BLESenseFirmware_copy/Nano33BLESenseFirmware_copy.ino:240:30: error: ‘class BLEFloatCharacteristic’ has no member named ‘subscribed’

if (pressureCharacteristic.subscribed()) {

^~~~~~~~~~

/tmp/902825497/Nano33BLESenseFirmware_copy/Nano33BLESenseFirmware_copy.ino:245:32: error: ‘class BLEFloatCharacteristic’ has no member named ‘subscribed’

if (resistanceCharacteristic.subscribed()) {

I annotated it, but it doesn’t work

Hi @dudans1198. Unfortunately, a breaking change was made in the 2.0.0 release of the Arduino Mbed OS Boards platform of the Nano 33 BLE Sense. Until this is fixed, you’ll need to roll back to the previous version of the boards platform in order to use the Arduino Science Journal. Even more unfortunately, that can only be done when using the Arduino IDE, so you won’t be able to use Arduino Web Editor until this is fixed.

Please do this:

  1. Download Arduino IDE 1.8.13 from https://www.arduino.cc/en/software
  2. Install the Arduino IDE
  3. Start the Arduino IDE
  4. Select Tools > Board > Boards Manager from the Arduino IDE’s menus.
  5. Wait for the update to finish.
  6. Scroll down through the list of available boards platforms until you see “[DEPRECATED - Please install standalone packages] Arduino Mbed OS Boards”. Click on it.
  7. You’ll now see a dropdown menu box that says “2.0.0”, open up the menu and select “1.3.2”.
  8. Click the Install button.
  9. Wait for the installation to finish.
  10. Click the Close button.
  11. Select Tools > Board > Arduino Mbed OS Boards (nRF52840 / STM32H747) > Arduino Nano 33 BLE from the Arduino IDE’s menus.
  12. Select the port of your Nano 33 BLE from the Arduino IDE’s Tools > Port menu.
  13. Select File > Preferences from the Arduino IDE’s menus.
  14. Uncheck the box next to “Check for updates on startup”. This is done to avoid having the Arduino IDE constantly remind you that you’re using an outdated version of the Arduino Mbed OS boards platform.
  15. Click the OK button.
  16. Select Sketch > Include Library > Manage Libraries… from the Arduino IDE’s menus.
  17. Wait for the update to finish.
  18. In the “Filter your search…” field, type “arduino_sciencejournal”.
  19. Press the Enter key.
  20. The search results will show the “Arduino_ScienceJournal” library. Click on it.
  21. Click the Install button.
  22. You will now be asked whether you want to also install some other libraries that are required by the Arduino_ScienceJournal library. Confirm that these should also be installed.
  23. Wait for the installation to finish.
  24. Click the Close button.
  25. Select File > Examples > Arduino_ScienceJournal > Nano33BLESenseFirmware from the Arduino IDE’s menus.
  26. Select Sketch > Upload from the Arduino IDE’s menus.

The Science Journal firmware should now compile successfully and upload to your Nano 33 BLE Sense board.

Please let me know if you run into any problems or have any questions.

1 Like

Wow, thank you. Thanks to you, it worked out. You are the best :slight_smile:

You’re welcome. I’m very glad to hear it’s working now. Enjoy!
Per

1 Like

I have one question. Can I add a sensor?
For example, using a moisture sensor

The truth is that I don’t know much about the Arduino Science Journal. My advice is to open a new forum topic for this question, which might get the attention of those who are more knowledgeable on the subject. You could use the dedicated forum category for the Arduino Science Journal:

That category doesn’t seem to have had a lot of activity yet, so you might decide one of the more active categories are better, but on the other hand, those who are experienced with the Arduino Science Journal are most likely to monitor its dedicated category.

Has this been updated?

I'm pleased to be able to tell you yes. Just yesterday it was fixed!

A new 1.1.1 release of the Arduino_ScienceJournal library is now out with that fix. It is pre-installed in Arduino Web Editor, so you don't need to do anything at all there.

In the Arduino IDE, you can update the library via Library Manager. I'm happy to provide instructions for that if needed.

processing.app.debug.RunnerException
at cc.arduino.packages.uploaders.SerialUploader.uploadUsingPreferences(SerialUploader.java:152)
at cc.arduino.UploaderUtils.upload(UploaderUtils.java:77)
at processing.app.SketchController.upload(SketchController.java:732)
at processing.app.SketchController.exportApplet(SketchController.java:703)
at processing.app.Editor$UploadHandler.run(Editor.java:2055)
at java.lang.Thread.run(Thread.java:748)
Caused by: processing.app.SerialException: 시리얼 포트 'COM10' 동작중 에러 발생.
at processing.app.Serial.touchForCDCReset(Serial.java:107)
at cc.arduino.packages.uploaders.SerialUploader.uploadUsingPreferences(SerialUploader.java:136)
... 5 more
Caused by: jssc.SerialPortException: Port name - COM10; Method name - openPort(); Exception type - Port busy.
at jssc.SerialPort.openPort(SerialPort.java:164)
at processing.app.Serial.touchForCDCReset(Serial.java:101)
... 6 more

There's an error like this.

The "Port busy" error happens when you try to upload to a port that is already open.

Make sure you have selected the port of your Arduino Nano 33 BLE Sense from the Tools > Port menu. It will say "Arduino Nano 33 BLE" next to the port name in the menu.

Make sure you don't have any other applications running that might have the port open. Only one application can have a serial port open at a time. This would include having the Arduino Web Editor Serial Monitor open while trying to upload via the Arduino IDE.

Yes, thank you. :slight_smile:

And which board manager version should I use?

Use "Arduino Mbed OS Nano Boards" version 2.1.0.

Is the example file the same?

C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -hardware C:\Users\kym\AppData\Local\Arduino15\packages -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -tools C:\Users\kym\AppData\Local\Arduino15\packages -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\kym\Documents\Arduino\libraries -fqbn=arduino:mbed_nano:nano33ble -vid-pid=2341_805A -ide-version=10815 -build-path C:\Users\kym\AppData\Local\Temp\arduino_build_493397 -warnings=none -build-cache C:\Users\kym\AppData\Local\Temp\arduino_cache_535083 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.dfu-util.path=C:\Users\kym\AppData\Local\Arduino15\packages\arduino\tools\dfu-util\0.10.0-arduino1 -prefs=runtime.tools.dfu-util-0.10.0-arduino1.path=C:\Users\kym\AppData\Local\Arduino15\packages\arduino\tools\dfu-util\0.10.0-arduino1 -prefs=runtime.tools.arm-none-eabi-gcc.path=C:\Users\kym\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\7-2017q4 -prefs=runtime.tools.arm-none-eabi-gcc-7-2017q4.path=C:\Users\kym\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\7-2017q4 -prefs=runtime.tools.bossac.path=C:\Users\kym\AppData\Local\Arduino15\packages\arduino\tools\bossac\1.9.1-arduino2 -prefs=runtime.tools.bossac-1.9.1-arduino2.path=C:\Users\kym\AppData\Local\Arduino15\packages\arduino\tools\bossac\1.9.1-arduino2 -prefs=runtime.tools.openocd.path=C:\Users\kym\AppData\Local\Arduino15\packages\arduino\tools\openocd\0.11.0-arduino2 -prefs=runtime.tools.openocd-0.11.0-arduino2.path=C:\Users\kym\AppData\Local\Arduino15\packages\arduino\tools\openocd\0.11.0-arduino2 -prefs=runtime.tools.rp2040tools.path=C:\Users\kym\AppData\Local\Arduino15\packages\arduino\tools\rp2040tools\1.0.2 -prefs=runtime.tools.rp2040tools-1.0.2.path=C:\Users\kym\AppData\Local\Arduino15\packages\arduino\tools\rp2040tools\1.0.2 -verbose C:\Users\kym\Documents\Arduino\libraries\Arduino_ScienceJournal\examples\Nano33BLESenseFirmware\Nano33BLESenseFirmware.ino
C:\Program Files (x86)\Arduino\arduino-builder -compile -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -hardware C:\Users\kym\AppData\Local\Arduino15\packages -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -tools C:\Users\kym\AppData\Local\Arduino15\packages -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\kym\Documents\Arduino\libraries -fqbn=arduino:mbed_nano:nano33ble -vid-pid=2341_805A -ide-version=10815 -build-path C:\Users\kym\AppData\Local\Temp\arduino_build_493397 -warnings=none -build-cache C:\Users\kym\AppData\Local\Temp\arduino_cache_535083 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.dfu-util.path=C:\Users\kym\AppData\Local\Arduino15\packages\arduino\tools\dfu-util\0.10.0-arduino1 -prefs=runtime.tools.dfu-util-0.10.0-arduino1.path=C:\Users\kym\AppData\Local\Arduino15\packages\arduino\tools\dfu-util\0.10.0-arduino1 -prefs=runtime.tools.arm-none-eabi-gcc.path=C:\Users\kym\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\7-2017q4 -prefs=runtime.tools.arm-none-eabi-gcc-7-2017q4.path=C:\Users\kym\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\7-2017q4 -prefs=runtime.tools.bossac.path=C:\Users\kym\AppData\Local\Arduino15\packages\arduino\tools\bossac\1.9.1-arduino2 -prefs=runtime.tools.bossac-1.9.1-arduino2.path=C:\Users\kym\AppData\Local\Arduino15\packages\arduino\tools\bossac\1.9.1-arduino2 -prefs=runtime.tools.openocd.path=C:\Users\kym\AppData\Local\Arduino15\packages\arduino\tools\openocd\0.11.0-arduino2 -prefs=runtime.tools.openocd-0.11.0-arduino2.path=C:\Users\kym\AppData\Local\Arduino15\packages\arduino\tools\openocd\0.11.0-arduino2 -prefs=runtime.tools.rp2040tools.path=C:\Users\kym\AppData\Local\Arduino15\packages\arduino\tools\rp2040tools\1.0.2 -prefs=runtime.tools.rp2040tools-1.0.2.path=C:\Users\kym\AppData\Local\Arduino15\packages\arduino\tools\rp2040tools\1.0.2 -verbose C:\Users\kym\Documents\Arduino\libraries\Arduino_ScienceJournal\examples\Nano33BLESenseFirmware\Nano33BLESenseFirmware.ino
Using board 'nano33ble' from platform in folder: C:\Users\kym\AppData\Local\Arduino15\packages\arduino\hardware\mbed_nano\2.1.0
Using core 'arduino' from platform in folder: C:\Users\kym\AppData\Local\Arduino15\packages\arduino\hardware\mbed_nano\2.1.0
Detecting libraries used...
"C:\Users\kym\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\7-2017q4/bin/arm-none-eabi-g++" -c -w -g3 -nostdlib "@C:\Users\kym\AppData\Local\Arduino15\packages\arduino\hardware\mbed_nano\2.1.0\variants\ARDUINO_NANO33BLE/defines.txt" "@C:\Users\kym\AppData\Local\Arduino15\packages\arduino\hardware\mbed_nano\2.1.0\variants\ARDUINO_NANO33BLE/cxxflags.txt" -DARDUINO_ARCH_NRF52840 -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 -w -x c++ -E -CC -DARDUINO=10815 -DARDUINO_ARDUINO_NANO33BLE -DARDUINO_ARCH_MBED_NANO -DARDUINO_ARCH_MBED -DARDUINO_LIBRARY_DISCOVERY_PHASE=1 "-IC:\Users\kym\AppData\Local\Arduino15\packages\arduino\hardware\mbed_nano\2.1.0\cores\arduino" "-IC:\Users\kym\AppData\Local\Arduino15\packages\arduino\hardware\mbed_nano\2.1.0\variants\ARDUINO_NANO33BLE" "-IC:\Users\kym\AppData\Local\Arduino15\packages\arduino\hardware\mbed_nano\2.1.0\cores\arduino/api/deprecated" "-IC:\Users\kym\AppData\Local\Arduino15\packages\arduino\hardware\mbed_nano\2.1.0\cores\arduino/api/deprecated-avr-comp" "-iprefixC:\Users\kym\AppData\Local\Arduino15\packages\arduino\hardware\mbed_nano\2.1.0\cores\arduino" "@C:\Users\kym\AppData\Local\Arduino15\packages\arduino\hardware\mbed_nano\2.1.0\variants\ARDUINO_NANO33BLE/includes.txt" "C:\Users\kym\AppData\Local\Temp\arduino_build_493397\sketch\Nano33BLESenseFirmware.ino.cpp" -o nul
Alternatives for arm_math.h:
ResolveLibrary(arm_math.h)Nano33BLESenseFirmware:2:10: fatal error: arm_math.h: No such file or directory

-> candidates: #include <arm_math.h>

      ^~~~~~~~~~~~

compilation terminated.
exit status 1
arm_math.h: No such file or directory

I don't think it's been modified.

Yes. There were no changes to the example between the 1.1.0 and 1.1.1 releases of the library. It's the library code itself that was changed, along with the addition of a new library dependency to its metadata in order to provide the missing file.

Please try this:

  1. Select Sketch > Include Library > Manage Libraries... from the Arduino IDE's menus.

  2. Wait for the update to finish.

  3. In the "Filter your search" field, type "Arduino_ScienceJournal".

  4. Press Enter.

  5. Scroll down through the list of libraries until you see "Arduino_ScienceJournal by Arduino". Click on it.

  6. Click the Update button.

  7. You will now get a dialog asking you:

    Would you like to install also all the missing dependencies?

    Click the Install all button.

  8. Wait for the installation to finish.

  9. Click the Close button.

Now try compiling the sketch again.

processing.app.debug.RunnerException
at cc.arduino.packages.uploaders.SerialUploader.uploadUsingPreferences(SerialUploader.java:152)
at cc.arduino.UploaderUtils.upload(UploaderUtils.java:77)
at processing.app.SketchController.upload(SketchController.java:732)
at processing.app.SketchController.exportApplet(SketchController.java:703)
at processing.app.Editor$UploadHandler.run(Editor.java:2055)
at java.lang.Thread.run(Thread.java:748)
Caused by: processing.app.SerialException: 시리얼 포트 'COM7' 동작중 에러 발생.
at processing.app.Serial.touchForCDCReset(Serial.java:107)
at cc.arduino.packages.uploaders.SerialUploader.uploadUsingPreferences(SerialUploader.java:136)
... 5 more
Caused by: jssc.SerialPortException: Port name - COM7; Method name - openPort(); Exception type - Port busy.
at jssc.SerialPort.openPort(SerialPort.java:164)
at processing.app.Serial.touchForCDCReset(Serial.java:101)
... 6 more