108MP corrupted images

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

  2. Model number of the product(s)?

  3. What hardware/platform were you working on?
    108MP Evaluation Kit
    Jetson Xavier NX

  4. Instructions you have followed. (link/manual/etc.)
    Setup instructions for ArduCAM_USB_Camera_Shield_Cpp_Demo git repo.

  5. Problems you were having?
    When running Arducam_Opencv_Demo on a Jetson Xavier NX, I’m spontaneously getting “USB_CAMERA_DATA_LEN_ERROR” errors and after which, I’m getting corrupted images from the camera.

  6. Troubleshooting attempts you’ve made?
    I’ve tried different USB cords.
    Lowering the frame rate of the camera does seem to help, but still I’m often getting corrupted images.
    If I comment out the portion of the code that processes the image (the convertImage function and portion that displays it in an OpenCV window), I no longer get the USB_CAMERA_DATA_LEN_ERROR error. To see if the issue was having a delay in the read image loop, I tried to move the portion of the code the processes the image onto another thread, but I still got the USB_CAMERA_DATA_LEN_ERROR and corrupted images.

Note, that the demo program runs completely fine on a windows machine. Also, the demo program runs fine when receiving 4000x3000 images from the camera, just not 12000x9000 images.

  1. What help do you need?
    How can I guarantee I will not get corrupted images from the 108MP camera (while also being able to process the image and at a reasonable frame rate) on the Jetson Xavier NX?
    What are possible causes for this problem?
    Why would processing the image cause the USB_CAMERA_DATA_LEN_ERROR to show up?
    I understand the processing the image takes some CPU resources, but since its not done on the same thread as the capture loop, I wouldn’t think that would be an issue.

I’ve finally found the solution on this post:

Also, the new SDK in “ArduCam_EVK_Demo” fixes this issue, but to get it to work I had to run:

sudo sh -c 'echo 100 > /sys/module/usbcore/parameters/usbfs_memory_mb'