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]
  • 0 Votes
    3 Posts
    765 Views
    Alex KushleyevA
    You may also be able to resolve your issue by switching to voxl-cross:4.0 docker image, which was recently released.
  • crop image for voxl-tflite-server

    8
    0 Votes
    8 Posts
    1k Views
    KnightHawk06K
    @Alex-Kushleyev this is exactly what I need. Thanks! I was able to reconfigure voxl-tflite-server to use the new cropped image data.
  • This topic is deleted!

    3
    7
    0 Votes
    3 Posts
    7 Views
  • 0 Votes
    3 Posts
    551 Views
    R
    @Alex-Kushleyev thank you! It works now.
  • Flir Boson+ & IMX412 camera hookup on a VOXL 2 mini

    2
    0 Votes
    2 Posts
    467 Views
    Alex KushleyevA
    @jonathankampia , yes IMX412 is supported on VOXL2 Mini J6 (either upper or lower). You can connect any two cameras to VOXL2 mini J6 using M0135 (double) or M0076 (single) adapter or for coax camera versions you can use M0155 (single) adapter. You would need to copy the correct sensormodule(s) to /usr/lib/camera/. see the following doc for help : https://docs.modalai.com/configure-cameras/#connect-a-new-camera Let me know if you need more details. Alex
  • How to stream sensor data from VOXL 2 to Unreal Engine?

    2
    0 Votes
    2 Posts
    376 Views
    Eric KatzfeyE
    @Tyler-Scott The voxl-streamer application streams video via RTSP https://docs.modalai.com/voxl-streamer/
  • voxl-logger tflite

    4
    0 Votes
    4 Posts
    899 Views
    T
    Hi @KnightHawk06. If you're looking for all the data stored in the ai_detection_t struct we've done it in the past by opening up a libmodal pipe to the tflite detection path defined like this: #define TFLITE_DETECTION_PATH (MODAL_PIPE_DEFAULT_BASE_DIR "tflite_data/") Let me know if that suits your needs and if you need help opening the pipe.
  • Yolov5 not working with HiRes Camera on VOXL2.

    1
    0 Votes
    1 Posts
    275 Views
    No one has replied
  • Servo actuation from VOXl 2 to flightcore V2

    1
    0 Votes
    1 Posts
    275 Views
    No one has replied
  • Starling 2 Addons and more

    2
    0 Votes
    2 Posts
    394 Views
    tomT
    @Daniel-Rincon The front and downward facing "tracking" cameras are used for VIO. The frontward and downward facing"hires" cameras are recommended for doing any sort of CV work. We don't supply a "shell" for the drone but have had customers do similar work
  • Training custom yolov8 model

    2
    0 Votes
    2 Posts
    1k Views
    KnightHawk06K
    @KnightHawk06 ok, I think I found my problem, yolov8 doesn't support exporting with nms. Can a yolov5 model be exported and used on the voxl2? https://github.com/ultralytics/ultralytics/issues/10303
  • Integration of Hadron 640R w/ VOXL2 Flight Deck on Sentinel

    5
    0 Votes
    5 Posts
    914 Views
    Alex KushleyevA
    @shawn_ricardo , The hardware configuration for your application should be as follows: J6 : tracking camera with either M0076 or M0135 interposer. Use J6L (lower camera port), which is the only port available on M0076 or JL port on M0135. This camera will be in HW Slot 0. J7 : Hadron, as described in the guide you already found. IR in HW slot 2, OV64B in slot 3 J8 : hires (any) camera. Use either M0076 or M0135. Use J8L (lower camea port). HW slot 4 note that J6U and J8U camera slots can only be used by the second stereo camera (in a stereo pair) due to custom I/O configuration that is default for VOXL2 varian 0 (which is what you have on Sentinel). If you want to swap tracking and hires camera locations, you can just swap all the instructions as well When connecting interposer and cameras, pay attention to pin1 orientaion, which is labeled on every camera connector, voxl2 connectors and interposers. In terms of software setup: back up (move) all sensormodule files from /usr/lib/camera/ copy the following sensormodule files that you will find in /usr/share/modalai/chi-cdk (i will assume that you are using imx214 hires camera): cp /usr/share/modalai/chi-cdk/ov7251/com.qti.sensormodule.ov7251_0.bin /usr/lib/camera/ cp /usr/share/modalai/chi-cdk/boson/com.qti.sensormodule.boson_2.bin /usr/lib/camera/ cp /usr/share/modalai/chi-cdk/ov64b40/com.qti.sensormodule.ov64b40_3.bin /usr/lib/camera/ cp /usr/share/modalai/chi-cdk/imx214/com.qti.sensormodule.imx214_4.bin /usr/lib/camera/ confirm the following are present in /usr/lib/camera/" com.qti.sensor.ov7251.so com.qti.sensor.ov64b40.so com.qti.sensor.boson.so com.qti.sensor.imx214.so Then, before updating /etc/modalai/voxl-camera-server.conf you can see if the cameras are detected: voxl-camera-server -l See output example here : https://docs.modalai.com/debugging-camera-issues/#checking-which-cameras-are-detected-by-camera-server https://docs.modalai.com/debugging-camera-issues/#sensor-id-to-sensor-type-mapping For camera server config, use the current config that you already have, wipe any cameras from it that are not tracking or hires. Then add the two camera entries for Hadron into your config, as shown here : https://docs.modalai.com/voxl2-hadron/#minimum-config . You will need to make sure the camera IDs specified in voxl-camera-server.conf are correct: 0: ov7251 1: boson 2: ov64b 3: imx214 At this point everything should work, once you get here, I can help you customize the video streams as you need. Alex
  • Missing Baro Calibration

    2
    0 Votes
    2 Posts
    428 Views
    Eric KatzfeyE
    @Kory4Drone Barometer temperature calibration is optional, but in some cases it can improve performance. You can run the barometer temperature calibration directly from the command line on VOXL 2: baro_temp_cal. Or you can run it from voxl-portal.
  • Low feature indoor only flight

    1
    0 Votes
    1 Posts
    300 Views
    No one has replied
  • Starling 2 Max GPS Issue

    2
    0 Votes
    2 Posts
    803 Views
    Alex KushleyevA
    Hello @RyanH , The GPS interference work is still ongoing. Currently, the solution that works is elevating the GPS using a mast with some shielding right under the mast, as described in the thread you referenced. We recently added a feature to voxl-portal to allow you to see the individual satellite signal strengths in order to help with debugging the signal quality. The GPS page can be located under the Debug section of voxl-portal, you should get the recent nightly build of voxl-portal in order to try it. [image: 1747143966102-voxl-portal-gps-satellite-signal.jpg] Elevating the GPS receiver by about 4 inches with shielding has shown to completely eliminate the interference, but you will also need an extended cable that plugs between the GPS receiver and VOXL2. If you need more details about the workaround, I can prepare better documentation and I'll see if we can have replacement cables or extensions available to make the electrical connection easier. Alex
  • Camera specific tuning files and parsing binaries for fine-tuning

    3
    0 Votes
    3 Posts
    1k Views
    Alex KushleyevA
    Hi @IlkkaN , The com.qti.tuned.imx412_fpv.bin tuning file was created in attempt to remove some of processing in order to reduce delay and tweak / reduce de-noise / smoothing. I believe the starting point was com.qti.tuned.cmk_imx577.bin which was provided by Qualcomm (you may be able to find that one). IMX577 and IMX412 are nearly identical cameras. We do not have a tuning file for IMX678 and currently the tuning file name is not specified in the IMX678 sensormodules, which means that com.qti.tuned.default.bin will be used. The default tuning file is the fallback in case the tuning file name specified in the sensormodule file is not found. The default tuning file is not tuned for any specific camera and should be used with caution :). If you want to confirm which tuning file is used by each camera / sensormodule, you can check this the following way: add to /vendor/etc/camera/camxoverridesettings.txt: logInfoMask=0x20000 then run logcat | grep -i tuning and then start voxl-camera-server, you should see output like this: 03-30 01:57:45.256 2705 2705 I CamX : [ INFO][HWL ] camxhwenvironment.cpp:1762 CreateTuningDataManager() Enter : sensor index: 0, sensor name: cmk_imx577, chromatix name: cmk_imx577 03-30 01:57:45.256 2705 2705 I CamX : [ INFO][HWL ] camxhwenvironment.cpp:1798 CreateTuningDataManager() Searching regular tuning file 03-30 01:57:45.262 2705 2705 I CamX : [ INFO][HWL ] camxhwenvironment.cpp:1839 CreateTuningDataManager() Loaded tuning file: /usr/lib/camera/com.qti.tuned.cmk_imx577.bin for sensor index: 0 03-30 01:57:45.301 2705 2705 I CamX : [ INFO][HWL ] camxhwenvironment.cpp:1762 CreateTuningDataManager() Enter : sensor index: 1, sensor name: ar0144, chromatix name: onsemi_ar0144 03-30 01:57:45.301 2705 2705 I CamX : [ INFO][HWL ] camxhwenvironment.cpp:1798 CreateTuningDataManager() Searching regular tuning file 03-30 01:57:45.310 2705 2705 I CamX : [ INFO][HWL ] camxhwenvironment.cpp:1839 CreateTuningDataManager() Loaded tuning file: /usr/lib/camera/com.qti.tuned.onsemi_ar0144.bin for sensor index: 1 Our approach is currently not to heavily rely on the ISP tuning, instead we are building our own light-weight image processing pipeline, called MISP, which does processing on the GPU (from RAW bayer frames). MISP also allows us to create up to 6 high resolution color video pipelines, as opposed to the limit of 2 cameras (in video mode) supported by Spectra480 ISP, since it has two separate full VFEs. By using MISP, we have full control over the algorithms that are running and we can easily share details with the customers. However, MISP definitely lacks many features that are present in the hardware ISP. Please let me know if you have any other questions. Alex
  • Consistent Starling VIO failures

    1
    0 Votes
    1 Posts
    342 Views
    No one has replied
  • Interacting with apps proc i2c (j7) with camera also plugged in

    1
    0 Votes
    1 Posts
    308 Views
    No one has replied
  • Camera config for M00015 stereo camera only

    5
    0 Votes
    5 Posts
    649 Views
    KnightHawk06K
    @tom Is there a configuration for ov7251 stereo and IMX678 (MDK-M0061-2-06)? I don't see any config for the IMX678? https://www.modalai.com/products/mdk-m0061-2?variant=44563858850096 01 - ov7251 tracking ov7251 stereo 02 - ov7251 tracking 03 - ov7251 tracking ov7251 stereo imx214 hires 04 - ov7251 tracking imx214 hires 05 - pmd-tof ov7251 tracking 06 - D0005 Starling pmd-tof imx214 hires ov7251 tracking 08 - imx214 09 - pmd-tof 10 - ov7251 stereo 11 - D0006 Sentinel 12 - ov9782 stereo 13 - ov9782 stereo imx214 hires 14 - ov9782 stereo pmd-tof ov7251 tracking (copy) 15 - D0008 dual 9782 tracking 16 - pmd-tof ov7251 dual tracking imx214 hires 17 - D0010 pmd-tof imx412 hires ov7251 tracking ov9782 stereo 18 - D0008 triple ov9782 19 - D0005 without tof imx214 hires ov7251 tracking 20 - D0011 imx412 hires ar0144 tracking 21 - old C6 23 - D0010 without stereo 24 - pmd-tof LIOW2 (new TOF) 25 - dual ar0144 31 - D0013 Prototype M0135 dual ar0144 32 - D0008 triple ov9782 rotated C - use user-defined custom camera config in (/data/modalai/custom_camera_config.txt) q - Quit The Wizard
  • Modifying frames with OpenCV before writing to encoded video file

    2
    0 Votes
    2 Posts
    388 Views
    V
    It seems that a similar functionality has been shown in an experimental python branch: https://gitlab.com/voxl-public/voxl-sdk/utilities/voxl-mpa-tools/-/blob/pympa-experimental/tools/python/pympa-resize.py. Is this a recommended way to go about this (if so, how do I get these libraries and their C-bindings onto my voxl2) or is there an easier approach?