Arducam 64MP with rpi4B and Touch-Display-7": not compatible?

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

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

  3. What hardware/platform were you working on?
    Raspberry Pi 4B Rev.1.5, 2GB, RaspiOS “Debian GNU/Linux 11 (bullseye)”, Kernel 6.1.21-v8+
    Official Raspberry Pi Touch Display 7" connected to DSI

  4. Instructions you have followed. (link/manual/etc.)
    Quick Start - Arducam Wiki
    FAQ + hints from forum

  5. Problems you were having?

  • First preview works instantly
  • after saving the first jpg in full resolution I could not save any further jpgs or view an image again
    libcamera-still -t 5000 2> error.txt
    gave the following error message:
Made DRM preview window
[0:02:06.316283479] [942] e[1;32m INFO e[1;37mCamera e[1;34mcamera_manager.cpp:297 e[0mlibcamera v0.0.0+4367-ad9428b4
[0:02:06.335203923] [944] e[1;33m WARN e[1;37mCameraSensorProperties e[1;34mcamera_sensor_properties.cpp:261 e[0mNo static properties available for 'arducam_64mp'
[0:02:06.335282572] [944] e[1;33m WARN e[1;37mCameraSensorProperties e[1;34mcamera_sensor_properties.cpp:263 e[0mPlease consider updating the camera sensor properties database
[0:02:06.465629479] [944] e[1;32m INFO e[1;37mRPI e[1;34mvc4.cpp:444 e[0mRegistered camera /base/soc/i2c0mux/i2c@1/arducam_64mp@1a to Unicam device /dev/media4 and ISP device /dev/media0
[0:02:06.465722053] [944] e[1;32m INFO e[1;37mRPI e[1;34mpipeline_base.cpp:1101 e[0mUsing configuration file '/usr/share/libcamera/pipeline/rpi/vc4/rpi_apps.yaml'
[0:02:06.466586164] [942] e[1;32m INFO e[1;37mCamera e[1;34mcamera.cpp:1033 e[0mconfiguring streams: (0) 4624x3472-YUV420
[0:02:06.467083053] [944] e[1;32m INFO e[1;37mRPI e[1;34mvc4.cpp:572 e[0mSensor: /base/soc/i2c0mux/i2c@1/arducam_64mp@1a - Selected sensor format: 4624x3472-SRGGB10_1X10 - Selected unicam format: 4624x3472-pRAA
[0:02:06.615523608] [944] e[1;31mERROR e[1;37mV4L2 e[1;34mv4l2_videodevice.cpp:1906 e[0;32m/dev/video1[16:cap]: e[0mFailed to start streaming: Input/output error
ERROR: *** failed to start camera ***
  1. The dmesg log from your hardware?
[   56.414471] edt_ft5x06 10-0038: Unable to fetch data, error: -121
[   56.414791] dw9807 10-000c: I2C write STATUS address fail ret = -5
[   56.414799] dw9807 10-000c: dw9807_ramp I2C failure: -5
[   88.546194] edt_ft5x06 10-0038: Unable to fetch data, error: -121
[   88.546518] dw9807 10-000c: I2C write STATUS address fail ret = -5
[   88.546527] dw9807 10-000c: dw9807_ramp I2C failure: -5
[   88.618197] edt_ft5x06 10-0038: Unable to fetch data, error: -121
[   88.618519] dw9807 10-000c: I2C write STATUS address fail ret = -5
[   88.618527] dw9807 10-000c: dw9807_ramp I2C failure: -5
[   88.690188] edt_ft5x06 10-0038: Unable to fetch data, error: -121
[   88.690514] dw9807 10-000c: I2C write STATUS address fail ret = -5
[   88.690523] dw9807 10-000c: dw9807_ramp I2C failure: -5
[  102.062591] edt_ft5x06 10-0038: Unable to fetch data, error: -121
[  102.063096] arducam_64mp 10-001a: Failed to write reg 0x5c01. error = -5
[  102.063104] arducam_64mp 10-001a: arducam_64mp_start_streaming failed to set common settings
[  102.063130] unicam fe801000.csi: stream on failed in subdev
[  102.067962] unicam fe801000.csi: Runtime PM usage count underflow!
[  107.442342] edt_ft5x06 10-0038: Unable to fetch data, error: -121
[  107.442845] arducam_64mp 10-001a: Failed to write reg 0x5c01. error = -5
[  107.442854] arducam_64mp 10-001a: arducam_64mp_start_streaming failed to set common settings
[  107.442882] unicam fe801000.csi: stream on failed in subdev
[  107.446531] unicam fe801000.csi: Runtime PM usage count underflow!
[  120.270191] edt_ft5x06 10-0038: Unable to fetch data, error: -121
[  120.270516] dw9807 10-000c: I2C write STATUS address fail ret = -5
[  120.270524] dw9807 10-000c: dw9807_ramp I2C failure: -5
[  120.654544] edt_ft5x06 10-0038: Unable to fetch data, error: -121
[  120.655069] arducam_64mp 10-001a: Failed to write reg 0x5c01. error = -5
[  120.655076] arducam_64mp 10-001a: arducam_64mp_start_streaming failed to set common settings
[  120.655101] unicam fe801000.csi: stream on failed in subdev
[  120.658226] unicam fe801000.csi: Runtime PM usage count underflow!
[  120.778195] edt_ft5x06 10-0038: Unable to fetch data, error: -121
[  120.778537] dw9807 10-000c: I2C write STATUS address fail ret = -5
[  120.778544] dw9807 10-000c: dw9807_ramp I2C failure: -5
[  126.446192] edt_ft5x06 10-0038: Unable to fetch data, error: -121
[  126.446514] dw9807 10-000c: I2C write STATUS address fail ret = -5
[  126.446523] dw9807 10-000c: dw9807_ramp I2C failure: -5
[  126.614341] edt_ft5x06 10-0038: Unable to fetch data, error: -121
[  126.614844] arducam_64mp 10-001a: Failed to write reg 0x5c0e. error = -5
[  126.614853] arducam_64mp 10-001a: arducam_64mp_start_streaming failed to set common settings
[  126.614879] unicam fe801000.csi: stream on failed in subdev
[  126.616702] unicam fe801000.csi: Runtime PM usage count underflow!
  1. Troubleshooting attempts you’ve made?
  • PowerOff & On
  • reconnecting camera and checked cables again
  • added: cma-512
  1. What help do you need?
  • Is the label with the red dot on the camera pcb normal? (We usually are marking defect pcb with red dot labels in our company.)
  • What could I do?

cat /proc/cpuinfo

Hardware        : BCM2835
Revision        : b03115
Serial          : 1000000089b54213
Model           : Raspberry Pi 4 Model B Rev 1.5

cat /proc/meminfo

MemTotal:        1893580 kB
MemFree:         1558592 kB
MemAvailable:    1713580 kB
Buffers:           15780 kB
Cached:           178388 kB
SwapCached:            0 kB
Active:           210540 kB
Inactive:          39612 kB
Active(anon):      55952 kB
Inactive(anon):     1436 kB
Active(file):     154588 kB
Inactive(file):    38176 kB
Unevictable:          16 kB
Mlocked:              16 kB
SwapTotal:        102396 kB
SwapFree:         102396 kB
Zswap:                 0 kB
Zswapped:              0 kB
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:         56008 kB
Mapped:            64344 kB
Shmem:              1396 kB
KReclaimable:      22380 kB
Slab:              46272 kB
SReclaimable:      22380 kB
SUnreclaim:        23892 kB
KernelStack:        2956 kB
PageTables:         2680 kB
SecPageTables:         0 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     1049184 kB
Committed_AS:     353160 kB
VmallocTotal:   259653632 kB
VmallocUsed:       10576 kB
VmallocChunk:          0 kB
Percpu:              656 kB
CmaTotal:         524288 kB
CmaFree:          510304 kB

ls /dev/video*

/dev/video0  /dev/video10  /dev/video12  /dev/video14  /dev/video16  /dev/video19  /dev/video21  /dev/video23
/dev/video1  /dev/video11  /dev/video13  /dev/video15  /dev/video18  /dev/video20  /dev/video22  /dev/video31

dpkg -l | grep libcamera

ii  libcamera-apps                       1.2.1-1                          arm64        libcamera-apps
ii  libcamera-dev:arm64                  0~git20230724+ad9428b4-1         arm64        complex camera support library (development files)
ii  libcamera0:arm64                     0~git20230724+ad9428b4-1         arm64        complex camera support library
ii  python3-libcamera                    0~git20230720+bde9b04f-1         arm64        complex camera support library (Python 3 bindings)

cat /boot/config.txt

# For more options and information see
# http://rpf.io/configtxt
# Some settings may impact device functionality. See link above for details

# uncomment if you get no picture on HDMI for a default "safe" mode
#hdmi_safe=1

# uncomment the following to adjust overscan. Use positive numbers if console
# goes off screen, and negative if there is too much border
#overscan_left=16
#overscan_right=16
#overscan_top=16
#overscan_bottom=16

# uncomment to force a console size. By default it will be display's size minus
# overscan.
#framebuffer_width=1280
#framebuffer_height=720

# uncomment if hdmi display is not detected and composite is being output
#hdmi_force_hotplug=1

# uncomment to force a specific HDMI mode (this will force VGA)
#hdmi_group=1
#hdmi_mode=1

# uncomment to force a HDMI mode rather than DVI. This can make audio work in
# DMT (computer monitor) modes
#hdmi_drive=2

# uncomment to increase signal to HDMI, if you have interference, blanking, or
# no display
#config_hdmi_boost=4

# uncomment for composite PAL
#sdtv_mode=2

#uncomment to overclock the arm. 700 MHz is the default.
#arm_freq=800

# Uncomment some or all of these to enable the optional hardware interfaces
#dtparam=i2c_arm=on
#dtparam=i2s=on
#dtparam=spi=on

# Uncomment this to enable infrared communication.
#dtoverlay=gpio-ir,gpio_pin=17
#dtoverlay=gpio-ir-tx,gpio_pin=18

# Additional overlays and parameters are documented /boot/overlays/README

# Enable audio (loads snd_bcm2835)
dtparam=audio=on

# Automatically load overlays for detected cameras
#jhge camera_auto_detect=1

# Automatically load overlays for detected DSI displays
display_auto_detect=1

# Enable DRM VC4 V3D driver
dtoverlay=vc4-kms-v3d,cma-512
#jhge max_framebuffers=2

# Run in 64-bit mode
arm_64bit=1

# Disable compensation for displays with overscan
disable_overscan=1

[cm4]
# Enable host mode on the 2711 built-in XHCI USB controller.
# This line should be removed if the legacy DWC2 controller is required
# (e.g. for USB device mode) or if USB support is not required.
otg_mode=1

[pi4]
# Run as fast as firmware / board allows
arm_boost=1

[all]
dtparam=i2c1=on
dtparam=i2c_arm=on
#dtoverlay=pi3-miniuart-bt
#dtoverlay=miniuart-bt
#core_freq=250
#PiPAD lite / Power Hat case:
dtoverlay=gpio-poweroff,gpiopin=18,active_low=0
dtoverlay=gpio-shutdown,gpio_pin=17,active_low=1,gpio_pull=up
#dtoverlay=arducam-64mp,media-controller=0
dtoverlay=arducam-64mp

I have restarted and for once it worked one more time and then not again.
This time a new error in dmesg (see below).

First the working trial:

libcamera-still -t 5000 -n -o test2.jpg

[0:09:47.705008704] [924]  INFO Camera camera_manager.cpp:297 libcamera v0.0.0+4367-ad9428b4
[0:09:47.724085260] [926]  WARN CameraSensorProperties camera_sensor_properties.cpp:261 No static properties available for 'arducam_64mp'
[0:09:47.724141297] [926]  WARN CameraSensorProperties camera_sensor_properties.cpp:263 Please consider updating the camera sensor properties database
[0:09:47.862830000] [926]  INFO RPI vc4.cpp:444 Registered camera /base/soc/i2c0mux/i2c@1/arducam_64mp@1a to Unicam device /dev/media4 and ISP device /dev/media1
[0:09:47.862909556] [926]  INFO RPI pipeline_base.cpp:1101 Using configuration file '/usr/share/libcamera/pipeline/rpi/vc4/rpi_apps.yaml'
[0:09:47.863804204] [924]  INFO Camera camera.cpp:1033 configuring streams: (0) 4624x3472-YUV420
[0:09:47.864369945] [926]  INFO RPI vc4.cpp:572 Sensor: /base/soc/i2c0mux/i2c@1/arducam_64mp@1a - Selected sensor format: 4624x3472-SRGGB10_1X10 - Selected unicam format: 4624x3472-pRAA
[0:09:53.459871367] [924]  INFO Camera camera.cpp:1033 configuring streams: (0) 8000x6000-YUV420 (1) 8000x6000-SRGGB10_CSI2P
[0:09:53.480419423] [926]  INFO RPI vc4.cpp:572 Sensor: /base/soc/i2c0mux/i2c@1/arducam_64mp@1a - Selected sensor format: 8000x6000-SRGGB10_1X10 - Selected unicam format: 8000x6000-pRAA
Still capture image received

After that:
libcamera-still -t 5000 -n -o test3.jpg

[0:10:01.965991696] [935]  INFO Camera camera_manager.cpp:297 libcamera v0.0.0+4367-ad9428b4
[0:10:01.984946862] [937]  WARN CameraSensorProperties camera_sensor_properties.cpp:261 No static properties available for 'arducam_64mp'
[0:10:01.985040677] [937]  WARN CameraSensorProperties camera_sensor_properties.cpp:263 Please consider updating the camera sensor properties database
[0:10:02.015543159] [937]  INFO RPI vc4.cpp:444 Registered camera /base/soc/i2c0mux/i2c@1/arducam_64mp@1a to Unicam device /dev/media4 and ISP device /dev/media1
[0:10:02.015669029] [937]  INFO RPI pipeline_base.cpp:1101 Using configuration file '/usr/share/libcamera/pipeline/rpi/vc4/rpi_apps.yaml'
[0:10:02.016621288] [935]  INFO Camera camera.cpp:1033 configuring streams: (0) 4624x3472-YUV420
[0:10:02.017191677] [937]  INFO RPI vc4.cpp:572 Sensor: /base/soc/i2c0mux/i2c@1/arducam_64mp@1a - Selected sensor format: 4624x3472-SRGGB10_1X10 - Selected unicam format: 4624x3472-pRAA
[0:10:02.215577047] [937] ERROR V4L2 v4l2_videodevice.cpp:1906 /dev/video1[15:cap]: Failed to start streaming: Input/output error
ERROR: *** failed to start camera ***

dmesg

[  423.754999] edt_ft5x06 10-0038: Unable to fetch data, error: -121
[  423.755323] dw9807 10-000c: I2C write STATUS address fail ret = -5
[  423.755331] dw9807 10-000c: dw9807_ramp I2C failure: -5
[  587.682997] edt_ft5x06 10-0038: Unable to fetch data, error: -121
[  587.683323] dw9807 10-000c: I2C write STATUS address fail ret = -5
[  587.683331] dw9807 10-000c: dw9807_ramp I2C failure: -5
[  601.999079] edt_ft5x06 10-0038: Unable to fetch data, error: -121
[  602.020451] dw9807 10-000c: I2C write STATUS address fail ret = -5
[  602.020471] dw9807 10-000c: dw9807_ramp I2C failure: -5
[  602.070997] edt_ft5x06 10-0038: Unable to fetch data, error: -121
[  602.071337] dw9807 10-000c: I2C write STATUS address fail ret = -5
[  602.071344] dw9807 10-000c: dw9807_ramp I2C failure: -5
[  602.215170] edt_ft5x06 10-0038: Unable to fetch data, error: -121
[  602.215695] arducam_64mp 10-001a: Failed to write reg 0x5c4d. error = -5
[  602.215702] arducam_64mp 10-001a: arducam_64mp_start_streaming failed to set common settings
[  602.215726] unicam fe801000.csi: stream on failed in subdev
[  602.217556] unicam fe801000.csi: Runtime PM usage count underflow!

New reboot: not a single image.

Now I have removed the DSI cable (= the touch display) from the rpi4 and now it is working.

But isn’t this compatible? It’s the official raspberry display.

Any chance to make it working together?

It doesn’t really work. :frowning:
I can now save individual images, but it’s not possible to get a live image from the camera for more than 1-2 seconds (now via HDMI). I’m using the rpi OS lite, so without a desktop. A video image appears, but after 1-2 seconds the video signal completely shuts off, stays off for a short while, and then starts again for 1-2 seconds.
dmesg constantly delivers the following error message:
vc4-drm gpu: [drm:vc4_hvs_irq_handler [vc4]] ERROR HVS underrun

Ok, I’ve completely reinstalled the raspberry pi 4B (2GB) and this time used the latest current version:
Release date: December 5th 2023
System: 64-bit
Kernel version: 6.1
Debian version: 12 (bookworm)
With this setup, it worked immediately with HDMI. I then reconnected the 7" touchscreen via DSI, and that also worked smoothly.

So, it seems using Bookworm from the start is a good idea to avoid issues.

P.S.
However, the camera’s sharpness is (for close ups) unfortunately only in the center. Towards the edges, the image becomes very blurry. In this aspect, my old original raspberry HQ camera with (only) 12MP delivers an overall better image in my application in close range.