• RE: tarling - Path planning (blue line) is erratic and drone moves to wrong locations

    @DronAlan With 1.6.3 SDK upgrade, did you test against the figure 8/offboard mode? Also flying in position mode after drawing the trajectory, if you manually fly the path you created, does the drone follow correctly? If position mode manual flying is working fine and figure 8/offboard mode is working fine (a clockwise figure 😎 then we have a trajectory calculation problem on the voxl-mapper side (I'll check our code, but our QA currently show that was working properly).

    Since you're using OpenVINS vio module now, there's an unlikely chance of a reset causing a 180 orientation change by design. Also make sure qvio is disabled. You can check if it's running via voxl-inspect-services and run systemctl disable voxl-qvio-server (+reboot).

    posted in Ask your questions right here!
  • RE: Starling 2 loses all cameras; voxl-camera-server -l reports 0 cameras even after voxl-configure-cameras 27, voxl-configure-mpa, and reflash

    Hi @irw ,

    This seems like a hardware issue, potentially related to PMIC. Are you able to share full dmesg output from boot, when this issue is happening?

    One thing to try would be to disconnect M0173 board from VOXL2 and see if you can reproduce the same messages related to cam_sensor*power_up -- these are definitely not normal. Perhaps there is a short on one of the camera power rails, which is preventing PMIC from working properly.

    Alex

    posted in Ask your questions right here!
  • RE: Image Stabilization calibration and pipe size clarification

    Hi @jameskuesel ,

    Yes there is an issue when both MISP and snapshot are enabled. I will look into it again.

    By the way, what snapshot are you looking to grab? There are a few options;

    • a frame from high-res recording (with eis?)
    • a frame from low-res streaming (with eis?)
    • full frame, full resolution (no stabilization)
      • what format? jpg or raw bayer (for offline processing)

    We can implement a snapshot feature in MISP (and not going through ISP).

    Alex

    posted in Ask your questions right here!
  • RE: Question about sonar sensor(distance sensor) in voxl2

    @Daehan-Won The mb12xx px4 driver is not in our build so you would need to add it to the voxl2-slpi build. Which pins are you attaching it to on J19?

    posted in VOXL 2
  • RE: HDMI output from Seeker Vision FPV Goggles

    @David-Avery See the following graphic. 8517d647-3a1b-452f-a269-b8e123b63957-image.png

    You can connect a USB-C to hdmi adapter to the USB-C labeled "DisplayPort Out"

    I recommend using the following adapter: https://www.amazon.com/Cable-Matters-48Gbps-Adapter-Supporting/dp/B08MSWMXT4?th=1

    No software configuration changes are needed.

    posted in FPV Drones
  • RE: VOXL 2 Mini / MCCA-M0178-1 Adapter Compatibility

    @Noah-Heinen , unfortunately it is not possible to add a TOF sensor to your current Voxl2 Mini configuration. M0188 adapter does not support TOF.

    The only way this would be possible is:

    • remove M0188
    • add M0172 and connect TOF and either M0186 or M0166 camera
    • add another M0172 or M0194 and plug in a single camera. Unfortunately right now we don't have a small adapter like M0172 or M0194 that supports two standard cameras like M0166 or M0186.

    So you would probably be losing one of the tracking cameras if you want to add a TOF sensor.

    Alex

    posted in Support Request Format for Best Results
  • RE: How to fix the UVC camera DEVICE ID

    @Jskim , maybe it's ok that the Device ID is increasing, however it could mean the USB device is not de-initializing properly (according to the Kernel). Perhaps the device is still open / in use by voxl-uvc-server when you power the camera off (switch to the SD card mode).

    Please see some more information below that may be helpful.

    Fix 1: Configure voxl-uvc-server to identify the camera by Vendor/Product ID

    Instead of relying on the device index, tell voxl-uvc-server to always find your camera by its USB VID:PID. This is the most robust approach.

    Step 1: Find your camera's Vendor ID and Product ID

    lsusb
    

    Look for your UVC webcam in the output. The ID is in VENDOR:PRODUCT hex format, e.g.:

    Bus 001 Device 003: ID 090c:337b  <-- vendor=090c, product=337b
    

    You can also use the ModalAI helper script:

    show-video-device-info.sh
    

    Step 2: Update the voxl-uvc-server service to pass VID/PID

    Edit the systemd service override so the server always targets your specific camera:

    mkdir -p /etc/systemd/system/voxl-uvc-server.service.d/
    cat > /etc/systemd/system/voxl-uvc-server.service.d/override.conf << EOF
    [Service]
    ExecStart=
    ExecStart=/usr/bin/voxl-uvc-server -v <your-vendor-id> -p <your-product-id>
    EOF
    systemctl daemon-reload
    systemctl restart voxl-uvc-server
    

    Replace <your-vendor-id> and <your-product-id> with the hex values from lsusb. With this in place, voxl-uvc-server will find the camera by identity rather than by device node index, so it will survive power cycles without needing a manual restart.


    Fix 2: Create a udev rule for a persistent /dev symlink

    This assigns a stable name (e.g., /dev/uvc_cam) to your camera regardless of enumeration order:

    cat > /etc/udev/rules.d/99-uvc-camera.rules << EOF
    SUBSYSTEM=="video4linux", ATTRS{idVendor}=="<your-vendor-id>", ATTRS{idProduct}=="<your-product-id>", SYMLINK+="uvc_cam", MODE="0660"
    EOF
    udevadm control --reload-rules
    udevadm trigger
    

    After this, /dev/uvc_cam will always point to your camera. You can reference this stable symlink in any configuration.


    Fix 3: Check dmesg for resource leak warnings

    If the device ID keeps incrementing (e.g., /dev/video0 → /dev/video1 → /dev/video2...) rather than re-using the same node, there may be an underlying resource leak from improper de-initialization:

    dmesg | grep -i "uvc\|video\|usb" | tail -50
    

    Look for warnings about disconnection or failed cleanup. If the ID increments indefinitely, this points to a kernel-side resource not being released properly on power-off — that may require a deeper fix or a systemctl stop voxl-uvc-server before powering down the camera.


    Summary

    Step Action
    1 Run lsusb to get your camera's Vendor ID and Product ID
    2 Pass -v <vid> -p <pid> to voxl-uvc-server via a systemd override
    3 Optionally create a udev rule for a stable /dev/uvc_cam symlink
    4 Check dmesg for warnings if the device ID keeps incrementing

    The vendor/product ID approach (Fix 1) should eliminate the need for the manual systemctl restart workaround entirely.

    posted in Video and Image Sensors
  • RE: Starling 2 / VOXL2 M0129 ESC not detected during voxl-esc scan or firmware upgrade

    @syamala-kotireddy ,

    If the ESC is not showing any signs of life (no blue led blink), it probably means the ESC power regulator is not working properly. However, you mentioned that VOXL2 is actually booting fine? Can you measure the voltage on the connector / pads that provide 5V power from M0129 ESC to VOXL2?

    Please see the following post, where a capacitor on the ESC next to the main voltage regulator was knocked off, resulting in ESC not starting up. https://forum.modalai.com/topic/4151/voxl-mini-4-in-1-esc-missing-capacitor/ . However, in that post, i think VOXL2 was not booting either. In your case the issue may be something different.

    It is worth carefully inspecting the ESC.

    Also, if you have a power supply that can measure current, you can set it to 8V and measure the current draw of the ESC alone, it should be very small (maybe 20-30mA) but not zero.

    Alex

    posted in ESCs
  • RE: Hadron ov64b snapshots have a vertical image artifact

    @restore , the change to enable the maximum resolution raw output for OV64B was made at the end of October 2025, so you would need at least SDK 1.6.0, I believe. There was a change in the camera pipeline (not the camera driver) to allow such a large image size. Are you able to test on a newer SDK (just test the latest if you can)?

    Additionally, the resolution 9248x6944 cannot be directly used in MISP debayering (which uses OpenCL). There are some special requirements on the image stride, which width of 9248 does not match. So what will happen is the cpu will realign the image before feeding it to the gpu, but it is a lot of data to copy for a 64Mpix sensor. So I made a small change in width from 9248 to 9216 (just cut off 32 pixels) and it can be fed into the gpu directly. That change is not published yet, but i can share it.

    Lets first confirm that you can use the 1.6.x SDK to start the camera server at 9248x6944 and you should be able to save raw bayer and view the misp output.

    you can always double check the list of available raw resolutions using voxl-camera-server -l

    by "start the misp output stream", i mean that you need to have a client that subscribes to the misp output stream, so that the frames start going and AE can work, sending exposure and gain updates to the camera, so that the image is properly exposed. For example, viewing the stream in voxl-portal or just using voxl-inspect-cam hires_misp_color to get the data flowing, then you can save the raw bayer, which will have the proper exposure and gain applied.

    Alex

    posted in Video and Image Sensors
  • RE: Export Controls

    @Michael-Soul , it is EAR99

    posted in Support Request Format for Best Results