B0292 freezes after long system uptime

  1. Model number of the product(s)?
    B0292

  2. What hardware/platform were you working on?
    Linux

  3. Instructions you have followed. (link/manual/etc.)

#!/bin/sh
set -ex

v4l2-ctl \
--device=/dev/video0 \
--set-fmt-video=width=3264,height=2448,pixelformat=MJPG

v4l2-ctl --device=/dev/video0 --all

sleep 1

v4l2-ctl --device=/dev/video0 --all

v4l2-ctl \
--device=/dev/video0 \
--stream-mmap \
--stream-count=1 \
--stream-to=frame.jpg
  1. Problems you were having?
    We are using the camera infrequently, once every few hours to grab approximately 30 frames at a time.
    Camera initially operates OK for many hours, but then becomes non-responsive after long system uptime. It will respond OK to changes of the settings, but times out while attempting to grab frames.

  2. The dmesg log from your hardware?

[    1.197167] usb 1-4: new high-speed USB device number 4 using xhci_hcd
[    1.371697] usb 1-4: New USB device found, idVendor=0c45, idProduct=6366, bcdDevice= 1.00
[    1.371713] usb 1-4: New USB device strings: Mfr=2, Product=1, SerialNumber=3
[    1.371718] usb 1-4: Product: Arducam_8mp
[    1.371722] usb 1-4: Manufacturer: Arducam Technology Co., Ltd.
[    1.371726] usb 1-4: SerialNumber: SN0001
  1. Troubleshooting attempts you’ve made?
    GitHub - netinvent/usb_resetter: small tool to reset USB controllers or devices . Sometimes this works, sometimes it doesn’t and the camera stays non-responsive
rmmod uvcvideo
modprobe uvcvideo
  1. What help do you need?
    Trouble shooting tips

Latest firmware (e.g. similar to

Might be similar issue to

Sorry, I forgot to include the error.
Running on balenaOS 4.1.2

$ v4l2-ctl --device=/dev/video0 --set-fmt-video=width=640,height=480,pixelformat=MJPG --stream-mmap --stream-to=output.jpg --stream-count=1 --stream-poll
select timeout

$ uname -a
Linux 8767ea4 6.1.35 #1 SMP PREEMPT_DYNAMIC Thu Jun 22 18:03:13 UTC 2023 x86_64 GNU/Linux

The only way we are able to get the camera responding again is a full “power off computer, wait 20 seconds, power on computer”. Just rebooting wont work, the camera is still unresponsive. Unfortunately our USB ports cannot be individually powered off and on again.

If there is a way of triggering a full RESET of the camera firmware over the USB, that would be great!


After the camera froze, I captured a USB trace using this script:

#!/bin/sh
set -ex

tshark -i usbmon1 -w usbmon1.pcap &
TSHARK_PID="$!"

modprobe uvcvideo

sleep 5

v4l2-ctl \
	--device=/dev/video0 \
	--set-fmt-video=width=640,height=480,pixelformat=MJPG \
	--stream-mmap \
	--stream-to=output.jpg \
	--stream-count=1 \
	--stream-poll

sleep 5

kill "$TSHARK_PID"

Here is the capture:

Which shows these empty “URB_ISOCHRONOUS in” packets being received continuously before v4l2-ctl errors out with select timeout: