How to run IMU in SPI MODE?

I’m trying to read 6-Axis data from an IMU at high speed (1k/s sampling), but the execution speed is just not fast enough.
So I’m trying to run a sample sketch in SPI_MODE in the hope that I can increase the speed a little, but this doesn’t work.
I know from the library and datasheet that the pin number is probably wrong (default is 10, but maybe 40?) and that there might be a problem with #ifndef, but I’m a novice when it comes to hardware, so I don’t know anything more than that.
I tried to remove the directives, but of course it was rejected :upside_down_face:
Is there any way to use SPI_MODE ? (or, i2c Fast Mode?)

device: Seeed Studio XIAO nRF52840 Sense
IDE: Arduino IDE 2.0.3
core: Seeed nRF52 mbed-enabled Board 2.7.2
library: Seeed Arduino LSM6DS 2.0.3


Hi Ryu,
according to the XIAO BLE Sense schematic, the on-board IMU is hard-wired in I2C mode only.
The internal I2C bus is “Wire1” and the external “Wire” (pin D4, D5), AFAIK.

Hi L5,
I see!
No wonder it doesn’t work then.
I guess I’ll have to come up with some other solution……
Thanks a lot!

1 Like

It’s a shame. I was looking to do the same thing. Is there a way to, perhaps not so elegantly, rewire the module without removing the shielding?

Also, could someone post a link to the schematics? I looked and searched, but could not find them.

Where is the interrupt pin from the IMU wired into on the nRF52840? What is the “pin” name in Arduino?

Schematics may be found here.
Seeed Studio XIAO nRF52840 Sense — スイッチサイエンス

Thanks. The schematics helped a little.

I’m still having trouble with an ISR for the IMU. I guess I’ll search a little and post a separate question if I don’t find a solution.