Stuck frames in b0264 module

  1. Where did you get the camera module(s)?
    Uctronics

  2. Model number of the product(s)?
    B0264

  3. What hardware/platform were you working on?
    Jetson Nano B01 Dev Kit
    Tried both L4T32.7.1 and 32.7.6 (with appropriate drivers for each using ./install_full.sh)

  4. Instructions you have followed. (link/manual/etc.)
    Standard bringup and see notes below

  5. Problems you were having?
    Module seems to have an internal buffer of some sort that isn’t flushed, resulting in old frames queuing from the buffer every time the camera is paused and restarted.

  6. The dmesg log from your hardware?
    dmesg | grep arducam shows:
    arducam-csi2 7-000c: firmware version x10003
    arducam-csi2 7-000c: Sensor ID: 0x2311
    arducam-csi2 7-000c: sensor arducam-sc2 7-000c registered
    arducam-csi2 7-000c: arducam_read: Reading register 0x103 failed"

python3 Jetson_HAT_Firmware_Date.py -y 7 shows:
20254-254-254

  1. Troubleshooting attempts you’ve made?
    Attempted to set buffer size to 1 using opencv:
    cap.set(cv2.CAP_PROP_BUFFERSIZE, 1)
    Command successfully returns, but seems to have no effect.

Attempted to set to low latency mode using:
fcntl.ioctl(video port, v4l2.VIDIOC_S_CTRL, v4l2.v4l2_control(0x009a206d, 1))
I can see that the setting toggles using ‘v4l2-ctl --all’ but, again, seems to have no effect.

It is an older unit so I thought a firmware update might be worth a try. I was unable to find a link for firmware for this camera so I tried updating it based on a forum post using the b0264 ov2311_firmware_64bit found here: Install_pivariety_pkgs.sh update and FAQ - #64 by Edward
That seems to have been a poor decision as I can no longer get any frames at all and ‘v4l2-ctl --all’ shows some unexpected settings. (I do still have second b0264 unit that is in its original state and functioning as described above, though.)

  1. What help do you need?
    Are the stuck buffer images expected behavior? If so, is there a way to disable the internal buffer on the b0264 module so I can always be getting the most recent frame? If not, is it possible to manually flush the buffer somehow to eliminate old frames?

For the b0264 unit that I appear to have corrupted with a bad firmware update, is it possible to recover this and at least restore it to its original state?

Hi Arducam team - It’s been over a week since I posted. I’d really appreciate a response. Can you please offer some guidance on this? Thanks.

Hi @iflybri2
I’m checking the history firmware and will let you know which one you need to update into your B0264 module.

B0264_Firmware_Update.pdf (95.0 KB)
FYI.

Hi,
Regarding the stuck frames, there isn’t a solution available for now. We are still actively working on it.

Thank you, Dion. However, these instructions and firmware seem to be for a Raspberry Pi system. Can you please share the correct version for Jetson Nano? (see item 3, above, for system configuration)

Hi @iflybri2
This should function on the Jetson. Simply specify the correct bus number when you run the ./firmware_update command.

Are you certain that the file you shared with me is the most recent firmware? The version I had on my device was originally x10003. When I ran the install with ./firmware_update -m sku_b0264 -i 7, it said “firmware update successful”, but showed the newly installed version to be x10002. Was this supposed to roll back to an older firmware version than I already had? Can you share a change list between x10003 and x10002 so I know what to expect from this?

Hi @iflybri2,
Version 0x10002 isn’t an issue for you since you’re using Jetson Nano. We fixed a bug specific to the Raspberry Pi platform in version 0x10003. So, everything should be fine now.

Regarding this issue: “For the b0264 unit that I appear to have corrupted with a bad firmware update, is it possible to recover this and at least restore it to its original state?”, the firmware update you sent reported that it completed successfully, but it hasn’t recovered this camera to a usable state. Looking at ‘v4l2-ctl --all’ shows a pixel format of “BA81” and width/height of “1600/1300”, when it should be “GREY” and “3200/1300”. Is there anything else I can try to recover this unit?

Also, it seems like an odd policy to suggest updating to an older version of firmware when a newer one exists. Are there known issues with 0x10003 when using it with a Jetson Nano? I do still have one working b0264 unit with 0x10003 on it but I’m hesitant to downgrade this firmware to 0x10002 without a reason for it. Can you please share what was changed between 0x10002 and 0x10003?

archive.zip (106.4 KB)
Hi,
Please try the attached one. It should be 0x10004.

Ps. For others who looked through this thread, plz don’t simply flash the firmware mentioned above into your B0264 before contacting us.

Thanks, Dion. For the camera that I had the “bad” firmware update on, the latest updater you sent still results in x10002 as the reported firmware version. I’m attaching some screenshots below to show the history in case it is helpful in further troubleshooting. I’ve included results on a second B0264 unit for comparison.

Camera A: This is the original “bad” firmware update that I mistakenly installed based on guidance in this link: Install_pivariety_pkgs.sh update and FAQ - #64 by Edward. You can see that the version went from x10003 to x10002 during this update. The camera was rendered non-functional by this update.

I then applied the first firmware update that you shared on April 1st. The firmware version didn’t change and remains at x10002:

I then applied the firmware update you shared on April 2nd. The firmware version didn’t change and remains at x10002. The camera is still non-functional:

I took a fresh b0264 unit, which I’ll call CameraB, and applied the April 1st firmware update to it. The version changes from 0x10003 to 0x10004. Based on the instructions you sent, I believe this was the expected outcome. The camera is still functional after this update.

I then took CameraB and applied the April 2nd firmware update you sent to it. The version went from 0x10004 to 0x10005. The camera is still functional after this update.

I have two questions still:

  1. For CameraA, it seems that something was corrupted by the original “bad” firmware update with the ov2311_firmware_64bit from the other post. Is there any way to recover this unit? The firmware updaters you’ve sent so far don’t seem to be having an impact. Is there a way to reset it to the factory state and start over with a fresh firmware install?
  2. For CameraB, this unit is still functioning but is now on version 0x10005. This again seems unexpected, as your last post said it should result in 0x10004 being installed. Despite multiple requests, I have yet to see any change lists for the various firmware versions you’ve sent. Can you please share what was changed between the original 0x10003 and the 0x10005 version that I now have?

Hi Dion - It’s been almost 2 weeks since my last post again. I’d really appreciate your continued support on this. Can you please answer the two questions above? If not, are you able to refer me to someone who can? Thanks.