Major INDI Library release v1.9.0 bring significant internal changes championed by @pawel-soja to modernize core INDI Library drivers and clients. New drivers for DeepSkyDad Flat Panel & Pegasus devices plus further improvements to PCM8 drivers.
Just wondering if anyone has any experience with using an Optec Leo
focuser with Ekos/INDI. The focuser is controlled by the FocusLynx hub.
I would assume that the FocusLynx driver would be used, but there is
not actually a "Leo" selection among the several available.
The Leo is a high-torque focuser similar in aperture to the Gemini,
but without the rotator, with less travel (about 8.9mm), and (I
believe) about 112000 steps. If someone has a thought as to what
the best or closest approximation of a focuser type would be out of
the current selections, and/or configuration suggestions, I would
appreciate your advice.
Actually, it looks as if none of the supplied options will actually
work with the Leo focuser. Therefore, I must write my own
modification to the FocusLynx driver, or wait until some
enterprising person does that.
That may mean I will have to forego using KStars/Ekos/INDI
until that work is done. Or try to use a hand controller
(manual operation) until that work is done.
Well, I was able to get things to work by adding just two small entries
to an array of focuser definitions in the well-written FocusLynx
driver. I not being a full-fledged INDI developer, does anyone know
how I would go about sending this information to the development
team, short of a pull request? It's just two lines in focuslynxbase.cpp.
Thanks for taking a look...in file focuslynxbase.cpp, the lynxModels
array is initialized with the focuser type codes for the Optec focusers.
Here are all of the lines in that file, with the two new ones I have
added ("Optec Leo" and "Optec Leo High Torque"):
lynxModels["Optec TCF-Lynx 2"] = "OA";
lynxModels["Optec TCF-Lynx 3"] = "OB";
lynxModels["Optec TCF-Lynx 2 with Extended Travel"] = "OC";
lynxModels["Optec Fast Focus Secondary Focuser"] = "OD";
lynxModels["Optec TCF-S Classic converted"] = "OE";
lynxModels["Optec TCF-S3 Classic converted"] = "OF";
// lynxModels["Optec Gemini (reserved for future use)"] = "OG";
lynxModels["Optec Leo"] = "OI"; // <-- this is the first added line --
lynxModels["Optec Leo High-Torque"] = "OJ"; // <-- this is the second added line --
lynxModels["FocusLynx QuickSync FT Hi-Speed"] = "FB";
lynxModels["FocusLynx QuickSync FT Hi-Torque"] = "FA";
// lynxModels["FocusLynx QuickSync SV (reserved for future use)"] = "FC";
lynxModels["DirectSync TEC with bipolar motor - higher speed"] = "FD";
lynxModels["FocusLynx QuickSync Long Travel Hi-Torque"] = "FE";
lynxModels["FocusLynx QuickSync Long Travel Hi-Speed"] = "FF";
lynxModels["FeatherTouch Motor PDMS"] = "FE";
lynxModels["FeatherTouch Motor Hi-Speed"] = "SO";
lynxModels["FeatherTouch Motor Hi-Torque"] = "SP";
lynxModels["Starlight Instruments - FTM with MicroTouch"] = "SQ";
lynxModels["Televue Focuser"] = "TA";
Thanks to Jeff and Daniel at Optec for supplying the two
new focuser type codes ("OI" and "OJ"). The focuser descriptions
are theirs, but could of course be made more consistent with the
others (e.g., "Optec Leo Hi-Speed" and "Optec Leo Hi_Torque").
That's stylistically up to you all, I guess. The second character
of "OI" is the English capital letter "I", not an ell or a one.
And many thanks to you...I did notice that, and have used
it successfully already.
Interestingly (I did not realize this until I ran into it),
the function checkIfAbsoluteFocuser() in focuslynxbase.cpp
decides if a focuser is "absolute" by its name (I should have
looked for this, my fault). Currently, if it detects the string
"TCF" in the name, it is determined to be absolute (and
also if the name is equivalent to "FastFocus", but that is less
The Optec Leo is an "absolute" focuser (and is temperature-
compensating), but because this is not determined correctly
by the driver, the driver presents the option "Sync Mandatory".
This should not be set for an absolute focuser, and therefore
(again currently) has to be manually disabled in order for the
Leo to work.
Therefore, if all concur**, I suggest a small change to the
checkIfAbsoluteFocuser() function. The line that determines
whether or the the focuser is "absolute" looks like this:
if (strstr(focusName, "TCF") || !strcmp(focusName, "FastFocus"))
I suggest that it be changed to this:
if (strstr(focusName, "TCF") || strstr(focusName, "Leo") || !strcmp(focusName, "FastFocus"))
and much less confusion will result when one of the two
the "Leo" focuser types is selected.
**I not having examined this in detail, though it does
work for me in my tests...