Skip to content

Ask your questions right here!

2.3k Topics 11.7k Posts

Note sure where to post? Ask questions here for direct access to the ModalAI engineering team

Subcategories


  • 164 Topics
    751 Posts
    Ben LinneB
    @heiko.lizan Any elrs radio that's 900mhz or dual band compatible should work when in low band mode. If the transmitter is running v4+ you should be able to downgrade it to v3 following the elrs update guide It's normal that some services aren't running. You may need to re-enable px4 with systemctl enable voxl-px4
  • Do you have a great idea for our products you would like to see implemented?

    27 90
    27 Topics
    90 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!
  • Are you looking for a 3D model of one of our products?

    33 86
    33 Topics
    86 Posts
    Alex KushleyevA
    @nl_vdi , if you log into developer.modalai.com, you will see the CAD models. the latest model we have is: D0012-4-V3-C28-M36-T7-K0-Starling2-Max-V3-20260317.step [image: 1781036132877-376bf0dd-494a-4bf1-8d92-1b2d91afb83d-image.png]
  • Need Help Connecting To My Platform

    3
    0 Votes
    3 Posts
    344 Views
    J
    @Colby-Howell You can save camera data onboard using voxl-logger, but it will take up a lot of storage very quickly and the voxl2 has < 64gb so be careful with that. If you're not trying to save raw frames and are okay with compression & artifacts you can stream it to a ground computer with voxl-streamer and save it there For connecting to the drone the easiest (especially cause you don't have a ground radio) is wifi, you can just connect your drone to a somewhat powerful router, set a static IP and ssh in. For autonomous navigation, the best way in my opinion is to talk to voxl-px4 through the uxrce-dds bridge (implemented on the voxl2 as voxl-microdds-agent) https://docs.px4.io/main/en/middleware/uxrce_dds
  • hires camera not detected

    9
    4
    0 Votes
    9 Posts
    640 Views
    Alex KushleyevA
    @Piyush-Singh , The voxl-portal does not handle well streaming large images (including in multi-view, where the images are actually appearing small). The voxl-portal back-end uses software JPEG encoding, so one of your streams (hires_large) is 4208x3120, which takes LOT of cpu processing to encode to jpeg. You can see that the voxl-portal process uses 260% cpu (2.6 full cores), which is a lot. There is no practical need for streaming small and large uncompressed images to voxl-portal, so you can just enable small video stream, which is much smaller. Also, if you select an individual camera stream, you can enable advanced camera controls (click on the small check box in lower left) and then you can adjust the JPEG encode quality from default 70 to something much lower in order to use less cpu. This setting will be applied to all cameras and you can go back to multi view after that. Note that the jpeg encode quality only affects voxl-portal view, not h264/h265 encoding. Please try. Alex
  • Stinger FPV/Blue Zorro/Goggles

    5
    1
    0 Votes
    5 Posts
    823 Views
    P
    I'm losing video feed flying just behind a wall not far from me. What can I do to prevent video signal loss? Increase transmit watts or is there a frequency better suited to penetrate thick concrete walls?
  • OV and VIO Help with Position Estimate

    1
    0 Votes
    1 Posts
    219 Views
    No one has replied
  • voxl2 is not booting

    15
    0 Votes
    15 Posts
    1k Views
    Jetson NanoJ
    @Alex-Kushleyev Could you please share the pinouts of the serial console port. I am not able to find it anywhere.
  • Global Shutter Color Camera? (Not for VIO)

    11
    0 Votes
    11 Posts
    772 Views
    Alex ProchazkaA
    Hi @Peter-Lingås-0, I have been working on voxl-tflite-server for the last few weeks and was actually testing this. I find that both YOLOV8 and YOLOV11 work well with GPU delegate. The comment you are referring to is removed as of version 0.51 of voxl-tflite-server.
  • voxl2_io direct command pwm on channel 5

    6
    0 Votes
    6 Posts
    464 Views
    Alex KushleyevA
    Hi @jon , OK got it. Actually, we already do have a passthrough mode that can accept raw data coming from linux (via voxl io server) and forward it to the UART connection for voxl2_io board, for reference, code is here : https://github.com/modalai/px4-firmware/blob/voxl-dev/src/drivers/voxl2_io/voxl2_io.cpp#L270 Let me figure out (remember) how to use it, I will update you soon. Alex
  • camera_image_metadata_t framerate is zero from lepton0_color

    2
    0 Votes
    2 Posts
    207 Views
    Alex KushleyevA
    @paul-foley , it looks like our voxl-lepton-server is not setting the FPS field in the metadata : https://gitlab.com/voxl-public/voxl-sdk/services/voxl-lepton-server/-/blob/master/src/publisher.c?ref_type=heads#L338 . I do see above that we do set the framerate in json info about the output pipe (cJSON_AddNumberToObject(json, "framerate", 9);) and the framerate is hardcoded to 9, since i guess all lepton sensors are running at 9fps. I just made the change to publish the fps : https://gitlab.com/voxl-public/voxl-sdk/services/voxl-lepton-server/-/commit/110b9cce4c021322566e46f36d6878fca55f7d26 You are using an older voxl SDK, so installing latest nightly package (from http://voxl-packages.modalai.com/dists/qrb5165/dev/binary-arm64/ will probably not work). So you probably need to take the source of the version you are running now (1.3.3 : https://gitlab.com/voxl-public/voxl-sdk/services/voxl-lepton-server/-/tree/v1.3.3?ref_type=tags) and apply the same change in the source code and build it. Since i just pushed to dev branch, a new version of leptop server should appear in our package repo tomorrow, and you can download and try it. it might work, but your SDK is 2 major versions down from where we are now (1.4.x vs 1.6.x), so you may want to just build the patched version 1.3.3 : git clone https://gitlab.com/voxl-public/voxl-sdk/services/voxl-lepton-server.git cd voxl-lepton-server git checkout v1.3.3 #make the change in publisher.c to include fps ... ... #start voxl-cross docker (you can download it in our downloads section: https://developer.modalai.com/asset) docker run -it --rm -v `pwd`:/opt/code -w /opt/code voxl-cross:V4.6 bash ./install_build_deps.sh qrb5165 sdk-1.4 ./build.sh qrb5165 ./make_package.sh #then, outside docker, deploy the new package to voxl2 via adb ./deploy_to_voxl.sh Please let me know if this works for you! Alex
  • Voxl-Cross Issue

    11
    0 Votes
    11 Posts
    682 Views
    Eric KatzfeyE
    @bendraper I just tried it and it is working now: modalai@modalai:~/development/modalai/voxl-vision-hub (dev)$ voxl-docker -i voxl-cross launching image: voxl-cross with the following command: docker run --rm -it --net=host --privileged -w /home/modalai --volume=/dev/bus/usb:/dev/bus/usb -e LOCAL_USER_ID=0 -e LOCAL_USER_NAME=root -e LOCAL_GID=0 -v /home/modalai/development/modalai/voxl-vision-hub:/home/root:rw -w /home/root voxl-cross /bin/bash -l voxl-cross(4.4):~(dev)(1.9.21)$ ./clean.sh voxl-cross(4.4):~(dev)(1.9.21)$ ./install_build_deps.sh qrb5165 dev using qrb5165 dev debian repo Ign:1 http://voxl-packages.modalai.com ./dists/qrb5165/dev/binary-arm64/ InRelease Ign:2 http://voxl-packages.modalai.com ./dists/qrb5165/dev/binary-arm64/ Release Get:3 http://voxl-packages.modalai.com ./dists/qrb5165/dev/binary-arm64/ Packages [76.8 kB] Fetched 76.8 kB in 1s (122 kB/s) Reading package lists... Done INSTALLING: libmodal-json libmodal-pipe librc-math libmodal-cv voxl-mpa-tools voxl-mavlink Reading package lists... Done Building dependency tree... Done Reading state information... Done The following NEW packages will be installed: libmodal-cv:arm64 libmodal-json:arm64 libmodal-pipe:arm64 librc-math:arm64 voxl-mavlink:arm64 voxl-mpa-tools:arm64 0 upgraded, 6 newly installed, 0 to remove and 2 not upgraded. Need to get 5026 kB of archives. After this operation, 0 B of additional disk space will be used. Get:1 http://voxl-packages.modalai.com ./dists/qrb5165/dev/binary-arm64/ librc-math 1.4.6-202510091209 [180 kB] Get:2 http://voxl-packages.modalai.com ./dists/qrb5165/dev/binary-arm64/ libmodal-cv 0.6.0-202510141028 [3887 kB] Get:3 http://voxl-packages.modalai.com ./dists/qrb5165/dev/binary-arm64/ libmodal-json 0.4.8-202510091202 [52.5 kB] Get:4 http://voxl-packages.modalai.com ./dists/qrb5165/dev/binary-arm64/ libmodal-pipe 2.14.10-202601210836 [151 kB] Get:5 http://voxl-packages.modalai.com ./dists/qrb5165/dev/binary-arm64/ voxl-mavlink 0.1.6-202511141246 [650 kB] Get:6 http://voxl-packages.modalai.com ./dists/qrb5165/dev/binary-arm64/ voxl-mpa-tools 1.5.6-202601201423 [106 kB] Fetched 5026 kB in 1s (6805 kB/s) debconf: unable to initialize frontend: Dialog debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 79, <STDIN> line 6.) debconf: falling back to frontend: Readline Selecting previously unselected package librc-math:arm64. (Reading database ... 35164 files and directories currently installed.) Preparing to unpack .../0-librc-math_1.4.6-202510091209_arm64.deb ... Unpacking librc-math:arm64 (1.4.6-202510091209) ... Selecting previously unselected package libmodal-cv:arm64. Preparing to unpack .../1-libmodal-cv_0.6.0-202510141028_arm64.deb ... Unpacking libmodal-cv:arm64 (0.6.0-202510141028) ... Selecting previously unselected package libmodal-json:arm64. Preparing to unpack .../2-libmodal-json_0.4.8-202510091202_arm64.deb ... Unpacking libmodal-json:arm64 (0.4.8-202510091202) ... Selecting previously unselected package libmodal-pipe:arm64. Preparing to unpack .../3-libmodal-pipe_2.14.10-202601210836_arm64.deb ... Unpacking libmodal-pipe:arm64 (2.14.10-202601210836) ... Selecting previously unselected package voxl-mavlink:arm64. Preparing to unpack .../4-voxl-mavlink_0.1.6-202511141246_arm64.deb ... Unpacking voxl-mavlink:arm64 (0.1.6-202511141246) ... Selecting previously unselected package voxl-mpa-tools:arm64. Preparing to unpack .../5-voxl-mpa-tools_1.5.6-202601201423_arm64.deb ... Unpacking voxl-mpa-tools:arm64 (1.5.6-202601201423) ... Setting up voxl-mavlink:arm64 (0.1.6-202511141246) ... Setting up libmodal-json:arm64 (0.4.8-202510091202) ... Setting up librc-math:arm64 (1.4.6-202510091209) ... Setting up libmodal-pipe:arm64 (2.14.10-202601210836) ... Setting up libmodal-cv:arm64 (0.6.0-202510141028) ... Setting up voxl-mpa-tools:arm64 (1.5.6-202601201423) ... Processing triggers for libc-bin (2.39-0ubuntu8.5) ... Done installing dependencies voxl-cross(4.4):~(dev)(1.9.21)$ ./build.sh qrb5165 Found voxl-cross version: 4.4 -- --------------------------------------------------------- -- Using voxl-cross 64-bit toolchain for QRB5165 ubun1 18.04 -- C Compiler : /usr/bin/aarch64-linux-gnu-gcc-7 -- C++ Compiler: /usr/bin/aarch64-linux-gnu-g++-7 -- Sysroot : /opt/sysroots/qrb5165_1 -- C flags : -isystem=/usr/lib/gcc/aarch64-linux-gnu/7/include -isystem=/usr/local/include -isystem=/usr/lib/gcc/aarch64-linux-gnu/7/include-fixed -isystem=/usr/include/aarch64-linux-gnu -isystem=/usr/include -idirafter /usr/include -march=armv8.2-a -- CXX flags : -isystem=/usr/include/c++/7 -isystem=/usr/include/aarch64-linux-gnu/c++/7 -isystem=/usr/include/c++/7/backward -isystem=/usr/lib/gcc/aarch64-linux-gnu/7/include -isystem=/usr/local/include -isystem=/usr/lib/gcc/aarch64-linux-gnu/7/include-fixed -isystem=/usr/include/aarch64-linux-gnu -isystem=/usr/include -idirafter /usr/include -march=armv8.2-a -- Link Flags : -B/opt/sysroots/qrb5165_1/usr/lib/ -L/opt/sysroots/qrb5165_1/usr/lib/gcc/aarch64-linux-gnu/7 -L/opt/sysroots/qrb5165_1/usr/lib/aarch64-linux-gnu -L/opt/sysroots/qrb5165_1/usr/lib -L/opt/sysroots/qrb5165_1/lib/aarch64-linux-gnu -L/opt/sysroots/qrb5165_1/usr/lib/aarch64-linux-gnu -L/opt/sysroots/qrb5165_1/lib -L/usr/lib64 -L/usr/lib -- The C compiler identification is GNU 7.3.0 -- The CXX compiler identification is GNU 7.3.0 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /usr/bin/aarch64-linux-gnu-gcc-7 - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /usr/bin/aarch64-linux-gnu-g++-7 - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- Configuring done (0.3s) -- Generating done (0.0s) -- Build files have been written to: /home/root/build [ 6%] Building C object utils/CMakeFiles/voxl-inspect-vfc.dir/voxl-inspect-vfc.c.o [ 6%] Building C object utils/CMakeFiles/voxl-calibrate-px4-horizon.dir/voxl-calibrate-px4-horizon.c.o [ 12%] Building C object src/CMakeFiles/voxl-vision-hub.dir/control_input.c.o [ 12%] Building C object src/CMakeFiles/voxl-vision-hub.dir/fixed_pose_input.c.o [ 18%] Building C object src/CMakeFiles/voxl-vision-hub.dir/geometry.c.o [ 18%] Building C object src/CMakeFiles/voxl-vision-hub.dir/autopilot_monitor.c.o [ 24%] Building C object src/CMakeFiles/voxl-vision-hub.dir/config_file.c.o [ 24%] Building C object src/CMakeFiles/voxl-vision-hub.dir/horizon_cal.c.o [ 30%] Building C object src/CMakeFiles/voxl-vision-hub.dir/main.c.o [ 36%] Building C object src/CMakeFiles/voxl-vision-hub.dir/mavlink_io.c.o [ 36%] Building C object src/CMakeFiles/voxl-vision-hub.dir/imu_manager.c.o [ 27%] Building C object src/CMakeFiles/voxl-vision-hub.dir/horizon_cal_file.c.o [ 39%] Building C object src/CMakeFiles/voxl-vision-hub.dir/mavlink_for_ros.c.o [ 42%] Building C object src/CMakeFiles/voxl-vision-hub.dir/offboard_backtrack.c.o [ 45%] Building C object src/CMakeFiles/voxl-vision-hub.dir/obs_pc_filter.c.o [ 48%] Building C object src/CMakeFiles/voxl-vision-hub.dir/misc.c.o [ 51%] Building C object src/CMakeFiles/voxl-vision-hub.dir/offboard_figure_eight.c.o [ 54%] Building C object src/CMakeFiles/voxl-vision-hub.dir/offboard_follow_tag.c.o [ 57%] Building C object src/CMakeFiles/voxl-vision-hub.dir/offboard_mode.c.o [ 60%] Linking C executable voxl-calibrate-px4-horizon [ 60%] Built target voxl-calibrate-px4-horizon [ 63%] Building C object src/CMakeFiles/voxl-vision-hub.dir/offboard_trajectory.c.o [ 66%] Linking C executable voxl-inspect-vfc [ 66%] Built target voxl-inspect-vfc [ 69%] Building C object src/CMakeFiles/voxl-vision-hub.dir/offboard_vfc.c.o [ 72%] Building C object src/CMakeFiles/voxl-vision-hub.dir/offboard_wps.c.o [ 75%] Building C object src/CMakeFiles/voxl-vision-hub.dir/pose_filter.c.o [ 78%] Building C object src/CMakeFiles/voxl-vision-hub.dir/state_manager.c.o [ 81%] Building C object src/CMakeFiles/voxl-vision-hub.dir/tag_manager.c.o [ 84%] Building CXX object src/CMakeFiles/voxl-vision-hub.dir/trajectory_monitor.cpp.o [ 87%] Building C object src/CMakeFiles/voxl-vision-hub.dir/transform_ringbuf.c.o [ 90%] Building C object src/CMakeFiles/voxl-vision-hub.dir/vio_manager.c.o [ 93%] Building C object src/CMakeFiles/voxl-vision-hub.dir/voa_manager.c.o [ 96%] Building C object src/CMakeFiles/voxl-vision-hub.dir/voxl_vfc_config.c.o [100%] Linking CXX executable voxl-vision-hub [100%] Built target voxl-vision-hub
  • VOXL 2 Returns to fastboot after power cycle.

    2
    0 Votes
    2 Posts
    266 Views
    Alex KushleyevA
    Hello @HLaGrone , Sorry for the delay in response! Did something happen to the board that caused it to stop booting? Are you able to remove the voxl2 board completely from the drone and just try to boot it by itself (nothing plugged in except APM / ESC for power and USB)? Sometimes issues on power rails going to external components (like cameras) can prevent the board from booting. Alex
  • Ethernet Expansion & USB Hub: I2C Internal Pull-Up Resistors

    4
    0 Votes
    4 Posts
    300 Views
    VinnyV
    Hi @shawn_ricardo Yes, any I2C port on an expansion board has 2.2K pullups to the voltage on Pin 1 of that connector. The Linux Kernel user guide has info on which QUPS are enabled or not in which system image. [image: 1769099579133-3356687b-6e2d-4443-9a15-6e9aa07566d1-image.png] and specifically this helps: https://docs.modalai.com/voxl2-qups/ Note not all QUPs have actually been enabled in the system, but with the sets of ports we have enabled, we never had any customer claim of a shortage:
  • YOLOv26 GPU Support

    1
    0 Votes
    1 Posts
    200 Views
    No one has replied
  • voxl-vision-hub sending unsolicited set_attitude messages

    6
    0 Votes
    6 Posts
    464 Views
    Eric KatzfeyE
    @bendraper The code is open source. It is located here: https://gitlab.com/voxl-public/voxl-sdk/services/voxl-vision-hub/-/tree/dev?ref_type=heads. We encourage users to clone the repo and familiarize themselves with the code base. Did you try setting offboard_mode to off? Did it stop the SET_POSITION_TARGET_LOCAL_NED messages from being sent out?
  • Simulating Starling 2 Max Drone

    2
    0 Votes
    2 Posts
    320 Views
    ModeratorM
    @Arsalan-Sheikh You can find a 3D STEP file here https://docs.modalai.com/starling-2-max-datasheet/ We aren't familiar with the Gazebo requirements so hopefully the STEP file gets you what you need
  • Adding GNSS libmodal pipe interface

    2
    0 Votes
    2 Posts
    254 Views
    Eric KatzfeyE
    @jonathankampia https://gitlab.com/voxl-public/voxl-sdk/core-libs/libmodal-pipe/-/blob/master/library/src/interfaces.c?ref_type=heads#L72
  • Connecting Doodle Lab Mini module (RM-1700-22M3) to Starling 2 Max

    1
    0 Votes
    1 Posts
    192 Views
    No one has replied
  • Triple IMX412 with Dual AR0144 on VOXL2?

    2
    0 Votes
    2 Posts
    315 Views
    Alex KushleyevA
    @Gary-Holmgren , The configuration you are asking about is the standard C28 (https://docs.modalai.com/voxl2-coax-camera-bundles/#mdk-m0173-1-03) with an addition of another hires camera. Using MISP (not built-in ISP), VOXL2 supports as many hires cameras as can be physically connected (may run into some limitations if you are running at full resolution and encoding all streams at the same time). C28 config uses VOXL2 + M0173 and you are left with voxl2 J8 (which has two camera ports), so we just need to add another IMX412 to voxl2 J8. The best way to do this would be using M0181 (which supports a Boson + hires camera), it would be connected like this (you can just ignore Boson): [image: 1767885467815-c89b4153-c47e-4dc2-bace-baabe08fbfa1-image.png] What is not shown here is the standard C28 config (using M0173 adapter, plugged into VOXL2 J6, J7). Just to make sure there will be enough processing resources for the three IMX412, can you briefly describe what resolution you plan to use and whether you need encoded video, etc. I could test this configuration for you. Alex
  • IRCUT FILTER

    2
    1
    0 Votes
    2 Posts
    250 Views
    Alex KushleyevA
    @YUUJI-INOUE , Yes the square glass piece is the IR cut filter. It should be glued to the lens assembly in the for corners of the square. You could remove it yourself, at your own risk. Please see a similar discussion and results in the following thread : https://forum.modalai.com/topic/4826/msu-m0149-1-ir-filter (this that case, the lens is slightly different and it was much more difficult to remove the IR filter). In your case, the filter may pop out without breaking, but it is likely to break. You may want to put some tape on the filter before removing it, which would help avoid having loose pieces of glass. Alex
  • 0 Votes
    1 Posts
    546 Views
    No one has replied
  • VOXL2 J19 QUP3

    24
    0 Votes
    24 Posts
    2k Views
    Eric KatzfeyE
    @voxltester Great! Glad you got it working.