Arducam Pivariety 16MP IMX298 on Raspberry Pi 4: IPA config missing, firmware update won't stick

Hi everyone, I’m trying to get an Arducam Pivariety 16MP IMX298 Color Motorized Focus Camera Module working on a Raspberry Pi 4 Model B, but it has never worked. I keep seeing this in the logs:

IPAProxy ipa_proxy.cpp:149 Configuration file ‘arducam-pivariety.json’ not found for IPA module ‘raspberrypi’

Should I also turn on the i2c bus before doing the update? Any ideas what’s going wrong?

Welcome to the forum. That IPAProxy error usually means the libcamera/Arducam configuration isn’t being picked up, which often goes hand in hand with a firmware issue on these Pivariety modules. Before we go down the i2c path, can you confirm the platform and run this so we can see what the kernel thinks:

dmesg | grep arducam

Also, which Pi board and OS/kernel are you on (32-bit or 64-bit)? That matters for choosing the right firmware file.

Platform is a Raspberry Pi 4 Model B with the Arducam Pivariety 16MP IMX298 Color Motorized Focus Camera Module. I’ve already tried every solution in the Arducam documentation. I attempted a firmware update once before, without shorting the camera, and it reported success, but dmesg | grep arducam still shows the firmware needs to be updated.

Thanks, that’s a useful clue. The fact that the update said it succeeded but dmesg still complains usually points to the update not actually taking effect. For these motorized focus Pivariety boards, the camera board has to be shorted with a jumper and kept connected to the Pi while updating. Did you short the board during the update you already did?

No, I didn’t short it. The update printed ‘Firmware update successful, please reboot’ so I assumed it was fine, but after rebooting dmesg | grep arducam still says the firmware needs updating. The IPAProxy error is still there too:

IPAProxy ipa_proxy.cpp:149 Configuration file ‘arducam-pivariety.json’ not found for IPA module ‘raspberrypi’

Right, that matches what we’re seeing. A ‘successful’ message alone isn’t enough here - if the board isn’t shorted during the update, it can report success without fully writing, and dmesg | grep arducam keeps telling you an update is needed. Let’s redo it properly:

  1. Power the Raspberry Pi off and use a jumper wire to short the camera board as shown in the picture below.
  2. Power the Pi back on; while it is restarting, remove the jumper wire from the camera board.
  3. Decompress the firmware package I’ve sent you via private message, choosing the file according to your kernel version (32-bit or 64-bit).
  4. After decompressing, enter the imx298_lanes2_firmware path and run the firmware update command. If ‘Firmware update successful, please reboot’ is displayed, the update succeeded and you must reboot the Pi for it to take effect. If you see a red hint instead, the update failed - re-plug the camera and start from the beginning.

image001.png

Make sure the camera stays connected to the Pi the whole time.

Thanks, I’ll try that. The firmware package came through. Just to be sure - I remove the jumper during boot, but the camera stays connected throughout, right? And I pick the file based on my kernel being 32-bit or 64-bit?

Exactly - keep the camera connected the entire time; only the jumper wire is removed while it’s restarting. And yes, pick the firmware file to match your kernel version. If you’re not sure, run uname -m: aarch64 means 64-bit, armv7l means 32-bit. After the update and a reboot, check dmesg | grep arducam again - it should no longer complain about needing an update.

Got it. One more thing - if it still misbehaves after this, is there a way to grab the full picture for you?

Yes, if it still won’t cooperate after the shorted update, run these to generate a bug report and I’ll take a look:

wget -O arducam-camera-bug-report https://github.com/ketai-dhr/arducam-camera-bug-report/releases/download/tools/arducam-camera-bug-report
chmod +x ./arducam-camera-bug-report
./arducam-camera-bug-report

It writes arducam-bug-report.txt in the current directory. But try the shorted update first - the key thing is that the board must be shorted and kept connected to the Pi during the update; otherwise dmesg | grep arducam will keep reporting that a firmware update is needed even if it said ‘successful’.