# VOXL 2 M0135 Dual Camera Connections with M0107 and M0149 Cameras

Source: https://forum.modalai.com/topic/3261/voxl-2-m0135-dual-camera-connections-with-m0107-and-m0149-cameras
Category: General Questions (https://forum.modalai.com/category/2/general-questions)
Posted: 2024-03-25 22:02:46 UTC by WineVirus
Replies: 28 · Views: 7429

## WineVirus · 2024-03-25 22:02:46 UTC

I'm pretty new to wiring/connectors/datasheets, so excuse me if my question seems a bit basic;

I wanted to ask about connections for sensors. I have an M0107 and an M0149 sensor, the M0135 chip, on a VOXL 2 Mini. SDK 1.1.1. From what I've found, the M0107 sensor plugs into the JU port on the Dual Sensor chip, which plugs into the J7 port on the VOXL 2 Mini. Thus, the M0149 sensor plugs into the JL port on the M0135 chip. I have no idea if I'm correct. I'm doing my best to follow docs but I've hit a wall. Can someone confirm what the correct connections are?

Thanks in advance!

![IMG_1225 (1) (1).jpg](https://forum.modalai.com/assets/uploads/files/1711404133750-img_1225-1-1-resized.jpg)

## Reply by Alex Kushleyev (ModalAI staff) · 2024-03-26 16:35:18 UTC

@WineVirus ,

Here is one way of connecting these cameras via M0135 adapter:

- make sure the power to VOXL2 is off before connecting / disconnecting cameras
- for all connectors, look for pin 1 or white dot and match up the mating connectors so that pin 1 connects to pin 1
- connect AR0144 (M0149) to M0135 JL (camera slot ID 2)
- connect IMX412 (M0107) to M0135 JU (camera slot ID 3)
- connect M0135 with the two cameras to VOXL mini J7

Software setup:
- since you are using SDK 1.1.1 and we have updated AR0144 driver since (based on [this chanelog](https://docs.modalai.com/sdk-1.1-release-notes/#sdk-112-full-changelog-from-sdk-111) ), download the latest driver for camera slot #2 (`com.qti.sensormodule.ar0144_2.bin`) from [here](https://gitlab.com/voxl-public/voxl-sdk/services/voxl-camera-server/-/blob/master/misc_files/usr/share/modalai/voxl-camera-server/drivers/ar0144/com.qti.sensormodule.ar0144_2.bin) and put it in `/usr/lib/camera/`
- copy the IMX412 driver `cp /usr/share/modalai/chi-cdk/imx412/com.qti.sensormodule.imx412_3.bin /usr/lib/camera/`

Then if you run `voxl-camera-server -l`, it should detect two cameras and print our their resolutions. (if needed, stop `voxl-camera-server` service that may run in the background : `systemctl stop voxl-camera-server`

Before you can use the cameras, you need to update `/etc/modalai/voxl-camera-server.conf` to look something like this:

```
{
	"version":	0.1,
	"cameras":	[{
			"type":	"ar0144",
			"name":	"tracking",
			"enabled":	true,
			"camera_id":	0,
			"fps":	30,
			"en_rotate":	false,
			"en_preview":	true,
			"preview_width":	1280,
			"preview_height":	800,
			"ae_mode":	"lme_msv",
			"ae_desired_msv":	30,
			"exposure_soft_min_us":	5000,
			"ae_filter_alpha":	0.6,
			"ae_ignore_fraction":	0.2,
			"ae_slope":	0.05,
			"ae_exposure_period":	1,
			"ae_gain_period":	1,
			"en_raw_preview":	true,
		}, {
			"type":	"imx412",
			"name":	"hires",
			"enabled":	true,
			"camera_id":	1,
			"fps":	30,
			"en_rotate":	false,
			"en_preview":	false,
			"preview_width":	640,
			"preview_height":	480,
			"en_small_video":	false,
			"small_video_width":	1280,
			"small_video_height":	720,
			"small_venc_mode":	"h265",
			"small_venc_br_ctrl":	"cqp",
			"small_venc_Qfixed":	30,
			"small_venc_Qmin":	15,
			"small_venc_Qmax":	40,
			"small_venc_nPframes":	9,
			"small_venc_mbps":	2,
			"en_large_video":	true,
			"large_video_width":	1920,
			"large_video_height":	1080,
			"large_venc_mode":	"h265",
			"large_venc_br_ctrl":	"cqp",
			"large_venc_Qfixed":	38,
			"large_venc_Qmin":	15,
			"large_venc_Qmax":	50,
			"large_venc_nPframes":	29,
			"large_venc_mbps":	5,
			"en_snapshot":	false,
			"en_snapshot_width":	1280,
			"en_snapshot_height":	720,
			"ae_mode":	"isp",
			"en_raw_preview":	false
		}]
}
```

Please follow these steps and let me know if you run into any issues. After the config file update, you should be able to start voxl camera server. You can do it in the foreground (assuming the background service is stopped), just run `voxl-camera-server` in the voxl2 terminal.

A quick test to see if the cameras are running, you can do:
```
voxl-inspect-cam -a
```
should print all available camera sterams

## Reply by WineVirus · 2024-03-27 22:26:46 UTC (in reply to Alex Kushleyev)

@Alex-Kushleyev ``` voxl-camera-server -l``` outputs
 ```
voxl2-mini:/$ voxl-camera-server -l
DEBUG:   Attempting to open the hal module
DEBUG:   SUCCESS: Camera module opened on attempt 0
DEBUG:   ----------- Number of cameras: 0

DEBUG:   Note: This list comes from the HAL module and may not be indicative
DEBUG:          of configurations that have full pipelines

DEBUG:   Number of cameras: 0
```

I also tried ``` voxl-camera-server -s ``` which gave me

```
voxl2-mini:/$ voxl-camera-server -s
GPS server Connected
ERROR:   Did not detect any cameras plugged in
ERROR:   Failed to get valid debug configuration 
``` 

I'm sure my connections are correct as detailed above (pin 1 on pin 1, correct JL/JU, and on the J7 port). Could it be a bad connector?

## Reply by Alex Kushleyev (ModalAI staff) · 2024-03-27 22:29:36 UTC (in reply to WineVirus)

@WineVirus , can you please provide a picture of the connected cameras to VOXL2 and contents of `/usr/lib/camera` on your VOXL2?

## Reply by WineVirus · 2024-03-27 23:49:45 UTC (in reply to Alex Kushleyev)

@Alex-Kushleyev Here's the output of ```./adb shell ls -la /usr/lib/camera``` . I'll take a picture of the connections when I can. Also, I'm using the VOXL 2 MINI, don't know if that makes any difference.

```total 4664 drwxr-xr-x 3 root root 4096 Mar 2 13:10 . drwxr-xr-x 69 root root 20480 Mar 2 12:59 .. -rwxr-xr-x 1 root root 9912 Oct 26 2023 com.qti.eeprom.cmk_imx577.so -rwxr-xr-x 1 root root 9904 Oct 26 2023 com.qti.sensor.ar0144.so -rwxr-xr-x 1 root root 5816 Oct 26 2023 com.qti.sensor.cmk_imx577.so -rwxr-xr-x 1 root root 5816 Oct 26 2023 com.qti.sensor.cmk_imx577_flip.so -rwxr-xr-x 1 root root 9904 Oct 26 2023 com.qti.sensor.imx214.so -rwxr-xr-x 1 root root 9912 Oct 26 2023 com.qti.sensor.imx214_flip.so -rwxr-xr-x 1 root root 9904 Oct 26 2023 com.qti.sensor.imx335.so -rwxr-xr-x 1 root root 5808 Oct 26 2023 com.qti.sensor.imx377.so -rwxr-xr-x 1 root root 9904 Oct 26 2023 com.qti.sensor.imx678.so -rwxr-xr-x 1 root root 9912 Oct 26 2023 com.qti.sensor.imx678_flip.so -rwxr-xr-x 1 root root 9912 Oct 26 2023 com.qti.sensor.imx678_mod.so -rwxr-xr-x 1 root root 5808 Oct 26 2023 com.qti.sensor.irs1645.so -rwxr-xr-x 1 root root 9904 Oct 26 2023 com.qti.sensor.ov7251.so -rwxr-xr-x 1 root root 9912 Oct 26 2023 com.qti.sensor.ov7251_front_left.so -rwxr-xr-x 1 root root 9920 Oct 26 2023 com.qti.sensor.ov7251_front_left_flip.so -rwxr-xr-x 1 root root 9920 Oct 26 2023 com.qti.sensor.ov7251_front_right.so -rwxr-xr-x 1 root root 9920 Oct 26 2023 com.qti.sensor.ov7251_front_right_flip.so -rwxr-xr-x 1 root root 9912 Oct 26 2023 com.qti.sensor.ov7251_fsin.so -rwxr-xr-x 1 root root 9912 Oct 26 2023 com.qti.sensor.ov7251_fsout.so -rwxr-xr-x 1 root root 9912 Oct 26 2023 com.qti.sensor.ov7251_rear_left.so -rwxr-xr-x 1 root root 9920 Oct 26 2023 com.qti.sensor.ov7251_rear_left_flip.so -rwxr-xr-x 1 root root 9912 Oct 26 2023 com.qti.sensor.ov7251_rear_right.so -rwxr-xr-x 1 root root 9920 Oct 26 2023 com.qti.sensor.ov7251_rear_right_flip.so -rwxr-xr-x 1 root root 9904 Oct 26 2023 com.qti.sensor.ov9782.so -rwxr-xr-x 1 root root 9912 Oct 26 2023 com.qti.sensor.ov9782_front_left.so -rwxr-xr-x 1 root root 9920 Oct 26 2023 com.qti.sensor.ov9782_front_left_flip.so -rwxr-xr-x 1 root root 9920 Oct 26 2023 com.qti.sensor.ov9782_front_right.so -rwxr-xr-x 1 root root 9920 Oct 26 2023 com.qti.sensor.ov9782_front_right_flip.so -rwxr-xr-x 1 root root 9912 Oct 26 2023 com.qti.sensor.ov9782_rear_left.so -rwxr-xr-x 1 root root 9920 Oct 26 2023 com.qti.sensor.ov9782_rear_left_flip.so -rwxr-xr-x 1 root root 9912 Oct 26 2023 com.qti.sensor.ov9782_rear_right.so -rwxr-xr-x 1 root root 9920 Oct 26 2023 com.qti.sensor.ov9782_rear_right_flip.so -rw-rw-rw- 1 root root 31984 Mar 26 2024 com.qti.sensormodule.ar0144_2.bin -rw-r--r-- 1 root root 578576 Mar 2 13:12 com.qti.sensormodule.imx412_flip_3.bin -rw-r--r-- 1 root root 142472 Mar 2 13:12 com.qti.sensormodule.ov7251_2.bin -rw-r--r-- 1 root root 957344 Oct 26 2023 com.qti.tuned.cmk_imx577.bin -rw-r--r-- 1 root root 835464 Oct 26 2023 com.qti.tuned.cmk_ov9282.bin -rw-r--r-- 1 root root 931864 Oct 26 2023 com.qti.tuned.default.bin -rw-r--r-- 1 root root 882376 Oct 26 2023 com.qti.tuned.sony_imx335.bin drwxr-xr-x 2 root root 4096 Oct 26 2023 components ```

## Reply by Alex Kushleyev (ModalAI staff) · 2024-03-27 23:59:04 UTC (in reply to WineVirus)

@WineVirus 

I will test your camera configuration on voxl2 mini running sdk 1.1.1 and will follow up soon.

If you have a picture that will be helpful to confirm correct connections.

## Reply by Alex Kushleyev (ModalAI staff) · 2024-03-28 01:22:57 UTC (in reply to Alex Kushleyev)

Hi, I just connected the two cameras to voxl-2 mini running SDK 1.1.1.

For ar0144, please use the latest `sensormodule` file from [this location](https://gitlab.com/voxl-public/voxl-sdk/services/voxl-camera-server/-/blob/master/misc_files/usr/share/modalai/voxl-camera-server/drivers/ar0144/com.qti.sensormodule.ar0144_2.bin) . The one that comes with SDK 1.1.1 has stability issues.

```
#from your PC
adb push ~/Downloads/com.qti.sensormodule.ar0144_2.bin /usr/lib/camera/

#now on VOXL2 mini
voxl2-mini:/$ cp /usr/share/modalai/chi-cdk/imx412/com.qti.sensormodule.imx412_3.bin /usr/lib/camera/

voxl2-mini:/$ voxl-camera-server -l
DEBUG:   Attempting to open the hal module
DEBUG:   SUCCESS: Camera module opened on attempt 0
DEBUG:   ----------- Number of cameras: 2

DEBUG:   Cam idx: 0, Cam slot: 2, Slave Address: 0x0030, Sensor Id: 0x0356
DEBUG:   Cam idx: 1, Cam slot: 3, Slave Address: 0x0034, Sensor Id: 0x0577
DEBUG:   Note: This list comes from the HAL module and may not be indicative
DEBUG:   	of configurations that have full pipelines

DEBUG:   Number of cameras: 2
...
```

The `/etc/modalai/voxl-camera-server.conf` should look like this (a good starting point):
```
{
	"version":	0.1,
	"cameras":	[{
			"type":	"ar0144",
			"name":	"tracking",
			"enabled":	true,
			"camera_id":	0,
			"fps":	30,
			"en_rotate":	false,
			"en_preview":	true,
			"preview_width":	1280,
			"preview_height":	800,
			"en_raw_preview":	true,
			"ae_mode":	"lme_msv",
			"ae_desired_msv":	60,
			"exposure_min_us":	20,
			"exposure_max_us":	33000,
			"gain_min":	54,
			"gain_max":	8000,
			"exposure_soft_min_us":	5000,
			"ae_filter_alpha":	0.600000023841858,
			"ae_ignore_fraction":	0.20000000298023224,
			"ae_slope":	0.05000000074505806,
			"ae_exposure_period":	1,
			"ae_gain_period":	1
		}, {
			"type":	"imx412",
			"name":	"hires",
			"enabled":	true,
			"camera_id":	1,
			"fps":	30,
			"en_preview":	false,
			"preview_width":	640,
			"preview_height":	480,
			"en_raw_preview":	false,
			"en_small_video":	true,
			"small_video_width":	1280,
			"small_video_height":	800,
			"small_venc_mode":	"h265",
			"small_venc_br_ctrl":	"cqp",
			"small_venc_Qfixed":	30,
			"small_venc_Qmin":	15,
			"small_venc_Qmax":	40,
			"small_venc_nPframes":	9,
			"small_venc_mbps":	2,
			"en_large_video":	true,
			"large_video_width":	3840,
			"large_video_height":	2160,
			"large_venc_mode":	"h265",
			"large_venc_br_ctrl":	"cqp",
			"large_venc_Qfixed":	38,
			"large_venc_Qmin":	15,
			"large_venc_Qmax":	50,
			"large_venc_nPframes":	29,
			"large_venc_mbps":	30,
			"en_snapshot":	false,
			"en_snapshot_width":	4056,
			"en_snapshot_height":	3040,
			"ae_mode":	"isp"
		}]
}
```
then you can start `voxl-camera-server` in regular mode (without `-l`), it should run.

use `voxl-inspect-cam -a` to check video streams:
```
|           Pipe Name |  bytes  | wide |  hgt |exp(ms)| gain | frame id |latency(ms)|  fps |  mbps  | format
|   hires_large_color |12441600 | 3840 | 2160 | 33.23 | 1125 |      566 |     78.3  | 29.9 | 2974.3 | NV12
| hires_large_encoded |    4893 | 3840 | 2160 | 33.23 | 1125 |      566 |     89.2  | 29.9 |    1.3 | H265 (P)   
|    hires_large_grey | 8294400 | 3840 | 2160 | 33.23 | 1125 |      567 |     70.6  | 29.9 | 1982.9 | RAW8
|   hires_small_color | 1536000 | 1280 |  800 | 33.23 | 1125 |      568 |     57.3  | 29.9 |  367.2 | NV12
| hires_small_encoded |    2710 | 1280 |  800 | 33.23 | 1125 |      568 |     60.9  | 29.9 |    1.8 | H265 (P)   
|    hires_small_grey | 1024000 | 1280 |  800 | 33.23 | 1125 |      568 |     55.5  | 29.9 |  244.8 | RAW8
|            tracking | 1024000 | 1280 |  800 |  7.04 |  665 |     8043 |     20.7  | 30.0 |  245.6 | RAW8
```

Then you can use voxl-portal to view images (assuming you have a wired or wifi adapter plugged into your  voxl2-mini:
(if voxl portal is not enabled, you can enable it):
```
systemctl enable voxl-portal
systemctl start voxl-portal
```

Then go to web browser and enter your voxl2-mini's ip to view `voxl-portal`

## Reply by Alex Kushleyev (ModalAI staff) · 2024-03-28 01:26:13 UTC (in reply to Alex Kushleyev)

images of my setup attached

![IMG_3880.jpg](https://forum.modalai.com/assets/uploads/files/1711589103147-img_3880-resized.jpg) 
![IMG_3881.jpg](https://forum.modalai.com/assets/uploads/files/1711589150763-img_3881-resized.jpg)

## Reply by WineVirus · 2024-03-28 21:54:48 UTC (in reply to Alex Kushleyev)

@Alex-Kushleyev Here's what I'm seeing: ![bc33809b-869c-4beb-a235-a691d3cde4be-image.png](https://forum.modalai.com/assets/uploads/files/1711662656524-bc33809b-869c-4beb-a235-a691d3cde4be-image.png) 

Here's the wiring; It looks the same as yours. ![IMG_1311 (1).jpg](https://forum.modalai.com/assets/uploads/files/1711662822670-img_1311-1-resized.jpg) ![IMG_1312 (1).jpg](https://forum.modalai.com/assets/uploads/files/1711662826267-img_1312-1-resized.jpg)

## Reply by Alex Kushleyev (ModalAI staff) · 2024-03-28 22:14:35 UTC (in reply to WineVirus)

@WineVirus i believe you have M0135 plugged into J6 instead of J7 like I do. Take a look at my photo again.

## Reply by WineVirus · 2024-03-29 21:41:49 UTC (in reply to Alex Kushleyev)

@Alex-Kushleyev Ahh, yeah. My board is upside down, so I got turned around. 

I'm now detecting one camera, but both are plugged in. I'm not sure which one this is? 

 ```
voxl2-mini:/$ voxl-camera-server -l
DEBUG:   Attempting to open the hal module
DEBUG:   SUCCESS: Camera module opened on attempt 0
DEBUG:   ----------- Number of cameras: 1

DEBUG:   Cam idx: 0, Cam slot: 2, Slave Address: 0x0030, Sensor Id: 0x0356
DEBUG:   Note: This list comes from the HAL module and may not be indicative
DEBUG:          of configurations that have full pipelines

DEBUG:   Number of cameras: 1  
```

Also, in terms of updating the config - is it a push command, like the ar0144 driver? Not sure what command to use in ADB.

## Reply by Alex Kushleyev (ModalAI staff) · 2024-03-29 21:52:43 UTC (in reply to WineVirus)

@WineVirus please double check that you have `com.qti.sensormodule.imx412_3.bin` in  `/usr/lib/camera/` and also double check the orientation of the flex cable coming out of IMX412 camera inside your 3D printed enclosure. It should come straight away from the camera not towards to center of the camera PCB.

for the configuration file, you could edit it right on VOXL (using a command line text editor, like `vi`), or you can make a new file `voxl-camera-server.conf` on your PC with the exact contents that i posted and push it to `/etc/modalai/`

Alex

## Reply by WineVirus · 2024-03-29 22:07:59 UTC (in reply to Alex Kushleyev)

@Alex-Kushleyev Is there somewhere I can download the imx412_3.bin file? It's not in the output of ```./adb shell ls -la /usr/lib/camera``` 

The flex connector comes straight away from the camera. 

I've pushed the server config file.

## Reply by Alex Kushleyev (ModalAI staff) · 2024-03-29 22:23:37 UTC (in reply to WineVirus)

@WineVirus 

copy the IMX412 driver 

cp /usr/share/modalai/chi-cdk/imx412/com.qti.sensormodule.imx412_3.bin /usr/lib/camera/

## Reply by WineVirus · 2024-03-29 22:29:53 UTC (in reply to Alex Kushleyev)

@Alex-Kushleyev ok, the imx412_3 bin file is in /usr/lib/camera/, but I'm still only sensing 1 camera. 

Also, I'll be on spring break, so I apologize for a potential lack of response.

## Reply by Alex Kushleyev (ModalAI staff) · 2024-03-29 22:46:10 UTC (in reply to WineVirus)

@WineVirus Hmm. please double check to make sure all the connectors are seated properly. They should "snap in" as you insert them.

If that does not work, it could be a bad cable for IMX412 camera, or something else. we can try putting IMX412 on JL, so it would e imx412_2, which you could also copy and try. Then AR0144 could be on JU, so you could download it from here  : https://gitlab.com/voxl-public/voxl-sdk/services/voxl-camera-server/-/blob/master/misc_files/usr/share/modalai/voxl-camera-server/drivers/ar0144/com.qti.sensormodule.ar0144_3.bin

Swapping the cameras can help figure out where the issue is. You can leave the existing sensormodules in there (no need to delete them), just add ar0144_3 and imx412_2

## Reply by Alex Kushleyev (ModalAI staff) · 2024-03-29 22:53:16 UTC (in reply to Alex Kushleyev)

If you switch the two cameras around, make sure double check pin 1 on the connector. JL and JU are rotated 180 degrees with respect to each other. You can also just test IMX412 and not connect AR0144 at all, if that is simpler, so that you could test IMX412 only.

## Reply by WineVirus · 2024-04-08 21:57:49 UTC (in reply to Alex Kushleyev)

@Alex-Kushleyev Ran through the troubleshooting steps (swapping both connections), still only getting one camera (same ID, just on the other slot). I think I'll just replace the cable.

Can I work on the setup on only one sensor, with a simple way to add another one? Or will I have to redo the whole setup when I have both?

```
voxl2-mini:/$ voxl-camera-server -l
existing instance of voxl-camera-server found, attempting to stop it
DEBUG:   Attempting to open the hal module
DEBUG:   SUCCESS: Camera module opened on attempt 0
DEBUG:   ----------- Number of cameras: 1

DEBUG:   Cam idx: 0, Cam slot: 3, Slave Address: 0x0030, Sensor Id: 0x0356
DEBUG:   Note: This list comes from the HAL module and may not be indicative
DEBUG:          of configurations that have full pipelines

DEBUG:   Number of cameras: 1
```

## Reply by Vinny (ModalAI staff) · 2024-04-09 05:36:39 UTC (in reply to WineVirus)

Hi @WineVirus 
I think you are also using M0135 wrong.
You can only use 1 of them on each J6 or J7, they cannot be cascaded.
The way I see this here is not the correct usage:
![dfc1df9a-4e0d-4cd5-b5ef-0bdda810512b-image.png](https://forum.modalai.com/assets/uploads/files/1712640781579-dfc1df9a-4e0d-4cd5-b5ef-0bdda810512b-image.png) 
So the hires camera will never work like this.
The one camera you do see is the tracking cam... this one:
![94deff10-3f1d-44cd-bc54-c14c1d1f5aad-image.png](https://forum.modalai.com/assets/uploads/files/1712640824505-94deff10-3f1d-44cd-bc54-c14c1d1f5aad-image.png) 
You must connect the module into M0135 directly only when plugged into the Voxl 2 Mini.
It is not designed to use the extension flex to mate to another image sensor via M0135.
In summary, remove this second M0135 and the M0036 extension flex:
![3347e9d8-6d9e-4071-960f-15feba9d5b92-image.png](https://forum.modalai.com/assets/uploads/files/1712640932161-3347e9d8-6d9e-4071-960f-15feba9d5b92-image.png) And plug the M0149 directly into M0135 here to mimic what Alex has demonstrated:
![80feee73-fcaa-47fd-80ad-77b3c12fe560-image.png](https://forum.modalai.com/assets/uploads/files/1712640978255-80feee73-fcaa-47fd-80ad-77b3c12fe560-image.png) 
Hope this helps.

If I am mistaken, please let us know but this is what I gather from your photos.

## Reply by Alex Kushleyev (ModalAI staff) · 2024-04-09 13:11:08 UTC (in reply to Vinny)

@Vinny , i was able to use both cameras in this configuration (see above in this thread). 

It seems the imx412 camera is not detected, potentially bad extension flex cable or (less likely) bad camera.  Has this hires camera worked before at some point?

## Reply by Vinny (ModalAI staff) · 2024-04-09 16:05:59 UTC (in reply to Alex Kushleyev)

@Alex-Kushleyev  OK, I am just making sure the M0135 is not used in a cascaded mode (a M0135 plugged into another M0135). That is what the first pictures look like to me since the M0135 is just sitting open on a bench.

As far as the image sensor, all modules are tested at ModalAI HQ before shipping in a known good working configuration of hardware (i.e.: a golden setup). So, yes, all image sensors are working when shipped. Same for the extension flexes. Every one is tested before shipping.

I do see a bend in the flex right here, so hopefully that is not a firm crease since creases will damage flexes: ![e3cd096d-78c1-4934-b59b-169d66df18bf-image.png](https://forum.modalai.com/assets/uploads/files/1712678702856-e3cd096d-78c1-4934-b59b-169d66df18bf-image.png) 
Hope this helps!

## Reply by WineVirus · 2024-04-09 21:33:20 UTC (in reply to Vinny)

@Vinny I think you may be mistaken... One end of the M0036 is connected to the M0135, and the other end is connected to the M0107 Camera (that's inside the purple case). We're only using one M0135. 

I'm receiving a new M0036 cable tomorrow. I'll test that.

## Reply by Vinny (ModalAI staff) · 2024-04-09 21:43:34 UTC (in reply to WineVirus)

@WineVirus Thanks for confirming!
Just trying to help and that picture struck me as odd.

Glad you have it covered with Alex, he'll guide you correctly!!!

## Reply by WineVirus · 2024-04-09 22:02:11 UTC (in reply to Alex Kushleyev)

@Alex-Kushleyev I'm trying to run ``` voxl-camera-server ``` and I'm getting error messages for both cameras; The hires camera makes sense, but I'm not sure about the tracking cam...

I've swapped the M0149 back to the JL port where it was originally. Also, I personally haven't gotten the hires camera working, but I agree that it's more likely the cable. 
``` =================================================================
Starting Camera: tracking
Using gain limits min: 54 max: 863
ERROR:   Camera 0 failed to find supported preview config: 640x480
ERROR:   Failed to start camera: tracking
Starting Camera: hires
ERROR:   failed to call HAL3 get_camera_info for cam 1
ERROR:   Failed to start camera: hires

------ voxl-camera-server: Camera server is now running 
```

I'm not getting any output. Also, ``` voxl-inspect-services ``` lists ```  voxl-camera-server       |  Enabled  | Not Running | ``` (I'm assuming it's because it has no cameras to run). Voxl Portal and ```voxl-inspect-cam``` show no camera streams. 

![image_2024-04-09_150047903.png](https://forum.modalai.com/assets/uploads/files/1712700048174-image_2024-04-09_150047903.png)

## Reply by Alex Kushleyev (ModalAI staff) · 2024-04-09 22:43:55 UTC (in reply to WineVirus)

@WineVirus , i would suggest retracing the steps you took to get the tracking camera to work (from the beginning, after i posted the directions and pictures). 

Once you get the tracking camera working, you can try to test the flex by connecting the tracking camera using the flex cable (please wat ch carefully the pin1 orientations). If the flex cable works for tracking camera, it is possible that imx412 has an issue.

I will be back in office tomorrow and can provide more guidance for testing.

## Reply by Alex Kushleyev (ModalAI staff) · 2024-04-10 20:13:28 UTC (in reply to Alex Kushleyev)

Actually, i believe in your test, the tracking camera was detected, but you requested unsupported resolution of 640x480. AR0144 only supports raw resolution of 1280x800.

You can see that the error for tracking camera is `ERROR:   Camera 0 failed to find supported preview config: 640x480` as opposed to hires camera `ERROR:   failed to call HAL3 get_camera_info for cam 1`

So, you should check your `voxl-camera-server.conf` to make sure that the preview resolution is set to `1280x800` for the AR0144 tracking camera, then it should work.

After that, in order to check if the Flex cable is OK, you can insert the flex cable into the connection between M0135 and AR0144 camera, double check the pin1 orientations.

## Reply by WineVirus · 2024-04-10 22:14:11 UTC (in reply to Alex Kushleyev)

@Alex-Kushleyev I changed the resolution to be correct, and we finally have feed! Live output in voxl portal and ``` voxl-inspect-cam ```.

I've confirmed that M0036 cable is bad, the tracking camera isn't able to connect when routed through the cable. 

However, we have a major issue with the feed we are receiving. We think it's a combination of bad focus + a possibly scratched lens... maybe you can help us diagnose. This the tracking output in Voxl Portal using the 9x6 checkerboard. We're using other forum threads to try and test out focus but I'd love to hear your preliminary thoughts. 

![tracking_1712786726.png](https://forum.modalai.com/assets/uploads/files/1712786997063-tracking_1712786726.png)

## Reply by Alex Kushleyev (ModalAI staff) · 2024-04-10 22:55:45 UTC (in reply to WineVirus)

@WineVirus ,

Yes it appears the the camera lens is scratched but separately from that, it is out of focus because the image is blurry and you can actually see the scratch on the lens (if camera was focused properly, you would not see the scratch, maybe some blurriness instead). Was the lens turned from its original focus position or is it damaged such that lens holder is separated from the back of the camera?

Regarding the flex, if you believe that it came in non-working condition, please submit an RMA for a replacement. Just to be 100% sure, i will run a test with AR0144 and extension flex and send you results tonight or tomorrow (with picture of connection)

## Reply by Alex Kushleyev (ModalAI staff) · 2024-04-11 00:58:27 UTC (in reply to Alex Kushleyev)

I tested AR0144 with M0036 flex in the configuration shown in picture below and it works. I also have the IMX412 camera attached with its own flex. The dual flex configuration is not ideal for plugging into M0135 due to flexes pointing towards each other after being connected to M0135, but for testing purposes it is OK. 

If you have AR0144 camera connected in the same way with the flex cable and the camera is not detected, then it seems like the flex cable is the issue.

![IMG_3942.jpg](https://forum.modalai.com/assets/uploads/files/1712797006349-img_3942-resized.jpg)
