Skip to content

Troubleshooting

Notice

When the camera works abnormally, reconfirm the following basic

details:

  • Make sure the cable line connection is normal and stable
  • Make sure the camera you are using is normal version instead of specific version for camarray board.
  • Make sure you are using the appropriate bullseye OS version (legacy buster version is not recommended)
  • Follow the libcamera installation guide, make sure the driver, specific libcamera-dev and libcamera-apps installed normal.

More ways to check:

  1. Check that the driver is loaded correctly
dmesg | grep -E "imx477|imx219|arducam"

6D18409B 9D5D 40cd A7DD AC37498150B3 3

  1. Check if video0 has been found
ls /dev/video0

A8577CA2 3101 4f71 A851 6428C50F49E1

Before contacting arducam, please provide the following information so that we can help you solve problems efficiently.

  • Hardware related:
    Camera module number(e.g. SKU) or purchase link
    Hardware connection diagram
  • Screenshot of operation commnad
  • system related informaton which can be obtained by the following commands:
    uname -a
    cat /etc/os-release
    cat /proc/meminfo
    cat /boot/config.txt
    
  • System log
    dmesg | grep -E "imx477|imx219|arducam"
    
  • Application log
  • Provide error log or screenshots about application throw out.

Troubleshooting


1. Cannot Allocate Memory

[3:45:35.833744413] [6019] INFO RPI raspberrypi.cpp:611 Sensor: / base/soc/i2c0mux/i2c@1/arducam@0c – Selected mode: 5344×4012-pRAA [3:45:35.948442507] [6019] ERROR V4L2 v4l2_videodevice.cpp:1126 /dev/video14[17:cap]: Unable to request 4 buffers: Cannot allocate memory [3:45:35.948551358] [6019] ERROR RPI raspberrypi.cpp:808 Failed to allocate buffers ERROR: failed to start camera

Edit /boot/cmdline.txt and add cma=400M at the end.

1 3

Reference

2. The Image Displays Color Dots

2 3

Add code --denoise cdn_off at the end of command.
libcamera-still -t 5000 -o test.jpg --denoise cdn_off

Reference

3. Failed to Install the Driver

3 3

Please check the kernel version, we only provide the driver for the latest official kernel version image when this Pivariety camera is released.

Note: If you want to compile the kernel driver by yourself, please refer to How to build Raspberry Pi Kernel Driver-Pivariety Camera.

4. Failed to import fd 19

128c5bb2 b6d2 4fba a631 464d12ad84be

If you find the same error, you may make the wrong selection about the graphics driver.

Warning

For Raspbian Bullseye users running on Pi Zero ~ Pi 3, please execute the follows

1. Open a terminal
2. Run sudo raspi-config
3. Navigate to Advanced Options
4. Enable Glamor graphic acceleration
5. Reboot your Pi

Meanwhile, you also need to execute the following steps:
6. Open a terminal
7. Run sudo raspi-config
8. Navigate to Advanced Options
9. Navigate to GL Driver
10. Select GL (Full KMS)
11. Reboot your Pi

For more details, please refer to the official forum guide on how to configure the camera module >>

For Raspberry Pi Compute Module 3/4

You need to install the latest Raspberry Pi system (after 2022/01/28), and do not execute rpi-update
After installing the system and drivers (follow the above instructions), add the following information to /boot/config.txt:

[cm4]
dtoverlay=imx519
dtoverlay=imx519,cam0

Then

sudo reboot

List all cameras:

libcamera-still -–list-cameras

Specify camera:

libcamera-still -t 0 –camera 0
libcamera-still -t 0 –camera 1

5. Open I2C bus error

21

Solution:

sudo raspi-config

–> Interface Options

–> I2C

6. Switch to the native camera (raspistill etc.)

If you want to use other cameras that needs Native driver, you can edit the file of /boot/config.txt, make dtoverlay=arducam and change to # dtoverlay=arducam.

2

After the modification is completed, you need to reboot the Raspberry Pi.

sudo reboot

7. Cannot Allocate Memory on Arducam 64MP Autofocus Camera Module

  • Background

At present, there is a memory allocation problem with Arducam 64MP Camera Module when shooting at the maximum resolution on the Raspberry Pi, and the performance is as follows:

641

There is no perfect solution for this problem currently, but we provide some methods to solve it:

  • Use Raspberry Pi OS Lite version System

We used Pi4B-8G, Pi4B-1G, Pi3B-1G for a long time test, the test results show that Raspberry Pi OS Lite is more stable when using Arducam 64MP Camera to shoot at the maximum resolution (so far we have not found any failures).

  • Set Preview Resolution

Modifying the preview resolution to a smaller resolution can also improve the success rate of shooting 64MP resolution images, example command:

libcamera-still -t 5000 --viewfinder-width 2312 --viewfinder-height 1736 -o 64mp.jpg
  • Shoot 16MP Resolution Images

Example command:

libcamera-still -t 5000 --width 4624 --height 3472 --mode 4624:3472 -o 16mp.jpg
  • Modify cma to allocate threshold
Adding "alloc_in_cma_threshold=16" in /boot/cmdline.txt

Note

The cma value of all tests is 512M (add dtoverlay=vc4-kms-v3d,cma-512 in /boot/config.txt)

If you want the stable 64MP Resolution images, we recommend you using Raspberry Pi OS Lite, we will find more solutions for this issue continuously.


8. The Fastest Capture Speed at Full Resolution with Arducam 64MP AF Camera

  • Background

Saving pictures with Arducam 64MP Camera will take a lot of time because of the need for coding:

642

You can see that it will take more that two seconds to save the image.

At this situation, you can write a program that uses multi-threading to take out the data and save it with another thread.

  • Demo

GitHub Link: Fatest Capture Time for Arducam 64MP Camera

Code:

#!/usr/bin/python3

import time

from picamera2 import Picamera2, Preview

i = 0
FrameRate = 2.7
frame_time = 1000000 // FrameRate 

start = time.time()

picam2 = Picamera2()
# picam2.start_preview(Preview.QTGL)

capture_config = picam2.create_still_configuration(main={"format": 'RGB888', "size": (9152, 6944)})
picam2.configure(capture_config)

# picam2.set_controls({"FrameDurationLimits":(frame_time, frame_time)})
picam2.start()

open_camera_time = time.time()
print("open time:" + str(open_camera_time -start))

while True:
    last_photo_time = time.time()
    picam2.capture_array("main")
    photo_time = time.time()
    print("picture {} take time: {}".format(i, photo_time - last_photo_time))

    i += 1

9. picam2.switch_mode_and_capture_file freezes program and camera

  • Background

Some customers have reported that when running capture_full_res.py (one of the picamera examples on Raspberry Pi GitHub repository), the camera and program will freeze, and only Ctrl + C can be used to exit. You can refer to this issue for more information. Arducam has provided a temporary solution. Please contact Arducam (support@arducam.com) and provide your Raspberry Pi kernel version, such as 6.1.21.

  • Solution

Arducam will send you a customized driver version for your kernel via email. Please transfer the compressed package to your Raspberry Pi and follow the steps below:

  1. Please comment out the dtoverlay=arducam-64mp in the config file(run the command sudo nano /boot/config.txt, scroll down to the bottom,you will see this sentence).

  2. Run the commands below to unzip the package and install the camera driver.

tar -xvf arducam_64mp_kernel_driver_6.1.21.tar.gz Release/
cd Release/
./install_driver.sh

To this point, you need to restart Raspberry Pi to take effect. You can retry the capture_full_res.py to check if the problem is solved.

Kindly note that the customized driver may not be suitable for all Raspberry Pi camera modules and kernel versions. And the customized 64MP driver that we sent you, we will upstream it to the Raspberry Pi kernel in the future.