Pi Camera Module 3, 12MP IMX708 Detected but Doesn't Work

Here’s the full diagnostic trail:

Software configuration

  • Confirmed camera_auto_detect=1 was set but auto-detect never found the camera
  • Tried camera_auto_detect=0 + dtoverlay=imx708 (correct driver for the IMX708 sensor)
  • Tried dtoverlay=arducam-pivariety (Arducam’s custom driver for their non-native cameras)
  • Installed Arducam’s Pivariety driver packages
  • Reduced I2C bus speed to 50kHz (dtparam=i2c_vc_baudrate=50000) to account for signal quality
  • Fixed a conflicting config (auto_detect=1 and manual overlay both active at once)
  • Fixed a typo (12c_vc_baudrate → i2c_vc_baudrate) that prevented the speed reduction from ever applying

Physical

  • Identified the original ribbon had scraped contacts from inserting before lifting the latch
  • Replaced with the spare ribbon that came with the camera
  • Confirmed contact orientation is correct (silver contacts face HDMI/USB-C side on Pi end)
  • Confirmed the camera is in CAM1 (the correct port, next to the audio jack)

Diagnostics

  • Confirmed the camera module IS electrically present — I2C bus scan found it at address 0x1a (IMX708 sensor) and 0x0c (autofocus controller), both correct
  • Every attempt to read a register from the sensor returns error -5 (NACK) from the kernel driver
  • Cross-referenced with an identical case on Arducam’s support forum — their conclusion was hardware defect when all software and physical checks pass

Conclusion: Software and physical setup are correct. The sensor responds to I2C address probes but NACKs all register reads, which points to the camera module being defective.

Not sure what else to try at this point.