×

INDI Library v2.0.6 is Released (02 Feb 2024)

Bi-monthly release with minor bug fixes and improvements

Pyxis Rotator question

  • Posts: 57
  • Thank you received: 12
I've been testing a Pyxis 3 Inch rotator. After setting the rotation angle though the rotator control the rotator moves and then there is a ~50 second delay before the rotator GUI, and the Indi Pyxis control panel updates showing the new angle. I'm assuming this isn't normal as if I set a PA angle in the rotator dialog and start a sequence the rotator rotates but the sequence never starts as it appears to be waiting for the rotator to complete. If I cancel the sequence and bring up the rotator dialog, after a few seconds it updates to the correct angle. I get the same behavior under ubuntu and OSX. I've tried two different configurations of official Optec serial cables and USB dongles. The new integrated type that goes directly from RJ to USB and the older style that goes RJ to 24 pin to USB. No difference. I've enabled debugging for indi and aux but the driver doesn't seem to output anything.

Any ideas?
I haven't looked at the code yet but certainly am willing.

EDIT: Looked at the code during lunch here, lots of DEBUGF calls so I should be seeing log output. I'll try to see if I can get this working, should be helpful.
David
Last edit: 5 years 11 months ago by DAVID J EISENLORD.
5 years 11 months ago #24826

Please Log in or Create an account to join the conversation.

Replied by Jasem Mutlaq on topic Pyxis Rotator question

Yes the log would be helpful to pinpoint this issue.
5 years 11 months ago #24839

Please Log in or Create an account to join the conversation.

  • Posts: 57
  • Thank you received: 12
Jasem, took me a while to work around the debug problem. As soon as I would put the rotator in debug it would immediately be taken out of debug automatically. I found the code that does this, I guess to only enable/disable debug when all other drivers are the same. I only had a CCD simulator, or real CD, and no matter what I couldn't get the driver into debug. I could see the debug flags flash on the screen and see "DRIVER DEBUG" was off before it automatically disabled debug again.
Same behavior OSX and Linux.

Anyway I hacked the code to not "re-disable debug" and finally got a debug log. I've attached.
The behavior is the rotator rotates to the position and then there is almost a minute pause until the GUI in the rotator sync's with the new angle.

Inserted a new log which is better. It looks to me like the rotator just has a long delay if I understand correctly. I will reach out to them and see what they say.
David
Last edit: 5 years 11 months ago by DAVID J EISENLORD.
5 years 11 months ago #24853
Attachments:

Please Log in or Create an account to join the conversation.

Replied by Jasem Mutlaq on topic Pyxis Rotator question

David,

Logging is handled by Ekos, just in the main summary screen you see a button called Logs and it is from there you decide what you want to debug. Before, users needed to submit two logs (Ekos + INDI) but then I moved everything to Ekos and consolidated it to one log.
5 years 11 months ago #24872

Please Log in or Create an account to join the conversation.

  • Posts: 57
  • Thank you received: 12
Jasem, maybe I'm still confused but this doesn't work for me. Just rebuilt everything from scratch. I cannot get the rotator into debug without hacking ekos_manager.cpp to stop undoing my clicking the rotator into debug. See attached my log screen from the summary indi page and the rotator indi properties page. Notice the messages at the bottom showing that every every time I click "Debug" Ekos undoes this and you see it say Debug disabled.





Also, I tested the rotator under WinDoz with the Optec Rotator command program. All seems fine, it doesn't show the behavior of a lagging acknowledgement. It displays the rotation in "real time" as it rotates. So I'm back to thinking Indi doesn't have the protocol quite correct. I haven't heard from optec yet I just sent the message late friday afternoon.

On the debug issue, what am I missing?
Best, David
5 years 11 months ago #24889
Attachments:

Please Log in or Create an account to join the conversation.

Replied by Jasem Mutlaq on topic Pyxis Rotator question

Right, Rotators are their own class so I need to add those to the list here. I'll do that soon. Regarding the rotator, I'm not sure what's going on with it and have no access to one. Good thing the code is open source so you can hack it :D
Last edit: 5 years 11 months ago by Jasem Mutlaq.
5 years 11 months ago #24890

Please Log in or Create an account to join the conversation.

  • Posts: 57
  • Thank you received: 12
Indeed and glad I'm not crazy :)

I'll let you know what I hear from Optec.
Thanks, David
5 years 11 months ago #24893

Please Log in or Create an account to join the conversation.

  • Posts: 57
  • Thank you received: 12
Jasem, just had a brainstorm about what the problem is, I think we need to consume a ! character for each microstep the rotator makes and we are only reading/checking every 100ms. Will investigate further and do some testing.
David

Edit: Just worked this out on paper and it correlates to the behavior. 128 steps per / deg, 5 deg rotation is 640 steps, 100ms per read, 64000ms total time to consume which is ~1 minute. So I need to consume as many ! as I can each 100ms tick, I assume there is a non-blocking way to do this?
Last edit: 5 years 11 months ago by DAVID J EISENLORD.
5 years 11 months ago #24911

Please Log in or Create an account to join the conversation.

Replied by Jasem Mutlaq on topic Pyxis Rotator question

Oh okay that certainly explains it. I updated the code to try a different method, please git pull and compile and test.
5 years 11 months ago #24923

Please Log in or Create an account to join the conversation.

  • Posts: 57
  • Thank you received: 12
Good grief your fast !!
Thanks,
David
5 years 11 months ago #24924

Please Log in or Create an account to join the conversation.

  • Posts: 57
  • Thank you received: 12
Your new approach is going to work great Jasem. One caveat, we need to gracefully handle TTY_OVERFLOW as N-1 calls to the read will overflow and the last (containing the F) will complete successfully. Ie.
if (rc == TTY_TIME_OUT)
            return false ;
else if (rc == TTY_OVERFLOW)
{
            LOGF_DEBUG("RES <%s>", res);
            return false ;
}

I'm working on some changes to allow the driver to know if its connected to a 2 inch or 3 inch rotator as the resolution and default step rate are different. I found out from Optec there is a command CVxxxx that will return the firmware version and from this we can determine the hardware type and hence resolution and default step rate. I have an prototype running that uses this info to allow the Rotator GUI in Ekos to dynamically update as the rotator rotates and sets the correct default rotation rate.

Will be in touch.
Thanks again for your help.
David
The following user(s) said Thank You: Jasem Mutlaq
Last edit: 5 years 11 months ago by DAVID J EISENLORD.
5 years 11 months ago #24958

Please Log in or Create an account to join the conversation.

Replied by Jasem Mutlaq on topic Pyxis Rotator question

Great progress! Please send in a PR when you have it sorted out!
5 years 11 months ago #24959

Please Log in or Create an account to join the conversation.

Time to create page: 0.776 seconds