×

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

Bi-monthly release with minor bug fixes and improvements

Eqmod goto rate

  • Posts: 16
  • Thank you received: 2

Eqmod goto rate was created by Mariusz

Hello there,
greetings to the INDI team and forum members.
I am still considering myself just starting in astrophotography, even though have been enjoying my gear and ekos/kstars for almost 2 years now - learned a lot from this forum, too.
So, instead of breaking my head (and after searching the internet), I've finally decided to come back and ask for the expert wisdom on the following:
Apparently SkyWatcher does not allow to control the goto slew rate, always using the max 9 being the fastest and LOUDEST slew rate. People have been asking for it but Santa does not see it worthwhile to adjust the firmware.
This makes nightly sessions in my dense neighbourhood pretty stressful for me and my neighbours, and requires manual slewing to lower the noise.
So far I have found only the EQMOD Ascom driver allows to work around it - is the Goto Rate Limit, as seen under the EQMOD Ascom drive in the attached picture, available under INDI Eqmod?


Many thanks,
Mariusz
The following user(s) said Thank You: Hartmut
1 year 6 months ago #86605
Attachments:

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

  • Posts: 42
  • Thank you received: 6

Replied by Hartmut on topic Eqmod goto rate

Hi Mariusz,

thanks for that request! I would like to see that feature too.
Reducing the max. speed of an EQ6 only a little bit reduces the noisy sound a lot.

I think I found the parameter in the code: github.com/indilib/indi-3rdparty/blob/ma...i-eqmod/skywatcher.h
Code Line 141: static constexpr double MAX_RATE = 800.0;

However I'm not a coder and cannot change that parameter since I do not know how to compile.

So we've to wait if anyone of experts will give us that feature...would be great!

Regards,
Hardy
1 year 6 months ago #86607

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

  • Posts: 16
  • Thank you received: 2

Replied by Mariusz on topic Eqmod goto rate

(Apologies, if published twice, but the editor has kicked me out...)

Hi Hartmut,

I am afraid it's not so simple, but would love to be wrong :)

as far I as I understand (explained in another forum by the EQASCOM author) the EQMOD ascom driver does the trick by simulating the manual slew for the most of the given distance and making the goto just at the end. At that moment the SW firmware takes over and selects the optimal slew rate, which is low for small distance (and always the max for larger ones). There is apparently no way to control this via the comms protocol/API, and SW did nothing despite multiple requests (although Celestron apparently allows it, so it's possible).
The referenced MAX-RATE is used in methods controlling the slew rate, presumably the manual slew rate, so it won't help to change it.

So, it looks like the only way with the current firmware is to trick the mount in doing the 'manual' slew, like EQASCOM is doing (the caveat being that this requires stable comms with the mount - otherwise upon a disruption the mount keeps slewing according to the EQMOD author).

Would be great to have a confirmation form experts and maybe entry points in the code where this could be implemented?

Regards,
Mariusz
The following user(s) said Thank You: Hartmut
1 year 6 months ago #86609

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

  • Posts: 42
  • Thank you received: 6

Replied by Hartmut on topic Eqmod goto rate

ahh, ok, thought it`s just this parameter. When I used EQMOD under ASCOM I changed the value in the EQMOD config-File. There was an older version of EQMOD without the slider you show in the screenshot.
That was simple...

So let´s hope...
1 year 6 months ago #86610

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

  • Posts: 421
  • Thank you received: 102

Replied by Kevin Ross on topic Eqmod goto rate

When issuing slew commands, the INDI driver sets a hard-coded speed for both high speed (far away) and low speed (close) moves. There is code like this:
        if (useHighSpeed)
            SetSpeed(Axis1, minperiods[Axis1]);
        else
            SetSpeed(Axis1, lowperiod);

Both minperiods and lowperiod are hard-coded values. minperiods is set during initialization. If you want to hack on the driver, you can try changing that value and seeing what happens. Note that bigger numbers means slower movement.

I'd try it myself, but my mount is outside under a cover during a rain storm right now, so I can't test it.
The following user(s) said Thank You: Jasem Mutlaq, Hartmut
Last edit: 1 year 6 months ago by Kevin Ross.
1 year 6 months ago #86612

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

  • Posts: 16
  • Thank you received: 2

Replied by Mariusz on topic Eqmod goto rate

Hi Kevin,

this would be great and means the Indi driver controls all the slews, including gotos, directly, right?
I will look at the code and try to change.
I think relevant is the uint32_t minperiods[2] used for high speed - it is currently set to 6, which I assume corresponds to the max. speed of the mount (this what it's using when executing.a goto).
I'll try to compile and use with value 7-9.
ok, any other side effects I should be aware of?

Regards,
Mariusz
1 year 6 months ago #86618

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

  • Posts: 16
  • Thank you received: 2

Replied by Mariusz on topic Eqmod goto rate

Hello Kevin,

so, I have updated the skywatcher.cpp as advised by you:

Line 415: minperiods[Axis1] = 12; //6;
Line 416: minperiods[Axis2] = 12; //6;

Recompiled and installed the driver. The change is being used as evidenced by the log file entry:
DEBUG 0.287078 sec : InquireBoardVersion(): MountCode = 35, MCVersion = 30e23, setting minperiods Axis1=12 Axis2=12

Unfortunately, there is no noticeable change in the goto slew speed, i.e. still at its maximum (800x as shown by Ekos).
Attached the log files with the debug level active.

File Attachment:

File Name: indi_eqmod...2325.log
File Size:156 KB


Let me know your thoughts - do I need to be more aggressive with the value? Like 50?.

Regards,
Mariusz
1 year 6 months ago #86624
Attachments:

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

  • Posts: 421
  • Thank you received: 102

Replied by Kevin Ross on topic Eqmod goto rate

Hmm, sounds like that's confirmation that the speed that is set is ignored. Bummer. I was hoping that would work.
1 year 6 months ago #86628

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

  • Posts: 16
  • Thank you received: 2

Replied by Mariusz on topic Eqmod goto rate

yeah, pity it didn't work -looks like back to square one, i.e the EQASCOM way (use manual slew) is the only solution due to the black-box firmware, unless you can think of a different way?
1 year 6 months ago #86630

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

  • Posts: 421
  • Thank you received: 102

Replied by Kevin Ross on topic Eqmod goto rate

The firmware has "fast goto" and "slow goto". Maybe try forcing it to always use slow goto. Maybe then it will honor the speed setting. Even if it doesn't honor the speed setting, it should move nice and slow :D
1 year 6 months ago #86634

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

  • Posts: 16
  • Thank you received: 2

Replied by Mariusz on topic Eqmod goto rate

Thanks Kevin for your insight - how to activate the slow goto? Where can I read more about it and the firmware?
I really would like to stay on ekos and save the pain of setting a NUC with Window$, but this may be the only way to have my mount out in the backyard. It is also frustrating the vendor does not move a finger on what is presumably a simple change - Celestron apparently does allow to set it and it's the same Co.
1 year 6 months ago #86636

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

  • Posts: 421
  • Thank you received: 102

Replied by Kevin Ross on topic Eqmod goto rate

In the SlewTo and AbsSlewTo methods, you can see it checks to see how far away the target is from the current position. If it's beyond a certain threshold, it uses fast mode, otherwise slow mode. You can try skipping the test and just always using slow mode.

Something like changing this:
    if (deltaraencoder > static_cast<int32_t>(lowspeedmargin))
        useHighSpeed = true;
    else
        useHighSpeed = false;

to this:
    useHighSpeed = false;

There are similar checks for RA and Dec. And the change would need to be made in AbsSlewTo and SlewTo methods.

I'd do it myself, but it's still raining here, so I don't dare take the cover off of my mount to test it out. :D
1 year 6 months ago #86640

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

Time to create page: 2.577 seconds