Hi Ben. Will you have an opportunity to look at the temperature readout? The EKOS camera TAB and Indi Control panel both report a temperature of zero degrees. If I attempt to set the temperature using the Indi panel you get a confusing [WARNING] Cooler cannot be activated manually. Set a lower temperature to activate it.
I see the temperature reads in the dump that you provided.
I double checked, and I'm seeing the temperature reads in my simulation too:
I'm also able to set a temperature via the capture tab and this does what I expect:
I also see logs that indicate the cooler is activating:
The "Cooler cannot be activated manually. Set a lower temperature to activate it." message is from some code that I copied from another driver (ASI, i think). It's meant to tell the user that they can't turn the cooler on just by clicking the button. Instead, they need to set the desired cooling temperature to activate it. This avoids needing a default set point.
No I don't see it working. Here is the Indi panel which I see.
It still shows the temperature light as red. Can't get it to go green. And the camera interface or the indi panel doesn't show the current CCD temperature?
Am I missing something here? Is it necessary to clear out any settings. I tried creating a second profile but I don't see the temperature in either profile.
The way the camera works is a bit odd because it has a 12v power supply and you can operate the cooler in OCS even with the power disconnected. This means if you turn the cooler on with no power the CCD temperature doesn't change but it indicates 100% power. Plug the power in, the fan starts and CCD temperature starts to drop. I conclude from this the OCS driver cannot tell if the cooler power is on or off.
I could imaging you might want to set the CCD to a higher temperature if it was colder than the calibration frames. Not sure your WARNING about setting a lower temperature to activate it is certainly the most common desire but not always.
I just pushed a change that I hope will fix the cooling. I found a bug in how i was handling the return code for one of the libusb calls...something that I fake out on my end. Give it a shot and keep your fingers crossed!
Hi Ben. That fixed it. Great work!
I don't want to sound like I am never happy but as a tester, that's my duty.
When using the option to delay the exposure until the temperature is reached, there is a rounding error. For example, I set the temperature to 20 degrees (it's hot in my study) but it took the exposure when reported temperature reached 20.89.
Control of the CCD temperature is not intuitive.
I see [WARNING] Cooler cannot be activated manually. Set a lower temperature to activate it. Then annoyingly it reports Cooler is off but it isn't as CCD temperature holds at current temp! There will be times when you want to set a higher temperature than the current CCD temperature. In my case the cooler was struggling to get down to 20c so after setting it to 20 I tried setting it 22 but get this warning. Surely power should be turned down to 0% and wait for CCD to heat up. To get it to a higher temperature you have to 'manually' turn it off, wait until it climbs above the desired temperature then click the green tick to set the required lower temperature. If you just hit the Cooler On button nothing happens. It reports its on but what's the target temperature? It would be handy if log message said Cooler On: Target temp 19c
The cooler ON and OFF buttons are confusing as interface components. Do they show current status of the cooler or are they meant to turn it on and off? The answer is probably both and that's my confusion.
We have a sequence queue but the enforced CCD temperature isn't reported for each queue entry which is an omission.
In summary the current logic appears to be:
To set lower temperature: Enter a temperature lower than the current value and hit the green tick. If cooler is off it is turned on.
To set higher temperature: Manually hit the Cooler off button and wait for temperature to rise above desired temperature. Then follow above to set to Lower temperature.
How long does a sequence item wait for enforced temperature to be reached (time out period)?
If a sequence item has an enforced temperature higher than previous entry it won't be actioned and may hold indefinitely if there is no timeout.
Cooler can be turned off when a sequence is running. Should be disabled or at least a warning that sequence may stall.
I still see [ERROR] 'Starting Exposure' but the image is captured OK and the following message is [INFO] Starting Exposure.
Great! Thanks for the feedback. I copied most of the code for how the cooling is handling from another driver. I'm guessing that ekos could wait indefinitely for a cooler to reach the desired temperature. This behavior is outside of the driver so the best that I can do is to fix the driver so that it meets the expectations of ekos.
The threshold that ekos uses for starting captures after waiting for cooling is configurable in the options menu (kstars->Settings->Configure Kstars...->Ekos->Capture->Temperature Threshold). Mine was set to 1.00 degree C, so that probably explains what you saw.
I see the code that is causing the confusing/annoying behavior with the cooler. I'll see about fixing it later today. I think you're right about the intention of the buttons. It turns out that there's more subtlety to controlling a cooler than I though For example, I'll fix the driver to allow you to set the target temperature to something higher than the current temperature...but will the cooler ever reach that temperature? I'm assuming that the TEC can't actually be run in reverse, but maybe it can? If Ekos is waiting to get within 1.0 of the higher target temperature then maybe it will wait forever?
I completely agree that this can, at least, work much better than it does now!
Also, I think the temperature conversions are still off a bit. It would be super helpful if you could capture a trace of setting multiple target temps in OCS. Maybe something like 30, 20, 10, 0, -10? You can do them all in rapid succession since I only care about the message that OCS is sending.
Your (previous) point about the camera not being able to detect the 12V presence makes sense and was something that I previously wondered about.
I found the maximum target temperature that can be set in OCS is 25deg c. These are the temps I set:
20 then let it cool to about 20.6
10 then let it cool to about 15.2. It couldn't cool any further
Then set 0, -10 and -20
Then 20 again and let it warm up from where it was around 16 deg c. it went up to 22 then came down to around 20.6
I have pulled the latest code but get merge errors in orion_ssg3.c after a version control marker conflict error?
Compiled latest code Ben and can confirm not seeing the error message when capturing an image. Setting the CCD temperature either with green tick or in Indi panel isn't working after setting the first temperature. I set it to 20 deg c and it dropped to around 19 deg C. Tried 17 and 22 but temperature doesn't change much. Turn cooler off and temp climbs. Set temp to say 17 and hit green tick which turns cooler on but temp drops very slowly indeed. Gave up waiting when it got down to 20.20. Suggest I wait until you have had time to look at the OCS wireshark capture and calibrated the temperature values but its now very sluggish or even not cooling down at all.
I guess there is thermal inertia so changing the CCD temperature is not as simple as it might seem. I notice in OCS it ramps up to 100% power when starting cooling and throttles power back when getting close to desired temperature.