Skip to content
VOXL® Developer Community

Build smaller, smarter, safer drones.

Ask the ModalAI engineering team, search thousands of solved threads, and share what you're flying — direct from the people who build VOXL.

3385Members
5257Topics
26540Posts
Browse

Categories

  • Not sure where your question goes? Ask here. ModalAI engineers and the community answer questions about any VOXL product.

    2k 11k
    2k Topics
    11k Posts
    Alex Z 1A
    Hello Community, We are building our first mission software. We have questions about potential data communication path from a stinger to a proposed ground station (windows laptop). Questions: WiFi - Can we TCP/IP link to the Stinger over a WiFi network while also enabling VTX video transmission to a fpv headset? We wish to leave SoftAP off and meet a static IP assignment request too as a client of a wifi network. RF - What is the supported way to send companion-generated observation data over this MVX RF link: approximately 0.5–2 KB per observation at 1 Hz, as compact binary or small JSON? Video and normal flight telemetry must continue operating. The onboard service may eventually run in a container with a native host adapter if required. Hardware: Aircraft: ModalAI Stinger Vision, VOXL 2 Mini; reported hardware platform M0104. Device-reported SKU: MRB-D0013-6-V1-C33-T8-M26-X0. VTX: M26 configuration, identified as MVX/M0185. RC receiver configuration: T8, M0184; RC=CRSF_RAW. Ground receiver: MVX VRX, currently used with an FPV headset; exact installed receiver SKU and firmware have not been collected. Software version: Saved output of voxl-version from the aircraft: ──────────────────────────────────────────────────────────────────────────────── system-image: 1.8.06-M0104-14.1a-perf kernel: #1 SMP PREEMPT Wed Oct 22 05:43:49 UTC 2025 4.19.125 ──────────────────────────────────────────────────────────────────────────────── hw platform: M0104 mach.var: 2.0.2 SKU: MRB-D0013-6-V1-C33-T8-M26-X0 ──────────────────────────────────────────────────────────────────────────────── voxl-suite: 1.6.0 ──────────────────────────────────────────────────────────────────────────────── Packages: Repo: http://voxl-packages.modalai.com/ ./dists/qrb5165/sdk-1.6/binary-arm64/ Last Updated: 2023-03-02 13:09:22 List: libfc-sensor 1.0.8 libmodal-cv 0.6.0 libmodal-exposure 0.1.4 libmodal-flow 1.0.3 libmodal-journal 0.2.7 libmodal-json 0.4.8 libmodal-pipe 2.14.8 libqrb5165-io 0.5.0 libvoxl-cci-direct 0.3.3 libvoxl-codec 0.0.1 libvoxl-cutils 0.1.6 modalai-slpi 1.2.2 mv-voxl 0.1-r0 qrb5165-bind 0.1-r0 qrb5165-dfs-server 0.2.0 qrb5165-imu-server 1.2.3 qrb5165-mini-tof-server 0.2.2 qrb5165-rangefinder-server 0.1.6 qrb5165-slpi-test-sig 01-r0 qrb5165-system-tweaks 0.3.11 qrb5165-tflite 2.17.2 voxl-bind-spektrum 0.1.1 voxl-camera-calibration 0.6.1 voxl-camera-server 2.2.16 voxl-ceres-solver 2:2.0.0-2 voxl-configurator 1.0.8 voxl-cpu-monitor 0.7.4 voxl-docker-support 1.3.1 voxl-elrs 0.4.14 voxl-esc 1.5.7 voxl-feature-tracker 0.5.2 voxl-flow-server 0.3.6 voxl-fpv-px4 1.14.0-8.121.0 voxl-gphoto2-server 0.0.10 voxl-io-server 0.0.6 voxl-jpeg-turbo 2.1.3-7 voxl-lepton-server 1.3.3 voxl-lepton-tracker 0.0.4 voxl-libgeographic 1.0.0 voxl-libgphoto2 0.0.4 voxl-libuvc 1.0.7 voxl-logger 0.6.0 voxl-mavcam-manager 0.6.0 voxl-mavlink 0.1.6 voxl-mavlink-server 1.4.12 voxl-modem 1.2.1 voxl-mongoose 7.19.0 voxl-mpa-to-ros 0.3.9 voxl-mpa-tools 1.5.3 voxl-open-vins-server 0.5.6 voxl-opencv 4.5.5-3 voxl-osd 0.2.0 voxl-portal 0.8.4 voxl-px4 1.14.0-2.0.121 voxl-px4-params 0.8.9 voxl-qvio-server 1.2.2 voxl-remote-id 0.0.9 voxl-reset-slpi 0.0.1 voxl-state-estimator 0.0.5 voxl-streamer 0.8.0 voxl-suite 1.6.0 voxl-tag-detector 0.0.5 voxl-tflite-server 0.5.0 voxl-utils 1.4.9 voxl-uvc-server 0.1.7 voxl-vision-hub 1.9.19 voxl-vtx 1.7.1 voxl-wavemux 0.0.3 voxl2-io 0.0.3 voxl2-security-hardening-utls 1.0-r0 voxl2-system-image 1.8.06-r0 voxl2-wlan 1.0-r0 ──────────────────────────────────────────────────────────────────────────────── Relevant saved configuration values: /etc/modalai/voxl-px4.conf: RC=CRSF_RAW /etc/modalai/voxl-vtx.conf: udp=false frequency=5805 bandwidth=20 enable_fec=true enable_pit=true mavlink_telem_rate_hz=30 active_profile_idx=0 profiles[0].source=hires_default_misp_encoded These are observed settings, not a claim that RF forwarding was running. The 30 Hz value is a configured telemetry cadence, not measured application throughput. No Docker executable was found during this inspection; container deployment is planned. What I am trying to do: Send timestamped, identified observations from an onboard companion application to ground control station (GCS) laptop over the existing MVX RF link while video and pilot RC remain active. Each observation is approximately 0.5–2 KB at approximately 1 Hz. The GCS will reassemble/validate observations and distribute them to local subscribers. We need the supported injection interface, payload envelope, forwarding behavior and matching firmware versions. What actually happens: We have not yet identified and exercised a supported companion-to-VTX injection API. Static inspection shows MAVLink handling through mavlink_onboard and suggests batching by message ID, but neither observation establishes end-to-end custom-payload delivery. The receiver has not been connected to our diagnostic computer for a packet capture. There is therefore no reproduced custom-message error or confirmed packet-loss measurement to report; this is an integration/support question before implementing the transmitter.
  • VOXL 2, VOXL 2 Mini and VOXL 2 IO: bring-up, connectors, power, cameras, system image and SDK installs on the current compute platform.

    651 4k
    651 Topics
    4k Posts
    J
    Hardware: VOXL2, M0154 (2023 revision), SKU TF-M0054-4-V1-C11 Software: voxl-suite 1.6.5, system-image 1.8.08-M0054-14.1a-perf, kernel 4.19.125 Camera: FLIR Boson (FLIR vendor ID 09cb), connected via UVC/USB2 directly to VOXL2's internal USB2 host port (not via M0153 MIPI adapter) Comparison unit: an older VOXL2 M0054 (2021) with the same setup DOES NOT show this problem. SYMPTOM Board hard-freezes (not a clean reboot) within ~30-100s of the camera actively streaming, when the camera is connected directly to the internal USB2 port (no hub in between). Freeze is total: kernel logging, journald, and an independent on-device background process (unrelated to camera/USB) all stop simultaneously with zero warning in dmesg/journal beforehand. No panic, no watchdog trace, no lockup/stall message — just silence. The board does not self-recover; only a manual power cycle brings it back. Confirmed via app-level logs too: buffered log writes already visible on a live tail -f are lost from disk after recovery, showing the whole system (including the kernel's own writeback) stopped instantly with no chance to flush. Observed at the moment of freeze: power LED stays solid on; camera's own LED goes dark — suggesting the camera's specific USB port power rail is what actually loses power, not the whole board. This problem happens repeatedly on two different M0154 boards, but does not happen on M0054 boards. REPRODUCTION Connect Boson camera directly to VOXL2 internal USB2 port (no hub). Stream from the camera (e.g. continuous V4L2 capture). With no USB-C cable to a host connected: board freezes within roughly 30-100 seconds, unrecoverable without power cycle. With USB-C cable connected then disconnected mid-stream: also reproduces (sometimes as a clean PMIC SMPL/UVLO reset with automatic reboot, sometimes as the hard freeze above — inconsistent). WORKAROUND FOUND Placing a plain bus-powered USB2 hub (Genesys Logic 4-port, 05e3:0610) between the camera and the internal port fixes it completely — board survives indefinitely, with or without a USB-C cable connected. This points to the internal USB2 rail feeding that port not having enough local current/transient capability for the Boson's direct USB draw; the hub's own local bulk capacitance/current-limited power switch appears to absorb what the internal rail can't. ANOTHER WORKAROUND Connect any device to the USB-C output - it can be a laptop, a USB storage device or even a USB hub with nothing connected to it. In such a case, there will be no resets. ADDITIONAL NOTES No working hardware watchdog was found on this unit: /dev/watchdog does not exist, and msm_watchdog logs "wdog absent resource not present" at boot — so any future hang, from this or any other cause, also won't self-recover. Docs note M0154 is the revision where the USB-C port's host-mode support was brought to parity with VOXL2 Mini (M0054 didn't support USB-C host the same way) — asking in case that host-mode rework touched this same internal USB2 power path. Separately, after extended testing, this unit's USB-C debug port has stopped enumerating on a host entirely (no lsusb/adb activity at all, even after full power cycle) — possibly unrelated connector/PHY damage from repeated stress, flagging in case it's relevant to the same root cause. QUESTION: Is there a known current/power budget limitation on VOXL2's internal USB2 port when powering the Boson directly (vs. via the M0153 MIPI adapter path), and did anything on that specific power rail change between M0054 and M0154?
  • Starling 2, Starling 2 Max, Sentinel, Seeker, m500, RB5, the PX4 Autonomy Developer Kit and Stinger FPV: flying, tuning, repairs and spare parts.

    638 3k
    638 Topics
    3k Posts
    chiu pkC
    Hi ModalAI team, I am experiencing a serious random reboot issue on a Starling 2 / VOXL2. The issue does not happen on every flight. Typically, the vehicle can fly several times normally, and then VOXL2 suddenly reboots during a later flight. When this happens, the vehicle immediately loses control and falls because PX4/Offboard also disappears during the reboot. System information Platform: Starling 2 / VOXL2 VOXL2: M0054-1, QRB5165M VOXL Suite: 1.6.4 System image: 1.8.08-M0054-14.1a-perf Kernel: 4.19.125 PX4 running through voxl-px4.service Indoor flight without GPS OpenVINS + Vision Hub PMD ToF rangefinder 4x VOXL ESC Reboot confirmation Immediately after the latest event: $ uptime 15:58:55 up 7 min $ cat /proc/uptime 467.18 2576.05 This places the reboot at approximately 15:51. The services also restarted at approximately the same time: voxl-open-vins-server : ~15:51:15 voxl-vision-hub : ~15:51:15 voxl-px4 : ~15:51:17 Therefore, this does not appear to be only an OpenVINS reset or a PX4 service restart. The complete Linux system rebooted. PMIC reset reason The most interesting information from the new boot is: qcom,qpnp-power-on ... pm8150@0: PMIC@SID0 Power-on reason: Triggered from CBL (External Power Supply) and 'cold' boot PMIC@SID0: Unknown power-off reason qcom,qpnp-power-on ... pm8150b@2: PMIC@SID2 Power-on reason: Triggered from CBL (External Power Supply) and 'cold' boot PMIC@SID2: Unknown power-off reason qcom,qpnp-power-on ... pm8150l@4: PMIC@SID4 Power-on reason: Triggered from PON1 (Secondary PMIC) and 'cold' boot PMIC@SID4 Power-off reason: Triggered from S3_RESET_PBS_WATCHDOG_TO The kernel also reports: msm_watchdog 17c10000.qcom,wdt: MSM Watchdog Initialized However, there is no /dev/watchdog* or /sys/class/watchdog/ interface available on this image. Could you clarify what conditions on VOXL2 / QRB5165M + PM8150L can cause: S3_RESET_PBS_WATCHDOG_TO and whether this reset reason indicates a known VOXL2 hardware, PMIC, subsystem, or firmware issue? Previous SLPI failure I previously observed a separate failure on this same system involving SLPI / IMU communication. The log included messages similar to: ERROR [muorb] Sending kill command to SLPI!!! Accel #0 fail: TIMEOUT! Keep alive timeout from Apps Created /data/px4/slpi/keepalive_fail Forcing blind descent / land In that previous case, /data/px4/slpi/keepalive_fail was created. For the latest full-system reboot described above, /data/px4/slpi/ is empty after reboot: $ ls -lah /data/px4/slpi/ total 8.0K drwxr-xr-x 2 system system 4.0K Sep 21 11:47 . drwxr-xr-x 6 root root 4.0K Sep 15 16:16 .. I am therefore wondering whether the earlier SLPI/SSC failure and the current PMIC watchdog reset could be related. Wi-Fi behavior after the abnormal reboot There is another repeatable symptom that may be relevant. After this abnormal reboot, Linux/VOXL2 comes back up, but Wi-Fi does not recover correctly. A normal reboot/power-up normally provides Wi-Fi access, but after this failure the Wi-Fi connection remains unavailable. I have to completely remove power from VOXL2 and power it on again before Wi-Fi works normally. So the observed sequence is: Normal operation ↓ Several flights ↓ Unexpected reset during flight ↓ VOXL2 performs a full/cold reboot ↓ Linux/PX4 services restart ↓ Wi-Fi does not recover ↓ Complete physical power cycle ↓ Wi-Fi works again This makes me suspect that some subsystem or peripheral may not be completely reset by the abnormal reset sequence. Temperature and system load Immediately after reboot, system temperatures and load were normal: CPU temperature: ~53 C GPU temperature: ~51 C CPU utilization: ~28% Memory usage: ~2.2 GB / 7.7 GB Therefore, I do not currently see evidence of a thermal shutdown or memory exhaustion. ESC status All four ESCs were online after reboot: esc_count: 4 esc_online_flags: 15 esc_armed_flags: 15 ESC temperature: ~46 C esc_errorcount: 0 failures: 0 Battery information At the time I checked after the event: voltage_v: 6.274 V cell_count: 2 remaining: 0.27263 The ESCs reported approximately: 6.256 - 6.276 V I understand that this is a low battery voltage, so I am also investigating possible voltage sag / power integrity issues under motor load. However, I would particularly like to understand whether a simple input power/brownout condition would normally produce: S3_RESET_PBS_WATCHDOG_TO or whether a different PMIC reason such as UVLO would normally be expected. Questions What exactly causes S3_RESET_PBS_WATCHDOG_TO on the VOXL2 QRB5165M / PM8150L platform? Is this a known issue on VOXL2, system image 1.8.08, or VOXL Suite 1.6.4? Could an SLPI/SSC subsystem hang eventually result in this type of full-system reset? Could a short input voltage drop/brownout produce S3_RESET_PBS_WATCHDOG_TO, or should we expect a different PMIC reset reason such as UVLO? Could the fact that Wi-Fi remains unavailable after the abnormal reboot, but recovers after a complete power cycle, indicate that a peripheral/power domain is not being completely reset? Are there any additional Qualcomm crash dump, PMIC, watchdog, minidump, or reset-reason logs that we can enable or collect to determine the root cause before the next occurrence? This is currently preventing further flight testing because a VOXL2 reboot during flight causes an immediate loss of control and the vehicle falls. Any guidance on additional debugging steps or logs to collect would be greatly appreciated.
  • Flight Core, Flight Core v2, Flight Core ArduPilot, the original VOXL, VOXL Flight, VOXL Flight Deck, VOXL-CAM and the older dev kits.

    433 2k
    433 Topics
    2k Posts
    Alex KushleyevA
    @qqa , we have document how to achieve folder-level encryption on VOXL2 here : https://docs.modalai.com/enabling-file-encryption/ . Please let us know if you have any other questions.
  • ESCs, image sensors, ToF and tracking cameras, Microhard and cellular modems, power modules, GPS and other add-on boards.

    395 2k
    395 Topics
    2k Posts
    A
    Hardware: (board / drone / SKU, serial # if you have it) VOXL2 (Custom drone) Software version: (paste the output of voxl-version) dpkg-query: package 'voxl-suite' is not installed and no information is available Use dpkg --info (= dpkg-deb --info) to examine archive files, and dpkg --contents (= dpkg-deb --contents) to list their contents. -------------------------------------------------------------------------------- system-image: 1.8.02-M0054-14.1a-perf kernel: #1 SMP PREEMPT Mon Nov 11 22:47:44 UTC 2024 4.19.125 -------------------------------------------------------------------------------- hw platform: M0054 mach.var: 1.0.1 -------------------------------------------------------------------------------- voxl-suite: -------------------------------------------------------------------------------- Packages: Repo: http://voxl-packages.modalai.com/ qrb5165 sdk-1.6 Last Updated: 2026-09-08 20:00:54 List: kernel-module-voxl-fsync-mod-4.19.125 1.0-r0 kernel-module-voxl-gpio-mod-4.19.125 1.0-r0 kernel-module-voxl-platform-mod-4.19.125 1.0-r0 libfc-sensor 1.0.12-202603311017 libmodal-cv 0.6.1 libmodal-exposure 0.1.5 libmodal-flow 1.0.5 libmodal-journal 0.2.7 libmodal-json 0.4.8 libmodal-pipe 2.14.12 libqrb5165-io 0.6.3 libvoxl-cci-direct 0.4.0 libvoxl-codec 0.1.1 libvoxl-cutils 0.1.6 modalai-slpi 1.2.3-202604071122 mv-voxl 0.1-r0 qrb5165-bind 0.1-r0 qrb5165-dfs-server 0.2.0 qrb5165-imu-server 1.2.4 qrb5165-mini-tof-server 0.2.2-apoorv qrb5165-rangefinder-server 0.1.6 qrb5165-slpi-test-sig 01-r0 qrb5165-system-tweaks 0.3.4 qrb5165-tflite 2.8.0-2 voxl-bind-spektrum 0.1.1 voxl-camera-calibration 0.6.2 voxl-camera-server 2.2.29 voxl-ceres-solver 2:2.0.0-3 voxl-configurator 1.1.35 voxl-cpu-monitor 0.7.7 voxl-docker-support 1.3.1 voxl-elrs 1.1.7 voxl-esc 1.6.3 voxl-esptool 0.2.1 voxl-fsync-mod 1.0-r0 voxl-gphoto2-server 0.0.10 voxl-gpio-mod 1.0-r0 voxl-io-server 0.1.3 voxl-jpeg-turbo 2.1.3-7 voxl-lepton-server 1.4.1 voxl-libgeographic 1.0.0 voxl-libgphoto2 0.0.4 voxl-libuvc 1.0.7 voxl-logger 0.6.5-202607281100 voxl-mapper 0.2.4 voxl-mavcam-manager 0.6.1 voxl-mavlink 0.1.6 voxl-mavlink-server 1.4.16 voxl-microdds-agent 3.0.0-0 voxl-modem 1.2.5 voxl-mongoose 7.19.0-1 voxl-mpa-to-ros2 0.0.7-202511100959 voxl-mpa-tools 1.5.8 voxl-nlopt 2.5.0-5 voxl-open-vins-server 0.6.2 voxl-opencv 4.5.5-3 voxl-osd 0.4.12 voxl-platform-mod 1.0-r0 voxl-portal 0.9.4 voxl-px4 1.14.0-2.0.134 voxl-px4-imu-server 0.1.2 voxl-px4-params 0.9.15 voxl-remote-id 0.0.9 voxl-reset-slpi 0.0.4-202603311011 voxl-ros2-foxy 0.0.1-202511141235 voxl-streamer 0.8.1 voxl-tag-detector 0.1.0-custom voxl-tflite-server 0.5.1 voxl-utils 1.4.4 voxl-uvc-server 0.1.8 voxl-vision-hub 1.9.21 voxl-voxblox 1.1.5 voxl-vtx 2.2.42 voxl2-io 0.0.3 voxl2-system-image 1.8.02-r0 voxl2-wlan 1.0-r0 -------------------------------------------------------------------------------- Configuration / services: (paste the output of voxl-inspect-services) voxl2:~$ voxl-inspect-services Scanning services... Service Name | Enabled | Running | CPU Usage ------------------------------------------------------------------- docker-autorun | Disabled | Not Running | modallink-relink | Disabled | Not Running | voxl-camera-server | Enabled | Not Running | voxl-cpu-monitor | Enabled | Running | 1.2% voxl-dfs-server | Disabled | Not Running | voxl-imu-server | Enabled | Running | 3.1% voxl-io-server | Disabled | Not Running | voxl-lepton-server | Disabled | Not Running | voxl-logger-auto | Disabled | Not Running | voxl-logger | Disabled | Not Running | voxl-mapper | Disabled | Not Running | voxl-mavcam-manager | Disabled | Not Running | voxl-mavlink-server | Enabled | Running | 3.1% voxl-microdds-agent | Enabled | Running | 6.5% voxl-mini-tof-server | Disabled | Not Running | voxl-modem-doodle | Disabled | Not Running | voxl-modem | Disabled | Not Running | voxl-mpa-to-ros2 | Enabled | Running | 0.0% voxl-open-vins-server | Disabled | Not Running | voxl-osd | Disabled | Not Running | voxl-portal | Enabled | Running | 0.1% voxl-px4-imu-server | Disabled | Not Running | voxl-px4 | Enabled | Running | 44.4% voxl-rangefinder-server | Disabled | Not Running | voxl-remote-id | Disabled | Not Running | voxl-softap | Disabled | Not Running | voxl-static-ip | Disabled | Not Running | voxl-streamer | Enabled | Running | 0.0% voxl-tag-detector | Enabled | Running | 0.0% voxl-tflite-server | Disabled | Not Running | voxl-time-sync | Disabled | Not Running | voxl-uvc-server | Disabled | Not Running | voxl-vision-hub | Enabled | Running | 2.2% voxl-vrx | Disabled | Not Running | voxl-vtx | Disabled | Not Running | voxl-wait-for-fs | Enabled | Completed | What I am trying to do: Run a tracking down and tracking front camera What actually happens: (error messages, behavior) When running voxl-camera-server, the service just aborts, log below: voxl2:~$ voxl-camera-server Setting MISP AWB to Auto MISP channels enabled in defaults : 0 MISP channels enabled in config file: 0 Setting MISP AWB to Auto MISP channels enabled in defaults : 0 MISP channels enabled in config file: 0 ================================================================= configuration for 2 cameras: cam #0 name: tracking_front type: ar0144 bayer_type: 0 enabled: 1 camera_id: 0 camera_id_second: -1 fps: 30 en_rotate: 0 en_rotate2: 0 en_preview: 1 en_raw_preview: 1 preview_width: 1280 preview_height: 800 en_misp: 1 misp_width: 1280 misp_height: 800 demosaic: auto en_small_video: 0 small_video_width: -1 small_video_height: -1 en_large_video: 0 large_video_width: -1 large_video_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: lme_msv msv_exposure_min_us: 20 msv_exposure_max_us: 12000 gain_min : 54 gain_max : 8000 standby_enabled: 0 decimator: 1 independent_exposure:0 cam #1 name: tracking_down type: ar0144 bayer_type: 0 enabled: 1 camera_id: 1 camera_id_second: -1 fps: 30 en_rotate: 0 en_rotate2: 0 en_preview: 1 en_raw_preview: 1 preview_width: 1280 preview_height: 800 en_misp: 1 misp_width: 1280 misp_height: 800 demosaic: auto en_small_video: 0 small_video_width: -1 small_video_height: -1 en_large_video: 0 large_video_width: -1 large_video_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: lme_msv msv_exposure_min_us: 20 msv_exposure_max_us: 12000 gain_min : 54 gain_max : 8000 standby_enabled: 0 decimator: 1 independent_exposure:0 fsync_en: 0 fsync_gpio: 109 ================================================================= Cam idx: 0, Cam slot: 1, Slave Address: 0x0030, Sensor Id: 0x0356 Cam idx: 1, Cam slot: 6, Slave Address: 0x0030, Sensor Id: 0x0356 thread is locked to cores: 4 5 6 7 connected to mavlink pipe Connected to cpu-monitor Starting Camera: tracking_front (id #0) ModalExposureMSV: initializing for camera name tracking_front type ar0144 gbm_create_device(156): Info: backend name is: msm_drm MISP Initializing for camera tracking_front Detected 1 platform(s) Detected 1 GPU device(s) Estimated imu dt = 0.000977s ERROR in json_from_yaml, failed to open file MISP: Loading intrinsics cal file tracking_front_intrinsics.yml for camera tracking_front, ret -1 WARNING: Lens calibration for camera tracking_front is missing (tracking_front_intrinsics.yml). Using defaults: Creating VOXL Video Encoder: 1280x800 H265, CH_OUT: -1776841196, numInputBufs: 16 gbm_create_device(156): Info: backend name is: msm_drm WARNING: OMX SetTargetBitrate: H265 CBR requires bps >= 3.0Mbit (1200000 bps provided). Using FPS hack. scale = 2.500000 Starting Camera: tracking_down (id #1) ModalExposureMSV: initializing for camera name tracking_down type ar0144 MISP Initializing for camera tracking_down ERROR in json_from_yaml, failed to open file MISP: Loading intrinsics cal file tracking_down_intrinsics.yml for camera tracking_down, ret -1 WARNING: Lens calibration for camera tracking_down is missing (tracking_down_intrinsics.yml). Using defaults: Creating VOXL Video Encoder: 1280x800 H265, CH_OUT: -1759368012, numInputBufs: 16 gbm_create_device(156): Info: backend name is: msm_drm WARNING: OMX SetTargetBitrate: H265 CBR requires bps >= 3.0Mbit (1200000 bps provided). Using FPS hack. scale = 2.500000 ------ voxl-camera-server: Started 2 of 2 cameras ------ voxl-camera-server: Camera server is now running Aborted The last Aborted comes after a couple of seconds What is interesting to note, is that the camera server start working after a couple of systemctl restart voxl-camera-server commands, both the tracking down and tracking front camera feeds show up in voxl-portal Steps to reproduce: Heres how my /data/modalai/custom_acmera_config.txt is defined: #!/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="" J6_LOWER_NAME="" J6_LOWER_ROTATE="false" J6_UPPER_SENSOR="ar0144" J6_UPPER_NAME="tracking_front" J6_UPPER_ROTATE="false" J6_LOWER_COMBO1_SENSOR="ar0144-fsin-combo" J6_LOWER_COMBO1_NAME="tracking_down" J6_LOWER_COMBO1_ROTATE="false" J7_LOWER_SENSOR="" J7_LOWER_NAME="" J7_LOWER_ROTATE="false" J7_UPPER_SENSOR="" J7_UPPER_NAME="" J7_UPPER_ROTATE="false" J8_LOWER_SENSOR="" J8_LOWER_NAME="" J8_LOWER_ROTATE="false" J8_UPPER_SENSOR="" J8_UPPER_NAME="" J8_UPPER_ROTATE="false" Logs / pictures: (attach files; PX4 logs -> https://logs.px4.io) Heres how the voxl-camera-server.conf is defined: /** * voxl-camera-server Configuration File * * Each camera has configurations for up to 4 HAL3 streams: * - `preview` stream for raw unprocessed images from CV cameras * - `small_video` 720p (ish) h264/h265 compressed for fpv video streaming * - `large_video` 4k (ish) h264/h265 for onboard video recording to disk * - `snapshot` ISP-processed JPG snapshots that get saved to disk * * on QRB5165 platforms (VOXL2 and VOXL2 mini) you can only have 3 of the 4 enabled * * This file is generated from default values by voxl-configure-cameras. * Do not expect arbitrary resolutions to work, the ISP and video compression * pipelines only support very specific resolutions. * * The default video compression mode is cqp or Constant Quantization Parameter * * * */ { "version": 0.1, "fsync_en": false, "fsync_gpio": 109, "cameras": [{ "type": "ar0144", "name": "tracking_front", "enabled": true, "camera_id": 0, "fps": 30, "en_rotate": false, "en_preview": true, "preview_width": 1280, "preview_height": 800, "en_raw_preview": true, "en_misp": true, "misp_width": 1280, "misp_height": 800, "misp_venc_enable": true, "misp_venc_mode": "h265", "misp_venc_br_ctrl": "cbr", "misp_venc_Qfixed": 38, "misp_venc_Qmin": 15, "misp_venc_Qmax": 50, "misp_venc_nPframes": 9, "misp_venc_irPeriod": 0, "misp_venc_irPeriodType": 1, "misp_venc_mbps": 1.2, "misp_awb": "auto", "misp_gamma": 1, "misp_zoom": 1, "demosaic": "auto", "ae_mode": "lme_msv", "gain_min": 54, "gain_max": 8000, "ae_desired_msv": 60, "exposure_min_us": 20, "exposure_max_us": 12000, "exposure_soft_min_us": 5000, "ae_filter_alpha": 0.6, "ae_ignore_fraction": 0.2, "ae_slope": 0.05, "ae_exposure_period": 1, "ae_gain_period": 1 }, { "type": "ar0144", "name": "tracking_down", "enabled": true, "camera_id": 1, "fps": 30, "en_rotate": false, "en_preview": true, "preview_width": 1280, "preview_height": 800, "en_raw_preview": true, "en_misp": true, "misp_width": 1280, "misp_height": 800, "misp_venc_enable": true, "misp_venc_mode": "h265", "misp_venc_br_ctrl": "cbr", "misp_venc_Qfixed": 38, "misp_venc_Qmin": 15, "misp_venc_Qmax": 50, "misp_venc_nPframes": 9, "misp_venc_irPeriod": 0, "misp_venc_irPeriodType": 1, "misp_venc_mbps": 1.2, "misp_awb": "auto", "misp_gamma": 1, "misp_zoom": 1, "demosaic": "auto", "ae_mode": "lme_msv", "gain_min": 54, "gain_max": 8000, "ae_desired_msv": 60, "exposure_min_us": 20, "exposure_max_us": 12000, "exposure_soft_min_us": 5000, "ae_filter_alpha": 0.6, "ae_ignore_fraction": 0.2, "ae_slope": 0.05, "ae_exposure_period": 1, "ae_gain_period": 1 }] }
  • voxl-sdk releases, MPA services, camera and video pipelines, Remote ID, and building and deploying your own software on VOXL.

    389 2k
    389 Topics
    2k Posts
    Alex KushleyevA
    Hello @ישראל-בן-שלמה , Please see some options below and the recommendations at the end. For reliable VIO, we recommend dual tracking cameras. The tracking cameras are very light, so the extra 3 grams will give you lots of safety margin AR0144 is probably the best option since this is what we use. 2.2g with 80mm coax cable OV7251 camera (M0014) is probably the smallest (it is lower resolution also 640x480 vs 1280x800 for AR0144). ov7251 is EOL but it looks like we have some in stock. the weight of M0014 module is 0.5g (with the flex cable). However, to connect it to VOXL2 / mini, you would need an interposer like M0076 (0.6g) ( or M0135 (1.0g) IMX214 (M0025 module, https://docs.modalai.com/M0025/ ) may be the lightest 4K camera we have (0.7g with flex cable), but it is very old and sensor + lens quality is very far from our newer (and heavier) IMX412- and IMX664-based camera modules. Flir Boson 320 is a bit heavy too. The one i have with lens is about 23g. Most of the weight is the lens, i think. for connecting Boson to a Voxl2 Mini, you should use M0194 ( https://www.modalai.com/products/m0194 ) Boson → M0201 → coax → M0194 → VOXL 2 Mini J6 or J7? you can plug in another camera into M0194, such as AR0144 (coax version) or the IMX412 (coax version) The best option in terms of support (no EOL components) and hardware quality, would probably be: VOXL2 Mini (11g) M0195 (5.0g) -- see C43 configuration : https://docs.modalai.com/M0195/ Boson + M0201 + coax -> plugs directly into M0195. weight of M0201 + 80mm coax is 1.7g + 0.7g = 2.4g. Need to add weight of Boson! one or two AR0144 (M0166) -- 2.2g with 80mm cable (each) hires camera (IMX412) M0161 : 8.5g with 800mm coax cable Minimal Config VOXL2 Mini (11g) M0194 plugged into J7 (1.4g) + 80mm coax (0.7g) + M0201 (1.7g) + weight of Boson M0166 AR0144 (2.2g with 80mm coax) plugged into M0194 M0076 (0.6g) plugged into VOXL2 mini J6 M0025 IMX214 camera (0.7g) plugged into M0076 ** note that this is mixing the coax and non-coax cameras, but i think this should work. we would need to give this a quick test to make sure. Alex
  • GPS-denied navigation with VIO, AprilTag relocalization, mapping and path planning, and obstacle avoidance.

    97 460
    97 Topics
    460 Posts
    阿峰
    Hardware: Not purchased yet (pre-purchase question). Planned configuration: Starling 2 Max GPS-denied Development Drone, with Battery Pack and Controller Camera Config: Dual 4K & Dual Tracking & TOF (C29) Radio Config: Microhard pMDDL2450 and ELRS 915 MHz Software version: N/A (pre-purchase). Planning to use the latest SDK (1.6.3 or later, for voxl-nano-tracker). Configuration / services: N/A (pre-purchase). Planned services: voxl-tflite-server, voxl-nano-tracker, voxl-vision-hub (offboard mode). What I am trying to do: Develop autonomous visual tracking so the drone can actively follow people and vehicles (vision-based, not GPS-based follow-me). My questions: voxl-nano-tracker (AOI Yaw Tracking) currently controls yaw to keep the target centered. Does it, or any other example, support translational following (holding distance and altitude to a moving target)? I noticed parameters such as forward_vel and z_vel in the config. Are they used, or reserved for future features? In topic 1873 (2023), a ready-made follow-me solution was not available. Has anything changed since nano-tracker was released? Is there any reference code or recommended architecture for a full visual follow-me on Starling 2 Max? Is nano-tracker fully supported on the C29 configuration, and which camera is recommended as its input? What actually happens: N/A (not tested yet). However, topic 4560 reports that on Starling 2, offboard_mode: follow_tag makes the drone yaw right and fly away from the tag instead of toward it. Has this been fixed in the current SDK? I'd like to use this example as a starting point for my follow controller. Steps to reproduce: N/A Logs / pictures: N/A Thanks in advance
  • Answers to the questions we get most often, written by ModalAI.

    64 292
    64 Topics
    292 Posts
    J
    Hello. Can a Starling 2 drone autonomously fly while flying over the pipe inside a sewer? The drone must fly autonomously in a dark place to inspect cracks or internal conditions while flying along the water pipe. I'm not sure if this feature can run on Starling, so I'm asking for help!
  • Have an idea for our products or software you would like to see implemented? Tell us here.

    25 88
    25 Topics
    88 Posts
    Serhii RovnyiS
    Hello everyone, I am looking for some expert advice on a VOXL 2 companion computer setup for a long-range platform. I have two main integration challenges: Challenge A: VIO at Higher Altitudes To solve the motion blur and pixel density issues at higher altitudes, I am planning a 6-camera configuration. I want to use 4 downward-facing sensors (2 daylight + 2 IR) equipped with narrow-angle lenses, alongside 2 standard wide-angle sensors (front and rear). Could you advise on the best supported sensors (e.g., IMX series) for this? Has anyone successfully tuned the voxl-qvio-server for narrow-angle lenses, and what were the altitude limits you achieved? Challenge B: LAN Integration & WireGuard The payload data flow will be: External RTSP Camera -> Ethernet -> VOXL 2 (WireGuard encryption) -> Ethernet -> Digital RX. Because VOXL 2 lacks multiple LAN ports, I will need a miniature industrial Ethernet switch. Does ModalAI have any tested hardware recommendations for this? Furthermore, what is the best practice for routing this VPN traffic through the VOXL 2 Ubuntu environment without bottlenecking the CPU? We are currently evaluating the VOXL 2 for a broader fleet deployment and want to ensure the ecosystem can support this custom optics requirement. Any feedback on off-the-shelf solutions or standard configurations for this use case would be greatly appreciated. Thank you!
  • Ask ModalAI to review your PCB, connector choices or system architecture before you build, and find 3D models of our products.

    51 145
    51 Topics
    145 Posts
    VinnyV
    Hi, This post is quite old now, so going to mark it as resolved. If it is not, please start a new topic in the correct category for your needs. Thanks!