Hi, I’d like to try an IMX230-based camera on a Jetson Xavier NX and also on a Nano. The IMX230 modules I’m looking at are listed under the Pivariety cameras (the 21MP IMX230 color module, the one advertised for RPi 4B/3B/2B/3A/Pi Zero/CM3/CM4).
Hi, thanks for checking before ordering. Quick clarification so you don’t go down the wrong path:
The IMX230 listing you found is under the Pivariety camera docs, and that Pivariety driver package is meant for Raspberry Pi boards. It will not work on Jetson, because the Jetson kernel and driver stack are different.
For using these IMX230 cameras on Jetson, you need the Jetvariety driver instead of the Pivariety driver.
Can you tell me a bit about the setup so I can point you at the right guide?
Also have an older Jetson Nano (4GB, JetPack 4.6) I wanted to test on
Single IMX230 module for now
I actually already tried the Pivariety install on the Xavier NX before posting. I followed the Pi guide and ran the install script, rebooted, but the camera never shows up.
v4l2-ctl --list-devices only shows the onboard stuff, nothing that looks like the IMX230. And dmesg is full of probe errors:
[ 12.345678] imx230 9-0010: probing i2c device
[ 12.345679] imx230 9-0010: failed to read chip id
[ 12.345679] imx230: probe of 9-0010 failed with error -121
[ 12.345680] tegra-i2c 3180000.i2c: no acknowledge from address 0x10
So I guess I installed the wrong thing entirely. Should I just wipe and reinstall, or can I swap to the Jetvariety driver on top of this?
Yeah, that output makes sense. Error -121 (EREMOTEIO) with “no acknowledge from address 0x10” means the i2c driver that got loaded isn’t the right one for your setup — the Pivariety install puts RPi-targeted pieces in place, but on the Jetson the kernel/DT binding doesn’t match, so the sensor never actually talks to the IMX230.
Two things before you reinstall:
Undo the Pivariety install first. On Jetson the RPi installer can leave stale modules and overlays behind. Easiest is to remove what it installed (or reflash, if the NX is easy for you to reflash) so we start clean.
Then install the Jetvariety driver, which is the package built for Jetson.
A heads up: the exact driver/firmware package depends on your module and L4T version, so I’ll send the matching package to you via private message — please check your messages and use that one for the install. Don’t reuse the file from the Pivariety docs.
Got it, that’s the part I was missing. Cleaned off the old install, then used the package from your private message along with the Jetvariety Quick Start Guide you linked.
Great, that’s exactly what we want to see — clean probe, sensor detected, /dev/video0 present. So to summarize where we landed:
The IMX230 listing you originally found is a Pivariety/Raspberry Pi offering, and the Pivariety driver isn’t what runs these cameras on Jetson. For the IMX230 on Jetson, the correct path is the Jetvariety driver. Once the right driver was installed, the probe errors (-121 / no acknowledge at 0x10) disappeared and the sensor was detected and streaming.
On your two questions:
Yes — the Jetvariety driver is the Jetson-side driver family for these cameras. The specific package/version still has to match the module and the JetPack/L4T version, and JetPack 4.6 on the Nano is a different L4T branch than your NX on JetPack 5.1, so it won’t be the identical package you just used.
Same overall procedure, following the same Jetvariety Quick Start Guide: Quick Start Guide - Arducam Wiki — just install the package that matches the Nano’s L4T version.
I’ll send you the Nano-matching package via private message so you have the right one. Ping back here if the probe fails again and we’ll compare the dmesg output.