Navigation

    VEYE IMAGING Forum

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • Recent
    • Popular
    • Users
    • WIKI
    • veye.cc

    UNSOLVED RAW-MIPI-SC132M camera working in raspberry pi 5. Cannot be configured to work with the libcamera2 and opencv libraries

    CS MIPI camera
    3
    11
    120
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      Sheko last edited by Sheko

      The camera works fine in veye_viewer v1.1.4

      20260209_11h24m49s_grim.png

      When starting the sample opencv

      mport cv2
      import argparse
      import subprocess
      
      def main():
          # Set up command-line argument parser
          parser = argparse.ArgumentParser(description='Real-time display of GREY image from /dev/video0')
          parser.add_argument('--width', type=int, default=640, help='image width (default: 640)')
          parser.add_argument('--height', type=int, default=480, help='image height (default: 480)')
          parser.add_argument('--fps', type=int, default=30, help='frame rate (default: 30)')
          parser.add_argument('--ctldev', type=str, default='/dev/video0', help='For rpi5 only,subdevice for param setting')
          args = parser.parse_args()
          
          v4l2_cmd = f"v4l2-ctl -d {args.ctldev} --set-ctrl roi_x=0"
          subprocess.run(v4l2_cmd, shell=True)
          v4l2_cmd = f"v4l2-ctl -d {args.ctldev} --set-ctrl roi_y=0"
          subprocess.run(v4l2_cmd, shell=True)
          v4l2_cmd = f"v4l2-ctl -d '/dev/video0' --set-fmt-video=width={args.width},height={args.height}"
          subprocess.run(v4l2_cmd, shell=True)
          
          v4l2_cmd = f"v4l2-ctl -d {args.ctldev} --set-ctrl frame_rate={args.fps}"
          subprocess.run(v4l2_cmd, shell=True)
          
          # Open the /dev/video0 device
          cap = cv2.VideoCapture('/dev/video0')
          if not cap.isOpened():
              print("Failed to open video device")
              return
      
          # Set the image size
          cap.set(cv2.CAP_PROP_FRAME_WIDTH, args.width)
          cap.set(cv2.CAP_PROP_FRAME_HEIGHT, args.height)
      
          # Loop over frames and display them
          while True:
              # Read a frame
              ret, frame = cap.read()
      
              # Check if reading was successful
              if not ret:
                  print("Failed to read frame")
                  break
      
              # Display the frame
              cv2.imshow('VEYE MV camera GREY image preview', frame)
      
              # Exit if 'q' key is pressed
              if cv2.waitKey(1) & 0xFF == ord('q'):
                  break
      
          # Release resources
          cap.release()
          cv2.destroyAllWindows()
      
      if __name__ == '__main__':
          main()
      
      

      it returns an error

      [ WARN:0@0.135] global ./modules/videoio/src/cap_gstreamer.cpp (2401) handleMessage OpenCV | GStreamer warning: Embedded video playback halted; module source reported: Could not read from resource.
      [ WARN:0@0.136] global ./modules/videoio/src/cap_gstreamer.cpp (1356) open OpenCV | GStreamer warning: unable to start pipeline
      [ WARN:0@0.136] global ./modules/videoio/src/cap_gstreamer.cpp (862) isPipelinePlaying OpenCV | GStreamer warning: GStreamer: pipeline have not been created
      Failed to read frame
      
      
      ------------------
      (program exited with code: 0)
      Press return to continue
      
      
      

      Please help me figure it out

      A 1 Reply Last reply Reply Quote 0
      • A
        alex_ai @Sheko last edited by

        Hi @sheko, I have another mono camera but probably it should be same.
        I suppose camera visible by libcamera (should work something like rpicam-hello ).
        And according to the error log your openCV uses Gstreamer as backend. Libcamera has plugin for Gstreamer : libcamerasrc and my pipeline looks like:

        libcamerasrc camera-name="/base/axi/pcie@120000/rp1/i2c@88000/veyemvcam@3b" ! video/x-raw, width=1920, height=1080, framerate=30/1, format=UYVY ! videoconvert ! video/x-raw,format=GRAY8 ! appsink sync=1
        

        You need just set your camera path (according to mipi port it could be i2c@88000 or i2c@80000 ) , set your camera settings (resolution, format, fps) and remove convert to GREY8 if need color image.

        S 1 Reply Last reply Reply Quote 0
        • S
          Sheko @alex_ai last edited by Sheko

          @alex_ai
          error:

          Setting pipeline to PAUSED ...
          [0:20:26.080213248] [4028]  INFO Camera camera_manager.cpp:330 libcamera v0.5.2+99-bfd68f78
          [0:20:26.088722626] [4031]  INFO RPI pisp.cpp:720 libpisp version v1.2.1 981977ff21f3 29-04-2025 (14:13:50)
          [0:20:26.094319101] [4031]  WARN CameraSensorProperties camera_sensor_properties.cpp:499 No static properties available for 'mvcam'
          [0:20:26.094351897] [4031]  WARN CameraSensorProperties camera_sensor_properties.cpp:501 Please consider updating the camera sensor properties database
          [0:20:26.100093147] [4031] ERROR IPAProxy ipa_proxy.cpp:185 Configuration file 'mvcam_mono.json' not found for IPA module 'rpi/pisp'
          [0:20:26.100144183] [4031] ERROR IPARPI ipa_base.cpp:152 Could not create camera helper for mvcam
          [0:20:26.100157665] [4031] ERROR RPI pipeline_base.cpp:814 Failed to load a suitable IPA library
          [0:20:26.100168201] [4031] ERROR RPI pisp.cpp:947 Failed to register camera mvcam 10-003b: -22
          ERROR: from element /GstPipeline:pipeline0/GstLibcameraSrc:libcamerasrc0: Could not find a camera named '/base/axi/pcie@120000/rp1/i2c@88000/veyemvcam@3b'.
          Additional debug info:
          ../src/gstreamer/gstlibcamerasrc.cpp(489): gst_libcamera_src_open (): /GstPipeline:pipeline0/GstLibcameraSrc:libcamerasrc0:
          libcamera::CameraMananger::get() returned nullptr
          ERROR: pipeline doesn't want to preroll.
          Failed to set pipeline to PAUSED.
          Setting pipeline to NULL ...
          Freeing pipeline ...
          
          

          maybe this is the problem?

          ~ $ v4l2-ctl --list-devices
          pispbe (platform:1000880000.pisp_be):
          	/dev/video20
          	/dev/video21
          	/dev/video22
          	/dev/video23
          	/dev/video24
          	/dev/video25
          	/dev/video26
          	/dev/video27
          	/dev/video28
          	/dev/video29
          	/dev/video30
          	/dev/video31
          	/dev/video32
          	/dev/video33
          	/dev/video34
          	/dev/video35
          	/dev/media2
          	/dev/media3
          
          rp1-cfe (platform:1f00110000.csi):
          	/dev/video0
          	/dev/video1
          	/dev/video2
          	/dev/video3
          	/dev/video4
          	/dev/video5
          	/dev/video6
          	/dev/video7
          	/dev/media0
          
          rp1-cfe (platform:1f00128000.csi):
          	/dev/media1
          
          rpi-hevc-dec (platform:rpi-hevc-dec):
          	/dev/video19
          	/dev/media4
          
          
          
          ~ $ rpicam-hello
          [0:30:49.476854480] [4953]  INFO Camera camera_manager.cpp:330 libcamera v0.5.2+99-bfd68f78
          [0:30:49.484323268] [4956]  INFO RPI pisp.cpp:720 libpisp version v1.2.1 981977ff21f3 29-04-2025 (14:13:50)
          [0:30:49.485435690] [4956]  WARN CameraSensorProperties camera_sensor_properties.cpp:499 No static properties available for 'mvcam'
          [0:30:49.485459578] [4956]  WARN CameraSensorProperties camera_sensor_properties.cpp:501 Please consider updating the camera sensor properties database
          [0:30:49.487403667] [4956] ERROR IPAProxy ipa_proxy.cpp:185 Configuration file 'mvcam_mono.json' not found for IPA module 'rpi/pisp'
          [0:30:49.487445315] [4956] ERROR IPARPI ipa_base.cpp:152 Could not create camera helper for mvcam
          [0:30:49.487458888] [4956] ERROR RPI pipeline_base.cpp:814 Failed to load a suitable IPA library
          [0:30:49.487468962] [4956] ERROR RPI pisp.cpp:947 Failed to register camera mvcam 10-003b: -22
          Made X/EGL preview window
          ERROR: *** no cameras available ***
          
          
          ~ $ gst-inspect-1.0 | grep libcamerasrc
          libcamera:  libcamerasrc: libcamera Source
          
          
          A 1 Reply Last reply Reply Quote 0
          • A
            alex_ai @Sheko last edited by

            Hi @sheko, I had same problem with RPi 5, did you build and install libcamera from veye github repository? For some reason it has config json file only for RPi 4.

            First step try run it with uncalibrated json :

            rpicam-still --tuning-file /usr/local/share/libcamera/ipa/rpi/pisp/data/uncalibrated.json -t 0
            

            Path may be different, if failed to load json file - try to find valid path.

            if video opened - we need just put to same folder mvcam_mono.json (or add to libcamera source code, update meson.build and rebuild + reinstall )

            and check if rpicam-hello or rpicam-still works without tuning file

            I attached my current config (rename it to json) but it adopted for night sky and you need fix in json file section : exposure_modes . normal, copy it for example from se327m12.json
            mvcam_mono.txt

            veye_xumm 1 Reply Last reply Reply Quote 0
            • veye_xumm
              veye_xumm @alex_ai last edited by

              @alex_ai
              RAW-MIPI-SC132M does not support libcamera, nor software based on libcamera. Direct invocation via the v4l2 API is required.

              A S 2 Replies Last reply Reply Quote 0
              • A
                alex_ai @veye_xumm last edited by

                Hi @veye_xumm, sorry for confusion, in previous time you guided me to install custom libcamera for veye_mvcam driver and seems like this step is outdated (but I'm still using libcamera).

                @Sheko try another pipeline in openCV:

                v4l2src device=/dev/video0 ! video/x-raw,format=UYVY, width=1920, height=1080,framerate=30/1 ! videoconvert ! video/x-raw,format=GRAY8 ! appsink sync=1
                
                S 1 Reply Last reply Reply Quote 0
                • S
                  Sheko @alex_ai last edited by

                  @alex_ai

                  command not found(((

                  ~ $ v4l2src device=/dev/video0 ! video/x-raw,format=UYVY, width=1920, height=1080,framerate=30/1 ! videoconvert ! video/x-raw,format=GRAY8 ! appsink sync=1
                  bash: v4l2src: command not found
                  
                  
                  A 1 Reply Last reply Reply Quote 0
                  • S
                    Sheko @veye_xumm last edited by

                    @veye_xumm
                    I got the title wrong - I meant Picamera2. I need to start working in Opencv first.

                    ~ $ rpicam-hello
                    [3:42:19.883111801] [3703]  INFO Camera camera_manager.cpp:330 libcamera v0.5.2+99-bfd68f78
                    [3:42:19.894406703] [3706]  INFO RPI pisp.cpp:720 libpisp version v1.2.1 981977ff21f3 29-04-2025 (14:13:50)
                    [3:42:19.895982049] [3706]  WARN CameraSensorProperties camera_sensor_properties.cpp:499 No static properties available for 'mvcam'
                    [3:42:19.896044820] [3706]  WARN CameraSensorProperties camera_sensor_properties.cpp:501 Please consider updating the camera sensor properties database
                    [3:42:19.899758099] [3706] ERROR IPAProxy ipa_proxy.cpp:185 Configuration file 'mvcam_mono.json' not found for IPA module 'rpi/pisp'
                    [3:42:19.899815776] [3706] ERROR IPARPI ipa_base.cpp:152 Could not create camera helper for mvcam
                    [3:42:19.899835354] [3706] ERROR RPI pipeline_base.cpp:814 Failed to load a suitable IPA library
                    [3:42:19.899850764] [3706] ERROR RPI pisp.cpp:947 Failed to register camera mvcam 10-003b: -22
                    Made X/EGL preview window
                    ERROR: *** no cameras available ***
                    
                    
                    1 Reply Last reply Reply Quote 0
                    • A
                      alex_ai @Sheko last edited by

                      @sheko
                      This is pipeline which need place to openCV instead:

                      cap = cv2.VideoCapture('/dev/video0')
                      

                      to run it from command line you need use gstreamer, try :

                      gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,format=UYVY, width=1920, height=1080,framerate=30/1 ! videoconvert ! video/x-raw,format=GRAY8 ! appsink sync=1
                      
                      S 1 Reply Last reply Reply Quote 0
                      • S
                        Sheko @alex_ai last edited by

                        @alex_ai

                        ~ $ gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,format=UYVY, width=1920, height=1080,framerate=30/1 ! videoconvert ! video/x-raw,format=GRAY8 ! appsink sync=1
                        Setting pipeline to PAUSED ...
                        Pipeline is live and does not need PREROLL ...
                        Pipeline is PREROLLED ...
                        Setting pipeline to PLAYING ...
                        New clock: GstSystemClock
                        ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Failed to allocate required memory.
                        Additional debug info:
                        ../sys/v4l2/gstv4l2src.c(976): gst_v4l2src_decide_allocation (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
                        Buffer pool activation failed
                        Execution ended after 0:00:00.003958838
                        ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Internal data stream error.
                        Setting pipeline to NULL ...
                        Additional debug info:
                        ../libs/gst/base/gstbasesrc.c(3132): gst_base_src_loop (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
                        streaming stopped, reason not-negotiated (-4)
                        Freeing pipeline ...
                        
                        
                        A 1 Reply Last reply Reply Quote 0
                        • A
                          alex_ai @Sheko last edited by

                          @sheko please update pipeline with your camera parameters (width, height, framerate). I just copied mine.

                          1 Reply Last reply Reply Quote 0
                          • First post
                            Last post