VOXL2 IMX412 Camera "Received 0 buffers" Error
-
@ysc , can you please provide the end of the output from
dmesg
when you attempt to start the camera?And just to confirm, you tried using a different IMX412 camera (of the same type) and a different M0036 Flex cable?
In the past we have seen that some flex cables (may be out of spec) do not work well with IMX412 camera. We can test this with a special camera driver (sensormodule), which will use the camera in very low MIPI bit rate. However, before we do that, can you please provide the output of
dmesg
when this failure happens?Also, did this camera + flex configuration work before, or this is the first time you are testing it and it is not working?
Thank you
Alex
-
Thank you for your response. I have conducted the tests you suggested:
Test Results:
-
Direct connection (without M0036 extension cable):
SUCCESS: Camera works perfectly when connected directly to VOXL2
IMX412 camera is properly detected and functioning
No MIPI CSI lane overflow errors
Camera server reports cameras connected successfully
-
M0036 extension cable test:
FAILURE: Both M0036 extension cables I have exhibit the same problem
MIPI CSI lane overflow errors occur with both cables
Camera server reports "Found zero cameras connected"
Hardware Configuration:
- VOXL2 QRB5165M
- IMX412 camera module (M0107)
- Tested with 2 different M0036 extension cables
- Using official connectors, ports, and cables
Previous Experience:
I have used this same IMX412 + M0036 configuration before and it worked successfully. This suggests that the M0036 extension cables may have degraded over time or there might be a batch issue with the cables.
https://forum.modalai.com/topic/4461/voxl2-didn-t-detect-imx412-camera/7?_=1757372933541Questions:
- Since both of my M0036 extension cables are exhibiting the same MIPI CSI lane overflow issues, should I purchase new M0036 cables?
- Are there any known issues with M0036 cable degradation over time?
- Is there a way to test the M0036 cables independently to confirm they are the root cause?
- Would you recommend any specific M0036 cable suppliers or should I purchase directly from ModalAI?
Thank you for your help in diagnosing this issue.
-
-
@ysc ,
the "fpv" version of the IMX412 driver uses the fastest camera MIPI bit rate at 2.1 Gbit/s per lane. The M0036 cables, when designed, were not tested under these conditions, since the camera driver update came recently and the test was not available.
Can you please try to use the IMX412 sensormodule from
/usr/share/modalai/chi-cdk/imx412/com.qti.sensormodule.imx412_2.bin
instead of the FPV variant of the driver? (you will need to remove thecom.qti.sensormodule.imx412_fpv_2.bin
file from/usr/lib/camera/
.The older driver streams the camera data at a lower rate, I believe 1.5Gbit/s. Please let me know if this change works for you.
Regarding the cable supplier and degradation - we have not encountered cable degradation over time, however some cables may be slightly out of spec for this fastest MIPI bit rate. Also, we do not have other suppliers for the M0036, so you should purchase from ModalAI. However, lets figure out if there is a software solution first.
Also, what is the final resolution of the image and FPS that you need for your application? Lower resolutions require less bandwidth and we could lower the bitrate even more if that helps.
Alex
-
Final Update on M0036 Extension Cable Issue:
Actions Taken (Following Your Recommendations):
Removed FPV driver (2.1Gbps):
com.qti.sensormodule.imx412_fpv_2.bin
Using lower bitrate driver (1.5Gbps):
com.qti.sensormodule.imx412_2.bin
Tested with 720p 30fps configuration (lower resolution as suggested)
Test Results:
Direct connection: Works perfectly with 1.5Gbps driver
M0036 extension cable: Still fails with "Received 0 buffers from camera hires"
Current Status:
Even after implementing your suggested solution (1.5Gbps driver + 720p resolution), the M0036 cable cannot handle IMX412 data transmission. The camera is detected, streams are configured successfully, but no data is transmitted through the cable.Application Requirements:
- Target resolution: 720p (1280x720) for PC streaming
- Frame rate: 30fps
- Use case: Real-time video streaming from VOXL2 to PC
The M0036 extension cable appears to have compatibility issues with IMX412 even with the lower bitrate driver and reduced resolution settings.
Thank you for your continued support.
-
@ysc ,
Thank you for performing the tests. It is possible that the cables were damaged, since they were working originally, it seems, even with the "fpv" version of the drivers.
Regarding the output resolution vs camera mode, the best way to find out which resolution the camera is actually streaming is to run the following before you start
voxl-camera-server
:logcat | grep -i selected
The output should be something like this (may look slightly different in your case):
03-02 13:03:06.847 3338 3338 I CHIUSECASE: [CONFIG ] chxextensionmodule.cpp:2358 InitializeOverrideSession() Session_parameters FPS range 30:30, previewFPS 0, videoFPS 0 BatchSize: 1 HALOutputBufferCombined 0 FPS: 30 SkipPattern: 1, cameraId = 0 selected use case = 1 03-02 13:03:06.852 3338 3338 I CHIUSECASE: [CONFIG ] chxsensorselectmode.cpp:558 FindBestSensorMode() MAI: Selected Usecase: 7, SelectedMode W=4056, H=3040, FPS:30, NumBatchedFrames:0, modeIndex:0
this tells you that the camera mode 4056x3040 @ 30 FPS was selected from the several modes that the sensormodule driver provides. Since you have selected the ISP processing in your config file, the default logic in the camera pipeline will select highest resolution camera mode and then down-scale in the ISP (for highest quality). So, even though you were selecting 1280x720 output, it is most likely that the camera was still running in full resolution mode (you can check).
In any case, there is an issue with the flex cables. One last thing, I just wanted to confirm that you are NOT connecting two M0036 flexes back-to-back (to make a longer cable), because that is not guaranteed to work due to the length.
If the single M0036 cables are not working, then we will replace them for free. Please submit an RMA request (www.modalai.com/rma) and ask for QTY 2 free replacement M0036 cables (include a link to this thread)
Alex
-
Thank you for your detailed response and suggestions. Here's an update on the current situation:
Current Status:
Camera is now working properly with video output
VOXL Portal shows live video feed
FPS: 10, Resolution: 640x480
Camera streams: hires_color and hires_grey are both functional
Regarding your suggestions:
-
Cable Status: I am using a single M0036 cable (no extension).
-
logcat Command: The
logcat | grep -i selected
command doesn't work on VOXL2.
Current Configuration:
- IMX412 camera in J7L slot (slot 2)
- Single M0036 cable, no extensions
- Preview stream: 640x480 @ 10 FPS
- Camera server: running successfully
Thank you for your help in resolving this issue!
-
@ysc , I am glad that the camera is working, but could you clarify what you changed to make it work? You should be able to get higher resolution and FPS if everything is working properly.
Also, if the
logcat
outout is not showing up, it is probably because the logging from camera pipeline is disabled in the following file :/vendor/etc/camera/camxoverridesettings.txt
:systemLogEnable=0
If that is set to zero, you can just comment out that parameter and try again.
Alex
-
Sorry for the late response! Here's what I found:
Root Cause:
The issue was the M0036 extension cable itself. When I removed the M0036 cable and connected the camera directly to the VOXL2 board, the camera started working immediately.Current Status:
Camera works perfectly without M0036 cable
Higher resolution and FPS working fine
Camera fails when M0036 cable is connected
Conclusion:
The M0036 extension cable appears to be faulty or damaged. The camera hardware and software configuration are working correctly.Next Steps:
I'll need to replace the M0036 cable to use the camera with extension.Thank you for your help!
-
@ysc , thank you for the update. Csn you please share how you connected the IMX412 camera to voxl2 without any extension cable? The camera itself does not have a cable. Did you connect it directly into the interposer M0076 or M0135?
Alex
-
Connection Method:
I connected the IMX412 camera module directly to the VOXL2 board using the M0076 interposer (not M0135). The M0076 interposer allows direct connection between the camera module and the VOXL2 board without any extension cable.Setup:
- IMX412 camera module → M0076 interposer → VOXL2 board
- No M0036 extension cable used
- Direct connection through the interposer