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:
- Check that the driver is loaded correctly
- Check if video0 has been found
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:
- System log
- 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.
2. The Image Displays Color Dots
Add code --denoise cdn_off at the end of command.
libcamera-still -t 5000 -o test.jpg --denoise cdn_off
3. Failed to Install the Driver
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
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
List all cameras:
Specify camera:
5. Open I2C bus error
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.
After the modification is completed, you need to reboot the Raspberry Pi.
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:
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:
- Shoot 16MP Resolution Images
Example command:
- Modify
cma
to allocate threshold
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:
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:
-
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).
-
Run the commands below to unzip the package and install the camera driver.
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.