# Two-camera VIO non-functional in voxl-open-vins-server 0.6.0 (SDK 1.6.3)

Source: https://forum.modalai.com/topic/5148/two-camera-vio-non-functional-in-voxl-open-vins-server-0-6-0-sdk-1-6-3
Category: Autonomy: VIO, Mapping and Navigation (https://forum.modalai.com/category/19/autonomy-vio-mapping-and-navigation)
Tags: vio
Posted: 2026-04-02 12:28:11 UTC by cbay
Replies: 4 · Views: 2618

## cbay · 2026-04-02 12:28:11 UTC

System Info
Hardware: VOXL2 Mini (M0104)
SDK: 1.6.3
voxl-open-vins-server: 0.6.0
libmodal-flow: 1.0.3
libmodal-cv: 0.6.0
Cameras: 4x AR0144 (ON Semi) via M0188 expansion board

Background
Building a custom GPS-denied navigation system targeting 4 AR0144 IR cameras in VIO. All 4 cameras are individually confirmed working as cam0 with good feature counts (80–160 features each, clean init). Single-camera VIO works but two-camera VIO is non-functional.

Issue 1: cam1 always returns 0 features (internal tracker)
With two cameras in vio_cams.conf, cam1 returns 0 features and NaN disparity every frame regardless of which physical camera occupies the slot. Bug follows the VIO slot, not the hardware. Confirmed not a pipe, cal file, GPU/CPU, or config issue.
Enabling en_ext_feature_tracker: true causes cam1 to detect features (58–75), confirming the internal tracker's cam1 slot is broken.

Issue 2: Camera fusion timeouts — two cameras never synchronized
With two cameras enabled, VIO never fuses both streams. The ready mask never reaches 0x3:
Camera fusion timeout (ready mask: 0x1, expected: 0x3)
Camera fusion timeout (ready mask: 0x2, expected: 0x3)
Camera fusion timeout (ready mask: 0x0, expected: 0x3)
This occurs with both internal and external tracker. Increasing fusion_rate_dt_ms to 40ms did not help.

Questions
Is there a known fix or newer package available? apt list --upgradable shows nothing.
Is there a separate package feed for SDK 1.6.3 we should be pulling from?
Is fusion_rate_dt_ms the right parameter to fix the synchronization issue, and if so what value is recommended for two unsynchronized AR0144 cameras?
Our goal is 4-camera simultaneous VIO — is this supported on SDK 1.6.3?

## Reply by Alex Kushleyev (ModalAI staff) · 2026-04-02 13:06:53 UTC

@cbay , based on discussion from the other thread (https://forum.modalai.com/topic/5130/running-4-ar0144s-on-m0188), you are running two AR0144 cameras that are synchronized and two unsynchronized. 

Can you please clarify which cameras you are using when testing the two-camera open vins setup? If you only have the 4 AR0144 plugged in, then ID0 and ID3 will be synchronized (camera slots 0 and 6) and the other two cameras (cam id 1, 2 - slots 2,3).

Alex

## Reply by cbay · 2026-04-02 19:48:44 UTC (in reply to Alex Kushleyev)

@Alex-Kushleyev said in [Two\-camera VIO non\-functional in voxl\-open\-vins\-server 0\.6\.0 \(SDK 1\.6\.3\)](/post/25652):
> Can you please clarify which cameras you are using when testing the two-camera open vins setup? If you only have the 4 AR0144 plugged in, then ID0 and ID3 will be synchronized (camera slots 0 and 6) and the other two cameras (cam id 1, 2 - slots 2,3).
> 
> 

I think there may be some confusion, I am running the 4 camera's on J0, J1, J2, and J3 not J6. I have none of the camera;s setup with fsin drivers, just the standard ones. I am happy to swap these to fsin but that was where my problems were for getting frames. 

If it is necessary to fsin for OpenVins please let me know, and then we can go through the process of syncing all of them.

## Reply by Alex Kushleyev (ModalAI staff) · 2026-04-02 20:04:22 UTC (in reply to cbay)

@cbay , thanks for clarifying

On M0188, J1 and J3 do not have the sync signal connected. We will release a diagram shortly showing where to install 0-ohm resistors on M0188 to connect the sync signal to the corresponding camera ports.

And you will need fsin drivers for J0, J1, J2, J3 (will share them shortly as well)

By default, the AR0144 tracking cameras are connected to J0 and J6 (camera slots 0, 6), which are actually connected to a single CSI interface and are used in a combo mode (two 1-lane (mipi lane) cameras merged into a single 4-lane mipi interface).

Note that when the `fsin` or `combo` (combo mode drivers also use input trigger) are used, but there is no actual sync / trigger signal getting to the camera, then there will be no frames produced. This is specific to the AR0144 camera, as other cameras may operate differently and use the sync signal to align the readout trigger (so in absence of trigger signal, those cameras would simply be not sync'ed, but AR0144 just does not send any frames) 

Alex

## Reply by Alex Kushleyev (ModalAI staff) · 2026-04-02 20:42:50 UTC (in reply to Alex Kushleyev)

I have uploaded the latest ar0144 drivers with `fsin` versions for all camera slots here : https://storage.googleapis.com/modalai_public/temp/ar0144/ar0144_drivers_20260402.zip

There are two additional files (inside the zip), which you should copy to `/usr/lib/camera`  to make sure you have the latest updates:
- `com.qti.sensor.ar0144.so` -- contains functions for exposure / gain control (we recently made some improvements to make gain control smoother)
- `com.qti.tuned.default.bin` -- fixed gain scaling so that min gain (1.0x analog gain) is equal to 100 in the HAL3 gain units, not 54 (and the max gain will be 29.6 = 29600 for AR0144) -- you can also double check this using `voxl-camera-server -l` and update the min/max gain settings in your `voxl-camera-server.conf` to make sure you are using the full range.

My colleague will follow up with a diagram for locations of the DNI resistors that need to be installed to enable sync signal for camera slots 1 and 3 (0402 0-ohm resistor)

Alex
