ModalAI Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login

    Most VOXL 2 hires-capable camera ports nonfunctional after SDK 1.0 flash

    VOXL 2
    3
    6
    412
    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.
    • B
      brycek
      last edited by

      Hello, I have a test setup with two IMX678 cameras that had been working well in SDK0.9.5 with a dev version of cam-server for hardware encoding. I had the cameras set up in a dual hires config like this: https://docs.modalai.com/images/voxl2/m0054-imx412-imx678.JPG
      alt text

      Yesterday I upgraded to SDK1.0 and I haven't been able to get dual hire working since. after looking through debugging outputs, it can't detect both cameras. I've swapped camera modules around, used different cable and interposers, and in the end it seems that only camera slot 3 is functioning. I can move the same module around to all the different slot options listed here with the dual cable and the interposer, and running voxl-cam-server -l will only find cameras in slot 3. I've also tested this with some M0024 cam modules, and have the same result.

      Any advice on further troubleshooting? Also, how hard is it to revert to 0.9.5?

      TjarkT 1 Reply Last reply Reply Quote 0
      • TjarkT
        Tjark @brycek
        last edited by

        @brycek We had the same issue but we managed to get it working. We have the following setup with 3 cameras:

        Camera name: hires2
        Camera type: imx412
        Camera id: 0
        Camera slot: 2

        Camera name: hires
        Camera type: imx214
        Camera id: 1
        Camera slot: 3

        Camera name: tracking
        Camera type: ov7251
        Camera id: 2
        Camera slot: 4

        We added an extra option to /usr/bin/qrb5165-configure-cameras:

        17) # Hires(imx214) + Hires2(imx412) + Tracking(ov7251)
        		CAM_LIST+=("hires2:imx412:0")
        		CAM_LIST+=("hires:imx214:1")
        		CAM_LIST+=("tracking:ov7251:2")
        		BIN_LIST+=("/usr/share/modalai/chi-cdk/ov7251/com.qti.sensormodule.ov7251_4.bin")
        		BIN_LIST+=("/usr/share/modalai/chi-cdk/imx412/com.qti.sensormodule.imx412_2.bin")
        		BIN_LIST+=("/usr/share/modalai/chi-cdk/imx214/com.qti.sensormodule.imx214_3.bin")
        		;;
        

        So the camera name, type and id are used in the CAM_LIST+= part and the camera type and the camera slot are used in the BIN_LIST+= part.

        Then we can execute voxl-configure-cameras 17 which places the camera drivers in the correct places and creates a default voxl-camera-server.conf file. Then when we do voxl-camera-server --list, all the cameras will appear.

        Also small note that you need to update the file /usr/bin/qrb5165-print-camera-configs if you want the option to be shown when executing voxl-configure-cameras --help

        @ModalAI, is this the correct way to approach this or is this not recommended because problems are expected when using it this way?

        @brycek I think you can adjust it to match your situation

        B 1 Reply Last reply Reply Quote 0
        • B
          brycek @Tjark
          last edited by

          @Tjark

          Yes! Thank you for your helpful reply! I was trying to use config 8, or config 0 and writing my own file at /etc/modalai/voxl-camera-config, but option 8 only loads the binary driver for slot 3 (and 0 doesn't load any) I ended up making my own config like you, and just loading the IMX678 drivers for slots 2, 3, and 4, because I'm not sure which I'll use, but I'm only using the IMX678 modules.
          My addition to /usr/bin/qrb5165-configure-cameras looked like this:

          17) # Dual Hires (IMX678)
                          CAM_LIST+=("hires0:imx678:0")
                          CAM_LIST+=("hires1:imx678:1")
                          BIN_LIST+=("/usr/share/modalai/chi-cdk/imx678/com.qti.sensormodule.imx678_2.bin")
                          BIN_LIST+=("/usr/share/modalai/chi-cdk/imx678/com.qti.sensormodule.imx678_3.bin")
                          BIN_LIST+=("/usr/share/modalai/chi-cdk/imx678/com.qti.sensormodule.imx678_4.bin")
                          ;;
          

          This change made it s.t. after loading that config, (and killing the cam server) I could run `voxl-camera-server -l' and see the imx678 modules in any of those 3 slots! 🙂
          I also tried to actually run the camera server, and while it does run, I'm only getting data in the hires1 pipes, so I still have a bit of debug to do. 😞
          Here's the config file it generated as well.

          {
                  "version":      0.1,
                  "cameras":      [{
                                  "type": "imx678",
                                  "name": "hires0",
                                  "enabled":      true,
                                  "camera_id":    0,
                                  "fps":  30,
                                  "en_preview":   false,
                                  "preview_width":        640,
                                  "preview_height":       480,
                                  "pre_format":   "nv21",
                                  "en_small_video":       true,
                                  "small_video_width":    1024,
                                  "small_video_height":   768,
                                  "small_venc_mode":      "h265",
                                  "small_venc_br_ctrl":   "cqp",
                                  "small_venc_Qfixed":    30,
                                  "small_venc_Qmin":      15,
                                  "small_venc_Qmax":      40,
                                  "small_venc_nPframes":  9,
                                  "small_venc_mbps":      2,
                                  "en_large_video":       true,
                                  "large_video_width":    2048,
                                  "large_video_height":   1536,
                                  "large_venc_mode":      "h265",
                                  "large_venc_br_ctrl":   "cqp",
                                  "large_venc_Qfixed":    38,
                                  "large_venc_Qmin":      15,
                                  "large_venc_Qmax":      50,
                                  "large_venc_nPframes":  29,
                                  "large_venc_mbps":      30,
                                  "en_snapshot":  true,
                                  "en_snapshot_width":    3840,
                                  "en_snapshot_height":   2160,
                                  "ae_mode":      "isp"
                          }, {
                                  "type": "imx678",
                                  "name": "hires1",
                                  "enabled":      true,
                                  "camera_id":    1,
                                  "fps":  30,
                                  "en_preview":   false,
                                  "preview_width":        640,
                                  "preview_height":       480,
                                  "pre_format":   "nv21",
                                  "en_small_video":       true,
                                  "small_video_width":    1024,
                                  "small_video_height":   768,
                                  "small_venc_mode":      "h265",
                                  "small_venc_br_ctrl":   "cqp",
                                  "small_venc_Qfixed":    30,
                                  "small_venc_Qmin":      15,
                                  "small_venc_Qmax":      40,
                                  "small_venc_nPframes":  9,
                                  "small_venc_mbps":      2,
                                  "en_large_video":       true,
                                  "large_video_width":    2048,
                                  "large_video_height":   1536,
                                  "large_venc_mode":      "h265",
                                  "large_venc_br_ctrl":   "cqp",
                                  "large_venc_Qfixed":    38,
                                  "large_venc_Qmin":      15,
                                  "large_venc_Qmax":      50,
                                  "large_venc_nPframes":  29,
                                  "large_venc_mbps":      30,
                                  "en_snapshot":  true,
                                  "en_snapshot_width":    3840,
                                  "en_snapshot_height":   2160,
                                  "ae_mode":      "isp"
                          }]
          }
          
          B 1 Reply Last reply Reply Quote 0
          • B
            brycek @brycek
            last edited by

            @brycek said in Most VOXL 2 hires-capable camera ports nonfunctional after SDK 1.0 flash:

            I also tried to actually run the camera server, and while it does run, I'm only getting data in the hires1 pipes, so I still have a bit of debug to do. 😞

            Okay, interestingly, it worked when I moved the camera in slot 3 to slot 2. So now I am using slots 2 and 4, and getting data from both cameras. Not sure why that is (maybe its my cable?), but I'm going to work with it for now. Thanks for the excellent tip, @Tjark. I might fork a version of the configuration script that adds all possible slot drivers for the requested types of cameras unless there's a reason not to load unused drivers.

            TjarkT 1 Reply Last reply Reply Quote 0
            • TjarkT
              Tjark @brycek
              last edited by

              @brycek That's great!

              @Modalai could you still answer the question if this is a good way of handling this?

              Chad SweetC 1 Reply Last reply Reply Quote 0
              • Chad SweetC
                Chad Sweet ModalAI Team @Tjark
                last edited by

                For future reference, this is the doc to follow https://docs.modalai.com/voxl2-image-sensors/

                1 Reply Last reply Reply Quote 0
                • First post
                  Last post
                Powered by NodeBB | Contributors