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

    Running 4 Ar0144s on M0188

    VOXL 2 Mini
    2
    7
    75
    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.
    • C
      cbay
      last edited by

      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 Reply Quote 0
      • C
        cbay @cbay
        last edited by

        @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 Reply Quote 0
        • Alex KushleyevA
          Alex Kushleyev ModalAI Team @cbay
          last edited by

          @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 Reply Quote 0
          • C
            cbay @Alex Kushleyev
            last edited by

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

            Alex KushleyevA 1 Reply Last reply Reply Quote 0
            • Alex KushleyevA Alex Kushleyev referenced this topic
            • Alex KushleyevA
              Alex Kushleyev ModalAI Team @cbay
              last edited by

              @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 Reply Quote 0
              • Alex KushleyevA
                Alex Kushleyev ModalAI Team @Alex Kushleyev
                last edited by

                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 Reply Quote 0
                • Alex KushleyevA
                  Alex Kushleyev ModalAI Team @Alex Kushleyev
                  last edited by

                  @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

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