Spi protocol not working

Hardware & OS:

Board: Jetson Orin Nano Developer Kit

JetPack Version: JetPack 6.2

External Hardware: LSM6DS3 IMU Breakout Board (3.3V logic) connected via SPI1 on the 40-pin header.

The Problem:

I am building a robotics project and trying to communicate with an LSM6DS3 IMU via SPI. However, reading the WHO_AM_I register continuously returns 0xFF.

After some hardware debugging, I suspect the Jetson’s default SPI pin drive strength is too weak to overcome the built-in pull-up resistors on the IMU breakout board. When I toggle a standard GPIO pin (Pin 31) HIGH using Jetson.GPIO and measure it with a multimeter, it only reaches ~1.6V instead of a clean 3.3V. I suspect the SPI Clock and CS pins are experiencing the same voltage drop, preventing the IMU from recognizing the signals and waking up from I2C mode.

Troubleshooting Steps Already Taken:

Verified Physical Wiring: SPI1_SCK (Pin 23), SPI1_MOSI (Pin 19), SPI1_MISO (Pin 21), SPI1_CS0 (Pin 24). Power is supplied via 3.3V (Pin 1) and GND (Pin 9).

Forced CS Low: Physically tied the IMU’s CS pin directly to a Jetson GND pin to permanently force SPI mode. Still received 0xFF.

Lowered SPI Frequency: Dropped the SPI clock speed in my C++ code from 1 MHz down to 100 kHz to allow more time for weak signals to rise/fall. No change.

My Questions for NVIDIA Support:

Is there a known issue with the Orin Nano’s 40-pin header not outputting a true 3.3V logic HIGH when interfacing with sensor breakout boards?

What is the recommended method to force the SPI pins to output a full 3.3V to overcome external pull-up resistors?

Thank you for your help

Hi abdullahcoc2020,

Could you get a scope to check if it is stable 1.6V or there’s the square waveform at this moment?

If you get the square waveform, you may need to apply the following patch:
40hdr - SPI1 gpio padctl register bit[10] effect by gpiod tools in JP6 - #20 by KevinFFF

Have you verified SPI loopback test working before connecting to IMU?
It could help you confirming if the SPI configurations are correct.

yeah its not a square wave

yes i have done that also

should i reflash the jetpack version or try to degrade it to version 5 ?

Yes, I would suggest verifying with the latest Jetpack 6.2.2(r36.5) to check if there’s the similar issue. It should include all possible fixes for GPIO.