Imx219_set_exposure value remain unchanged when environment light get much more brighter

Hi all, I have been using the Jetson NX devkit along with the Sony IMX219 sensor. And I have encounterd problem on the exposure control function.

There is littile change in coarse_time and exposure times, while I was taking several pictures with source light changed significantly. The tools I used to take pics was nvgstcapture-1.0 command line tools, and the driver function is “imx219_set_exposure(…)”.

I want to know where the paoblem is (it seems like the exposure time has always been largest and unchanged), and how can I fix it. (When I say fix it I mean to make the exposure time change Linearly)

Below are the log information I filtered with “exposure”, and the log I added specially has “mine” word in the it. Full log file are enclosed.

[   66.161388] imx219 9-0010: sensor_common_parse_control_props:mine: get exposure_factor : 1000000
[   66.161472] imx219 9-0010: sensor_common_parse_control_props:mine: get exposure_factor : 1000000
[   66.161551] imx219 9-0010: sensor_common_parse_control_props:mine: get exposure_factor : 1000000
[   66.161689] imx219 9-0010: sensor_common_parse_control_props:mine: get exposure_factor : 1000000
[   66.161777] imx219 9-0010: sensor_common_parse_control_props:mine: get exposure_factor : 1000000
[   66.193250] imx219 10-0010: sensor_common_parse_control_props:mine: get exposure_factor : 1000000
[   66.193321] imx219 10-0010: sensor_common_parse_control_props:mine: get exposure_factor : 1000000
[   66.193387] imx219 10-0010: sensor_common_parse_control_props:mine: get exposure_factor : 1000000
[   66.193453] imx219 10-0010: sensor_common_parse_control_props:mine: get exposure_factor : 1000000
[   66.193561] imx219 10-0010: sensor_common_parse_control_props:mine: get exposure_factor : 1000000
[  107.322599] imx219 10-0010: imx219_set_exposure:mine:  coarse_time before min max : 1639[lines]
[  107.322606] imx219 10-0010: imx219_set_exposure: exposure limited by frame_length: 1635 [lines]
[  107.322613] imx219 10-0010: imx219_set_exposure: val: 33330 [us], coarse_time: 1635 [lines]
[  107.322619] imx219 10-0010: imx219_set_exposure:mine: coarse_time converts to register type:ct_regs[0]: 6, [1]: 99 
[  107.347318] imx219 10-0010: imx219_set_exposure:mine:  coarse_time before min max : 1639[lines]
[  107.347326] imx219 10-0010: imx219_set_exposure: exposure limited by frame_length: 1635 [lines]
[  107.347333] imx219 10-0010: imx219_set_exposure: val: 33330 [us], coarse_time: 1635 [lines]
[  107.347339] imx219 10-0010: imx219_set_exposure:mine: coarse_time converts to register type:ct_regs[0]: 6, [1]: 99 
[  107.556983] imx219 10-0010: imx219_set_exposure:mine:  coarse_time before min max : 1639[lines]
[  107.556992] imx219 10-0010: imx219_set_exposure: exposure limited by frame_length: 1635 [lines]
[  107.557003] imx219 10-0010: imx219_set_exposure: val: 33329 [us], coarse_time: 1635 [lines]
[  107.557008] imx219 10-0010: imx219_set_exposure:mine: coarse_time converts to register type:ct_regs[0]: 6, [1]: 99 
[  107.597810] imx219 10-0010: imx219_set_exposure:mine:  coarse_time before min max : 1639[lines]
[  107.597819] imx219 10-0010: imx219_set_exposure: exposure limited by frame_length: 1635 [lines]
[  107.597825] imx219 10-0010: imx219_set_exposure: val: 33330 [us], coarse_time: 1635 [lines]
[  107.597831] imx219 10-0010: imx219_set_exposure:mine: coarse_time converts to register type:ct_regs[0]: 6, [1]: 99 
[  107.633652] imx219 10-0010: imx219_set_exposure:mine:  coarse_time before min max : 1639[lines]
[  107.633658] imx219 10-0010: imx219_set_exposure: exposure limited by frame_length: 1635 [lines]
[  107.633666] imx219 10-0010: imx219_set_exposure: val: 33329 [us], coarse_time: 1635 [lines]
[  107.633671] imx219 10-0010: imx219_set_exposure:mine: coarse_time converts to register type:ct_regs[0]: 6, [1]: 99 
[  107.695105] imx219 10-0010: imx219_set_exposure:mine:  coarse_time before min max : 1639[lines]
[  107.695111] imx219 10-0010: imx219_set_exposure: exposure limited by frame_length: 1635 [lines]
[  107.695121] imx219 10-0010: imx219_set_exposure: val: 33330 [us], coarse_time: 1635 [lines]
[  107.695126] imx219 10-0010: imx219_set_exposure:mine: coarse_time converts to register type:ct_regs[0]: 6, [1]: 99 
[  107.801040] imx219 10-0010: imx219_set_exposure:mine:  coarse_time before min max : 1639[lines]
[  107.801046] imx219 10-0010: imx219_set_exposure: exposure limited by frame_length: 1635 [lines]
[  107.801054] imx219 10-0010: imx219_set_exposure: val: 33329 [us], coarse_time: 1635 [lines]
[  107.801059] imx219 10-0010: imx219_set_exposure:mine: coarse_time converts to register type:ct_regs[0]: 6, [1]: 99 
[  107.836852] imx219 10-0010: imx219_set_exposure:mine:  coarse_time before min max : 1639[lines]
[  107.836861] imx219 10-0010: imx219_set_exposure: exposure limited by frame_length: 1635 [lines]
[  107.836871] imx219 10-0010: imx219_set_exposure: val: 33330 [us], coarse_time: 1635 [lines]
[  107.836878] imx219 10-0010: imx219_set_exposure:mine: coarse_time converts to register type:ct_regs[0]: 6, [1]: 99 
[  107.870294] imx219 10-0010: imx219_set_exposure:mine:  coarse_time before min max : 1639[lines]
[  107.870303] imx219 10-0010: imx219_set_exposure: exposure limited by frame_length: 1635 [lines]
[  107.870310] imx219 10-0010: imx219_set_exposure: val: 33329 [us], coarse_time: 1635 [lines]
[  107.870315] imx219 10-0010: imx219_set_exposure:mine: coarse_time converts to register type:ct_regs[0]: 6, [1]: 99 
[  107.901015] imx219 10-0010: imx219_set_exposure:mine:  coarse_time before min max : 1639[lines]
[  107.901026] imx219 10-0010: imx219_set_exposure: exposure limited by frame_length: 1635 [lines]
[  107.901036] imx219 10-0010: imx219_set_exposure: val: 33330 [us], coarse_time: 1635 [lines]
[  107.901042] imx219 10-0010: imx219_set_exposure:mine: coarse_time converts to register type:ct_regs[0]: 6, [1]: 99 
[  108.009176] imx219 10-0010: imx219_set_exposure:mine:  coarse_time before min max : 1639[lines]
[  108.009184] imx219 10-0010: imx219_set_exposure: exposure limited by frame_length: 1635 [lines]
[  108.009194] imx219 10-0010: imx219_set_exposure: val: 33329 [us], coarse_time: 1635 [lines]
[  108.009199] imx219 10-0010: imx219_set_exposure:mine: coarse_time converts to register type:ct_regs[0]: 6, [1]: 99 
[  108.040800] imx219 10-0010: imx219_set_exposure:mine:  coarse_time before min max : 1639[lines]
[  108.040809] imx219 10-0010: imx219_set_exposure: exposure limited by frame_length: 1635 [lines]
[  108.040820] imx219 10-0010: imx219_set_exposure: val: 33330 [us], coarse_time: 1635 [lines]
[  108.040826] imx219 10-0010: imx219_set_exposure:mine: coarse_time converts to register type:ct_regs[0]: 6, [1]: 99 
[  166.071667] imx219 10-0010: imx219_set_exposure:mine:  coarse_time before min max : 1639[lines]
[  166.071674] imx219 10-0010: imx219_set_exposure: exposure limited by frame_length: 1635 [lines]
[  166.071683] imx219 10-0010: imx219_set_exposure: val: 33330 [us], coarse_time: 1635 [lines]
[  166.071689] imx219 10-0010: imx219_set_exposure:mine: coarse_time converts to register type:ct_regs[0]: 6, [1]: 99 
[  166.350305] imx219 10-0010: imx219_set_exposure:mine:  coarse_time before min max : 1639[lines]
[  166.350312] imx219 10-0010: imx219_set_exposure: exposure limited by frame_length: 1635 [lines]
[  166.350321] imx219 10-0010: imx219_set_exposure: val: 33329 [us], coarse_time: 1635 [lines]
[  166.350326] imx219 10-0010: imx219_set_exposure:mine: coarse_time converts to register type:ct_regs[0]: 6, [1]: 99 
[  166.456769] imx219 10-0010: imx219_set_exposure:mine:  coarse_time before min max : 1639[lines]
[  166.456778] imx219 10-0010: imx219_set_exposure: exposure limited by frame_length: 1635 [lines]
[  166.456785] imx219 10-0010: imx219_set_exposure: val: 33330 [us], coarse_time: 1635 [lines]
[  166.456790] imx219 10-0010: imx219_set_exposure:mine: coarse_time converts to register type:ct_regs[0]: 6, [1]: 99 
[  166.522148] imx219 10-0010: imx219_set_exposure:mine:  coarse_time before min max : 1639[lines]
[  166.522158] imx219 10-0010: imx219_set_exposure: exposure limited by frame_length: 1635 [lines]
[  166.522169] imx219 10-0010: imx219_set_exposure: val: 33329 [us], coarse_time: 1635 [lines]
[  166.522175] imx219 10-0010: imx219_set_exposure:mine: coarse_time converts to register type:ct_regs[0]: 6, [1]: 99 
[  166.556766] imx219 10-0010: imx219_set_exposure:mine:  coarse_time before min max : 1639[lines]
[  166.556798] imx219 10-0010: imx219_set_exposure: exposure limited by frame_length: 1635 [lines]
[  166.556808] imx219 10-0010: imx219_set_exposure: val: 33330 [us], coarse_time: 1635 [lines]
[  166.556813] imx219 10-0010: imx219_set_exposure:mine: coarse_time converts to register type:ct_regs[0]: 6, [1]: 99 
[  166.728886] imx219 10-0010: imx219_set_exposure:mine:  coarse_time before min max : 1639[lines]
[  166.728895] imx219 10-0010: imx219_set_exposure: exposure limited by frame_length: 1635 [lines]
[  166.728904] imx219 10-0010: imx219_set_exposure: val: 33329 [us], coarse_time: 1635 [lines]
[  166.728910] imx219 10-0010: imx219_set_exposure:mine: coarse_time converts to register type:ct_regs[0]: 6, [1]: 99 
[  166.969356] imx219 10-0010: imx219_set_exposure:mine:  coarse_time before min max : 1639[lines]
[  166.969366] imx219 10-0010: imx219_set_exposure: exposure limited by frame_length: 1635 [lines]
[  166.969378] imx219 10-0010: imx219_set_exposure: val: 33330 [us], coarse_time: 1635 [lines]
[  166.969384] imx219 10-0010: imx219_set_exposure:mine: coarse_time converts to register type:ct_regs[0]: 6, [1]: 99

torch_imx219.txt (25.9 KB)

Not sure for your case, but I guess the IMX219 sensor is accessed by nvarguscamerasrc in gstreamer.
You may try to use V4L API for reading the current exposure, but you wouldn’t set it from V4L API while it is controlled by Argus.
You can control exposure from Argus, but you may have to fix gain and disable/lock some auto settings such as gain, wb and maybe lock ae such as here (also read @JerryChang 's next post) or set AE range for your case. It may just be that other auto settings are adjusted (gain, digitalgain, wb, …) before exposure.

1 Like

You can also set the exposure range by nvgstcapture-1.0
You can see the command while start this APP.

1 Like