I’m trying to get a Raspberry Pi HQ Camera Module (IMX477) to run with the Arducam USB 3.0 camera shield (UC593 Rev C), but I just can’t get a stream going. Every time I start the stream from the GUI with the IMX477 connected, it immediately throws a “USB transfer timeout error” and nothing comes through.
Weird part is that a Raspberry Pi Camera V2.1 works perfectly fine on the exact same setup, same shield, same GUI, same cables. So the shield itself seems OK.
My suspicion is that I’m using the wrong CfgFile for the IMX477 sensor. There seem to be a LOT of CfgFiles available for the IMX477 and I’m honestly not sure which one matches this hardware combo. Could using an incorrect/unsuitable CfgFile actually cause this USB transfer timeout? If so, what’s the correct config file I should be loading for the IMX477 on the UC593 Rev C?
Hi, thanks for the detailed report — that helps a lot.
Yes, that’s actually a very likely cause. If the CfgFile doesn’t match the sensor + shield combination (wrong channel, wrong number of lanes, wrong resolution or pixel format), the stream very often dies with a “USB transfer timeout error” because the sensor isn’t being configured the way the shield expects.
For the Arducam USB 3.0 camera shield UC593 Rev C together with the Raspberry Pi HQ Camera (IMX477), the config you want is:
Channel A, 2Lane, 2016x1520, RAW8
The matching file is IMX477_2Lane_2016x1520_RAW8.cfg. You can try this one:
For reference, the full config path is:
Config/USB3.0_UC-593 Rev.C/MIPI/IMX477/Channel_A/2Lane/2016x1520/IMX477_2Lane_2016x1520_RAW8.cfg
Give that a shot and let us know how it goes. We’ll keep looking into this on our side as well and reply as soon as we have anything.
Unfortunately that didn’t solve it. I loaded IMX477_2Lane_2016x1520_RAW8.cfg for Channel A / 2Lane / 2016x1520 / RAW8 exactly as suggested, but I still get the same “USB transfer timeout error” when I start the stream with the IMX477. The Camera V2.1 still works fine, so nothing else in the setup changed.
I’ve attached a screenshot of what I’m seeing:
Just to be clear, this is the file that was suggested (and that I used):
Thanks for testing that and for the screenshot — that rules out the CfgFile as the cause, since the timeout still happens with the correct config loaded. So at this point the root cause isn’t determined yet and we need to dig a bit deeper.
Could you please show me the “datainfo” information in the “about” section and the “datainfo” in the “tools” section of the GUI?
Specifically:
Open the “about” section and show/export the datainfo it reports.
Open the “tools” section and show/export the datainfo there as well.
That should tell us how the shield is actually enumerating and what the sensor config looks like at runtime, which will help us figure out why the IMX477 transfer keeps timing out while the V2.1 works. Once we have that we can propose the next step.