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 Mini
  4. Running 4 Ar0144s on M0188

Running 4 Ar0144s on M0188

Scheduled Pinned Locked Moved VOXL 2 Mini
8 Posts 2 Posters 851 Views 1 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.
  • C Offline
    C Offline
    cbay
    Contributor
    wrote on last edited by
    #1

    Hi Hope yall are well,

    I am currently working on getting 4 Ar0144's connected to M0188 and running. As of now all 4 seem to be starting up in voxl Camera server, But ID0 and ID 6 (the ones that should be a combo of eachother) don't seem to be sending frames. If I change what cameras are on what port the new cameras on 2 and 3 start working and 0 and 6 still dont work (showing its a driver/board issue not connector or camera issue)

    We had this working previously but cant seem to get it working again. Cameras are plugged into J0, J2, J3 and J6 as was previously recommended.

    Here is our Custom Config

    #!/bin/bash
    
    ################################################################################
    #
    # This file allows setting of custom camera configurations by defining what
    # sensors are plugged into which port.
    #
    # There is no guarantee that any arbitrary configuration will work. Only the
    # predefined camera configs at https://docs.modalai.com/voxl2-camera-configs/
    # are supported.
    #
    # each slot can be one of the following sensors:
    #
    # pmd-tof
    # pmd-tof-liow2
    # ov7251
    # ov7251-combo
    # ov9782
    # ov9782-combo
    # ar0144
    # ar0144-fsin (for use with m0173 and Starling 2 only)
    # ar0144-fsin-combo (for use with m0173 and Starling 2 only)
    # ar0144-12bit
    # ar0144-12bit-fsin (for use with m0173 and Starling 2 only)
    # ar0144-12bit-fsin-combo (for use with m0173 and Starling 2 only)
    # imx214
    # imx412
    # imx412-fpv (low latency mode)
    # imx678
    #
    #
    # When using a combo mode pair, you must also add a JX_COMBO_MODE field which
    # specifies is the pair is to be set up as either a stereo pair ordered
    # left-right, right-left, or treated as two independent cameras. If you are
    # using a combo-mode flex but only physically connect one of the two cameras
    # then select "single" it does not matter which one you connect.
    #
    # For example:
    # J6_LOWER_COMBO_MODE="left-right"
    # J6_LOWER_COMBO_MODE="right-left"
    # J6_LOWER_COMBO_MODE="independent"
    # J6_LOWER_COMBO_MODE="single"
    #
    # when running "independent" combo mode, also add a NAME2 field for the second cam
    # e.g J6_LOWER_NAME2="tracking_rear"
    #
    # for all sensors except TOF, you can specify a "rotate" flag to
    # rotate the image 180 degrees e.g. J6_LOWER_ROTATE="true" or "false"
    # for stereo pairs (e.g. ov7251 combo or ar0144-slave-strereo) you can specify
    # "rotate-first-only" or "rotate-second-only" to only rotate one, other wise
    # when setting the rotate option to "true" both will be rotated.
    #
    #
    # Once configured, this file should live in /data/modalai/custom_camera-config.txt
    # then run voxl-configure-cameras custom to load it in
    #
    #
    # cp /usr/share/modalai/voxl-camera-server/custom_camera_config.txt /data/modalai/
    #
    # We also suggest changing your /data/modalai/sku.txt file to have a camera
    # config term "CC" such as MRB-D0005-4-V2-CC
    ################################################################################
    
    
    J6_LOWER_SENSOR="ar0144-fsin-combo"
    J6_LOWER_NAME="tracking_0"
    J6_LOWER_NAME2="tracking_6"
    J6_LOWER_ROTATE="false"
    J6_LOWER_COMBO_MODE="independent"
    
    J6_LOWER_COMBO1_SENSOR="ar0144-fsin-combo"
    J6_LOWER_COMBO1_NAME="tracking_6"
    J6_LOWER_COMBO1_ROTATE="false"
    
    
    J6_UPPER_SENSOR=""
    J6_UPPER_NAME=""
    J6_UPPER_ROTATE=""
    
    
    J7_LOWER_SENSOR="ar0144"
    J7_LOWER_NAME="tracking_2"
    J7_LOWER_ROTATE="false"
    J7_LOWER_COMBO_MODE="single"
    
    
    J7_UPPER_SENSOR="ar0144"
    J7_UPPER_NAME="tracking_3"
    J7_UPPER_ROTATE="false"
    
    
    J8_LOWER_SENSOR=""
    J8_LOWER_NAME=""
    J8_LOWER_ROTATE="false"
    
    
    J8_UPPER_SENSOR=""
    J8_UPPER_NAME=""
    J8_UPPER_ROTATE="false"
    
    
    C 1 Reply Last reply
    0
    • C cbay

      Hi Hope yall are well,

      I am currently working on getting 4 Ar0144's connected to M0188 and running. As of now all 4 seem to be starting up in voxl Camera server, But ID0 and ID 6 (the ones that should be a combo of eachother) don't seem to be sending frames. If I change what cameras are on what port the new cameras on 2 and 3 start working and 0 and 6 still dont work (showing its a driver/board issue not connector or camera issue)

      We had this working previously but cant seem to get it working again. Cameras are plugged into J0, J2, J3 and J6 as was previously recommended.

      Here is our Custom Config

      #!/bin/bash
      
      ################################################################################
      #
      # This file allows setting of custom camera configurations by defining what
      # sensors are plugged into which port.
      #
      # There is no guarantee that any arbitrary configuration will work. Only the
      # predefined camera configs at https://docs.modalai.com/voxl2-camera-configs/
      # are supported.
      #
      # each slot can be one of the following sensors:
      #
      # pmd-tof
      # pmd-tof-liow2
      # ov7251
      # ov7251-combo
      # ov9782
      # ov9782-combo
      # ar0144
      # ar0144-fsin (for use with m0173 and Starling 2 only)
      # ar0144-fsin-combo (for use with m0173 and Starling 2 only)
      # ar0144-12bit
      # ar0144-12bit-fsin (for use with m0173 and Starling 2 only)
      # ar0144-12bit-fsin-combo (for use with m0173 and Starling 2 only)
      # imx214
      # imx412
      # imx412-fpv (low latency mode)
      # imx678
      #
      #
      # When using a combo mode pair, you must also add a JX_COMBO_MODE field which
      # specifies is the pair is to be set up as either a stereo pair ordered
      # left-right, right-left, or treated as two independent cameras. If you are
      # using a combo-mode flex but only physically connect one of the two cameras
      # then select "single" it does not matter which one you connect.
      #
      # For example:
      # J6_LOWER_COMBO_MODE="left-right"
      # J6_LOWER_COMBO_MODE="right-left"
      # J6_LOWER_COMBO_MODE="independent"
      # J6_LOWER_COMBO_MODE="single"
      #
      # when running "independent" combo mode, also add a NAME2 field for the second cam
      # e.g J6_LOWER_NAME2="tracking_rear"
      #
      # for all sensors except TOF, you can specify a "rotate" flag to
      # rotate the image 180 degrees e.g. J6_LOWER_ROTATE="true" or "false"
      # for stereo pairs (e.g. ov7251 combo or ar0144-slave-strereo) you can specify
      # "rotate-first-only" or "rotate-second-only" to only rotate one, other wise
      # when setting the rotate option to "true" both will be rotated.
      #
      #
      # Once configured, this file should live in /data/modalai/custom_camera-config.txt
      # then run voxl-configure-cameras custom to load it in
      #
      #
      # cp /usr/share/modalai/voxl-camera-server/custom_camera_config.txt /data/modalai/
      #
      # We also suggest changing your /data/modalai/sku.txt file to have a camera
      # config term "CC" such as MRB-D0005-4-V2-CC
      ################################################################################
      
      
      J6_LOWER_SENSOR="ar0144-fsin-combo"
      J6_LOWER_NAME="tracking_0"
      J6_LOWER_NAME2="tracking_6"
      J6_LOWER_ROTATE="false"
      J6_LOWER_COMBO_MODE="independent"
      
      J6_LOWER_COMBO1_SENSOR="ar0144-fsin-combo"
      J6_LOWER_COMBO1_NAME="tracking_6"
      J6_LOWER_COMBO1_ROTATE="false"
      
      
      J6_UPPER_SENSOR=""
      J6_UPPER_NAME=""
      J6_UPPER_ROTATE=""
      
      
      J7_LOWER_SENSOR="ar0144"
      J7_LOWER_NAME="tracking_2"
      J7_LOWER_ROTATE="false"
      J7_LOWER_COMBO_MODE="single"
      
      
      J7_UPPER_SENSOR="ar0144"
      J7_UPPER_NAME="tracking_3"
      J7_UPPER_ROTATE="false"
      
      
      J8_LOWER_SENSOR=""
      J8_LOWER_NAME=""
      J8_LOWER_ROTATE="false"
      
      
      J8_UPPER_SENSOR=""
      J8_UPPER_NAME=""
      J8_UPPER_ROTATE="false"
      
      
      C Offline
      C Offline
      cbay
      Contributor
      wrote on last edited by
      #2

      @cbay I got it working by swapping it to ID's 0-3 (2 on the hires lines).

      Any known issues with doing this for use in VIO?

      Alex KushleyevA 1 Reply Last reply
      0
      • C cbay

        @cbay I got it working by swapping it to ID's 0-3 (2 on the hires lines).

        Any known issues with doing this for use in VIO?

        Alex KushleyevA Offline
        Alex KushleyevA Offline
        Alex Kushleyev
        ModalAI Team
        wrote on last edited by
        #3

        @cbay , yes this should work.

        Whenever you add cameras of the same type, you should always check for possible I2C (CCI) conflicts. If you look here https://docs.modalai.com/M0188/#image-sensor-interfaces , the sensor IDs 0,2,3,6 (which is what you use) use unique CCI buses 0-3, so that is all good.

        If you used ID 1, it would conflict with with another AR0144 on ID6 (both use CCI1)

        One last thing to check is the sensor sync.

        • if you see fsin in the configuration of the sensor (and name of the sensormodule in /usr/lib/camera/), it means it is set up as a sync slave
        • currently you have the IDs 0 and 6 set up as sync slaves, but ID 2 and 3 as free-running

        There are two issues enabling sync'ed drivers for AR0144 in ID 2 and 3:

        • the driver is provided only for ID2 in : /usr/share/modalai/chi-cdk/ar0144-fsin/ - this is easy to fix
        • ID1 and ID3 on M0188 do not have the sync line connected to the camera connector
          • this is easy to fix by installing a 0-ohm resistor, which is DNI by default.

        Depending on your requirements for VIO (which VIO are you using?), you may or may not need the cameras synchronized.

        Please let me know your requirements and we can go from there..

        Alex

        C 1 Reply Last reply
        0
        • Alex KushleyevA Alex Kushleyev

          @cbay , yes this should work.

          Whenever you add cameras of the same type, you should always check for possible I2C (CCI) conflicts. If you look here https://docs.modalai.com/M0188/#image-sensor-interfaces , the sensor IDs 0,2,3,6 (which is what you use) use unique CCI buses 0-3, so that is all good.

          If you used ID 1, it would conflict with with another AR0144 on ID6 (both use CCI1)

          One last thing to check is the sensor sync.

          • if you see fsin in the configuration of the sensor (and name of the sensormodule in /usr/lib/camera/), it means it is set up as a sync slave
          • currently you have the IDs 0 and 6 set up as sync slaves, but ID 2 and 3 as free-running

          There are two issues enabling sync'ed drivers for AR0144 in ID 2 and 3:

          • the driver is provided only for ID2 in : /usr/share/modalai/chi-cdk/ar0144-fsin/ - this is easy to fix
          • ID1 and ID3 on M0188 do not have the sync line connected to the camera connector
            • this is easy to fix by installing a 0-ohm resistor, which is DNI by default.

          Depending on your requirements for VIO (which VIO are you using?), you may or may not need the cameras synchronized.

          Please let me know your requirements and we can go from there..

          Alex

          C Offline
          C Offline
          cbay
          Contributor
          wrote on last edited by
          #4

          @Alex-Kushleyev We are running OpenVINS for our VIO. Not sure what other requirements you need to know

          Alex KushleyevA 1 Reply Last reply
          0
          • Alex KushleyevA Alex Kushleyev referenced this topic on
          • C cbay

            @Alex-Kushleyev We are running OpenVINS for our VIO. Not sure what other requirements you need to know

            Alex KushleyevA Offline
            Alex KushleyevA Offline
            Alex Kushleyev
            ModalAI Team
            wrote on last edited by
            #5

            @cbay , OK got it.

            In order to synchronize all 4 cameras, you will need:

            • use fsin sensormodules for camera slots 2 and 3 -- i will need to provide one for slot 3
            • add a resistor to actually enable sync signal for slot 3 (will provide a diagram for M0188)

            Meanwhile, you should be able to enable sync for camera slot 2 by using the following sensormodule:
            /usr/share/modalai/chi-cdk/ar0144-fsin/com.qti.sensormodule.ar0144_fsin_2.bin instead of com.qti.sensormodule.ar0144_2.bin -- just replace it in /usr/lib/camera/

            Also, we have a tool for checking camera sync (you may have to build it yourself from this branch) : https://gitlab.com/voxl-public/voxl-sdk/utilities/voxl-mpa-tools/-/blob/add-new-image-tools/tools/voxl-check-cam-sync.c -- this is a quick way to check if the timestamps of the frames are aligned.

            Alex

            Alex KushleyevA 1 Reply Last reply
            0
            • Alex KushleyevA Alex Kushleyev

              @cbay , OK got it.

              In order to synchronize all 4 cameras, you will need:

              • use fsin sensormodules for camera slots 2 and 3 -- i will need to provide one for slot 3
              • add a resistor to actually enable sync signal for slot 3 (will provide a diagram for M0188)

              Meanwhile, you should be able to enable sync for camera slot 2 by using the following sensormodule:
              /usr/share/modalai/chi-cdk/ar0144-fsin/com.qti.sensormodule.ar0144_fsin_2.bin instead of com.qti.sensormodule.ar0144_2.bin -- just replace it in /usr/lib/camera/

              Also, we have a tool for checking camera sync (you may have to build it yourself from this branch) : https://gitlab.com/voxl-public/voxl-sdk/utilities/voxl-mpa-tools/-/blob/add-new-image-tools/tools/voxl-check-cam-sync.c -- this is a quick way to check if the timestamps of the frames are aligned.

              Alex

              Alex KushleyevA Offline
              Alex KushleyevA Offline
              Alex Kushleyev
              ModalAI Team
              wrote on last edited by
              #6

              cross-posting the reply here as well, since this is more relevant thread:

              I have uploaded the latest ar0144 drivers with fsin versions for all camera slots here : https://storage.googleapis.com/modalai_public/temp/ar0144/ar0144_drivers_20260402.zip

              There are two additional files (inside the zip), which you should copy to /usr/lib/camera to make sure you have the latest updates:

              • com.qti.sensor.ar0144.so -- contains functions for exposure / gain control (we recently made some improvements to make gain control smoother)
              • com.qti.tuned.default.bin -- fixed gain scaling so that min gain (1.0x analog gain) is equal to 100 in the HAL3 gain units, not 54 (and the max gain will be 29.6 = 29600 for AR0144) -- you can also double check this using voxl-camera-server -l and update the min/max gain settings in your voxl-camera-server.conf to make sure you are using the full range.

              My colleague will follow up with a diagram for locations of the DNI resistors that need to be installed to enable sync signal for camera slots 1 and 3 (0402 0-ohm resistor)

              Alex

              Alex KushleyevA 1 Reply Last reply
              0
              • Alex KushleyevA Alex Kushleyev

                cross-posting the reply here as well, since this is more relevant thread:

                I have uploaded the latest ar0144 drivers with fsin versions for all camera slots here : https://storage.googleapis.com/modalai_public/temp/ar0144/ar0144_drivers_20260402.zip

                There are two additional files (inside the zip), which you should copy to /usr/lib/camera to make sure you have the latest updates:

                • com.qti.sensor.ar0144.so -- contains functions for exposure / gain control (we recently made some improvements to make gain control smoother)
                • com.qti.tuned.default.bin -- fixed gain scaling so that min gain (1.0x analog gain) is equal to 100 in the HAL3 gain units, not 54 (and the max gain will be 29.6 = 29600 for AR0144) -- you can also double check this using voxl-camera-server -l and update the min/max gain settings in your voxl-camera-server.conf to make sure you are using the full range.

                My colleague will follow up with a diagram for locations of the DNI resistors that need to be installed to enable sync signal for camera slots 1 and 3 (0402 0-ohm resistor)

                Alex

                Alex KushleyevA Offline
                Alex KushleyevA Offline
                Alex Kushleyev
                ModalAI Team
                wrote on last edited by
                #7

                @cbay ,

                Here is the diagram for M0188 showing resistor R10 and R11 that need to be added (0 ohm) in order to connect the sync signal to the camera slot 1 and 3.

                For some historical reasons, these resistors were DNI'ed in order to prevent (incorrectly configured) hires cameras from outputting a sync signal and interfering with the tracking cameras.

                Please be careful when adding the resistors, as spacing between components is pretty tight.

                We will update the docs for M0188, M0195 and M0173 to reflect the default state and how to enable the sync on the camera ports that do not have it already connected.

                m0188_sync_resistors_fix.png

                C 1 Reply Last reply
                0
                • Alex KushleyevA Alex Kushleyev

                  @cbay ,

                  Here is the diagram for M0188 showing resistor R10 and R11 that need to be added (0 ohm) in order to connect the sync signal to the camera slot 1 and 3.

                  For some historical reasons, these resistors were DNI'ed in order to prevent (incorrectly configured) hires cameras from outputting a sync signal and interfering with the tracking cameras.

                  Please be careful when adding the resistors, as spacing between components is pretty tight.

                  We will update the docs for M0188, M0195 and M0173 to reflect the default state and how to enable the sync on the camera ports that do not have it already connected.

                  m0188_sync_resistors_fix.png

                  C Offline
                  C Offline
                  cbay
                  Contributor
                  wrote on last edited by
                  #8

                  @Alex-Kushleyev Thanks so much, we have the resistors on the way, will let you know how this goes.

                  Once this has been done, I would assume we would have no issues getting all of the cameras working with OpenVins

                  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

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