If you're going to take a look at the code, I guess it would be helpful to have the config file that was used. Here's what the controls config looked like:
Hi John, It might be a good idea to look at the code I originally developed to see what you might learn from it. Here's the link:
I haven't searched for papers. I suspect that won't bear much fruit as both astronomical institutions I've previously worked for elected to go the empirical route, measuring and building their own quadratic temperature curves. So, I thought some "wisdom" of the last 2 years using the software I built might help. Take as much or as little as you like.
a. My focuser has tended to drift in counts over many months. This puts a bit of stress on new calculations of function slope, but definitely affects the offset (the b part of mx +b). Allowing users to adjust the offset while retaining the slope will allow for multiple instances of where adjustments are needed but the basic slope stays the same.
b. You'll need to factor both filter offsets, and different gear profiles. Filters should be "zero offset" relative if possible, otherwise things get complicated quickly.
c. The elevation residual data is pretty noisy (as you noticed), but there is a definite trend in there. You may want to allow disabling elevation residuals as an option.
d. I wrote an analysis function that looks at the log and calculates/fits a trendline function. I don't automatically enable this calculation, but rather report it for inspection. It's helpful, and people may (or may not) want to update the function based on the calculation. Sometimes, it's best to just see it but leave it be.
e. There are times during processing when it's important NOT to auto-seed the focuser. Auto adjust is good after a slew without manual adjust, but if manual adjust is done after the slew but before imaging, the manual start position should not be overridden.
f. I'm not sure if you're going to use a summing integrator or not, but I advise that route for multiple reasons.
It's going to take time and patience for users to characterize their gear. I put a warning in the log for instances when there aren't enough data points. It may be required to automate turning OFF auto adjustments until enough data is present to actually validate using the function. Otherwise, it could actually be worse!
Hi John, I recommend considering a quadratic over the linear. A linear will get you the core of any particular season, but probably won't suffice to handle a shoulder season or multiple seasons. The work to add the quadratic isn't much, and folks who want a linear can have it by setting the squared term to zero. Just a thought....
Items 9 & 10 (Adaptive Focus Control) are the subject of prior work that may be able to be leveraged if desired. A config file version was implemented, and focus log file changes were implemented/released. See the following post for info:
I've sent a PM to you in case you are interested in collaborating. I'd be happy to support your effort on those topics. CS Doug S.
Although somewhat outside the scope of this INDI forum, one traditional way to get a Celestron mount PEC curve is to use CPWI (free), and PECTool (also free). You drive the telescope during the test with your guider and CPWI, and then record N PEC curve sessions (batch process, averaged) with PECTool. After it's done, upload the curve to the mount using PECTool. Once uploaded, it is semi-permanent (until a new curve is done or disabled). FYI, PEC must be enabled on each mount power-up (hand controller or INDI mount - control tab). On startup, the index position of the worm gear will be found, and then you can start the PEC playback.
You can find both free Celestron software programs (CPWI and PECTool) on the Celestron support site:
Good luck and CS,
Not sure I've fully understood your post, but I think you're referring to focus compensation I designed/implemented a couple years ago. The ability to characterize focus based on temperature (plus optional elevation residuals) was only partially released to the community. Logging characterization was released, but the full implementation was not released due to lack of interest, particularly in redesigning a needed config file (into a GUI). Here's the original post in case you haven't seen it that explains the gory details:
To answer your questions about the interplay between camera and focuser, any needed focus adjustments are performed between camera exposures. The camera driver is not involved. Only Ekos code was modified, not INDI nor drivers.
FWIW, I have been using the feature for ~2 years now, and I'd never go back to the old archaic methods (delta t, delta time, or just running one of the types every so often). Insufficient control, and way too much wasted integration time. In the compensated approach, apriori knowledge of the OTA/optics temperature response is used to make any needed focus updates between exposures, thus avoiding the whole iterative approach (after the first seeded focus find).
FYI, Ekos releases have moved forward a couple versions since I implemented the feature. Hopefully this background helps. If you have further questions, you can always send me a PM. CS Doug
Hi Martha, I can't explain that motion. Notice 6 final 2nd pass measurements were taken between two of the 1st pass measurements to end the routine. That is odd. The last multiple measurements are below the HFR poly fit. My first question would be was the guiding stable during this time? If the guiding isn't remaining stable during the routine, you can get some odd shapes on the poly fit. Backlash can also cause odd behavior (especially in the beginning of the 2nd pass because the routine thinks it commanded N backward counts but due to backlash it's not delivered, so the HFR measurement is lower than it should be since the backward move didn't go as far as commanded. In any case, there's not enough info to explain those last 6 measurements. That said, I know what I don't like when I see it, and I don't like a focus run like that. At f/2, I would run that focus again until it produces a "cleaner" answer. At f/7 maybe it doesn't matter quite as much. Are you using an averaged/multiple HFR reading in your settings? If not and you get this kind of result often, I'd suggest using an averaged 2 HFR measurement setting. It takes a bit more time, but it takes what it takes. Good focus is ESSENTIAL!
Just a note about backlash. You don't need to test backlash outside. You should definitely test that inside. Run the motor in a direction while watching the coupler set screw position. To initialize the test, first run in one direction until you see the coupler set screw move. Note the motor count position. You are now ready to start the test(s). Reverse direction and run until you see the coupler set screw move again, noting how many counts occurred during no motion. Reverse direction and run again until you see the coupler set screw move again (and note count again). Do this test multiple times in both directions until you are reasonably confident you know the # of counts of no motion. This is your backlash count value. Don't be surprised if different directions give different backlash counts; just average the number or pick the highest number (they should be reasonably close to each other). As I indicated in a prior post, expect between 80 and 100 counts for EAF; that's what I have experienced and have heard from others EAF owners.
Hi Martha, Not that it made too much difference, but you may want to loosen just a bit the tolerance to the routine. If you notice, it didn't stop at iteration #14 when it probably should have). I'd set that at 7% or so and see if that doesn't get you a slightly more efficient answer. To my eye, the routine overshot just a hair (not enough to be outside the CFZ), but enough to cause a few more iterations than necessary.... I was also a bit surprised that the ramp on the left side was muted. That didn't look quite right to me as I would have expected it to ramp quickly (as quickly as the fall on the far right side).... In any case, these are nits, glad you have it working. CS Doug
Hi Martha, The diffraction limit doesn't really apply because you are dominated by seeing which is larger. You'll likely never get seeing at the diffraction limit, but if you believe you might, you can just adjust your seeing in the calculation to the diffraction limit (making the CFZ smaller...~16+ cnts). About tolerance, I'd say that if you started with 5% tolerance, keep that (it's a tighter criteria for CFZ). I just didn't want you to use 15% tolerance if you think you're going to get 2 arcsec seeing. Better to avoid sloppy tolerance when the seeing is good.
Ok, it looks like your CFZ fits in less than 20 steps. That's a pretty small window compared to the available focuser travel! You're going to be pretty sensitive to donuts in the focus routine until you get a handle on where the CFZ is initially. That's could also make your choice of algorithm a bit trickier depending on how repeatable your setup is. If it's reasonably repeatable, linear or 2nd gen linear should be favored. If not, possibly polynomial will work better. That's a separate question however.
Your post started with a question about what to set the step size to. Now you know. Your CFZ is ~20 steps. If you use ~15 steps as your step size, you'll not jump over the CFZ with each iteration, and you also won't waste a lot of time hunting within the same CFZ. The issue that I see for you is finding that small range in such a large travel window. Others could probably advise you better on how to start the hunt, but you might need to initially loosen that EAF setscrew while you find infinite focus, and then reset the screw and then run the focus routine (only a 1 time event...after that it should hopefully be routine to find it). Take note of your EAF motor counts (in case you need to restore in the future). Your first focus is likely going to be the hardest!
Hi Peter...ok, that means that the focuser has a pretty coarse thread pitch. I'm not used to that. Celestron has a typical thread pitch of 0.75um/rev, leading to a 0.13um/EAF step, so I get many more steps in my CFZ. Just wondering out loud, I wonder at the measured low counts/CFZ, maybe the 10:1 gear would have been an interesting test to get more sensitivity? I'm not recommending anything other than what EAF recommends, but it does make me wonder. Martha can measure and confirm (or not) if she has about what you have. As long as it works... Cheers, Doug
Hi Martha, Point #2 as calculated is technically correct... however, I don't believe it (from a sanity check perspective).
From my calcs, your CFZ is 71.1 um @ 10% focus tolerance, and 87.1 um @ 15% tolerance. This seems right to me for f/7. If you're getting 2 arcsec seeing, I'd constrain to 10% tolerance or better...you don't want to waste good seeing with poor focus!
Now, about that travel measurement.... I'm having a hard time believing the measurement (unless I didn't understand what you said). I would have expected you to have at least 3-4 hundred motor counts for a CFZ that size, but you've measured 94400 um / 25992 motor counts or 3.632 um/motor count (only 0.27 motor counts/um). Are you sure you did that measurement right? You might want to measure again (or tell me what I didn't understand). In the end, I'd expect to find for f/7 something on the order of 300-400 motor counts per CFZ, and a corresponding step size of 250 or so (educated guess). How about a 2nd measurement of your focuser travel and EAF motor counts. Make sure you push one direction with the EAF for at least 100 counts (to negate backlash), and then start your test in the same direction, noting your starting EAF motor count, travel distance, and final motor count. I'd be curious to hear the result. Cheers, Doug
Hi Martha, you might want to read my posts on page 3 of this post:
Basically, you shouldn't need to guess the step size, it should ideally be calculated from your CFZ size, EAF/focuser drawtube travel, and a couple of user selectable parameters. See the formula for New CFZ as defined in the post above. Then you'll want to know (or measure) your focuser travel per revolution and match this up to the EAF counts/rev. Set your step size to be somewhere between 1/2 and 1 CFZ. You don't want to jump over the CFZ, and if you set it too small, you'll just waste time during focus jumping within the same CFZ. As for how the EAF is mounted, If I remember correctly from the user manual, you should not mount on the 10:1. The counts/revs is already plenty high enough to do fine focus work as is. Expect backlash on the order of 85 counts (That's about where mine was when I tested, and it was confirmed by others in the forum with EAF).... Good luck & CS, Doug S
Just a thought.... I'd be tempted to identify the most "inward" focus setup, and bias the EAF motor count close to say 2-5K counts (allows for some slop in seeing, temperature, etc.). The other setups being outward from that point might fall below the max count limit....