Hey everyone, I’m having trouble with my Arducam B0459 (the 12MP IMX477P USB 3.0 camera). The specs say it supports 4056x3040, but I can only get 1280x720 at 10fps out of it over UVC. I can’t seem to access the higher resolutions at all.
Thanks for the detailed report — this is actually a known behavior with these UVC 3.0 cameras and the clues are all there in what you’ve posted.
Looking at your diagnostics:
v4l2-ctl showing only YUYV 1280x720 @ 10fps
dmesg reporting it as “UVC 1.10 device”
This tells me the camera is enumerating as a USB 2.0 / UVC 2.0 device, not as a USB 3.0 / UVC 3.0 device. When a UVC 3.0 camera falls back to UVC 2.0 enumeration, it only advertises a limited subset of resolutions — typically 1280x720 and lower — because USB 2.0 bandwidth simply can’t carry the full 4056x3040 stream. The full resolution requires proper USB 3.0 SuperSpeed link negotiation.
The root issue here is that your camera and host aren’t negotiating a USB 3.0 link. Arducam has a troubleshooting page that covers exactly this scenario:
The key step is the cable connection sequence — on these cameras, the order you plug things in actually matters for USB 3.0 negotiation. Give that guide a try and let us know if anything changes.
Okay, so I went through the troubleshooting guide carefully. I made sure to connect the USB-A side of the cable into the Pi’s USB 3.0 port first, and only then connected the camera to the USB-C end of the cable — exactly as described.
Unfortunately, no dice. The camera is still showing up as a UVC 1.10 device in dmesg and v4l2-ctl still only lists YUYV 1280x720.
I went ahead and tested every single USB 3.0 port on the Raspberry Pi 5 using the same connection sequence, and the result is the same across all of them. The Pi does recognize other USB 3.0 devices at SuperSpeed on those ports, so I don’t think the ports themselves are the problem.
What else could be going on here? Starting to wonder if I got a bad unit.
That’s useful info — the fact that other USB 3.0 devices negotiate SuperSpeed on those same Pi ports narrows things down quite a bit. Since you followed the correct connection sequence and tested across all ports with the same result, my next suspicion is the USB cable itself.
USB 3.0 signaling requires a cable with all 9 pins populated on the USB-A/SuperSpeed connector side. Standard USB 2.0 cables only have 4 pins and lack the extra differential pairs needed for SuperSpeed data lanes. If you’re using a USB 2.0-only cable — even a high-quality one — the camera will be forced into USB 2.0 mode no matter what port you plug into or what sequence you follow.
Can you confirm whether the USB cable you’re using is the one that came in the box with the Arducam B0459? If you’re using a third-party cable, try swapping back to the original one and retest. The original cable is wired for USB 3.0 and should let the camera enumerate correctly.