XIAO BLE SENSE cannot communicate with IMU sensor

That makes perfect sense. In hindsight, I could have picked this up from the schematic diagram…

Hi Dave, were you able to get it working with the Arduino/Adafruit based image (not the mbed OS one)

Didn’t try the Arduino_LSM6DS3 library with my XIAO BLE boards…

I consider it to be a major accomplishment for me to find and successfullly deploy Seeed-specific software such as the Seeed Arduino LSM6DS3 library with Seeed boards.

Regards,

Dave

:smiling_face_with_three_hearts: Thank you for the Boost…
worked like a charm…

XIAO BLE Sense test of LSM6DS3 compiled on Sep 16 2022 at 00:02:39
Seeed mbed-enabled nrf52 Boards-> Seeed XIAO BLE Sense - nrf52480
From board release verion 2.7.6
Using Seeed Arduino LSM6DS3 Library version 2.0.3
Device OK!
Accelerometer:
X1 = 0.0000
Y1 = 0.0259
Z1 = 0.9560
Gyroscope:
X1 = 32.0600
Y1 = 4.5500
Z1 = 12.6700
Thermometer:
Degrees C1 = 27.7188
Degrees F1 = 81.8938

I followed you post and When it got past the Lib error I began to smile.
too bad about the battery voltage issue. man!!, I want to send imu and battery data over the BLE link
to my phone app. I hope they get this tight little package correct soon.
thanks again.
Kings regards,
Pj

Hi everyone,
damn, why is the hardware of the Xiao-BLE Sense so good. I would love to throw it away because of the bad software(support). But it has everything I need in a super small format.
I run the board in the non-mbed version 1.0.0. these gives access to all Adafruit libraries which work great. Unfortunately I cannot access the IMU sensors LSM6DS3 or microphone. The Seeed Arduino LSM6DS3 Library seems to take the wrong wiring information from the incompatible board files.
Does it make sense to spend more time for a solution for the Adafriut-friendly 1.0.0 board or should I focus on board release version 2.7.6 for the Arduino33 way.
What is your opinion?

I’m having a similar(?) issue: I get static, incorrect readings from the IMU, but no errors.

 X1 = 13.7753
 Y1 = 13.7753
 Z1 = 13.7753

Gyroscope:
 X1 = -1623.2300
 Y1 = -1623.2300
 Z1 = -1623.2300

Thermometer:
 Degrees C1 = inf
 Degrees F1 = inf

I suspect this is because I’m using the 1.0.0 version of the mbed library, and not the 2.7.2 version.

The reason I’m doing this is that when I attempt to install the mbed-enabled library, I get errors:

Tool Seeeduino:openocd@0.11.0-arduino2 already installed
Tool Seeeduino:arm-none-eabi-gcc@7-2017q4 already installed
Tool Seeeduino:bossac@1.9.1-arduino2 already installed
Tool Seeeduino:dfu-util@0.10.0-arduino1 already installed
Downloading packages
Replacing platform Seeeduino:mbed@1.0.0 with Seeeduino:mbed@2.7.2
Uninstalling Seeeduino:mbed@1.0.0
Platform Seeeduino:mbed@1.0.0 uninstalled
Uninstalling Seeeduino:CMSIS@5.7.0, tool is no more required
Uninstalling Seeeduino:arm-none-eabi-gcc@9-2019q4, tool is no more required
Tool Seeeduino:arm-none-eabi-gcc@9-2019q4 uninstalled
Uninstalling Seeeduino:nrfjprog@9.4.0, tool is no more required
Tool Seeeduino:nrfjprog@9.4.0 uninstalled
Configuring platform.
**WARNING cannot configure platform: exit status 127**
Platform Seeeduino:mbed@2.7.2 installed

I get this error on both version 2.6.1 and 2.7.2. Then, as a result of the platform not being configured (I suspect), when I try to compile or upload, I get this error:

Error resolving FQBN: getting build properties for board Seeeduino:mbed:xiaonRF52840Sense: invalid option 'softdevice'

Compilation error: Error resolving FQBN: getting build properties for board Seeeduino:mbed:xiaonRF52840Sense: invalid option 'softdevice'

Any help would be appreciated.

Is there a trick to getting the 2.7.2 board release installed. I keep getting an error 127, and it fails to configure the platform = can’t compile.

I’m getting the same problem, did you manage to find a solution to this? I’m trying to have sleep mode and IMU working together. However it seems that I need version 1.0.0 for sleep, but version 2.6.1/2.7.2 for IMU to work.

Hi Rhys3logy,

It may not be the right way, but I am using the IMU implemented in “Seeed XIAO nRF52840 Sense” on “Seeed nRF52 Borads 1.0.0” (non mbed) in the following way

Board library: Seeed nRF52 Borads 1.0.0 (non mbed)
Board : Seeed nRF52 Borads / Seeed XIAO nRF52840 Sense
IMU library: Seeed_Arduino_LSM6DS3
–>Replace “Wire” in LSM6DS3.cpp with “Wire1”.
#define Wire Wire1” does not work as expected, so I rewrote Wire to Wire1.

2 Likes

Works great! Thank you :smile:

Xiao BLE Sense IMU Activity Demo on Dev Board
Quick Video of the IMU activity Demo Running on the Xiao Development board. After Resetting the display shows “Grab Me Demo” if touched moved or vibrated (1.5 G) Sensitivity is set, Beeps, and displays “moved” whenever it’s disturbed…

HTH
AMA
GL :slight_smile:

Hi Dave,
I followed your steps and tried the HighLevelExample sketch but I get a device error and static values for the accelerometer and gyroscope. The only differences are that I’m on Mac OS and Arduino IDE version 2.0.3. Have you tried it on the latest Arduino IDE version or IDE version doesn’t matter?

The LED blink example works fine though.

Thanks for your help.
Hardeep.

Screenshots:

@ aovestdipaperino

I tried that library but no response in Serial Monitor. I even tried uninstalling Seeed Studio LSM6DS3 library. No luck.

Could it be the faulty chip? I bought this board just for the IMU application in my project. :frowning:

I ended up forking the Arduino library for Nano Sense and made it work with Xiao in RTOS world.

When using “Seeed nRF52 Boards 1.0.0”,
#include <Arduino.h>
#include <Adafruit_TinyUSB.h>
may be required.

Please also refer to the following

It may not be the right way, but I am using the IMU implemented in “Seeed XIAO nRF52840 Sense” on “Seeed nRF52 Borads 1.0.0” (non mbed) in the following way
Board library: Seeed nRF52 Borads 1.0.0 (non mbed)
Board : Seeed nRF52 Borads / Seeed XIAO nRF52840 Sense
IMU library: Seeed_Arduino_LSM6DS3
–>Replace “Wire” in LSM6DS3.cpp with “Wire1”.
#define Wire Wire1” does not work as expected, so I rewrote Wire to Wire1.

Or if you use “Seeed nRF52 mbed-enabled Boards 2.8.1”, IMU will work without any problem.

Thanks for your response. I tried using “Seeed nRF52 mbed-enabled Boards 2.8.1” but get this error:

Error: 13 INTERNAL: Cannot install platform: installing platform Seeeduino:mbed@2.8.1: searching package root dir: no unique root dir in archive, found ‘/Users/a2530/Library/Arduino15/tmp/package-3768760097/.github’ and ‘/Users/a2530/Library/Arduino15/tmp/package-3768760097/bootloaders’

I was able to specifically install the “Seeed nRF52 mbed-enabled Boards” version 2.7.2, but I get the same error as Hardeep_Singh when I try to update it to 2.8.1 - it’s clear that something is broken in the Board JSON file provided by Seeed. I hope Seeed can see and fix this! @msfujino - the 2.8.1 version doesn’t install on the Arduino IDE (I use version 2.0.3, which is the current download).

I installed on IDE 1.8.19 and am using it with IDE 2.0.3.
For problems with IDE2.0, you can post in the following forum, which will confirm and solve your problem in a very short time.When using mbed2.8.1, please also refer to the following link.

Are you suggesting using IDE 1.8 to make BLE sensor work until Arduino fixes 2.0.3 issues?