Imx477 exposure or fps is not constant


l4t 32, 3 x Leopard Imaging imx477.

I made several shots with overlap.

AELock is true.
Exposure was set to 12ms.
Fps was set to 30.

But frames exposure/lightness is different from frame to frame.

How i can fix exposure to constant value?

My code:

    iSourceSettings->setFrameDurationRange( { m_fpsTime } );
    iSourceSettings->setExposureTimeRange( { m_exposureTime } );
    iSourceSettings->setGainRange( { m_analogGain } );
//    iSourceSettings->setOpticalBlackEnable( true );

    // IAutoControlSettings
    Argus::IAutoControlSettings * iAutoControlSettings{ Argus::interface_cast< Argus::IAutoControlSettings >( iRequest->getAutoControlSettings() ) };
    if( not iAutoControlSettings ) ORIGINATE_ERROR( "Failed to get IAutoControlSettings interface!\n" );

    iAutoControlSettings->setAeAntibandingMode( Argus::AE_ANTIBANDING_MODE_OFF );
    iAutoControlSettings->setAeLock( true );
    iAutoControlSettings->setAwbLock( false );
    iAutoControlSettings->setAwbMode( m_awbAuto ? Argus::AWB_MODE_AUTO : Argus::AWB_MODE_MANUAL );

Best regards, Viktor.

Not sure for your case, but further than aeLock you may also set awb to false and awb_mode to off (or manual), such as

gst-launch-1.0 nvarguscamerasrc wbmode=0 awblock=true gainrange="8 8" ispdigitalgainrange="4 4" exposuretimerange="5000000 5000000" aelock=true ! nvvidconv ! xvimagesink

In my case awb is manual with my 4 values.
Have tried to play with awb but it was not help.

Only some special setting get this issue?
Did you consult with Leopard?

Hi Viktor,

Have you tried AELock on Argus? Does it have the same issue?

Yes, same issue in argus software with 3x imx577, imx477 and different environment.
And it is variable. Sometimes 2 cameras do not blinking. Sometimes only one. Most often all 3 cameras change their expo, it looks like blinking.

Here is video example:

Hi Viktor,

We just did the testing here, and the AELock works properly. Please check it. Could you take a similar video if possible?

Please also confirm that you are using below driver.

Yes, version of driver is same.
I will try to do that test with led.
Tell me please, if issue depends on led light, then how i can fix it? It is AC/DC impulse power supply frequency or led frequency?

Hi Viktor,

This driver supports AE, but it might not be able to mitigate the blanking from the LED. You can also try a cell phone to see if it has the same issue.
It hard to say if it’s caused by AC/DC impulse power supply frequency or led frequency.

Ok. If it is power supply issue, i should choose higher quality adapter?

Hi Viktor,

Yes, you can try a higher quality adapter.
You can also adjust the brightness of the LED (if possible) to see if it helps.
If you have other band’s LEDs, it’s also worth to give them a try.

Thanks, will do these advises and reply.

We made many tests with many AC/DC power supplies and LED-lights.

The problem was with 2.5 meter flexible LED 24v. Power consumption is not evenly distributed. Brightness flows as wave from begin to end. And we saw pulsation in cameras.
The best linear LED is 12v. No pulsation.


Hi Viktor,
Great to know it. Thanks for the update.

Still have problems with constant expo.

Here are 2 cases of using argus code.
Was made several shots and stitched together.

  1. Top part, every shot with creating and destroying:
    for N shots
    -> createStream
    -> configureSensor(expo, fps, lockAE)
    -> startRepeat
    -> threadExecute
    -> -> while loop
    -> -> -> acquireFrame
    -> -> endwhile
    -> streamShutdown

  2. Bottom part, first create stream, make shots and then destroy stream:
    configureSensor(expo, fps, lockAE)
    -> while loop
    -> -> acquireFrame0
    -> -> acquireFrame1
    -> -> acquireFrame2
    -> -> acquireFrameN
    -> endwhile

Why does the exposure change when continuous loop used?

Also same thing happening when using argus_camera. First time setting lockAe always works, but after setting expo, ae unlocks, frames are blinking. After editing fps from 30 to 29(or any value), lockAe really locks again. So aelock very unstable feature, why?

Also please explain next thing. If changing fps then expo changes and vise versa. Why does one depend on the other?
I need 3 fps and 10ms expo as example. If set one then other changed too. In some cases i can’t set expo for selected fps.

It is happened when using multi session case.
For single settings for all cameras i should use single session like syncSensor Argus sample.