Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Nano 33 and Giga: BMI270/BMM150 Compiles but Looses Com Port after Upload #69

Open
mjs513 opened this issue Feb 6, 2025 · 3 comments
Open

Comments

@mjs513
Copy link

mjs513 commented Feb 6, 2025

Describe the bug
After uploading a test sketch to access the BMI270 and BMM150 the NANO 33 BLE Sense v2 looses Com port. Nothing further can be done.

Target board + cli verbose compilation output
Full verbose compilation output, ideally with arduino-cli invocation or from IDE 2.3.3+
Issues without the full verbose output will be discarded as invalid.

loading library from d:\Users\Merli\Documents\Arduino\libraries\Arduino-EasyTransfer-master: invalid library: no header files foundloading library from d:\Users\Merli\Documents\Arduino\libraries\ArduinoCore-API-master: invalid library: no header files foundloading library from d:\Users\Merli\Documents\Arduino\libraries\FastAhrs: invalid library: no header files foundloading library from d:\Users\Merli\Documents\Arduino\libraries\Lidar-Lite-v3-3d-Scanner: invalid library: no header files foundloading library from d:\Users\Merli\Documents\Arduino\libraries\M5Stack: invalid library: no header files foundloading library from d:\Users\Merli\Documents\Arduino\libraries\esp32-camera-master: invalid library: no header files found
FQBN: arduino:zephyr:nano33ble
Using board 'nano33ble' from platform in folder: C:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0
Using core 'arduino' from platform in folder: C:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0

Detecting libraries used...
C:\Users\Merli\AppData\Local\Arduino15\packages\zephyr\tools\arm-zephyr-eabi\0.16.8/bin/arm-zephyr-eabi-g++ -g -Os -std=c++17 -c -w -DLL_EXTENSION_BUILD -DCONFIG_ARDUINO_API_SERIAL_BUFFER_SIZE=256 -DNRF52840_XXAA -DKERNEL -DK_HEAP_MEM_POOL_SIZE=32768 -DPICOLIBC_LONG_LONG_PRINTF_SCANF -D__LINUX_ERRNO_EXTENSIONS__ -D__PROGRAM_START -D__ZEPHYR__=1 -imacrosC:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\variants\arduino_nano_33_ble_sense/llext-edk/include/zephyr/include/generated/zephyr/autoconf.h -imacrosC:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\variants\arduino_nano_33_ble_sense/llext-edk/include/zephyr/include/zephyr/toolchain/zephyr_stdint.h -fno-exceptions -fno-rtti -fno-threadsafe-statics -fno-unwind-tables -fno-use-cxa-atexit -fdata-sections -ffunction-sections -fno-unwind-tables -fno-strict-aliasing -fno-printf-return-value -fno-common -mcpu=cortex-m4 -mthumb -mabi=aapcs -mfp16-format=ieee -mtp=soft -Wall -Wformat -Wformat-security -Wno-format-zero-length -Wdouble-promotion -Wpointer-arith -Wexpansion-to-defined -Wno-unused-but-set-variable -fno-asynchronous-unwind-tables -ftls-model=local-exec -fno-reorder-functions --param=min-pagesize=0 -fno-defer-pop --specs=picolibc.specs -D_POSIX_THREADS -mlong-calls -nodefaultlibs -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -w -x c++ -E -CC -DARDUINO=10607 -DARDUINO_ARDUINO_NANO33BLE -DARDUINO_ARCH_ZEPHYR -DARDUINO_ARCH_ZEPHYR -DARDUINO_LIBRARY_DISCOVERY_PHASE=1 -IC:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\cores\arduino -IC:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\variants\arduino_nano_33_ble_sense -IC:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\cores\arduino/api/deprecated -IC:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\cores\arduino/api/deprecated-avr-comp -iprefixC:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\variants\arduino_nano_33_ble_sense @C:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\variants\arduino_nano_33_ble_sense/includes.txt C:\Users\Merli\AppData\Local\arduino\sketches\9A15C86C32FF357825D53C042830113E\sketch\Dual_sensor_150-270.ino.cpp -o nul
Alternatives for Wire.h: [Wire]
ResolveLibrary(Wire.h)
  -> candidates: [Wire]
C:\Users\Merli\AppData\Local\Arduino15\packages\zephyr\tools\arm-zephyr-eabi\0.16.8/bin/arm-zephyr-eabi-g++ -g -Os -std=c++17 -c -w -DLL_EXTENSION_BUILD -DCONFIG_ARDUINO_API_SERIAL_BUFFER_SIZE=256 -DNRF52840_XXAA -DKERNEL -DK_HEAP_MEM_POOL_SIZE=32768 -DPICOLIBC_LONG_LONG_PRINTF_SCANF -D__LINUX_ERRNO_EXTENSIONS__ -D__PROGRAM_START -D__ZEPHYR__=1 -imacrosC:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\variants\arduino_nano_33_ble_sense/llext-edk/include/zephyr/include/generated/zephyr/autoconf.h -imacrosC:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\variants\arduino_nano_33_ble_sense/llext-edk/include/zephyr/include/zephyr/toolchain/zephyr_stdint.h -fno-exceptions -fno-rtti -fno-threadsafe-statics -fno-unwind-tables -fno-use-cxa-atexit -fdata-sections -ffunction-sections -fno-unwind-tables -fno-strict-aliasing -fno-printf-return-value -fno-common -mcpu=cortex-m4 -mthumb -mabi=aapcs -mfp16-format=ieee -mtp=soft -Wall -Wformat -Wformat-security -Wno-format-zero-length -Wdouble-promotion -Wpointer-arith -Wexpansion-to-defined -Wno-unused-but-set-variable -fno-asynchronous-unwind-tables -ftls-model=local-exec -fno-reorder-functions --param=min-pagesize=0 -fno-defer-pop --specs=picolibc.specs -D_POSIX_THREADS -mlong-calls -nodefaultlibs -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -w -x c++ -E -CC -DARDUINO=10607 -DARDUINO_ARDUINO_NANO33BLE -DARDUINO_ARCH_ZEPHYR -DARDUINO_ARCH_ZEPHYR -DARDUINO_LIBRARY_DISCOVERY_PHASE=1 -IC:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\cores\arduino -IC:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\variants\arduino_nano_33_ble_sense -IC:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\libraries\Wire -IC:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\cores\arduino/api/deprecated -IC:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\cores\arduino/api/deprecated-avr-comp -iprefixC:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\variants\arduino_nano_33_ble_sense @C:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\variants\arduino_nano_33_ble_sense/includes.txt C:\Users\Merli\AppData\Local\arduino\sketches\9A15C86C32FF357825D53C042830113E\sketch\Dual_sensor_150-270.ino.cpp -o nul
Alternatives for SparkFun_BMI270_Arduino_Library.h: [SparkFun BMI270 Arduino [email protected]]
ResolveLibrary(SparkFun_BMI270_Arduino_Library.h)
  -> candidates: [SparkFun BMI270 Arduino [email protected]]
C:\Users\Merli\AppData\Local\Arduino15\packages\zephyr\tools\arm-zephyr-eabi\0.16.8/bin/arm-zephyr-eabi-g++ -g -Os -std=c++17 -c -w -DLL_EXTENSION_BUILD -DCONFIG_ARDUINO_API_SERIAL_BUFFER_SIZE=256 -DNRF52840_XXAA -DKERNEL -DK_HEAP_MEM_POOL_SIZE=32768 -DPICOLIBC_LONG_LONG_PRINTF_SCANF -D__LINUX_ERRNO_EXTENSIONS__ -D__PROGRAM_START -D__ZEPHYR__=1 -imacrosC:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\variants\arduino_nano_33_ble_sense/llext-edk/include/zephyr/include/generated/zephyr/autoconf.h -imacrosC:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\variants\arduino_nano_33_ble_sense/llext-edk/include/zephyr/include/zephyr/toolchain/zephyr_stdint.h -fno-exceptions -fno-rtti -fno-threadsafe-statics -fno-unwind-tables -fno-use-cxa-atexit -fdata-sections -ffunction-sections -fno-unwind-tables -fno-strict-aliasing -fno-printf-return-value -fno-common -mcpu=cortex-m4 -mthumb -mabi=aapcs -mfp16-format=ieee -mtp=soft -Wall -Wformat -Wformat-security -Wno-format-zero-length -Wdouble-promotion -Wpointer-arith -Wexpansion-to-defined -Wno-unused-but-set-variable -fno-asynchronous-unwind-tables -ftls-model=local-exec -fno-reorder-functions --param=min-pagesize=0 -fno-defer-pop --specs=picolibc.specs -D_POSIX_THREADS -mlong-calls -nodefaultlibs -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -w -x c++ -E -CC -DARDUINO=10607 -DARDUINO_ARDUINO_NANO33BLE -DARDUINO_ARCH_ZEPHYR -DARDUINO_ARCH_ZEPHYR -DARDUINO_LIBRARY_DISCOVERY_PHASE=1 -IC:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\cores\arduino -IC:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\variants\arduino_nano_33_ble_sense -IC:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\libraries\Wire -Id:\Users\Merli\Documents\Arduino\libraries\SparkFun_BMI270_Arduino_Library\src -IC:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\cores\arduino/api/deprecated -IC:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\cores\arduino/api/deprecated-avr-comp -iprefixC:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\variants\arduino_nano_33_ble_sense @C:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\variants\arduino_nano_33_ble_sense/includes.txt C:\Users\Merli\AppData\Local\arduino\sketches\9A15C86C32FF357825D53C042830113E\sketch\Dual_sensor_150-270.ino.cpp -o nul
Alternatives for SPI.h: [SPI]
ResolveLibrary(SPI.h)
  -> candidates: [SPI]
C:\Users\Merli\AppData\Local\Arduino15\packages\zephyr\tools\arm-zephyr-eabi\0.16.8/bin/arm-zephyr-eabi-g++ -g -Os -std=c++17 -c -w -DLL_EXTENSION_BUILD -DCONFIG_ARDUINO_API_SERIAL_BUFFER_SIZE=256 -DNRF52840_XXAA -DKERNEL -DK_HEAP_MEM_POOL_SIZE=32768 -DPICOLIBC_LONG_LONG_PRINTF_SCANF -D__LINUX_ERRNO_EXTENSIONS__ -D__PROGRAM_START -D__ZEPHYR__=1 -imacrosC:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\variants\arduino_nano_33_ble_sense/llext-edk/include/zephyr/include/generated/zephyr/autoconf.h -imacrosC:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\variants\arduino_nano_33_ble_sense/llext-edk/include/zephyr/include/zephyr/toolchain/zephyr_stdint.h -fno-exceptions -fno-rtti -fno-threadsafe-statics -fno-unwind-tables -fno-use-cxa-atexit -fdata-sections -ffunction-sections -fno-unwind-tables -fno-strict-aliasing -fno-printf-return-value -fno-common -mcpu=cortex-m4 -mthumb -mabi=aapcs -mfp16-format=ieee -mtp=soft -Wall -Wformat -Wformat-security -Wno-format-zero-length -Wdouble-promotion -Wpointer-arith -Wexpansion-to-defined -Wno-unused-but-set-variable -fno-asynchronous-unwind-tables -ftls-model=local-exec -fno-reorder-functions --param=min-pagesize=0 -fno-defer-pop --specs=picolibc.specs -D_POSIX_THREADS -mlong-calls -nodefaultlibs -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -w -x c++ -E -CC -DARDUINO=10607 -DARDUINO_ARDUINO_NANO33BLE -DARDUINO_ARCH_ZEPHYR -DARDUINO_ARCH_ZEPHYR -DARDUINO_LIBRARY_DISCOVERY_PHASE=1 -IC:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\cores\arduino -IC:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\variants\arduino_nano_33_ble_sense -IC:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\libraries\Wire -Id:\Users\Merli\Documents\Arduino\libraries\SparkFun_BMI270_Arduino_Library\src -IC:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\libraries\SPI -IC:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\cores\arduino/api/deprecated -IC:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\cores\arduino/api/deprecated-avr-comp -iprefixC:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\variants\arduino_nano_33_ble_sense @C:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\variants\arduino_nano_33_ble_sense/includes.txt C:\Users\Merli\AppData\Local\arduino\sketches\9A15C86C32FF357825D53C042830113E\sketch\Dual_sensor_150-270.ino.cpp -o nul
Alternatives for DFRobot_BMM150.h: [[email protected]]
ResolveLibrary(DFRobot_BMM150.h)
  -> candidates: [[email protected]]
C:\Users\Merli\AppData\Local\Arduino15\packages\zephyr\tools\arm-zephyr-eabi\0.16.8/bin/arm-zephyr-eabi-g++ -g -Os -std=c++17 -c -w -DLL_EXTENSION_BUILD -DCONFIG_ARDUINO_API_SERIAL_BUFFER_SIZE=256 -DNRF52840_XXAA -DKERNEL -DK_HEAP_MEM_POOL_SIZE=32768 -DPICOLIBC_LONG_LONG_PRINTF_SCANF -D__LINUX_ERRNO_EXTENSIONS__ -D__PROGRAM_START -D__ZEPHYR__=1 -imacrosC:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\variants\arduino_nano_33_ble_sense/llext-edk/include/zephyr/include/generated/zephyr/autoconf.h -imacrosC:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\variants\arduino_nano_33_ble_sense/llext-edk/include/zephyr/include/zephyr/toolchain/zephyr_stdint.h -fno-exceptions -fno-rtti -fno-threadsafe-statics -fno-unwind-tables -fno-use-cxa-atexit -fdata-sections -ffunction-sections -fno-unwind-tables -fno-strict-aliasing -fno-printf-return-value -fno-common -mcpu=cortex-m4 -mthumb -mabi=aapcs -mfp16-format=ieee -mtp=soft -Wall -Wformat -Wformat-security -Wno-format-zero-length -Wdouble-promotion -Wpointer-arith -Wexpansion-to-defined -Wno-unused-but-set-variable -fno-asynchronous-unwind-tables -ftls-model=local-exec -fno-reorder-functions --param=min-pagesize=0 -fno-defer-pop --specs=picolibc.specs -D_POSIX_THREADS -mlong-calls -nodefaultlibs -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -w -x c++ -E -CC -DARDUINO=10607 -DARDUINO_ARDUINO_NANO33BLE -DARDUINO_ARCH_ZEPHYR -DARDUINO_ARCH_ZEPHYR -DARDUINO_LIBRARY_DISCOVERY_PHASE=1 -IC:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\cores\arduino -IC:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\variants\arduino_nano_33_ble_sense -IC:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\libraries\Wire -Id:\Users\Merli\Documents\Arduino\libraries\SparkFun_BMI270_Arduino_Library\src -IC:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\libraries\SPI -Id:\Users\Merli\Documents\Arduino\libraries\DFRobot_BMM150 -IC:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\cores\arduino/api/deprecated -IC:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\cores\arduino/api/deprecated-avr-comp -iprefixC:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\variants\arduino_nano_33_ble_sense @C:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\variants\arduino_nano_33_ble_sense/includes.txt C:\Users\Merli\AppData\Local\arduino\sketches\9A15C86C32FF357825D53C042830113E\sketch\Dual_sensor_150-270.ino.cpp -o nul
Using cached library dependencies for file: C:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\libraries\Wire\Wire.cpp
Using cached library dependencies for file: d:\Users\Merli\Documents\Arduino\libraries\SparkFun_BMI270_Arduino_Library\src\SparkFun_BMI270_Arduino_Library.cpp
Using cached library dependencies for file: d:\Users\Merli\Documents\Arduino\libraries\SparkFun_BMI270_Arduino_Library\src\bmi270_api\bmi2.c
Using cached library dependencies for file: d:\Users\Merli\Documents\Arduino\libraries\SparkFun_BMI270_Arduino_Library\src\bmi270_api\bmi270.c
Using cached library dependencies for file: d:\Users\Merli\Documents\Arduino\libraries\SparkFun_BMI270_Arduino_Library\src\bmi270_api\bmi270_context.c
Using cached library dependencies for file: d:\Users\Merli\Documents\Arduino\libraries\SparkFun_BMI270_Arduino_Library\src\bmi270_api\bmi270_legacy.c
Using cached library dependencies for file: d:\Users\Merli\Documents\Arduino\libraries\SparkFun_BMI270_Arduino_Library\src\bmi270_api\bmi270_maximum_fifo.c
Using cached library dependencies for file: d:\Users\Merli\Documents\Arduino\libraries\SparkFun_BMI270_Arduino_Library\src\bmi270_api\bmi2_ois.c
Using cached library dependencies for file: C:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\libraries\SPI\SPI.cpp
Using cached library dependencies for file: d:\Users\Merli\Documents\Arduino\libraries\DFRobot_BMM150\DFRobot_BMM150.cpp
Generating function prototypes...
C:\Users\Merli\AppData\Local\Arduino15\packages\zephyr\tools\arm-zephyr-eabi\0.16.8/bin/arm-zephyr-eabi-g++ -g -Os -std=c++17 -c -w -DLL_EXTENSION_BUILD -DCONFIG_ARDUINO_API_SERIAL_BUFFER_SIZE=256 -DNRF52840_XXAA -DKERNEL -DK_HEAP_MEM_POOL_SIZE=32768 -DPICOLIBC_LONG_LONG_PRINTF_SCANF -D__LINUX_ERRNO_EXTENSIONS__ -D__PROGRAM_START -D__ZEPHYR__=1 -imacrosC:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\variants\arduino_nano_33_ble_sense/llext-edk/include/zephyr/include/generated/zephyr/autoconf.h -imacrosC:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\variants\arduino_nano_33_ble_sense/llext-edk/include/zephyr/include/zephyr/toolchain/zephyr_stdint.h -fno-exceptions -fno-rtti -fno-threadsafe-statics -fno-unwind-tables -fno-use-cxa-atexit -fdata-sections -ffunction-sections -fno-unwind-tables -fno-strict-aliasing -fno-printf-return-value -fno-common -mcpu=cortex-m4 -mthumb -mabi=aapcs -mfp16-format=ieee -mtp=soft -Wall -Wformat -Wformat-security -Wno-format-zero-length -Wdouble-promotion -Wpointer-arith -Wexpansion-to-defined -Wno-unused-but-set-variable -fno-asynchronous-unwind-tables -ftls-model=local-exec -fno-reorder-functions --param=min-pagesize=0 -fno-defer-pop --specs=picolibc.specs -D_POSIX_THREADS -mlong-calls -nodefaultlibs -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -w -x c++ -E -CC -DARDUINO=10607 -DARDUINO_ARDUINO_NANO33BLE -DARDUINO_ARCH_ZEPHYR -DARDUINO_ARCH_ZEPHYR -DARDUINO_LIBRARY_DISCOVERY_PHASE=1 -IC:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\cores\arduino -IC:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\variants\arduino_nano_33_ble_sense -IC:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\libraries\Wire -Id:\Users\Merli\Documents\Arduino\libraries\SparkFun_BMI270_Arduino_Library\src -IC:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\libraries\SPI -Id:\Users\Merli\Documents\Arduino\libraries\DFRobot_BMM150 -IC:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\cores\arduino/api/deprecated -IC:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\cores\arduino/api/deprecated-avr-comp -iprefixC:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\variants\arduino_nano_33_ble_sense @C:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\variants\arduino_nano_33_ble_sense/includes.txt C:\Users\Merli\AppData\Local\arduino\sketches\9A15C86C32FF357825D53C042830113E\sketch\Dual_sensor_150-270.ino.cpp -o C:\Users\Merli\AppData\Local\Temp\3775966650\sketch_merged.cpp
C:\Users\Merli\AppData\Local\Arduino15\packages\builtin\tools\ctags\5.8-arduino11/ctags -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives C:\Users\Merli\AppData\Local\Temp\3775966650\sketch_merged.cpp
Compiling sketch...
"C:\\Users\\Merli\\AppData\\Local\\Arduino15\\packages\\zephyr\\tools\\arm-zephyr-eabi\\0.16.8/bin/arm-zephyr-eabi-g++" -g -Os -std=c++17 -c -DLL_EXTENSION_BUILD -DCONFIG_ARDUINO_API_SERIAL_BUFFER_SIZE=256 -DNRF52840_XXAA -DKERNEL -DK_HEAP_MEM_POOL_SIZE=32768 -DPICOLIBC_LONG_LONG_PRINTF_SCANF -D__LINUX_ERRNO_EXTENSIONS__ -D__PROGRAM_START -D__ZEPHYR__=1 "-imacrosC:\\Users\\Merli\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\zephyr\\0.2.0\\variants\\arduino_nano_33_ble_sense/llext-edk/include/zephyr/include/generated/zephyr/autoconf.h" "-imacrosC:\\Users\\Merli\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\zephyr\\0.2.0\\variants\\arduino_nano_33_ble_sense/llext-edk/include/zephyr/include/zephyr/toolchain/zephyr_stdint.h" -fno-exceptions -fno-rtti -fno-threadsafe-statics -fno-unwind-tables -fno-use-cxa-atexit -fdata-sections -ffunction-sections -fno-unwind-tables -fno-strict-aliasing -fno-printf-return-value -fno-common -mcpu=cortex-m4 -mthumb -mabi=aapcs -mfp16-format=ieee -mtp=soft -Wall -Wformat -Wformat-security -Wno-format-zero-length -Wdouble-promotion -Wpointer-arith -Wexpansion-to-defined -Wno-unused-but-set-variable -fno-asynchronous-unwind-tables -ftls-model=local-exec -fno-reorder-functions --param=min-pagesize=0 -fno-defer-pop --specs=picolibc.specs -D_POSIX_THREADS -mlong-calls -nodefaultlibs -MMD -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -DARDUINO=10607 -DARDUINO_ARDUINO_NANO33BLE -DARDUINO_ARCH_ZEPHYR -DARDUINO_ARCH_ZEPHYR -DARDUINO_LIBRARY_DISCOVERY_PHASE=0 "-IC:\\Users\\Merli\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\zephyr\\0.2.0\\cores\\arduino" "-IC:\\Users\\Merli\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\zephyr\\0.2.0\\variants\\arduino_nano_33_ble_sense" "-IC:\\Users\\Merli\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\zephyr\\0.2.0\\libraries\\Wire" "-Id:\\Users\\Merli\\Documents\\Arduino\\libraries\\SparkFun_BMI270_Arduino_Library\\src" "-IC:\\Users\\Merli\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\zephyr\\0.2.0\\libraries\\SPI" "-Id:\\Users\\Merli\\Documents\\Arduino\\libraries\\DFRobot_BMM150" "-IC:\\Users\\Merli\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\zephyr\\0.2.0\\cores\\arduino/api/deprecated" "-IC:\\Users\\Merli\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\zephyr\\0.2.0\\cores\\arduino/api/deprecated-avr-comp" "-iprefixC:\\Users\\Merli\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\zephyr\\0.2.0\\variants\\arduino_nano_33_ble_sense" "@C:\\Users\\Merli\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\zephyr\\0.2.0\\variants\\arduino_nano_33_ble_sense/includes.txt" "C:\\Users\\Merli\\AppData\\Local\\arduino\\sketches\\9A15C86C32FF357825D53C042830113E\\sketch\\Dual_sensor_150-270.ino.cpp" -o "C:\\Users\\Merli\\AppData\\Local\\arduino\\sketches\\9A15C86C32FF357825D53C042830113E\\sketch\\Dual_sensor_150-270.ino.cpp.o"
Compiling libraries...
Compiling library "Wire"
Using previously compiled file: C:\Users\Merli\AppData\Local\arduino\sketches\9A15C86C32FF357825D53C042830113E\libraries\Wire\Wire.cpp.o
Compiling library "SparkFun BMI270 Arduino Library"
Using previously compiled file: C:\Users\Merli\AppData\Local\arduino\sketches\9A15C86C32FF357825D53C042830113E\libraries\SparkFun_BMI270_Arduino_Library\bmi270_api\bmi270.c.o
Using previously compiled file: C:\Users\Merli\AppData\Local\arduino\sketches\9A15C86C32FF357825D53C042830113E\libraries\SparkFun_BMI270_Arduino_Library\bmi270_api\bmi270_maximum_fifo.c.o
Using previously compiled file: C:\Users\Merli\AppData\Local\arduino\sketches\9A15C86C32FF357825D53C042830113E\libraries\SparkFun_BMI270_Arduino_Library\bmi270_api\bmi2.c.o
Using previously compiled file: C:\Users\Merli\AppData\Local\arduino\sketches\9A15C86C32FF357825D53C042830113E\libraries\SparkFun_BMI270_Arduino_Library\bmi270_api\bmi270_legacy.c.o
Using previously compiled file: C:\Users\Merli\AppData\Local\arduino\sketches\9A15C86C32FF357825D53C042830113E\libraries\SparkFun_BMI270_Arduino_Library\bmi270_api\bmi270_context.c.o
Using previously compiled file: C:\Users\Merli\AppData\Local\arduino\sketches\9A15C86C32FF357825D53C042830113E\libraries\SparkFun_BMI270_Arduino_Library\bmi270_api\bmi2_ois.c.o
Using previously compiled file: C:\Users\Merli\AppData\Local\arduino\sketches\9A15C86C32FF357825D53C042830113E\libraries\SparkFun_BMI270_Arduino_Library\SparkFun_BMI270_Arduino_Library.cpp.o
Compiling library "SPI"
Using previously compiled file: C:\Users\Merli\AppData\Local\arduino\sketches\9A15C86C32FF357825D53C042830113E\libraries\SPI\SPI.cpp.o
Compiling library "DFRobot_BMM150"
Using previously compiled file: C:\Users\Merli\AppData\Local\arduino\sketches\9A15C86C32FF357825D53C042830113E\libraries\DFRobot_BMM150\DFRobot_BMM150.cpp.o
Compiling core...
Using previously compiled file: C:\Users\Merli\AppData\Local\arduino\sketches\9A15C86C32FF357825D53C042830113E\core\variant.cpp.o
Using precompiled core: C:\Users\Merli\AppData\Local\arduino\cores\arduino_zephyr_nano33ble_debug_false_671b914232eb0cc6189bfcc195037414\core.a
Linking everything together...
"C:\\Users\\Merli\\AppData\\Local\\Arduino15\\packages\\zephyr\\tools\\arm-zephyr-eabi\\0.16.8/bin/arm-zephyr-eabi-g++" "-LC:\\Users\\Merli\\AppData\\Local\\arduino\\sketches\\9A15C86C32FF357825D53C042830113E" -r -Wl,--gc-sections -e main -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -std=c++17 -fno-exceptions -fno-rtti -fno-threadsafe-statics -fno-unwind-tables -fno-use-cxa-atexit "-TC:\\Users\\Merli\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\zephyr\\0.2.0/variants/llext/linker_script.ld" "-Wl,-Map,C:\\Users\\Merli\\AppData\\Local\\arduino\\sketches\\9A15C86C32FF357825D53C042830113E/Dual_sensor_150-270.ino.map" --specs=nosys.specs -o "C:\\Users\\Merli\\AppData\\Local\\arduino\\sketches\\9A15C86C32FF357825D53C042830113E/Dual_sensor_150-270.ino.elf" "C:\\Users\\Merli\\AppData\\Local\\arduino\\sketches\\9A15C86C32FF357825D53C042830113E\\sketch\\Dual_sensor_150-270.ino.cpp.o" "C:\\Users\\Merli\\AppData\\Local\\arduino\\sketches\\9A15C86C32FF357825D53C042830113E\\libraries\\Wire\\Wire.cpp.o" "C:\\Users\\Merli\\AppData\\Local\\arduino\\sketches\\9A15C86C32FF357825D53C042830113E\\libraries\\SparkFun_BMI270_Arduino_Library\\SparkFun_BMI270_Arduino_Library.cpp.o" "C:\\Users\\Merli\\AppData\\Local\\arduino\\sketches\\9A15C86C32FF357825D53C042830113E\\libraries\\SparkFun_BMI270_Arduino_Library\\bmi270_api\\bmi2.c.o" "C:\\Users\\Merli\\AppData\\Local\\arduino\\sketches\\9A15C86C32FF357825D53C042830113E\\libraries\\SparkFun_BMI270_Arduino_Library\\bmi270_api\\bmi270.c.o" "C:\\Users\\Merli\\AppData\\Local\\arduino\\sketches\\9A15C86C32FF357825D53C042830113E\\libraries\\SparkFun_BMI270_Arduino_Library\\bmi270_api\\bmi270_context.c.o" "C:\\Users\\Merli\\AppData\\Local\\arduino\\sketches\\9A15C86C32FF357825D53C042830113E\\libraries\\SparkFun_BMI270_Arduino_Library\\bmi270_api\\bmi270_legacy.c.o" "C:\\Users\\Merli\\AppData\\Local\\arduino\\sketches\\9A15C86C32FF357825D53C042830113E\\libraries\\SparkFun_BMI270_Arduino_Library\\bmi270_api\\bmi270_maximum_fifo.c.o" "C:\\Users\\Merli\\AppData\\Local\\arduino\\sketches\\9A15C86C32FF357825D53C042830113E\\libraries\\SparkFun_BMI270_Arduino_Library\\bmi270_api\\bmi2_ois.c.o" "C:\\Users\\Merli\\AppData\\Local\\arduino\\sketches\\9A15C86C32FF357825D53C042830113E\\libraries\\SPI\\SPI.cpp.o" "C:\\Users\\Merli\\AppData\\Local\\arduino\\sketches\\9A15C86C32FF357825D53C042830113E\\libraries\\DFRobot_BMM150\\DFRobot_BMM150.cpp.o" "C:\\Users\\Merli\\AppData\\Local\\arduino\\sketches\\9A15C86C32FF357825D53C042830113E\\core\\variant.cpp.o" "C:\\Users\\Merli\\AppData\\Local\\arduino\\sketches\\9A15C86C32FF357825D53C042830113E/..\\..\\cores\\arduino_zephyr_nano33ble_debug_false_671b914232eb0cc6189bfcc195037414\\core.a" -lstdc++ -lsupc++ -lnosys -nostdlib
"C:\\Users\\Merli\\AppData\\Local\\Arduino15\\packages\\zephyr\\tools\\arm-zephyr-eabi\\0.16.8/bin/arm-zephyr-eabi-objcopy" -O binary "C:\\Users\\Merli\\AppData\\Local\\arduino\\sketches\\9A15C86C32FF357825D53C042830113E/Dual_sensor_150-270.ino.elf" "C:\\Users\\Merli\\AppData\\Local\\arduino\\sketches\\9A15C86C32FF357825D53C042830113E/Dual_sensor_150-270.ino.bin"
"C:\\Users\\Merli\\AppData\\Local\\Arduino15\\packages\\zephyr\\tools\\arm-zephyr-eabi\\0.16.8/bin/arm-zephyr-eabi-objcopy" -O ihex -R .eeprom "C:\\Users\\Merli\\AppData\\Local\\arduino\\sketches\\9A15C86C32FF357825D53C042830113E/Dual_sensor_150-270.ino.elf" "C:\\Users\\Merli\\AppData\\Local\\arduino\\sketches\\9A15C86C32FF357825D53C042830113E/Dual_sensor_150-270.ino.hex"
"C:\\Users\\Merli\\AppData\\Local\\Arduino15\\packages\\zephyr\\tools\\arm-zephyr-eabi\\0.16.8/bin/arm-zephyr-eabi-strip" --strip-debug "C:\\Users\\Merli\\AppData\\Local\\arduino\\sketches\\9A15C86C32FF357825D53C042830113E/Dual_sensor_150-270.ino.elf" "-oC:\\Users\\Merli\\AppData\\Local\\arduino\\sketches\\9A15C86C32FF357825D53C042830113E/Dual_sensor_150-270.ino.llext"
"C:\\Users\\Merli\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\zephyr-post-build-tool\\0.0.2/post_build" "C:\\Users\\Merli\\AppData\\Local\\arduino\\sketches\\9A15C86C32FF357825D53C042830113E/Dual_sensor_150-270.ino.llext"
File copied and saved as C:\Users\Merli\AppData\Local\arduino\sketches\9A15C86C32FF357825D53C042830113E/Dual_sensor_150-270.ino.llext.dfu
Bootloader file specified but missing: C:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\bootloaders\zephyr-arduino_nano_33_ble_sense.bin

Using library Wire in folder: C:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\libraries\Wire (legacy)
Using library SparkFun BMI270 Arduino Library at version 1.0.3 in folder: D:\Users\Merli\Documents\Arduino\libraries\SparkFun_BMI270_Arduino_Library 
Using library SPI in folder: C:\Users\Merli\AppData\Local\Arduino15\packages\arduino\hardware\zephyr\0.2.0\libraries\SPI (legacy)
Using library DFRobot_BMM150 at version 1.0.0 in folder: D:\Users\Merli\Documents\Arduino\libraries\DFRobot_BMM150 
"C:\\Users\\Merli\\AppData\\Local\\Arduino15\\packages\\zephyr\\tools\\arm-zephyr-eabi\\0.16.8/bin/arm-zephyr-eabi-size" -A "C:\\Users\\Merli\\AppData\\Local\\arduino\\sketches\\9A15C86C32FF357825D53C042830113E/Dual_sensor_150-270.ino.elf"
Sketch uses 68380 bytes (8%) of program storage space. Maximum is 786432 bytes.
Global variables use 2924 bytes (0%) of dynamic memory, leaving 520700 bytes for local variables. Maximum is 523624 bytes.

Output of Serial Monitor

  1. If you have an USB-to-Serial adapter, paste the complete output of the console crash, starting from
    NA - BLANK Lost com por
  2. When run in debug mode after typing sketch nothing appears in Serial1.

Output of readelf
NA as no error is produced

Optional: attach the elf file

Dual_sensor_150-270.ino.zip

Optional: attach the sketch

#include <Wire.h>
#include "SparkFun_BMI270_Arduino_Library.h"
// Create a new sensor object
BMI270 imu;

#include "DFRobot_BMM150.h"
DFRobot_BMM150_I2C bmm150(&Wire1, 0x10);

// I2C address selection
uint8_t i2cAddress = BMI2_I2C_PRIM_ADDR; // 0x68
//uint8_t i2cAddress = BMI2_I2C_SEC_ADDR; // 0x69

void setup()
{
    // Start serial
    Serial.begin(115200);
    Serial.println("BMI270 Example 1 - Basic Readings I2C");

    // Initialize the I2C library
    Wire1.begin();
    //Wire1.setClock(400000);
    // Check if sensor is connected and initialize
    // Address is optional (defaults to 0x68)
    while(imu.beginI2C(BMI2_I2C_PRIM_ADDR, Wire1) != BMI2_OK)
    {
        // Not connected, inform user
        Serial.println("Error: BMI270 not connected, check wiring and I2C address!");
        // Wait a bit to see if connection is established
        delay(1000);
    }
    Serial.println("BMI270 connected!");

  while(bmm150.begin()){
    Serial.println("bmm150 init failed, Please try again!");
    delay(1000);
  } Serial.println("bmm150 init success!");
  bmm150.setOperationMode(BMM150_POWERMODE_NORMAL);
  bmm150.setPresetMode(BMM150_PRESETMODE_HIGHACCURACY);
  bmm150.setRate(BMM150_DATA_RATE_25HZ);
  bmm150.setMeasurementXYZ();

}

void loop()
{
    // Get measurements from the sensor. This must be called before accessing
    // the sensor data, otherwise it will never update
    imu.getSensorData();

    // Print acceleration data
    Serial.print("Acceleration in g's");
    Serial.print("\t");
    Serial.print("X: ");
    Serial.print(imu.data.accelX, 3);
    Serial.print("\t");
    Serial.print("Y: ");
    Serial.print(imu.data.accelY, 3);
    Serial.print("\t");
    Serial.print("Z: ");
    Serial.print(imu.data.accelZ, 3);

    Serial.print("\t");

    // Print rotation data
    Serial.print("Rotation in deg/sec");
    Serial.print("\t");
    Serial.print("X: ");
    Serial.print(imu.data.gyroX, 3);
    Serial.print("\t");
    Serial.print("Y: ");
    Serial.print(imu.data.gyroY, 3);
    Serial.print("\t");
    Serial.print("Z: ");
    Serial.println(imu.data.gyroZ, 3);

    sBmm150MagData_t magData = bmm150.getGeomagneticData();
    Serial.print("mag x = "); Serial.print(magData.x); Serial.println(" uT");
    Serial.print("mag y = "); Serial.print(magData.y); Serial.println(" uT");
    Serial.print("mag z = "); Serial.print(magData.z); Serial.println(" uT");
    float compassDegree = bmm150.getCompassDegree();
    Serial.print("the angle between the pointing direction and north (counterclockwise) is:");
    Serial.println(compassDegree);
    Serial.println("--------------------------------");

    delay(100);
}

Additional context
Also tested with standalone sensors on Wire and same thing happens.

Also tested on mbed and teensy

  1. T4.1 no issues on Wire
  2. Nano Wire Zephyr - hangs!!!!!!
  3. Nano Wire Mbed - No Issues no hangs
  4. Nano Wire1 Mbed - No Issues no hangs
  5. Giga Wire - hangs - com port lost with zephyr

Sparkfun library can be downloaded from lib manager. Moded df robot bmi150 lib:

DFRobot_BMM150.zip

on the nano I can get it to run by using only raw data. Heres that sketch, but I had to comment out the function print_rslt which is a debug function and write a new function to return just raw values (non compensated).

#include <Wire.h>
#include <stdint.h>
#include "SparkFun_BMI270_Arduino_Library.h"
#include <Arduino_LPS22HB.h>
#include "DFRobot_BMM150.h"

// Create a new sensor object
DFRobot_BMM150_I2C bmm150(&Wire1, 0x10);
BMI270 imu;

// I2C address selection
uint8_t i2cAddress = BMI2_I2C_PRIM_ADDR; // 0x68
//uint8_t i2cAddress = BMI2_I2C_SEC_ADDR; // 0x69

void setup()
{
    // Start serial
    Serial.begin(115200);
    Serial.println("BMI270 Example 1 - Basic Readings I2C");


    // Initialize the I2C library
    Wire1.begin();
    //Wire1.setClock(400000);

    // Check if sensor is connected and initialize
    // Address is optional (defaults to 0x68)
    while(imu.beginI2C(i2cAddress, Wire1) != BMI2_OK)
    {
        // Not connected, inform user
        Serial.println("Error: BMI270 not connected, check wiring and I2C address!");

        // Wait a bit to see if connection is established
        k_msleep(1000);
    }

    Serial.println("BMI270 connected!");

  if (!BARO.begin()) {
    Serial.println("Failed to initialize pressure sensor!");
    while (1);
  } else {
    Serial.println("LPS22 connected");
  }

  while(bmm150.begin()){
    Serial.println("bmm150 init failed, Please try again!");
    delay(1000);
  } Serial.println("bmm150 init success!");

  bmm150.setOperationMode(BMM150_POWERMODE_NORMAL);
  bmm150.setPresetMode(BMM150_PRESETMODE_HIGHACCURACY);
  bmm150.setRate(BMM150_DATA_RATE_25HZ);
  bmm150.setMeasurementXYZ();

}

void loop()
{
  // Get measurements from the sensor. This must be called before accessing
  // the sensor data, otherwise it will never update
  imu.getSensorData();

  // Print acceleration data
  Serial.print("Acceleration in g's");
  Serial.print("\t");
  Serial.print("X: ");
  Serial.print(imu.data.accelX, 3);
  Serial.print("\t");
  Serial.print("Y: ");
  Serial.print(imu.data.accelY, 3);
  Serial.print("\t");
  Serial.print("Z: ");
  Serial.print(imu.data.accelZ, 3);

  Serial.print("\t");

  // Print rotation data
  Serial.print("Rotation in deg/sec");
  Serial.print("\t");
  Serial.print("X: ");
  Serial.print(imu.data.gyroX, 3);
  Serial.print("\t");
  Serial.print("Y: ");
  Serial.print(imu.data.gyroY, 3);
  Serial.print("\t");
  Serial.print("Z: ");
  Serial.println(imu.data.gyroZ, 3);

  // read the sensor value
  float pressure = BARO.readPressure();

  // print the sensor value
  Serial.print("Pressure = ");
  Serial.print(pressure);
  Serial.println(" kPa");

  float temperature = BARO.readTemperature();

  // print the sensor value
  Serial.print("Temperature = ");
  Serial.print(temperature);
  Serial.println(" C");

  float mag[3];
  if(bmm150.getDataReadyState()) {
    bmm150.getMagData(mag);
    Serial.print("mag x/y/z = "); Serial.print(mag[0],2);
    Serial.print(", "); Serial.print(mag[1],2);
    Serial.print(", "); Serial.print(mag[2],2); Serial.println(" uT");
  }

  // print an empty line
  Serial.println();
  // Print 50x per second
  delay(250);
}
@mjs513
Copy link
Author

mjs513 commented Feb 7, 2025

Just as a update from yesterday.

If I run each sensor individually there is no issue. Appears some sort of conflict with Zephyr?

As another test ran a case on Wire where I had the BMM150 attached directly to the BMI270 through its aux I2C port and used a library designed for that I see the same hang. Note that this config/lib works on a Teensy and a Giga under mbed but not zephyr.

@mjs513
Copy link
Author

mjs513 commented Feb 8, 2025

Out of curiosity wanted to see if I could use the Zephyr BMI270 driver directly.

So in the config file I added

CONFIG_SENSOR=y
CONFIG_BIM270=y

and in the overlay to the @i2c1 node:

&i2c1 {
	status = "okay";
	pinctrl-0 = <&i2c1_default>;
	pinctrl-1 = <&i2c1_sleep>;
	pinctrl-names = "default", "sleep";
	clock-frequency = <I2C_BITRATE_FAST>;
  
	bmi270@68 {
		compatible = "bosch,bmi270";
		reg = <0x68>;
	};
};

and received the following build error:

warning: HAS_STMEMSC (defined at modules/hal_st/Kconfig:10) has direct dependencies 0 with value n, but is currently being y-selected by the following symbols:
 - LSM9DS1 (defined at drivers/sensor/st/lsm9ds1/Kconfig:4), with value y, direct dependencies DT_HAS_ST_LSM9DS1_ENABLED && SENSOR (value: y), and select condition DT_HAS_ST_LSM9DS1_ENABLED && SENSOR (value: y)

warning: USE_STDC_LSM9DS1 (defined at modules/hal_st/Kconfig:192) has direct dependencies HAS_STMEMSC && 0 with value n, but is currently being y-selected by the following symbols:
 - LSM9DS1 (defined at drivers/sensor/st/lsm9ds1/Kconfig:4), with value y, direct dependencies DT_HAS_ST_LSM9DS1_ENABLED && SENSOR (value: y), and select condition DT_HAS_ST_LSM9DS1_ENABLED && SENSOR (value: y)
Parsing /home/my_new_zephyr_folder/zephyr/Kconfig
Loaded configuration '/home/my_new_zephyr_folder/zephyr/boards/arduino/nano_33_ble/arduino_nano_33_ble_nrf52840_sense_defconfig'
Merged configuration '/home/my_new_zephyr_folder/ArduinoCore-zephyr/loader/prj.conf'
Merged configuration '/home/my_new_zephyr_folder/ArduinoCore-zephyr/loader/boards/arduino_nano_33_ble_sense.conf'

so any ideas - just an experimeng

@mjs513
Copy link
Author

mjs513 commented Feb 8, 2025

got around the error by adding CONFIG_LSM9DS1=n. And then remember to start wire1 in the sketch I am seeing:

Enable pin Port: 0x5BD0C pin: 22 DT Flags: 0x0 Flags: 0xA0300
### Sensor pin enabled ###
Test of bmi270 driver
Device apds9960@39
Accel x/y/z: 0	0	0
Accel x/y/z: 0	0	0
Accel x/y/z: 0	0	0
Accel x/y/z: 0	0	0

the sketch does a test if the dev is available and if not goes into a while(1) loop


	if (!device_is_ready(dev)) {
		Serial.print("Device "); Serial.print(dev->name); Serial.println(" is not ready");
		while(1);
	}

if its ready it prints the dev name:

	Serial.print("Device "); Serial.println(dev->name);

from the output it seems that the device is ready but then on the print of the name it printing out a different device:

Device apds9960@39

From the zephyr board for the sense:

&i2c1 {
	hts221: hts221@5f {
		compatible = "st,hts221";
		status = "okay";
		reg = <0x5f>;
	};

	lps22hb: lps22hb-press@5c {
		compatible = "st,lps22hb-press";
		status = "okay";
		reg = <0x5c>;
	};

	apds9960: apds9960@39 {
		compatible = "avago,apds9960";
		status = "okay";
		reg = <0x39>;
		int-gpios = <&gpio0 19 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
	};
};

And the sketch I am using:

#include <zephyr/kernel.h>
#include <zephyr/device.h>
#include <zephyr/drivers/sensor.h>
#include "Wire.h"

const struct device *const dev = DEVICE_DT_GET_ONE(bosch_bmi270);
struct sensor_value acc[3], gyr[3];
struct sensor_value full_scale, sampling_freq, oversampling;

void setup() {
  Serial.begin(115200);
  Serial.println("Test of bmi270 driver");
  delay(5000);
  Wire1.begin();
  Wire1.setClock(100000);

	if (!device_is_ready(dev)) {
		Serial.print("Device "); Serial.print(dev->name); Serial.println(" is not ready");
		while(1);
	}

	Serial.print("Device "); Serial.println(dev->name);

	/* Setting scale in G, due to loss of precision if the SI unit m/s^2
	 * is used
	 */
	full_scale.val1 = 2;            /* G */
	full_scale.val2 = 0;
	sampling_freq.val1 = 100;       /* Hz. Performance mode */
	sampling_freq.val2 = 0;
	oversampling.val1 = 1;          /* Normal mode */
	oversampling.val2 = 0;

	sensor_attr_set(dev, SENSOR_CHAN_ACCEL_XYZ, SENSOR_ATTR_FULL_SCALE,
			&full_scale);
	sensor_attr_set(dev, SENSOR_CHAN_ACCEL_XYZ, SENSOR_ATTR_OVERSAMPLING,
			&oversampling);
	/* Set sampling frequency last as this also sets the appropriate
	 * power mode. If already sampling, change to 0.0Hz before changing
	 * other attributes
	 */
	sensor_attr_set(dev, SENSOR_CHAN_ACCEL_XYZ,
			SENSOR_ATTR_SAMPLING_FREQUENCY,
			&sampling_freq);


	/* Setting scale in degrees/s to match the sensor scale */
	full_scale.val1 = 500;          /* dps */
	full_scale.val2 = 0;
	sampling_freq.val1 = 100;       /* Hz. Performance mode */
	sampling_freq.val2 = 0;
	oversampling.val1 = 1;          /* Normal mode */
	oversampling.val2 = 0;

	sensor_attr_set(dev, SENSOR_CHAN_GYRO_XYZ, SENSOR_ATTR_FULL_SCALE,
			&full_scale);
	sensor_attr_set(dev, SENSOR_CHAN_GYRO_XYZ, SENSOR_ATTR_OVERSAMPLING,
			&oversampling);
	/* Set sampling frequency last as this also sets the appropriate
	 * power mode. If already sampling, change sampling frequency to
	 * 0.0Hz before changing other attributes
	 */
	sensor_attr_set(dev, SENSOR_CHAN_GYRO_XYZ,
			SENSOR_ATTR_SAMPLING_FREQUENCY,
			&sampling_freq);

}

void loop() {
		/* 10ms period, 100Hz Sampling frequency */
		k_sleep(K_MSEC(10));

		sensor_sample_fetch(dev);

		sensor_channel_get(dev, SENSOR_CHAN_ACCEL_XYZ, acc);
		sensor_channel_get(dev, SENSOR_CHAN_GYRO_XYZ, gyr);

		//printf("AX: %d.%06d; AY: %d.%06d; AZ: %d.%06d; "
		//       "GX: %d.%06d; GY: %d.%06d; GZ: %d.%06d;\n",
		//       acc[0].val1, acc[0].val2,
		//       acc[1].val1, acc[1].val2,
		//       acc[2].val1, acc[2].val2,
		//       gyr[0].val1, gyr[0].val2,
		//       gyr[1].val1, gyr[1].val2,
		//       gyr[2].val1, gyr[2].val2);
    Serial.print("Accel x/y/z: ");
    Serial.print(acc[0].val1); Serial.print("\t");
    Serial.print(acc[1].val1); Serial.print("\t");
    Serial.println(acc[2].val1); 
}

more to follow if I get it working

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant