ModalAI Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login
    1. Home
    2. restore
    R
    • Profile
    • Following 0
    • Followers 0
    • Topics 15
    • Posts 59
    • Best 0
    • Controversial 0
    • Groups 0

    restore

    @restore

    0
    Reputation
    19
    Profile views
    59
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    restore Unfollow Follow

    Latest posts made by restore

    • RE: Hadron ov64b snapshots have a vertical image artifact

      @Alex-Kushleyev I tried to configure for raw capture but am getting an error with camera-server:

      existing instance of voxl-camera-server found, attempting to stop it
      MISP awb str: auto
      Setting MISP AWB to Auto
      MISP channels enabled in defaults : 0
      ERROR: object missing misp_channels
      MISP awb str: auto
      Setting MISP AWB to Auto
      MISP channels enabled in defaults : 0
      ERROR: object missing misp_channels
      =================================================================
      configuration for 2 cameras:
      
      cam #0
          name:                boson
          sensor type:         boson
          isEnabled:           1
          camId:               0
          camId2:              -1
          fps:                 30
          en_rotate:           0
          en_rotate2:          0
      
          en_preview:          1
          pre_width:           640
          pre_height:          512
          en_raw_preview:      1
      
          en_small_video:      0
          small_video_width:   640
          small_video_height:  480
      
          en_large_video:      0
          large_video_width:   -1
          large_video_height:  -1
      
          en_misp:             1
          misp_width:          -1
          misp_height:         -1
      
          en_snapshot:         0
          snap_width:          -1
          snap_height:         -1
          exif_focal_length:   0.000000
          exif_focal_len_35mm_format:0
          exif_fnumber:        0.000000
      
          ae_mode:             off
          msv_exposure_min_us: 20
          msv_exposure_max_us: 33000
          gain_min           : 54
          gain_max           : 8000
          standby_enabled:     0
          decimator:           1
          independent_exposure:0
      
      cam #1
          name:                hires
          sensor type:         ov64b
          isEnabled:           1
          camId:               1
          camId2:              -1
          fps:                 15
          en_rotate:           0
          en_rotate2:          0
      
          en_preview:          1
          pre_width:           9248
          pre_height:          6944
          en_raw_preview:      1
      
          en_small_video:      0
          small_video_width:   1024
          small_video_height:  768
      
          en_large_video:      0
          large_video_width:   3840
          large_video_height:  2160
      
          en_misp:             1
          misp_width:          1920
          misp_height:         1080
      
          en_snapshot:         0
          snap_width:          9248
          snap_height:         6944
          exif_focal_length:   3.100000
          exif_focal_len_35mm_format:17
          exif_fnumber:        1.240000
      
          ae_mode:             lme_msv
          msv_exposure_min_us: 20
          msv_exposure_max_us: 33000
          gain_min           : 100
          gain_max           : 32000
          standby_enabled:     0
          decimator:           1
          independent_exposure:0
      
      fsync_en:            0
      fsync_gpio:          109
      =================================================================
      thread is locked to cores: 4 5 6 7
      connected to mavlink pipe
      Connected to cpu-monitor
      Starting Camera: boson (id #0)
      gbm_create_device(156): Info: backend name is: msm_drm
      MISP Initializing!!!
       Detected 1 platform(s)
       Detected 1 GPU device(s)
      Starting Camera: hires (id #1)
      ERROR:   Configure streams failed for camera: 1
      ERROR:   Failed to configure streams for camera: hires
      ERROR:   Failed to start camera: hires
      
      ------ voxl-camera-server: Started 1 of 2 cameras
      

      voxl-version:

      system-image: 1.8.04-M0054-14.1a-perf
      kernel:       #1 SMP PREEMPT Mon Mar 24 22:31:58 UTC 2025 4.19.125
      ────────────────────────────────────────────────────────────────────────────────
      hw platform:  M0054
      mach.var:     1.0.1
      SKU:          MCCA-M0054-C11-T0-M0-X0
      ────────────────────────────────────────────────────────────────────────────────
      voxl-suite:   1.5.1
      ────────────────────────────────────────────────────────────────────────────────
      Packages:
      Repo:  http://voxl-packages.modalai.com/ qrb5165 dev
      Last Updated: 2026-03-18 19:55:21
      List:
      libfc-sensor                1.0.7
      libmodal-cv                 0.5.18
      libmodal-exposure           0.1.4
      libmodal-journal            0.2.6
      libmodal-json               0.4.7
      libmodal-pipe               2.13.2
      libqrb5165-io               0.5.0
      libvoxl-cci-direct          0.3.3
      libvoxl-cutils              0.1.5
      modalai-slpi                1.2.0
      mv-voxl                     0.1-r0
      qrb5165-bind                0.1-r0
      qrb5165-dfs-server          0.2.0
      qrb5165-imu-server          1.1.3
      qrb5165-mini-tof-server     0.2.2
      qrb5165-rangefinder-server  0.1.5
      qrb5165-slpi-test-sig       01-r0
      qrb5165-system-tweaks       0.3.6
      qrb5165-tflite              2.8.0-2
      voxl-ardupilot              4.8.0-325875bb
      voxl-bind-spektrum          0.1.1
      voxl-camera-calibration     0.6.0
      voxl-camera-server          2.2.4
      voxl-ceres-solver           2:1.14.0-10
      voxl-configurator           1.0.3
      voxl-cpu-monitor            0.6.0
      voxl-docker-support         1.3.1
      voxl-elrs                   0.4.7
      voxl-esc                    1.5.4
      voxl-feature-tracker        0.5.2
      voxl-flow-server            0.3.6
      voxl-gphoto2-server         0.0.10
      voxl-joystick-server        0.0.6
      voxl-jpeg-turbo             2.1.3-7
      voxl-lepton-server          1.3.3
      voxl-lepton-tracker         0.0.4
      voxl-libgphoto2             0.0.4
      voxl-libuvc                 1.0.7
      voxl-logger                 0.5.3
      voxl-mavcam-manager         0.6.0
      voxl-mavlink                0.1.5
      voxl-mavlink-server         1.4.15-202603130958
      voxl-modem                  1.1.8
      voxl-mongoose               7.7.0-2
      voxl-mpa-to-ros             0.3.9
      voxl-mpa-tools              1.4.0
      voxl-open-vins              0.4.19
      voxl-open-vins-server       0.3.12
      voxl-opencv                 4.5.5-3
      voxl-osd                    0.1.8
      voxl-portal                 0.7.11
      voxl-px4                    1.14.0-2.0.105
      voxl-px4-params             0.7.6
      voxl-qvio-server            1.2.0
      voxl-remote-id              0.0.9
      voxl-reset-slpi             0.0.1
      voxl-state-estimator        0.0.5
      voxl-streamer               0.7.5
      voxl-suite                  1.5.1
      voxl-tag-detector           0.0.5
      voxl-tflite-server          0.4.1
      voxl-utils                  1.4.8
      voxl-uvc-server             0.1.7
      voxl-vision-hub             1.8.23
      voxl-vtx                    1.4.7
      voxl-wavemux                0.0.1
      voxl2-io                    0.0.3
      voxl2-system-image          1.8.04-r0
      voxl2-wlan                  1.0-r0
      

      @Alex-Kushleyev said in Hadron ov64b snapshots have a vertical image artifact:

      before saving the raw bayer, start the misp output stream, so that AE can actually process

      what do you mean by start the misp output stream?

      posted in Video and Image Sensors
      R
      restore
    • RE: Hadron ov64b snapshots have a vertical image artifact

      @Alex-Kushleyev thanks for your response!

      I will try these suggestions and let you know how it goes.

      I tested jpeg quality at 75 and 95 and did not notice much of a difference in sharpness.

      posted in Video and Image Sensors
      R
      restore
    • Hadron ov64b snapshots have a vertical image artifact

      We have our VOXL2 with Hadron connected on J8. We have everything setup and can capture images successfully. After taking a bunch of images we noticed a vertical artifact in the hires_snapshot that consistently appears in the same column of pixels (~340).

      Is this a data processing flaw? If so is there a way to diagnose / troubleshoot it? Here is my voxl-camera-server.conf and an example crop of the artifact.

      {
              "version":      0.1,
              "fsync_en":     false,
              "fsync_gpio":   109,
              "cameras":      [{
                              "type": "boson",
                              "name": "boson",
                              "enabled":      true,
                              "camera_id":    0,
                              "fps":  30,
                              "en_preview":   true,
                              "en_misp":      false,
                              "preview_width":        640,
                              "preview_height":       512,
                              "en_raw_preview":       true,
                              "en_small_video":       false,
                              "en_large_video":       false,
                              "ae_mode":      "off",
                              "en_rotate":    false,
                              "small_video_width":    640,
                              "small_video_height":   480,
                              "small_venc_mode":      "h264",
                              "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,
                              "small_venc_osd":       false,
                              "large_video_width":    -1,
                              "large_video_height":   -1,
                              "large_venc_mode":      "h264",
                              "large_venc_br_ctrl":   "cqp",
                              "large_venc_Qfixed":    40,
                              "large_venc_Qmin":      15,
                              "large_venc_Qmax":      50,
                              "large_venc_nPframes":  29,
                              "large_venc_mbps":      40,
                              "large_venc_osd":       false,
                              "misp_width":   -1,
                              "misp_height":  -1,
                              "misp_venc_enable":     true,
                              "misp_venc_mode":       "h264",
                              "misp_venc_br_ctrl":    "cqp",
                              "misp_venc_Qfixed":     30,
                              "misp_venc_Qmin":       15,
                              "misp_venc_Qmax":       50,
                              "misp_venc_nPframes":   29,
                              "misp_venc_mbps":       2,
                              "misp_venc_osd":        false,
                              "misp_awb":     "auto",
                              "misp_gamma":   1,
                              "gain_min":     54,
                              "gain_max":     8000
                      }, {
                              "type": "ov64b",
                              "name": "hires",
                              "enabled":      true,
                              "camera_id":    1,
                              "fps":  15,
                              "en_preview":   true,
                              "en_misp":      false,
                              "preview_width":        1920,
                              "preview_height":       1080,
                              "en_raw_preview":       false,
                              "en_small_video":       false,
                              "en_large_video":       false,
                              "en_snapshot":  true,
                              "ae_mode":      "isp",
                              "gain_min":     100,
                              "gain_max":     32000,
                              "small_video_width":    1024,
                              "small_video_height":   768,
                              "small_venc_mode":      "h264",
                              "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,
                              "small_venc_osd":       false,
                              "large_video_width":    3840,
                              "large_video_height":   2160,
                              "large_venc_mode":      "h264",
                              "large_venc_br_ctrl":   "cqp",
                              "large_venc_Qfixed":    40,
                              "large_venc_Qmin":      15,
                              "large_venc_Qmax":      50,
                              "large_venc_nPframes":  29,
                              "large_venc_mbps":      40,
                              "large_venc_osd":       false,
                              "en_snapshot_width":    9248,
                              "en_snapshot_height":   6944,
                              "exif_focal_length":    3.0999999046325684,
                              "exif_focal_length_in_35mm_format":     17,
                              "exif_fnumber": 1.2400000095367432,
                              "snapshot_jpeg_quality":        75,
                              "misp_width":   -1,
                              "misp_height":  -1,
                              "misp_venc_enable":     true,
                              "misp_venc_mode":       "h265",
                              "misp_venc_br_ctrl":    "cqp",
                              "misp_venc_Qfixed":     38,
                              "misp_venc_Qmin":       15,
                              "misp_venc_Qmax":       50,
                              "misp_venc_nPframes":   29,
                              "misp_venc_mbps":       30,
                              "misp_venc_osd":        false,
                              "misp_awb":     "auto",
                              "misp_gamma":   1.6
                      }]
      }
      

      d2a6eb7b-eab9-4286-b292-0d1813e0875e-image.png

      Additionally - we are noticing a soft focus on every image. Are there any camera-server parameters for the Hadron that could lead to this sort of effect? Image EXIF shows:

      9248 x 6944
      72 dpi
      24 bit
      3.1 mm
      f/1.24
      1/2500
      ISO 54
      EXP 0
      

      Lastly - are we able to capture RAW images from the hadron at full resolution?

      Thanks!

      posted in Video and Image Sensors
      R
      restore
    • RE: Trigger Hadron camera with DO_SET_CAM_TRIGG_DIST

      @Eric-Katzfey I configured the drone to have servo5 trigger the camera. When idle, servo 5 shows 1100. When triggered, it goes up to 1300. In the Mavlink messages I can now watch for SERVO_OUTPUT_RAW msg.servo5_raw and detect the rising edge which emulates the trigger.

      msg = master.recv_match(type='SERVO_OUTPUT_RAW', blocking=True, timeout=2)
      if not msg:
          continue
      pwm = msg.servo5_raw
      

      I have done this on a ground station using pymavlink to listen for messages. What is the best way to listen for this mavlink message on the VOXL2? Reminder - I am using Ardupilot.

      posted in VOXL 2
      R
      restore
    • RE: Trigger Hadron camera with DO_SET_CAM_TRIGG_DIST

      @Eric-Katzfey We have the Hadron configured with voxl-camera-server.conf

      "type": "ov64b",
      "name": "hires",
      ....
      "en_snapshot": true,
      ...
      

      so we can take images with voxl-send-command hires_snapshot snapshot

      I would love to configure the camera in Ardupilot with CAM1_TYPE and set DO_SET_CAM_TRIGG_DIST to a distance interval that I will capture images at.

      If that is not directly possible, could you help me with a way to create a sort of interface script that sits on VOXL2 that listens for GPIO relay triggers or something like that? Then I can just call the snapshot command when triggered.

      posted in VOXL 2
      R
      restore
    • Trigger Hadron camera with DO_SET_CAM_TRIGG_DIST

      I have a VOXL2 running ardupilot and have a Hadron camera connected and configured with voxl-camera-server. I can take snapshots successfully.

      I am trying to configure our drone to capture images at a specific distance interval during flight with the DO_SET_CAM_TRIGG_DIST parameter. Is there a way to do this with VOXL2 and ardupilot?

      Thanks!

      posted in VOXL 2
      R
      restore
    • RE: Issues Streaming and Taking Snapshots Simultaneously with OV64B on VOXL2 (Hadron 640 Setup)

      @Alex-Kushleyev thank you! It works now.

      posted in Ask your questions right here!
      R
      restore
    • Issues Streaming and Taking Snapshots Simultaneously with OV64B on VOXL2 (Hadron 640 Setup)

      Hi,
      I'm working with a VOXL2 and the FLIR Hadron 640 camera, and I'm trying to stream video from the OV64B sensor while taking snapshots at the same time.

      Initially, I attempted to use "en_preview": true along with "en_snapshot": true, but that configuration did not allow me to stream video. I assumed it might be a resolution constraint, so I modified the configuration to use "en_small_video": true and "en_snapshot": true instead.

      Now I can stream video, and when I enter the following command:
      voxl2:/data/snapshots$ voxl-send-command hires_snapshot
      Successfully sent command to /run/mpa/hires_snapshot/control
      In the voxl-camera-server terminal, I receive this error:
      ERROR: Camera: hires got unknown Command:
      However, when I enter:
      voxl2:/data/snapshots$ voxl-send-command hires_snapshot snapshot-no-save
      Successfully sent command to /run/mpa/hires_snapshot/control
      The camera server shows:
      ------ voxl-camera-server: Camera server is now running
      Camera: hires taking snapshot for pipe only (not saving it)
      But I’m unable to access the snapshot data, even after running adb pull.
      My Questions:
      Is it possible to stream and take snapshots simultaneously on the OV64B?

      What does the error message “Camera: hires got unknown Command” mean?

      How can I access the output of snapshot-no-save if it's not being saved to disk?

      Thanks in advance for your help!
      Below is my camera config code:
      {
      "version": 0.1,
      "fsync_en": false,
      "fsync_gpio": 109,
      "cameras": [
      {
      "type": "boson",
      "name": "boson",
      "enabled": true,
      "camera_id": 0,
      "fps": 30,
      "en_preview": true,
      "en_misp": false,
      "preview_width": 640,
      "preview_height": 512,
      "en_raw_preview": true,
      "en_small_video": false,
      "en_large_video": false,
      "ae_mode": "off"
      },
      {
      "type": "ov64b",
      "name": "hires",
      "enabled": true,
      "camera_id": 1,
      "fps": 15,
      "en_preview": false,
      "en_misp": false,
      "preview_width": 1920,
      "preview_height": 1080,
      "en_raw_preview": false,
      "en_small_video": true,
      "small_video_width": 1024,
      "small_video_height": 768,
      "small_venc_mode": "h265",
      "en_large_video": false,
      "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_snapshot": true,
      "en_snapshot_width": 1920,
      "en_snapshot_height": 1080,
      "ae_mode": "isp",
      "gain_min": 54,
      "gain_max": 32000
      }
      ]
      }

      posted in Ask your questions right here!
      R
      restore
    • Logging altitude and/or barometer

      I was wondering if there is a way to log altitude and/or barometer data similar to voxl-logger for imu data.

      Thanks

      posted in VOXL 2
      R
      restore
    • RE: VOXL2 detected landing at ~27m altitude and cut motors

      @Alex-Kushleyev yes you can reference the log

      posted in Ask your questions right here!
      R
      restore