@Alex-Kushleyev Thanks so much, we have the resistors on the way, will let you know how this goes.
Once this has been done, I would assume we would have no issues getting all of the cameras working with OpenVins
@Alex-Kushleyev Thanks so much, we have the resistors on the way, will let you know how this goes.
Once this has been done, I would assume we would have no issues getting all of the cameras working with OpenVins
@Alex-Kushleyev said in Two-camera VIO non-functional in voxl-open-vins-server 0.6.0 (SDK 1.6.3):
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.
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?
@Alex-Kushleyev We are running OpenVINS for our VIO. Not sure what other requirements you need to know
@cbay I got it working by swapping it to ID's 0-3 (2 on the hires lines).
Any known issues with doing this for use in VIO?
Hi Hope yall are well,
I am currently working on getting 4 Ar0144's connected to M0188 and running. As of now all 4 seem to be starting up in voxl Camera server, But ID0 and ID 6 (the ones that should be a combo of eachother) don't seem to be sending frames. If I change what cameras are on what port the new cameras on 2 and 3 start working and 0 and 6 still dont work (showing its a driver/board issue not connector or camera issue)
We had this working previously but cant seem to get it working again. Cameras are plugged into J0, J2, J3 and J6 as was previously recommended.
Here is our Custom Config
#!/bin/bash
################################################################################
#
# This file allows setting of custom camera configurations by defining what
# sensors are plugged into which port.
#
# There is no guarantee that any arbitrary configuration will work. Only the
# predefined camera configs at https://docs.modalai.com/voxl2-camera-configs/
# are supported.
#
# each slot can be one of the following sensors:
#
# pmd-tof
# pmd-tof-liow2
# ov7251
# ov7251-combo
# ov9782
# ov9782-combo
# ar0144
# ar0144-fsin (for use with m0173 and Starling 2 only)
# ar0144-fsin-combo (for use with m0173 and Starling 2 only)
# ar0144-12bit
# ar0144-12bit-fsin (for use with m0173 and Starling 2 only)
# ar0144-12bit-fsin-combo (for use with m0173 and Starling 2 only)
# imx214
# imx412
# imx412-fpv (low latency mode)
# imx678
#
#
# When using a combo mode pair, you must also add a JX_COMBO_MODE field which
# specifies is the pair is to be set up as either a stereo pair ordered
# left-right, right-left, or treated as two independent cameras. If you are
# using a combo-mode flex but only physically connect one of the two cameras
# then select "single" it does not matter which one you connect.
#
# For example:
# J6_LOWER_COMBO_MODE="left-right"
# J6_LOWER_COMBO_MODE="right-left"
# J6_LOWER_COMBO_MODE="independent"
# J6_LOWER_COMBO_MODE="single"
#
# when running "independent" combo mode, also add a NAME2 field for the second cam
# e.g J6_LOWER_NAME2="tracking_rear"
#
# for all sensors except TOF, you can specify a "rotate" flag to
# rotate the image 180 degrees e.g. J6_LOWER_ROTATE="true" or "false"
# for stereo pairs (e.g. ov7251 combo or ar0144-slave-strereo) you can specify
# "rotate-first-only" or "rotate-second-only" to only rotate one, other wise
# when setting the rotate option to "true" both will be rotated.
#
#
# Once configured, this file should live in /data/modalai/custom_camera-config.txt
# then run voxl-configure-cameras custom to load it in
#
#
# cp /usr/share/modalai/voxl-camera-server/custom_camera_config.txt /data/modalai/
#
# We also suggest changing your /data/modalai/sku.txt file to have a camera
# config term "CC" such as MRB-D0005-4-V2-CC
################################################################################
J6_LOWER_SENSOR="ar0144-fsin-combo"
J6_LOWER_NAME="tracking_0"
J6_LOWER_NAME2="tracking_6"
J6_LOWER_ROTATE="false"
J6_LOWER_COMBO_MODE="independent"
J6_LOWER_COMBO1_SENSOR="ar0144-fsin-combo"
J6_LOWER_COMBO1_NAME="tracking_6"
J6_LOWER_COMBO1_ROTATE="false"
J6_UPPER_SENSOR=""
J6_UPPER_NAME=""
J6_UPPER_ROTATE=""
J7_LOWER_SENSOR="ar0144"
J7_LOWER_NAME="tracking_2"
J7_LOWER_ROTATE="false"
J7_LOWER_COMBO_MODE="single"
J7_UPPER_SENSOR="ar0144"
J7_UPPER_NAME="tracking_3"
J7_UPPER_ROTATE="false"
J8_LOWER_SENSOR=""
J8_LOWER_NAME=""
J8_LOWER_ROTATE="false"
J8_UPPER_SENSOR=""
J8_UPPER_NAME=""
J8_UPPER_ROTATE="false"
@cbay This may be a stretch but I do think it has something to do with the difference between voxl-fpv-px4 and voxl-px4. Can someone explain the differences between them
@cbay Reflashing seems to have fixed it, so it isnt a hardware problem and is instead a firmware issue. I am loading custom drivers into voxl-px4, any clue how that can affect it
Been working with the VOXL2 Mini for awhile, communicating with I2C devices using QUP0 on J19. Today ran into an issue of communication and I2C probing failing, finally figured it out to be my SDA line being shorted by the VOXL. I tried different cables, different I2C devices and a seperate VOXL2 Mini, all of them had the SDA line shorted on one mini, and pulled high as is proper on the other.
I see no visible damage on the voxl2 mini and nothing has happened that could've caused this. Any information would be greatly appreciated, specially as if this mini cant use that I2C bus anymore it is useless for our purposes.
Cheers
Carson
@Alex-Kushleyev Found the reason why it was skipping. In /px4-firmware/src/lib/parameters/CMakeLists.txt there is a line that skips all modules that match 'pwm_out'. I was able to disable that for PCA9685. Once I disabled the module.yaml file being skipped it worked. No need for the .c file (which makes sense, that is just the old way to do the .yaml)
@Alex-Kushleyev My issue is the params arent loaded from the YAML file of the driver, so I can't set and save them. I get errors whenever I try to run param set.
Any help on making sure this drivers module.yaml file gets loaded properly
@cbay https://github.com/modalai/px4-firmware/blob/main/src/drivers/pca9685_pwm_out/module.yaml here is where I think the params are
@cbay Checked out a older tag on voxl-px4 and was able to build and install.
When I run the driver I get an error revolving around its Freq, I understand you dont work with the driver so I doubt yall will have info about it.
What I am looking for is how to get the necessary Px4 parameters to show up, as they dont seem to be included properly
@cbay Most of the way through the build process, was able to sort it out including the necessary edits to the PCA driver. Issue I am running into is both the dev and master branches of voxl-px4 require a newer version of libfc-sensor (1.0.9 and 1.0.10 respectively) then what is included in 1.6.2 of the SDK.
I am not sure how to upgrade this library
@Eric-Katzfey Sounds good, any tips or steps on how to add to the build and to upload to the board?
Hey hope yall are well,
I am trying to interface a PCA9685 onto J19 of the VOXL2 (and ultimately the VOXL 2 Mini). I have connected the chip to QUP0 (Magnetometer I2C) and am trying to start the px4 driver for the PCA9685 found here: https://github.com/modalai/px4-firmware/tree/main/src/drivers/pca9685_pwm_out
I have started PX4 outside of daemon mode and am running the command: px4-qshell pca9685_pwm_out start -a 0x40 -b $ (have tried multiple busses). Everytime I get the error in qshell: Command pca9685_pwm_out not found. I can't seem to find the documentation on how to load this driver onto the VOXL2. Any support would be helpful. I am running on the newest SDK.
@Alex-Kushleyev Thanks so much for the information. I will be receiving the boards shortly and will run through those tests.
How much work do you think it would take to update voxl-lepton-server
@Vinny Thanks for the info,
Just to be clear, I am not looking for the PCB design schematics, just a symbol per board showing all the inputs and outputs to the board as a whole which then could be used in a system wiring diagram. If not I can just go ahead and make them myself, as all the info for it is on your docs
@Alex-Kushleyev said in M0173 with 4 AR0144 Tracking cameras:
one
Any info about the dual lepton, it does seem to be documented that it works, please let me know if it doesnt.
Hey hope you are well,
I am currently designing a system using ModalAI products and was wondering if any of the PCB Schematic symbols were available. I am not looking for the internal connections on the PCB, just symbols of the entire PCB so I can map inputs and outputs within KiCad (ensuring I am not accidentally doubling up on a UART etc). All this info is available in the documentation so I assumed it wouldn't be an issue (if they exist), it would just save me a lot of time making my own symbols.
Cheers
Carson