Multi-Camera Adapter Board + 4x Raspberry Pi v3 (wide) cameras = No cameras available

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

direct from uctronics

  1. Model number of the product(s)?

B012001 - Multi-camera board v2.2
cameras: 4x Raspberry Pi Camera Module 3

  1. What hardware/platform were you working on?

Raspberry Pi 4B, 4 GB RAM
kernel 6.1.0-rpi8-rpi-v8
64-bit Raspberry Pi OS Debian GNU/Linux 12 (bookworm)

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

Quick Start Guide for Multi-Camera Adapter Board

  1. Problems you were having?

    libcamera-still -t 0 --camera 0
    [0:48:36.806463705] [2074] INFO Camera camera_manager.cpp:284 libcamera v0.2.0+46-075b54d5
    Preview window unavailable
    ERROR: *** no cameras available ***`

  2. The dmesg log from your hardware?

There’s no camera-related output in dmesg log

  1. Troubleshooting attempts you’ve made?

Wiring is exactly as per pictures in the quick start guide. Red LED is on on the camera mux board.

/boot/firmware/config.txt :

camera_auto_detect=0
dtoverlay=camera-mux-4port,cam0-imx708,cam1-imx708,cam2-imx708,cam3-imx708

sudo dtoverlay -l
No overlays loaded

sudo vclog -m

009119.613: brfs: File read: /mfs/sd/overlays/camera-mux-4port.dtbo
009858.648: Loaded overlay ‘camera-mux-4port’
009858.673: dtparam: cam0-imx708=true
009919.343: dtparam: cam1-imx708=true
009992.171: dtparam: cam2-imx708=true
010077.091: dtparam: cam3-imx708=true

sudo cat /sys/kernel/debug/v4l2-async/pending_async_subdevices
video-mux:
[fwnode] dev=23-001a, node=/soc/i2c0mux/i2c@1/pca@70/i2c@0/imx708@1a/port/endpoint
[fwnode] dev=24-001a, node=/soc/i2c0mux/i2c@1/pca@70/i2c@1/imx708@1a/port/endpoint
[fwnode] dev=25-001a, node=/soc/i2c0mux/i2c@1/pca@70/i2c@2/imx708@1a/port/endpoint
[fwnode] dev=26-001a, node=/soc/i2c0mux/i2c@1/pca@70/i2c@3/imx708@1a/port/endpoint
unicam fe801000.csi:

  1. What help do you need?

To get this board + cameras working under 64-bit bookworm, thanks

Hi,
I try to reproduce your problem on my side, but everything goes well with me.

1. Setup

  • Raspberry Pi 4 4GB

  • Bookworm OS 64bit, kernel version: 6.1.73

  • B012001(Multi-Camera Adapter Board ) + Raspberry Pi IMX708 camera module

  • Hardware connection. I only connect one imx708 camera module, but I don’t think it would be different compared to connect four camera modules.
    image

2. Soferware setting
Similar to you:
/boot/firmware/config.txt :
camera_auto_detect=0
dtoverlay=camera-mux-4port,cam0-imx708
3. Preview the camera
libcamera-still -t 0

Can you post the output of the command “dmesg | grep imx708”?
image

Thanks for getting back to me so quickly!

[    8.141617] imx708 23-001a: failed to read chip id 708, with error -5
[    8.142962] imx708: probe of 23-001a failed with error -5
[    8.155150] imx708 24-001a: failed to read chip id 708, with error -5
[    8.201925] imx708: probe of 24-001a failed with error -5
[    8.284177] imx708 25-001a: failed to read chip id 708, with error -5
[    8.343861] imx708: probe of 25-001a failed with error -5
[    8.422407] imx708 26-001a: failed to read chip id 708, with error -5
[    8.442217] imx708: probe of 26-001a failed with error -5

These are four “Camera Module 3 Wide” cameras from Raspberry Pi Ltd.

The only things I can think of that might be causing a problem:

  1. I may have the cameras plugged in upside-down: I have them as the photo in Quick Start Guide. Cameras A & C on the top of the board have the blue side of the cable underneath

  2. Maybe the Wide camera doesn’t use the imx708 parameter?

  3. Maybe (unlikely) my hardware is faulty.

And that was the problem. The Quick start guide has an error. It shows cameras with the cables mounted without the blue tabs visible. In reality, you have to mount the cables the other way up:


Photo taken using one of the attached cameras: rpicam-jpeg --camera 3 --rotation 180 -o multicam_board3.jpg

dmesg output is much better:

[    8.275153] imx708 23-001a: camera module ID 0x0302
[    8.290207] imx708 24-001a: camera module ID 0x0302
[    8.322081] imx708 25-001a: camera module ID 0x0302
[    8.597883] imx708 25-001a: Consider updating driver imx708 to match on endpoints
[    8.598601] imx708 24-001a: Consider updating driver imx708 to match on endpoints
[    8.599135] imx708 23-001a: Consider updating driver imx708 to match on endpoints
[    8.630973] imx708 26-001a: camera module ID 0x0302
[    8.672233] imx708 26-001a: Consider updating driver imx708 to match on endpoints

as is the output of rpicam-still --list:

Available cameras
-----------------
0 : imx708_wide [4608x2592 10-bit RGGB] (/base/soc/i2c0mux/i2c@1/pca@70/i2c@3/imx708@1a)
    Modes: 'SRGGB10_CSI2P' : 1536x864 [120.13 fps - (768, 432)/3072x1728 crop]
                             2304x1296 [56.03 fps - (0, 0)/4608x2592 crop]
                             4608x2592 [14.35 fps - (0, 0)/4608x2592 crop]

1 : imx708_wide [4608x2592 10-bit RGGB] (/base/soc/i2c0mux/i2c@1/pca@70/i2c@2/imx708@1a)
    Modes: 'SRGGB10_CSI2P' : 1536x864 [120.13 fps - (768, 432)/3072x1728 crop]
                             2304x1296 [56.03 fps - (0, 0)/4608x2592 crop]
                             4608x2592 [14.35 fps - (0, 0)/4608x2592 crop]

2 : imx708_wide [4608x2592 10-bit RGGB] (/base/soc/i2c0mux/i2c@1/pca@70/i2c@1/imx708@1a)
    Modes: 'SRGGB10_CSI2P' : 1536x864 [120.13 fps - (768, 432)/3072x1728 crop]
                             2304x1296 [56.03 fps - (0, 0)/4608x2592 crop]
                             4608x2592 [14.35 fps - (0, 0)/4608x2592 crop]

3 : imx708_wide [4608x2592 10-bit RGGB] (/base/soc/i2c0mux/i2c@1/pca@70/i2c@0/imx708@1a)
    Modes: 'SRGGB10_CSI2P' : 1536x864 [120.13 fps - (768, 432)/3072x1728 crop]
                             2304x1296 [56.03 fps - (0, 0)/4608x2592 crop]
                             4608x2592 [14.35 fps - (0, 0)/4608x2592 crop]

All of the cameras work as expected now. I am confused by the order that the cameras are labelled on the board: --camera 3 is labelled Camera A on the PCB, which doesn’t make much sense.

Please fix the incorrect picture in your documentation

Hi @scruss

Yeah, I also think it does not make sense. Can you post pictures here so that we can perform the further debugging?