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.
i2cdetect -y 1 → empty i2cdetect -y 0 → only shows “UU”, no 0x48 address.
Questions:
Does the Orin Nano require a level shifter (1.8V Jetson I/O ↔ 5V ADS1015)?
Do I need any device-tree overlay or extra configuration to enable I2C1?
Do I need to install any additional libraries or services for I²C on the Nano?
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.)
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
@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.