I have a Raspberry PI 4 B 8Gb. I have this kit (2 ov9281 cameras with camarray hat): https://www.uctronics.com/arducam-1mp-2-stereoscopic-camera-bundle-kit-for-raspberry-pi-nvidia-jetson-nano-xavier-nx-two-ov9281-global-shutter-monochrome-camera-modules-and-camarray-stereo-camera-hat.html.
Trying to get images from ov9281 cameras with RPI4 doesn't work: I get ERROR: *** no cameras available ***
All steps I did try are listed below:
Fresh rapsbian install
apt-get update && apt-get upgrade && apt-get full-upgrade && apt-get dist-upgrade
rpi-update
I2C enables in
raspi-config
The camarray hat is plugged like explained here (red light turned on, alimentation OK): https://www.youtube.com/watch?v=UN4ZBttQwdI. The camarray is plugged on pins 1-2+3-4+5-6 described here https://pinout.xyz/
boot parameters
pi@raspberrypi:~ $ 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=off
# 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
camera_auto_detect=1
# Automatically load overlays for detected DSI displays
display_auto_detect=1
# Enable DRM VC4 V3D driver
#dtoverlay=vc4-kms-v3d
#dtoverlay=arducam-pivariety
#dtoverlay=ov9281
dtoverlay=camera-mux-2port,cam0-ov9281,cam1-ov9281
force_turbo=1
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
[all]
[pi4]
# Run as fast as firmware / board allows
arm_boost=1
[all]
enable_uart=0
Any of the different tested overlay doesn't work (arducam-pivariety
, ov9281
) after reboot. In particular this camera-mux-2port
(https://forums.raspberrypi.com/viewtopic.php?t=339339) doesn't work neither.
- I2C
pi@raspberrypi:~ $ i2cdetect -l
i2c-10 i2c i2c-22-mux (chan_id 1) I2C adapter
i2c-1 i2c bcm2835 (i2c@7e804000) I2C adapter
i2c-0 i2c i2c-22-mux (chan_id 0) I2C adapter
i2c-22 i2c bcm2835 (i2c@7e205000) I2C adapter
pi@raspberrypi:~ $ i2cdetect -y 0
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
pi@raspberrypi:~ $ i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
pi@raspberrypi:~ $ i2cdetect -y 10
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- 0c -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
pi@raspberrypi:~ $ i2cdetect -y 22
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- 0c -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
pi@raspberrypi:~ $ i2cset -y 10 0x0c 0x0c 0x01
pi@raspberrypi:~ $ i2cset -y 22 0x0c 0x0c 0x01
- vcgencmd
pi@raspberrypi:~ $ vcgencmd get_camera
supported=0 detected=0, libcamera interfaces=0
pi@raspberrypi:~ $ vcgencmd version
Dec 12 2022 11:56:56
Copyright (c) 2012 Broadcom
version ed6f6b8fcdc6476410b9cf75d141633461d34bdd (clean) (release) (start)
- Others
pi@raspberrypi:~ $ uname -a
Linux raspberrypi 5.15.84-v8+ #1610 SMP PREEMPT Mon Dec 19 18:54:50 GMT 2022 aarch64 GNU/Linux
pi@raspberrypi:~ $ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
NAME="Debian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
pi@raspberrypi:~ $ lsmod
Module Size Used by
rfcomm 53248 4
cmac 16384 3
algif_hash 20480 1
aes_arm64 16384 3
aes_generic 36864 1 aes_arm64
algif_skcipher 20480 1
af_alg 32768 6 algif_hash,algif_skcipher
bnep 28672 2
hci_uart 53248 1
btbcm 28672 1 hci_uart
bluetooth 454656 31 hci_uart,btbcm,bnep,rfcomm
ecdh_generic 16384 2 bluetooth
ecc 36864 1 ecdh_generic
libaes 16384 3 aes_arm64,bluetooth,aes_generic
8021q 32768 0
garp 16384 1 8021q
stp 20480 1 garp
llc 20480 2 stp,garp
i2c_mux_pca954x 16384 0
joydev 24576 0
brcmfmac 335872 0
brcmutil 24576 1 brcmfmac
cfg80211 868352 1 brcmfmac
rfkill 36864 6 bluetooth,cfg80211
raspberrypi_hwmon 16384 0
bcm2835_codec 53248 0
bcm2835_isp 32768 0
bcm2835_unicam 57344 0
bcm2835_v4l2 45056 0
video_mux 16384 0
rpivid_hevc 57344 0
v4l2_mem2mem 40960 2 bcm2835_codec,rpivid_hevc
bcm2835_mmal_vchiq 40960 3 bcm2835_codec,bcm2835_v4l2,bcm2835_isp
v4l2_dv_timings 40960 1 bcm2835_unicam
snd_bcm2835 28672 2
snd_pcm 139264 1 snd_bcm2835
v4l2_fwnode 20480 2 video_mux,bcm2835_unicam
v4l2_async 24576 3 v4l2_fwnode,video_mux,bcm2835_unicam
videobuf2_dma_contig 24576 4 bcm2835_codec,bcm2835_unicam,rpivid_hevc,bcm2835_isp
videobuf2_vmalloc 20480 1 bcm2835_v4l2
videobuf2_memops 20480 2 videobuf2_vmalloc,videobuf2_dma_contig
videobuf2_v4l2 32768 6 bcm2835_codec,bcm2835_unicam,bcm2835_v4l2,rpivid_hevc,v4l2_mem2mem,bcm2835_isp
videobuf2_common 69632 10 bcm2835_codec,videobuf2_vmalloc,videobuf2_dma_contig,videobuf2_v4l2,bcm2835_unicam,bcm2835_v4l2,rpivid_hevc,v4l2_mem2mem,videobuf2_memops,bcm2835_isp
snd_timer 36864 1 snd_pcm
snd 110592 7 snd_bcm2835,snd_timer,snd_pcm
videodev 262144 10 v4l2_async,bcm2835_codec,video_mux,videobuf2_v4l2,bcm2835_unicam,bcm2835_v4l2,videobuf2_common,rpivid_hevc,v4l2_mem2mem,bcm2835_isp
i2c_mux_pinctrl 16384 0
i2c_mux 16384 2 i2c_mux_pca954x,i2c_mux_pinctrl
mc 61440 10 v4l2_async,videodev,bcm2835_codec,video_mux,videobuf2_v4l2,bcm2835_unicam,videobuf2_common,rpivid_hevc,v4l2_mem2mem,bcm2835_isp
vc_sm_cma 40960 2 bcm2835_mmal_vchiq,bcm2835_isp
mux_gpio 16384 0
i2c_bcm2835 16384 0
mux_core 16384 2 mux_gpio,video_mux
uio_pdrv_genirq 16384 0
uio 24576 1 uio_pdrv_genirq
nvmem_rmem 16384 0
i2c_dev 20480 0
drm 581632 0
fuse 135168 3
drm_panel_orientation_quirks 24576 1 drm
backlight 24576 1 drm
ip_tables 32768 0
x_tables 49152 1 ip_tables
ipv6 561152 60
After all this has been done reading the docs (arducam, raspi, etc), I still get this error (what ever libcamera-hello
is build from source [https://github.com/raspberrypi/libcamera-apps] or the ones provided by the upgraded system):
pi@raspberrypi:~ $ libcamera-hello
libEGL warning: DRI2: failed to authenticate
Made X/EGL preview window
[0:30:38https://www.youtube.com/watch?v=UN4ZBttQwdI.670613519] [3079] INFO Camera camera_manager.cpp:299 libcamera v0.0.2+47-0684c373
ERROR: *** no cameras available ***
Trying on 32 or 64 bits raspbian: same errors / problems...
Any help / clue is appreciated.
EDIT
sbg@raspberrypi:~ $ sudo raspi-gpio get
BANK0 (GPIO 0 to 27):
GPIO 0: level=1 fsel=0 func=INPUT pull=UP
GPIO 1: level=1 fsel=0 func=INPUT pull=UP
GPIO 2: level=1 fsel=4 alt=0 func=SDA1 pull=UP
GPIO 3: level=1 fsel=4 alt=0 func=SCL1 pull=UP
GPIO 4: level=0 fsel=1 func=OUTPUT pull=UP
GPIO 5: level=1 fsel=0 func=INPUT pull=UP
GPIO 6: level=1 fsel=0 func=INPUT pull=UP
GPIO 7: level=1 fsel=0 func=INPUT pull=UP
GPIO 8: level=1 fsel=0 func=INPUT pull=UP
GPIO 9: level=0 fsel=0 func=INPUT pull=DOWN
EDIT
git clone https://github.com/ArduCAM/MIPI_Camera
Does not help!... My understanding is that ArduCAM
is the old software used before bullseye: link KO in 32 bits OS (undefined reference) and KO (incompatible libs - code looks like to have been generated on 32 bit arch) in 64 bits.