Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
Collapse
Brand Logo

ModalAI Forum

  1. ModalAI Support Forum
  2. VOXL Compute & Autopilot
  3. VOXL 2
  4. Most VOXL 2 hires-capable camera ports nonfunctional after SDK 1.0 flash

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

Scheduled Pinned Locked Moved VOXL 2
6 Posts 3 Posters 1.2k Views 2 Watching
  • 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 Offline
    B Offline
    brycek
    wrote on last edited by
    #1

    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
    0
    • B brycek

      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 Offline
      TjarkT Offline
      Tjark
      Contributor
      wrote on last edited by
      #2

      @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
      0
      • TjarkT Tjark

        @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 Offline
        B Offline
        brycek
        wrote on last edited by
        #3

        @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
        0
        • B brycek

          @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 Offline
          B Offline
          brycek
          wrote on last edited by
          #4

          @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
          0
          • B brycek

            @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 Offline
            TjarkT Offline
            Tjark
            Contributor
            wrote on last edited by
            #5

            @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
            0
            • TjarkT Tjark

              @brycek That's great!

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

              Chad SweetC Offline
              Chad SweetC Offline
              Chad Sweet
              ModalAI Team
              wrote on last edited by
              #6

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

              1 Reply Last reply
              0

              Hello! It looks like you're interested in this conversation, but you don't have an account yet.

              Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

              With your input, this post could be even better 💗

              Register Login
              Reply
              • Reply as topic
              Log in to reply
              • Oldest to Newest
              • Newest to Oldest
              • Most Votes


              ModalAI
              Categories Recent Tags ModalAI.com Docs
              © 2026 ModalAI® · Accelerating autonomy for smaller, smarter, safer drones · Powered by NodeBB
              • Login

              • Don't have an account? Register

              • Login or register to search.
              • First post
                Last post
              0
              • Categories
              • Recent
              • Tags
              • Popular
              • Users
              • Groups