I2c conflict suspected: 7" touchscreen fails at boot with Arducam camera on RPi4

Having a weird issue with my Arducam B0483 and hoping someone can help. I’ve got it connected to a Raspberry Pi 4 along with the official 7" touchscreen. Problem is, whenever the camera is plugged in at boot, the touchscreen just stays black — no backlight, nothing. As soon as I disconnect the camera and reboot, the touchscreen comes back fine.

The camera itself works perfectly on my Raspberry Pi 5 with the same OS setup, so the camera isn’t dead. Running the latest Raspberry Pi OS, fully updated kernel.

Did some digging and found a few threads about I2C bus conflicts between cameras and DSI touchscreens. The official touchscreen uses I2C over the DSI connector for touch and power control, and I’m guessing the B0483 might also be grabbing something on the I2C bus at boot, causing a collision. But I haven’t been able to figure out how to fix it. Anyone run into this before?

That does sound like a bus conflict, and I2C collision between the camera and the DSI touchscreen on the Pi 4 is a reasonable theory. The touchscreen uses I2C for its DSI bridge and touch controller, and if the camera module is also trying to talk on the same bus at boot, you’d get exactly this kind of behavior.

Before we go down the I2C debugging rabbit hole though, could you do a couple of things? First — could you take some clear, well-lit photos of both ends of the ribbon cable? I want to see:

  • Where the ribbon connects to the camera board
  • Where the ribbon connects to the Pi itself

Sometimes physical connection issues can cause really strange power-related symptoms that look like software conflicts.

Second, let’s grab a diagnostic dump. Run these commands in a terminal one after the other:

sudo reboot
wget -O arducam-camera-bug-report https://github.com/Dion4cen/arducam-camera-bug-report/releases/download/Tool/arducam-camera-bug-report
chmod +x ./arducam-camera-bug-report
./arducam-camera-bug-report

That’ll generate a file called arducam-bug-report.txt in your current directory. Attach that along with the photos and we’ll go from there.

Thanks for the quick reply. Okay so… I think I just found the problem while trying to take those photos you asked for, and I feel a bit dumb now.

I was looking closely at the ribbon cable to get a good picture and noticed something off. The cable I’m using has the contacts/pins on the same face of the ribbon at both ends. So when you plug one end into the Pi and the other into the camera, the pin order is effectively reversed — pin 1 on the Pi side is going to whatever the last pin is on the camera side.

I don’t think this is the right cable for this camera at all. The correct one should have contacts on opposite faces at each end so the pin mapping stays straight through, right?

That’ll do it! And honestly, you’re not the first person to get tripped up by this — those same-face ribbon cables look nearly identical at a glance and they’re easy to mix up when you’ve got a few spares lying around.

Yes, with a same-face cable, the pinout gets flipped end-to-end. So power, ground, I2C, and MIPI data lines are all landing on the wrong pins at the camera. On the Pi 5 it might have been marginally tolerant enough to still work (or at least not pull down the touchscreen’s power rail), but on the Pi 4 it sounds like the mismatch was back-feeding or pulling something low on the DSI/I2C power domain and killing the touchscreen at boot.

The correct cable for the B0483 should be an opposite-face ribbon — contacts on one side at the Pi end and on the other side at the camera end. That keeps pins 1-to-1, 2-to-2, etc.

Before we close this out — do you have the correct cable on hand to test with?

Just swapped in the correct opposite-face ribbon cable and… yep, that was it. Booted up and the touchscreen came on right away with the camera connected. Everything working normally now.

So much for the I2C conflict theory — turns out I was just using the wrong damn cable. Appreciate the help, and honestly asking for those photos is what made me actually look at the cable closely enough to notice. Please go ahead and close this out.

Glad that sorted it! And don’t worry about the I2C theory — it was a perfectly reasonable assumption given the symptoms. A flipped ribbon cable can cause all sorts of bizarre and misleading behavior, especially when it’s partially working on one board but not another.

For anyone who finds this thread later with similar symptoms (touchscreen black at boot when a camera is connected, but works on a different Pi model): before diving into kernel logs and I2C debugging, double-check that your ribbon cable has contacts on opposite faces at each end. If they’re on the same face, you’ve got the wrong cable and the pinout is reversed.

Marking this as resolved.