Found the answer to my query to the QHYCCD helpdesk in November - the difference between the behaviour of Windows software which uses the Windows QHY SDK, and software built using the Linux SDK (and between different versions of the SDK!) are due to different implementations of the SDK.
My query was:
....my question is about frame to frame variations.
For example, I closed the lens cap and took two snapshots. Gain=5, Exposure time = 20 ms. I find that the pixel values are like:
Frame1: 3168 3216 3184 3184 etc
Frame2: 3232 3152 3248 3184 etc
So when i subtract Frame 2 - Frame 1, I get
64 -64 64 0 etc. with a max value of 256.
And this difference increases when there is light falling on the camera.
Is there any way to reduce this frame to frame difference? Any way to reach the 6e performance?
Also,
when reducing gain, I find that the image gets saturated at a value
below the full 16-bit max value of 65535. For example, with a gain of 5,
the saturation happens at an intensity of 27776.
The reply was that the 6e error is the readout noise. The rest of the noise is probably shot noise.
The gain values are the numbers entered in Sharpcap (latest version). I have checked with two different QHY5Lii-M cameras. On both, if gain is reduced below 30, saturation occurs below 65535 (in 16bit mode - in 8bit mode, below 255).
For example, as mentioned before, with a gain of 5, whether the exposure is 5 millisec or 5 sec, the max value is only 27776.
But when I code my own capture, using the SDK at
https://github.com/qhyccd-lzr/QHYCCD_Linux
there is a difference - if I change the parameter CONTOL_GAIN
with SetQHYCCDParam(camhandle, CONTROL_GAIN, camgain);
even for value of camgain=1, I am able to see saturation at 255 for 8 bit mode. So, I could use this for my work. Maybe Sharpcap uses a different set of numbers? or a different parameter? as gain.
The QHY team did not reply, but I found that the Windows and Linux SDKs have a different range for the Gain parameter, and probably for other parameters as well! The Linux SDK (Software Development Kit) and the Windows SDK are developed by different teams. So, the same functions have different implementations! For example, gain goes from 1-100 in the Linux SDK we tested. But gain goes 1-480 in the latest Windows SDK.