For those who are tracking this issue.. We have some interesting updates with respect to the interference from IMX412 camera. As it has been previously documented, the IMX412 camera(s) on Starling 2 and Starling 2 Max are causing interference as soon as the streaming is enabled (there are clients to the streams that camera server offers for those cameras).
IMX412 camera has several internal clocks, which are generated from the 24 Mhz base frequency that is fed from Voxl2 to all cameras. These clocks are configured during the camera initialization phase - the settings are contained within the imx412 sensormodule files.
We were able to perform some parameter sweeps - specifically varying only the output MIPI bitrate, while keeping all other settings the same (gain, exposure, fps).
The test was set up as follows:
- generate imx412 sensormodule drivers for desired frequency range (1200-2100)
- all tests use the same camera resolution 3840x2160 at 45FPS
- higher fps = more interference
- tried to have a relatively large frequency range while keeping the fps high (low mipi rates cannot support high fps), so 45fps was a good compromise
- repeat for each frequency
- copy appropriate sensormodules (for specific frequency) into
/usr/lib/camera/ - log baseline satellite signal strengths for all satellites 10 seconds -- this allows the experiment to not depend on any initial SNR captures at the beginning of the test, since SNR can change relatively quickly due to the environmental factors
- start
voxl-camera-serverandvoxl-inspect-cam hires_front_misp_color hires_down_misp_colorand wait for 3 seconds - collect satellite SNRs for 10 seconds while the cameras are streaming
- stop voxl-camera-server
- wait for 3 seconds and repeat the loop for the next frequency
- copy appropriate sensormodules (for specific frequency) into
After data has been collected, analyze the logs and generate plots.
The tests were done outdoors using Starling 2 Max with original GPS receiver + V3 GPS mast and 75mm FR4 (with copper) circular plate under the receiver. Full Sun light and exposure was set to 0.1ms, gain to 100 (1.0x). During testing it was discovered that the most interference was present when the image was darker than normal (under-exposed) -- probably related to specifics of the MIPI packets that are causing the interference.
Note that the default IMX412 MIPI bitrate was set to the maximum that the camera officially supports, which is 2100Mbps.
As the plots show, there are several peaks where the satellite SNRs drop by 10-15dB, as initially noted in the overall system testing. Additionally, 2100Mbps is one of the worst frequencies to use, based on this data.
As a result of testing, the following frequencies were identified as causing significant interference with GPS L1 band:
- 1212Mhz
- 1260Mhz
- 1572-1578 Mhz (L1 band!!)
- 1800Mhz
- 2100Mhz
We will be releasing updated IMX412 drivers very shortly to avoid using 2100Mbps frequency.
There results below show 3 tests:
- 1200-2100 Mbps sweep with steps of 30Mbps
- 1200-2100 Mbps sweep with steps of 6Mbps
- 1760-2200 Mbps sweep with steps of 8Mbps (focusing on the upper range, slightly different PLL configuration)
1200-2100 Mbps sweep with steps of 30Mbps

1200-2100 Mbps sweep with steps of 6Mbps


1760-2200 Mbps sweep with steps of 8Mbps

