The problem must be specific to the AF3 driver. Temperature triggered refocusing works like a charm using the MoonLite driver and MyFocuserPro autofocuser.
The capture module does not check the focus temp when having single filter sequences (S H O S H O) ...
I have fixed this localy in capture.cpp:
IPState Capture::resumeSequence(){
// If no job is active, we have to find if there are more pending jobs in the queue
if (!activeJob){
SequenceJob * next_job = nullptr;
foreach (SequenceJob * job, jobs){
if (job->getStatus() == SequenceJob::JOB_IDLE || job->getStatus() == SequenceJob::JOB_ABORTED){
next_job = job;
break;
}}
if (next_job){
//check delta also when starting a new job!
isTemperatureDeltaCheckActive = (m_AutoFocusReady && limitFocusDeltaTS->isChecked());
prepareJob(next_job);
//Resume guiding if it was suspended before
//if (isAutoGuiding && currentCCD->getChip(ISD::CCDChip::GUIDE_CCD) == guideChip)
if (guideState == GUIDE_SUSPENDED && suspendGuideOnDownload){
qCDebug(KSTARS_EKOS_CAPTURE) << "Resuming guiding...";
emit resumeGuiding();
}
return IPS_OK;
}
else
{
qCDebug(KSTARS_EKOS_CAPTURE) << "All capture jobs complete.";
return IPS_BUSY;
}}
// Otherwise, let's prepare for next exposure.
else
{
isTemperatureDeltaCheckActive = (m_AutoFocusReady && limitFocusDeltaTS->isChecked());
// If we suspended guiding due to primary chip download, resume guide chip guiding now
if (guideState == GUIDE_SUSPENDED && suspendGuideOnDownload){
qCInfo(KSTARS_EKOS_CAPTURE) << "Resuming guiding...";
emit resumeGuiding();
}
// If looping, we just increment the file system image count
if (currentCCD->isLooping()){
if (currentCCD->getUploadMode() != ISD::CCD::UPLOAD_LOCAL){
checkSeqBoundary(activeJob->getSignature());
currentCCD->setNextSequenceID(nextSequenceID);
}}
// otherwise we loop starting the next exposure until all pending
// jobs are completed
else
checkNextExposure();
}
return IPS_OK;
}
And now i can see in the log:
[2020-09-30T21:46:55.844 CEST DEBG ][ org.kde.kstars.ekos.capture] - Focus temperature delta (°C): 0 . Requested maximum delta (°C): 1
But in the scheduler seems to be broken in the current nightly
It is possible that your temperature sensor isn't fully supported yet (driver). Your earlier posted logs may be picking up the temperature via the weather temperature reading (which was added to the focus module to support focus analysis logging). The change did not get factored into the delta-T code update as I recall. This might explain your logs saying that there's no focuser temperature sensor.
Hey, no it is _not_ a driver issue. It is a bug with single frame captures. I have fixed this localy and created a pull request in github: github.com/KDE/kstars/pull/24
You need at least one capture sequence with 2 Frames in a row to get the boolean isTemperatureDeltaCheckActive become true.
In my case the Capture group was 1 Frame Ha, 1 Frame Oiii, 1 Frame Sii, 1 Frame Ha, and so on.
Because of this, the isTemperatureDeltaCheckActive will never be set to true and the focus delta is not checked. Maybe it is enought to start with two short captures, f.e. L-L-S-H-O-S-H-O-S-H-O becuase the isTemperatureDeltaCheckActive will be only resetted when you uncheck the checkbox.
The only "driver" issue that may be changed is that the driver debounces the temp updates by 0.5° of temp change, but this is also done by myfocuserpro2 ...