Skip to content

VOXL 2 and VOXL 2 Mini

654 Topics 3.7k Posts

VOXL 2, VOXL 2 Mini and VOXL 2 IO: bring-up, connectors, power, cameras, system image and SDK installs on the current compute platform.

  • AprilTag Localization not affecting static coordinate system

    Unsolved voxl-2
    1
    0 Votes
    1 Posts
    603 Views
    No one has replied
  • Modal AI Schematic Review

    Unsolved voxl-2
    2
    0 Votes
    2 Posts
    1k Views
    VinnyV
    Hi @austin-c Sorry I missed this message somehow. I will email you to kick this off with your team.
  • Moving functions from J19 legacy or high speed B2B

    Unsolved voxl-2
    2
    0 Votes
    2 Posts
    907 Views
    Alex KushleyevA
    @austin-c , The GPS driver is built for SLPI as well as APPS PROC, so you could connect it to a apps-proc UART and start the driver on the apps proc side of PX4. This was done on RB5 : https://docs.modalai.com/Qualcomm-Flight-RB5-linux-user-guide/ https://docs.modalai.com/voxl2-linux-user-guide/ Regarding magnetometer, just like with the GPS driver, you should be able to enable the mag driver to build for apps proc. Since the apps proc i2c uses standard posix interface, it should just work. However, i don't think we have ever tried it. Alex
  • Trigger Hadron camera with DO_SET_CAM_TRIGG_DIST

    Unsolved voxl-2
    6
    0 Votes
    6 Posts
    1k Views
    Eric KatzfeyE
    @restore There are a few examples of code that listens for Mavlink messages in our SDK. For example, in voxl-mpa-tools, take a look at the source code for voxl-inspect-mavlink.c. https://gitlab.com/voxl-public/voxl-sdk/utilities/voxl-mpa-tools/-/blob/master/tools/voxl-inspect-mavlink.c?ref_type=heads Probably would be a good idea to run voxl-inspect-mavlink on the mavlink_onboard and mavlink_to_gcs pipes to see which one has the desired Mavlink message in it. Then create your own application that listens for the Mavlink message on that pipe.
  • MAG SDA 3P3V shorted to ground

    Unsolved voxl-2-mini
    4
    0 Votes
    4 Posts
    930 Views
    Eric KatzfeyE
    @cbay voxl-fpv-px4 is based on voxl-px4 but has some custom tuning code / parameters for our fpv drones that isn't in voxl-px4. So, it's kind of a superset. But there isn't anything related to low level i2c drivers so I have no idea how that could be causing this issue.
  • Recommendations on Custom Build

    Unsolved voxl-2
    1
    0 Votes
    1 Posts
    193 Views
    No one has replied
  • No detections when running custom YOLOv8 model on voxl-tflite-server

    Unsolved voxl-2
    17
    0 Votes
    17 Posts
    2k Views
    A
    Hey @svempati I trained a model in the docker command as provided by you. I am able to run an inference on potholes following exactly the steps provided by @Zachary-Lowell-0 earlier. Could I ask you what your voxl-tflite-version is? And if you havent yet, could you try to run this version: http://voxl-packages.modalai.com/dists/qrb5165/sdk-1.6/binary-arm64/voxl-tflite-server_0.5.1_arm64.deb Make sure to change the .tflite model and labels as shown in the loom video after the install, then run voxl-configure-tflite Thanks
  • Doodle Labs + Low Latency on VTX

    Unsolved voxl-2
    3
    1
    0 Votes
    3 Posts
    487 Views
    DemarconiusD
    @Moderator Thanks for the clarification on the ~50 ms glass-to-glass number. Trying to get a better understanding the performance envelope: 1. Does the 50 ms include RF transport over Doodle, decode, and HDMI output latency, or is that measured only within the VOXL + VRX software stack? 2. Was this measured in point-to-point mode or mesh routing mode? 3. Can you expand on bitrate, resolution, and encoder settings were used (GOP structure, B-frames disabled, UDP vs RTSP)? 4. Is MAVLink or other traffic running on the same link during that measurement? 5. Do you have a latency breakdown per stage (encode / RF / decode / display)? Appreciate any information you can provide. I just want to make sure I can test and validate this effectively.
  • UFS1 Support on J5?

    Unsolved voxl-2
    10
    0 Votes
    10 Posts
    2k Views
    VinnyV
    Hi @wetherbeej Oh yikes.. You should really work with us on that change. There is a high likelihood to damage your VOXL 2 and the MEMs sensors are likely all broken now from the extra reflow cycles. Flash provisioning is all done over QFIL tools, not PCAT.
  • M0188

    Unsolved voxl-2-io
    3
    0 Votes
    3 Posts
    2k Views
    L
    @Moderator The description to MCBL-00128 (https://docs.modalai.com/cable-datasheets/#mcbl-00128), the TOF for the Voxl 2 Mini says it's supported with M0188 (https://docs.modalai.com/M0189/) without specifying any sub P/N (-1 or -2), even in the documentation of the M0188 doesn't say anything about P/N -1 or -2 (https://docs.modalai.com/M0188/).
  • Setting up RTK with VOXL2 using F9P (Base + Rover)

    Unsolved voxl-2
    4
    0 Votes
    4 Posts
    1k Views
    T
    @alan123 Hi, sorry for the late reply. Unfortunatly, we have not finished it yet. We're switching from ntrip to ros2
  • Consistent camera not found (M00014 and M0076 or M0135)

    Unsolved voxl-2-mini
    4
    1
    0 Votes
    4 Posts
    1k Views
    Alex KushleyevA
    @Morten-Nissov , Is it just the specific camera (tracking) not working in a specific port? what if you connect TOF or IMX214 camera there? For your configuration using the M0135 interposer, kernel variant 2.0.0 is the correct one to use. Using kernel 2.0.2 will result in some cameras not working due to different pins used for camera reset (which get properly routed in M0188 and M0195 camera adapter boards for the coax cameras). So i would suggest using the correct kernel 2.0.0, then test one camera at a time and see if you can narrow it down to a camera or port not working. Alex
  • ROS_DOMAIN_ID Change

    Unsolved voxl-2
    6
    1
    0 Votes
    6 Posts
    773 Views
    A
    Hey @yunwool Just to be clear, consider only your first drone, if you run export ROS_DOMAIN_ID=1, then run ros2 topic list, you aren't seeing any topics right? After you set the ROS_DOMAIN_ID of a drone to 1, to get the PX4 topics to show up, on QGC > Analyze Tools > MAVLink Console, run the following commands: param set XRCE_DDS_DOM_ID 1 param save Then power cycle the drone, give it like 15s after boot up, then the topics should come up directly when running ros2 topic list on that drone.
  • Boot System Image from SD Card Possible?

    Unsolved voxl-2
    2
    0 Votes
    2 Posts
    230 Views
    Eric KatzfeyE
    @sja123 No, unfortunately, we do not currently support boot from SD card.
  • Using J18 for expander I/O Board

    Unsolved voxl-2
    2
    0 Votes
    2 Posts
    205 Views
    Eric KatzfeyE
    @magnetocircuit Yes, this is supported. In the config file for px4 /etc/modalai/voxl-px4.conf set ESC=VOXL2_IO_PWM_ESC.
  • Understanding voxl-evaluate-vins

    Unsolved voxl-2
    2
    0 Votes
    2 Posts
    322 Views
    zauberflote1Z
    @Aaron-Porter Hello there, voxl-evaluate-vins is currently not used by the Autonomy team @ ModalAI, we opted for our new benchmark solution, a bit more consistent in terms of statistical rigor and better integration with voxl-portal. Still, when replaying logs for VINS, it is imperative that one replays them using the ION pipes, as our VINS solution is optimized for cl_mem ptrs. Note that when replaying ION pipes, it is recommend to stop camera-server before replaying -- as clean killing ION pipes via the voxl-replay args is currently being optimized. This should resolve the common segfaults experienced during the replay/benchmark operation itself. https://gitlab.com/voxl-public/voxl-sdk/utilities/voxl-benchmark-vio Finally, I would recommend updating your VINS to the latest available tag on Gitlab
  • two tracking camera on the voxl2 mini

    Unsolved voxl-2-mini
    2
    0 Votes
    2 Posts
    938 Views
    Alex KushleyevA
    @Vansh-Aggarwal , sorry for the delay in response. Can you please specify which exact tracking cameras you have and which camera adapters / cables you might already have? Alex
  • ToF sensor and VOA

    Unsolved voxl-2
    9
    2
    0 Votes
    9 Posts
    2k Views
    S
    @James-Strawson Hii , I am also getting the same issue . Kindly look at the following details . I have defined tof in my extrinsics.conf file as given below: parent: body child: tof T_child_wrt_parent: 0.070 0.024 -0.029 RPY_parent_to_child: 0.0 90.0 90.0 R_child_to_parent: 0.000 -0.000 1.000 1.000 0.000 -0.000 -0.000 1.000 0.000 when i run voxl-vision-hub -s i got the following slice 0 dist none back slice 1 dist none slice 2 dist none slice 3 dist none slice 4 dist none slice 5 dist none slice 6 dist none slice 7 dist none slice 8 dist none slice 9 dist none left slice 10 dist none slice 11 dist none slice 12 dist none slice 13 dist none slice 14 dist none slice 15 dist none slice 16 dist none slice 17 dist none slice 18 dist none forward slice 19 dist none slice 20 dist none slice 21 dist none slice 22 dist none slice 23 dist none slice 24 dist none slice 25 dist none slice 26 dist none slice 27 dist none right slice 28 dist none and in my vision-hub-conf file i have the folloeing set up: "en_vio": true, "vio_pipe": "qvio", "secondary_vio_pipe": "ov", "vfc_vio_pipe": "ov", "en_reset_vio_if_initialized_inverted": true, "vio_warmup_s": 3, "send_odom_while_failed": true, "horizon_cal_tolerance": 0.5, "en_hitl": false, "offboard_mode": "figure_eight", "follow_tag_id": 0, "figure_eight_move_home": true, "robot_radius": 0.300000011920929, "collision_sampling_dt": 0.1, "max_lookahead_distance": 1, "backtrack_seconds": 60, "backtrack_rc_chan": 8, "backtrack_rc_thresh": 1500, "wps_move_home": true, "wps_stride": 0, "wps_timeout": 0, "wps_damp": 1, "wps_vfc_mission": true, "wps_vfc_mission_loop": false, "wps_vfc_mission_to_ramp": 25, "wps_vfc_mission_to_kp": 0.10000000149011612, "wps_vfc_mission_cruise_speed": 1, "en_tag_fixed_frame": false, "fixed_frame_filter_len": 5, "en_transform_mavlink_pos_setpoints_from_fixed_frame": false, "vfc_rate": 100, "vfc_rc_chan_min": 980, "vfc_rc_chan_max": 2020, "vfc_thrust_ch": 3, "vfc_roll_ch": 1, "vfc_pitch_ch": 2, "vfc_yaw_ch": 4, "vfc_submode_ch": 6, "vfc_alt_mode_rc_min": 0, "vfc_alt_mode_rc_max": 0, "vfc_flow_mode_rc_min": 0, "vfc_flow_mode_rc_max": 0, "vfc_hybrid_flow_mode_rc_min": 0, "vfc_hybrid_flow_mode_rc_max": 0, "vfc_position_mode_rc_min": 0, "vfc_position_mode_rc_max": 2100, "vfc_traj_mode_rc_min": 0, "vfc_traj_mode_rc_max": 0, "vfc_yaw_deadband": 30, "vfc_vxy_deadband": 50, "vfc_vz_deadband": 150, "vfc_min_thrust": 0, "vfc_max_thrust": 0.800000011920929, "vfc_tilt_max": 0.43599998950958252, "vfc_yaw_rate_max": 3, "vfc_thrust_hover": 0.5, "vfc_vz_max": 1, "vfc_kp_z": 5.2899999618530273, "vfc_kd_z": 5.9800000190734863, "vfc_vxy_max": 3, "vfc_kp_xy": 0.63999998569488525, "vfc_kd_xy": 2.559999942779541, "vfc_kp_z_vio": 5.2899999618530273, "vfc_kd_z_vio": 5.9800000190734863, "vfc_kp_xy_vio": 3.2400000095367432, "vfc_kd_xy_vio": 3.9600000381469727, "vfc_w_filt_xy_vio": 10, "vfc_w_filt_xy_flow": 3, "vfc_vel_ff_factor_vio": 0.899999976158142, "vfc_xy_acc_limit_vio": 2.5, "vfc_max_z_delta": 3, "vfc_att_transition_time": 0.5, "vfc_stick_move_threshold": 30, "vfc_flow_transition_time": 1, "vfc_q_min": 10, "vfc_points_min": 7, "vfc_en_submode_announcement": 1, "vfc_disable_fallback": false, "vfc_traj_csv": "/data/voxl-vision-hub/traj.csv", "en_voa": true, "voa_upper_bound_m": -0.15000000596046448, "voa_lower_bound_m": 0.15000000596046448, "voa_memory_s": 1, "voa_max_pc_per_fusion": 100, "voa_pie_max_dist_m": 20, "voa_pie_min_dist_m": 0.25, "voa_pie_under_trim_m": 1, "voa_pie_threshold": 3, "voa_send_rate_hz": 20, "voa_pie_slices": 36, "voa_pie_bin_depth_m": 0.15000000596046448, "voa_inputs": [{ "enabled": false, "type": "point_cloud", "input_pipe": "dfs_point_cloud", "frame": "stereo_l", "max_depth": 8, "min_depth": 0.300000011920929, "cell_size": 0.079999998211860657, "threshold": 4, "x_fov_deg": 68, "y_fov_deg": 56, "conf_cutoff": 0 }, { "enabled": false, "type": "point_cloud", "input_pipe": "stereo_front_pc", "frame": "stereo_front_l", "max_depth": 8, "min_depth": 0.300000011920929, "cell_size": 0.079999998211860657, "threshold": 4, "x_fov_deg": 68, "y_fov_deg": 56, "conf_cutoff": 0 }, { "enabled": false, "type": "point_cloud", "input_pipe": "stereo_rear_pc", "frame": "stereo_rear_l", "max_depth": 8, "min_depth": 0.300000011920929, "cell_size": 0.079999998211860657, "threshold": 4, "x_fov_deg": 68, "y_fov_deg": 56, "conf_cutoff": 0 }, { "enabled": true, "type": "tof", "input_pipe": "tof", "frame": "tof", "max_depth": 6, "min_depth": 0.15000000596046448, "cell_size": 0.079999998211860657, "threshold": 3, "x_fov_deg": 106.5, "y_fov_deg": 85.0999984741211, "conf_cutoff": 125 }, { "enabled": false, "type": "rangefinder", "input_pipe": "rangefinders", "frame": "body", "max_depth": 8, "min_depth": 0.300000011920929, "cell_size": 0.079999998211860657, "threshold": 4, "x_fov_deg": 68, "y_fov_deg": 56, "conf_cutoff": 0 }], "voa_voa_memory_s": 1 } [image: 1768559497610-screenshot-from-2026-01-16-16-01-23.png]
  • VOXL2 WiFi SoftAP issues (M0141 + AWUS036EACS)

    Unsolved voxl-2
    3
    0 Votes
    3 Posts
    531 Views
    D
    Update: I bought an Alfa Networks AWUS036ACS and it worked out of the box with the M0151 board
  • GPS and Compass Issues on QGround Control

    Unsolved voxl-2-mini
    2
    0 Votes
    2 Posts
    970 Views
    J
    @jeremyrbrown5 We have figured it out. It was the parameters SYS_HAS_MAG and SYS_HAS_GPS. Will be testing autonomous flight tomorrow!