Skip to content

[HOW-TO] How do i sucessfuly use 2 IMX500 cameras simultaneously? #1340

@paddygoat

Description

@paddygoat

I've been trying to use 2 x IMX500 cameras on Raspberry Pi 5 with raspberry 65 bit OS. Camera 0 fails at the model loading stage:

front-cam@front-cam:~ $ cd /home/front-cam/picamera2-main/examples/imx500 && python my_imx500_object_detection_demo_01.py --camera 0 --threshold 0.5 --model /usr/share/imx500-models/imx500_network_ssd_mobilenetv2_fpnlite_320x320_pp.rpk
[0:10:17.245264742] [5008] INFO Camera camera_manager.cpp:330 libcamera v0.5.2+99-bfd68f78
[0:10:17.258038130] [5012] INFO RPI pisp.cpp:720 libpisp version v1.2.1 981977ff21f3 29-04-2025 (14:17:26)
[0:10:17.264337902] [5012] INFO IPAProxy ipa_proxy.cpp:180 Using tuning file /usr/share/libcamera/ipa/rpi/pisp/imx500.json
[0:10:17.275223645] [5012] INFO Camera camera_manager.cpp:220 Adding camera '/base/axi/pcie@1000120000/rp1/i2c@88000/imx500@1a' for pipeline handler rpi/pisp
[0:10:17.275290761] [5012] INFO RPI pisp.cpp:1179 Registered camera /base/axi/pcie@1000120000/rp1/i2c@88000/imx500@1a to CFE device /dev/media0 and ISP device /dev/media2 using PiSP variant BCM2712_D0
[0:10:17.275365599] [5012] INFO RPI pisp.cpp:720 libpisp version v1.2.1 981977ff21f3 29-04-2025 (14:17:26)
[0:10:17.280146103] [5012] INFO IPAProxy ipa_proxy.cpp:180 Using tuning file /usr/share/libcamera/ipa/rpi/pisp/imx500.json
[0:10:17.290415454] [5012] INFO Camera camera_manager.cpp:220 Adding camera '/base/axi/pcie@1000120000/rp1/i2c@80000/imx500@1a' for pipeline handler rpi/pisp
[0:10:17.290451845] [5012] INFO RPI pisp.cpp:1179 Registered camera /base/axi/pcie@1000120000/rp1/i2c@80000/imx500@1a to CFE device /dev/media1 and ISP device /dev/media3 using PiSP variant BCM2712_D0


NOTE: Loading network firmware onto the IMX500 can take several minutes, please do not close down the application.

[0:10:17.324182000] [5008] INFO Camera camera.cpp:1215 configuring streams: (0) 640x480-XBGR8888/sRGB (1) 2028x1520-RGGB_PISP_COMP1/RAW
[0:10:17.324420924] [5012] INFO RPI pisp.cpp:1483 Sensor: /base/axi/pcie@1000120000/rp1/i2c@88000/imx500@1a - Selected sensor format: 2028x1520-SRGGB10_1X10/RAW - Selected CFE format: 2028x1520-PC1R/RAW
Network Firmware Upload: 0%| | 0.00/3.78M [00:11<?, ?bytes/s]^Z
[1]+ Stopped python my_imx500_object_detection_demo_01.py --camera 0 --threshold 0.5 --model /usr/share/imx500-models/imx500_network_ssd_mobilenetv2_fpnlite_320x320_pp.rpk
front-cam@front-cam:~/picamera2-main/examples/imx500 $

I then simultaneously open a new terminal and try camera 1:

front-cam@front-cam:~ $ cd /home/front-cam/picamera2-main/examples/imx500 && python my_imx500_object_detection_demo_01.py --camera 1 --threshold 0.5 --model /usr/share/imx500-models/imx500_network_ssd_mobilenetv2_fpnlite_320x320_pp.rpk
[0:11:34.890884097] [5069] INFO Camera camera_manager.cpp:330 libcamera v0.5.2+99-bfd68f78
[0:11:34.903700127] [5073] INFO RPI pisp.cpp:720 libpisp version v1.2.1 981977ff21f3 29-04-2025 (14:17:26)
[0:11:34.904426401] [5073] ERROR V4L2 v4l2_device.cpp:390 'imx500 10-001a': Unable to set controls: Device or resource busy
[0:11:34.910037435] [5073] INFO IPAProxy ipa_proxy.cpp:180 Using tuning file /usr/share/libcamera/ipa/rpi/pisp/imx500.json
[0:11:34.920964341] [5073] INFO Camera camera_manager.cpp:220 Adding camera '/base/axi/pcie@1000120000/rp1/i2c@88000/imx500@1a' for pipeline handler rpi/pisp
[0:11:34.921113422] [5073] INFO RPI pisp.cpp:1179 Registered camera /base/axi/pcie@1000120000/rp1/i2c@88000/imx500@1a to CFE device /dev/media0 and ISP device /dev/media2 using PiSP variant BCM2712_D0
[0:11:34.921260151] [5073] INFO RPI pisp.cpp:720 libpisp version v1.2.1 981977ff21f3 29-04-2025 (14:17:26)
[0:11:34.926504724] [5073] INFO IPAProxy ipa_proxy.cpp:180 Using tuning file /usr/share/libcamera/ipa/rpi/pisp/imx500.json
[0:11:34.937003222] [5073] INFO Camera camera_manager.cpp:220 Adding camera '/base/axi/pcie@1000120000/rp1/i2c@80000/imx500@1a' for pipeline handler rpi/pisp
[0:11:34.937075318] [5073] INFO RPI pisp.cpp:1179 Registered camera /base/axi/pcie@1000120000/rp1/i2c@80000/imx500@1a to CFE device /dev/media1 and ISP device /dev/media3 using PiSP variant BCM2712_D0


NOTE: Loading network firmware onto the IMX500 can take several minutes, please do not close down the application.

[0:11:34.972705483] [5069] INFO Camera camera.cpp:1215 configuring streams: (0) 640x480-XBGR8888/sRGB (1) 2028x1520-RGGB_PISP_COMP1/RAW
[0:11:34.972946827] [5073] INFO RPI pisp.cpp:1483 Sensor: /base/axi/pcie@1000120000/rp1/i2c@80000/imx500@1a - Selected sensor format: 2028x1520-SRGGB10_1X10/RAW - Selected CFE format: 2028x1520-PC1R/RAW
Network Firmware Upload: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 3.78M/3.78M [00:04<00:00, 991kbytes/s]

.... as can be seen, the model loads up. I'm using a 100W usbC power supply. If I disconnect either of the cameras, the remaining one works fine.

How do i sucessfuly use 2 IMX500 cameras?

Thank you.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions