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

    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
    • VOXL2 detected landing at ~27m altitude and cut motors

      We were attempting a tuning flight with a fresh rebuild and while checking stability all motors shut off, drone flipped and crashed inverted. Log attached, of note is in the logged messages "landing detected at 09:13 while it was approximately 27m in the air.

      https://review.px4.io/plot_app?log=6ad22692-fe3f-4cce-b8f0-a812d91bfa16

      Hardware:
      VOXL2
      FPV ESC
      Tmotor MN5006 450kv (params tuned for low kv)
      Doodle Meshrider radio
      Control via Jeti RC connected to GCS

      posted in Ask your questions right here!
      R
      restore
    • RE: IO board for PWM output using the 4in1 ESC M0138-1

      @Alex-Kushleyev I found that the parameters were just not used and once I set them with px4-param set PARAM_NAME param-value that they show up in QGC

      One that I am still stuck on though. I am looking for a parameter TRIG_PINS that is not in the list of params in px4-param show -a

      The default is 56 and I need to know how to map the pins to the PWM expansion board. From px4 documentation:

      TRIGGER_INTERFACE = 2
      "Enables the Seagull MAP2 interface. This allows the use of the Seagull MAP2 to interface to a multitude of supported cameras. Pin 1 of the MAP2 should be connected to the lower AUX pin of TRIG_PINS (therefore, pin 1 to AUX 5 and pin 2 to AUX 6 by default). In this mode, PX4 also supports automatic power control and keep-alive functionalities of Sony Multiport cameras like the QX-1."

      posted in VOXL 2 IO
      R
      restore
    • RE: IO board for PWM output using the 4in1 ESC M0138-1

      @Alex-Kushleyev I am looking to enable the seagull trigger in camera interfaces as shown here , but I do not see that option. I see that the interface is in the modalai repo but how do I enable it to show up in QGC?

      posted in VOXL 2 IO
      R
      restore
    • RE: IO board for PWM output using the 4in1 ESC M0138-1

      @Alex-Kushleyev Okay I can do some searching for how to setup the trigger.

      For the camera trigger.
      Neutral state is 1500 microseconds
      To trigger the camera, change the duty cycle to yield 1200 microseconds and hold that for one second before switching back to 1500 microseconds

      Is that something that can be done?

      posted in VOXL 2 IO
      R
      restore
    • RE: IO board for PWM output using the 4in1 ESC M0138-1

      @Alex-Kushleyev okay I upgraded px4 and updated the px4-start script - now see 8 pwm channels.

      I need to configure the camera trigger as shown in the image below (it is shown in mission planner and I am not sure how to do it in QGC)
      CameraTriggerConfig.JPG

      Can you please explain how I can configure the PWM output to trigger a shutter "pushed".

      Thanks!

      posted in VOXL 2 IO
      R
      restore
    • RE: IO board for PWM output using the 4in1 ESC M0138-1

      @Alex-Kushleyev we are all good on the RC front. We have the PWM expansion board and are trying to understand how to configure QGC. In the actuators tab, the I/O board is recognized but in the VOXL2 IO output tab it only shows 4 pwm channels that are all set to motors (which we don’t need). How can we use one of the other channels or configure one of the first 4 to provide a standard PWM that we can use for our camera trigger interface?

      posted in VOXL 2 IO
      R
      restore
    • RE: IO board for PWM output using the 4in1 ESC M0138-1

      @Alex-Kushleyev yes I am looking to output standard PWM signals. We have the VOXL2 I/O expander board (MDK-M0065). We originally got it for RC connection but we’re also hoping to use the PWM capability for camera triggering.

      posted in VOXL 2 IO
      R
      restore
    • IO board for PWM output using the 4in1 ESC M0138-1

      @Alex-Kushleyev I would like to use the IO board to output a PWM for this camera trigger adapter. I do not need it to control motors as we are using the FPV 4in1 ESC.

      Can you please give me instructions on how to configure voxl and QGC to output the PWM? Do I need to upgrade the IO board firmware?

      Thanks

      posted in VOXL 2 IO
      R
      restore
    • RE: PX4 params missing

      @riteshsharma do the SDK installation with ./install.sh -w option. This will wipe the entire file system including the /data partition which is usually untouched.

      posted in VOXL 2
      R
      restore
    • RE: PX4 params missing

      @tom a full wipe SDK install sorted it out. Thanks

      posted in VOXL 2
      R
      restore