ADS1015 not detected on Jetson Orin Nano

Hi everyone,
I’m trying to connect an Adafruit ADS1015 (12-bit ADC) to my Jetson Orin Nano (Ubuntu 22.04).
The same wiring and setup works perfectly on a Raspberry Pi 4/5, but the Jetson refuses to detect the device on I²C.

My wiring (confirmed working on Raspberry Pi):

  • ADS1015 VDD → 5V (Pin 2)

  • ADS1015 GND → GND (Pin 6)

  • ADS1015 SDA → Pin 3 (I²C1 SDA)

  • ADS1015 SCL → Pin 5 (I²C1 SCL)

I also tried the I²C0 pins:

  • SDA → Pin 27

  • SCL → Pin 28

Packages installed:

sudo apt-get install -y i2c-tools libgpiod-dev python3-libgpiod
pip3 install --upgrade adafruit-blinka
pip3 install adafruit-circuitpython-ads1x15

I can see /dev/i2c-0 and /dev/i2c-1, but:

i2cdetect -y 1 → empty
i2cdetect -y 0 → only shows “UU”, no 0x48 address.

Questions:

  1. Does the Orin Nano require a level shifter (1.8V Jetson I/O ↔ 5V ADS1015)?

  2. Do I need any device-tree overlay or extra configuration to enable I2C1?

  3. Do I need to install any additional libraries or services for I²C on the Nano?

  4. Can you explain the correct steps to connect and use an ADS1015 with the Jetson Orin Nano?
    (Wiring, voltage levels, device-tree, modules, kernel config, etc.)

Thanks!


The reason the ADS1015 isn’t showing up on the Orin Nano is that the Jetson’s I/O pins (including I²C) run at 1.8 V, while the ADS1015 expects 3.3 V or 5 V logic. Even though the header provides 5 V and 3.3 V power rails, the signal pins themselves are still 1.8 V only. NVIDIA has confirmed this in several of their forum threads (for example:
https://forums.developer.nvidia.com/t/how-to-change-orin-spi-pins-output-level-from-1-8v-to-3-3v/242323).

Because of that logic-level mismatch, you’ll need a bidirectional I²C level shifter between the Jetson and the ADS1015. It’s easiest to power the ADS1015 at 3.3 V and run the high side of the level shifter at the same voltage.

It’s also worth double-checking the ADS1015’s address, since the board can be configured to four different ones depending on the ADDR pin:

  • ADDR → GND = 0x48

  • ADDR → VDD = 0x49

  • ADDR → SDA = 0x4A

  • ADDR → SCL = 0x4B

If the ADDR pin isn’t tied the way you expect, the chip will show up at a different address.

Once the level shifter is inserted and the address is confirmed, the ADS1015 will respond normally on the bus.
_____________________________________________
Tobias Fonseca

Embedded SW Engineer at RidgeRun
Contact us: support@ridgerun.com
Developers wiki: https://developer.ridgerun.com
Website: www.ridgerun.com

@z2016873 it looks like you are using the Orin Nano DevKit Expansion Connector based on your pin numbering. Your connections are correct, for both I2C0 and 1 cases.

Please refer to the Jetson Orin Nano Developer Kit Carrier Board Specification. As per section 3.3, the Expansion Connector signals are all 3.3V levels, so you will need to level shift from the 5V signals on ADS1015.

If you still have problems after level shifting the I2C properly, we would need to pull in some of the software team support for your other questions.