×

INDI Library v1.9.8 Released (29 Sep 2022)

Bi-monthly INDI Library released with new drivers and bug fixes.

myFocuserPro or myFocuserPro2 and INDI

  • Posts: 102
  • Thank you received: 7
Hello Rolf,
I had to say a little sorry. Now my board is able to measure temperature with firmware V2 too. With the Windows APP and the INDI Driver.
The solution was found in the documentation. There are define statements for each option in the code. This was new to me. I flashed the UNO again and the issue is gone.

Sorry for this false bug report.

Thomas
Thomas Jäger
www.starhopper.eu
Linux Mint19.2
300/1200mm, 200/1000mm & 200/618mm Newton, Esprit 100/550mm, C 9.25"
SBIG STL11000M C2, Moravian G2-8300, ZWO ASI183MM-C and ASI2600
3 years 1 day ago #44085
Attachments:
The topic has been locked.
  • Posts: 52
  • Thank you received: 15
Nice one Thomas

Good that you found the root cause
3 years 1 day ago #44092
The topic has been locked.
  • Posts: 52
  • Thank you received: 15
Hi Thomas

By the way, how did you launch the screen that you showed in your screen capture?

3 years 14 hours ago #44130
Attachments:
The topic has been locked.
  • Posts: 102
  • Thank you received: 7
Hello Rolf,
I do not use EKOS as a client, so I need a way to start the INDILIB besides the consolor.

It is indistarter, a perfect GUI to do this:
Indistarter download on sourceforge
Thomas Jäger
www.starhopper.eu
Linux Mint19.2
300/1200mm, 200/1000mm & 200/618mm Newton, Esprit 100/550mm, C 9.25"
SBIG STL11000M C2, Moravian G2-8300, ZWO ASI183MM-C and ASI2600
3 years 13 hours ago #44131
The topic has been locked.
  • Posts: 52
  • Thank you received: 15
Nice one

I thought it was a screen I hadn't come across in the default kstars/ekos build

Good to know :)
3 years 12 hours ago #44134
The topic has been locked.
  • Posts: 77
  • Thank you received: 14
I understand your comment "I am not supporting any changes in "firmware" to make the INDI driver go. That could have the potential to break a lot of other dependent things. So that is not an option.", but I asked you directly if anything had changed in the interface and that I was using 280 :) . The only focuser i have is connected to my scope, and I have to dismantle a lot of my wiring to bring it indoors, open the focuser remove the program jumper and flash with latest firmware, so I was hoping not to have to do that. I guess I wiil just have to bite the bullet and load 290.

As I stated before I will "fix" the isMoving, but have been trying to get my development environment working agin since Sunday. The change is simple, but I want to test it.

Regarding the MaxPos, I think the myFP2 firnware should stop the focuser moving is abs position is less than minimum or greater than Max Position (stored at the focuser), I read the max psotion from the focuser on connect, so it is available?
2 years 11 months ago #44196
The topic has been locked.
  • Posts: 52
  • Thank you received: 15
Thanks Alan

Maybe you can PM me when you get your dev environment set up.
Perhaps I can show you the "Max Pos" issue over a screen share somehow...
Might be easier

I too have it in mind to set up a dev environment for debugging, so let me know how that goes from your side...


By the way, I was out last night putting the focuser through some tests

Once I got past the "Max Pos" issue with the workaround I described, then the focuser works as expected.
Got excellent auto-focus with it last night on IC434 and also M31 via StellarMate :)


Last edit: 2 years 11 months ago by Acapulco Rolf.
2 years 11 months ago #44197
Attachments:
The topic has been locked.
  • Posts: 52
  • Thank you received: 15
Video below to demonstrate the "Max Steps" issue:



Note how the "Max Steps" value is not populated on startup despite the value being already set on device
Shutdown/startup of kstars/ekos then "loses" the Max Steps value again even after repopulating

If I fire up the MyFP2 Windows client, the "Max Steps" value is populated as expected

As a workaround, I manually set "Max Steps" each time I start up the focuser under kstars/ekos/indi
Not doing so would understandably sets the focuser travelling presumably indefinitely when commanded to move


In my use-case "Max Steps" = 10000
2 years 11 months ago #44198
The topic has been locked.
  • Posts: 77
  • Thank you received: 14
I have just generated a pull request for the isMoving issue.
The following user(s) said Thank You: Acapulco Rolf
2 years 11 months ago #44205
The topic has been locked.
  • Posts: 77
  • Thank you received: 14
Like the auto focus results (this is my main motivation for writing this driver). The vide is real useful too.

When I connect using local server in development the MaxPos is read every connect, in fact it is one of the first proerties to be read. I need to get my head around how ekos is connecting differently. In the meantime can I ask you to start ekos, goto the focuser page then disconnect and reconnect, see if that populates it? I still think the ultimate protection should be in the focuser firmware though.
2 years 11 months ago #44207
The topic has been locked.
  • Posts: 52
  • Thank you received: 15
Thanks Alan
I did the disconnect/reconnect test as you suggested

Some interesting outcomes

Video uploading now....

Should be uploaded and visible in about 50 minutes from now

I'll post the link shortly

Look out for the various "quirks":
Last edit: 2 years 11 months ago by Acapulco Rolf.
2 years 11 months ago #44210
The topic has been locked.
  • Posts: 35
  • Thank you received: 3
Hi
I cant make changes in the firmware because it will affect the ASCOM app and the Windows app.
What happened from 284 to the next release of v288 was a common code base was developed that is now used across all platforms.
So changing that code breaks a lot of other things, not just myFocuserPro2.

290 is the best way to go. You can program the controller without removing anything. Simply save its settings using the Windows app, then reporgram with v290.
After that, update the Windows app, then use that to restore the controller settings.

Here is how MaxPos is used. The ASCOM standard and Windows apps uses a GET and possible a SET getmaxstep call when connecting to determine what is the maximum setting of the controller. On a SET any attempt to set it is checked. If the value being set is lower than that stored in the controller, then it is checked to see if it is lower than 1024 or the current focuser position. If it is lower than the focuser position then it is set to that. If focuser position is less than 1024 then maxstep is set to 1024.

ASCOM has no way of knowing what the maximum value might be. Only the user knows. The Windows app and ASCOM driver thus implement a MAXFOCUSERPOSITION value which the user can set so the software will not let them enter in a greater value than this for maxtsep.

Typically all focusers require a user to determine maxstep during setup and install and not set it to an invalid value. Once set it cannot be changed. ASCOM does not provide a mechanism to change it. myFocuserPro2 cheats a bit by providing a mechanism to change it during connection sequence.

I do not know enough about INDI.

myFocuserPro2 firmware expects any application to validate values before sending. Having said that it does error check values. In the case of maxstep the value is checked against a constant FOCUSERUPPERLIMIT which is arbitrarily set to 2000000000L. This value is NOT exposed through the interface (there is no way to retrieve this value).

Any attempt to set maxstep to a higher value on connection is handled. v291 (about to be released) looks a bit like
case 7: // set maxsteps
WorkString = receiveString.substring(2, receiveString.length() );
tmppos = WorkString.toInt();
tmppos = (tmppos >= FOCUSERUPPERLIMIT) ? FOCUSERUPPERLIMIT : tmppos;
tmppos = (tmppos < fcurrentposition) ? fcurrentposition : tmppos;
tmppos = (tmppos < FOCUSERLOWERLIMIT) ? FOCUSERLOWERLIMIT : tmppos;
myfocuser.maxstep = tmppos;
writenow = 1;
break;

So the firmware does check any request to set maxstep value.

On a read maxtep call ( :8# ) the focuser simply returns the current maxstep value (preceded by M and suffixed with # ).
case 8: // get maxStep
SendPacket('M' + String(myfocuser.maxstep) + '#');
break;
Last edit: 2 years 11 months ago by Robert.
2 years 11 months ago #44225
The topic has been locked.
Time to create page: 0.795 seconds