×

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

Bi-monthly release with minor bug fixes and improvements

SX Filterwheel one-way rotation

  • Posts: 2
  • Thank you received: 0
I own an older version of the SX filterwheel. They are well know to not stop at a predictable position.
I believe the stopping mechanism works with magnetic sensors, but they overshoot.
Clockwise it will overshoot a few degrees clockwise, and anticlockwise it overshoots a few degrees in the other direction.
Rendering 5 till 10% of my 1.25 filter diameter useless.

I installed their own filterwheel controller, and there is the possibility to enable or disable 2-way, forcing the filterwheel to always turn clockwise. (connected through USB)
I did not see this option available in the indi_sx_wheel driver. Are there plans to add this or other filterwheel options (like rotation speed, which can also limit the overshooting issue for SX filterwheel)?
1 year 11 months ago #82081

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

Is this documented somewhere so we can add it? like technical documentation on how to send the USB level command to the filter wheel to enforce this?
1 year 11 months ago #82096

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

  • Posts: 2
  • Thank you received: 0
Update: I sent out an mail last Friday to Starlight Express, asking if they want to share that command. I am still waiting for a reply.
Out of curiosity, if you need USB level commands to run an device. How did you acquire the USB commands to rotate the wheel itself.
Are those generic among other brands. Meaning, if I can find an one-direction USB command for another brand, it might work on the Starlight Express as well?
1 year 11 months ago #82324

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

  • Posts: 472
  • Thank you received: 165
The command set is documented in the SX wheel manual (www.sxccd.com/wp-content/uploads/2020/11...ard-Filter-Wheel.pdf), but it only has commands to get number of filters, get current filter and selecting new filter with no option for one-way motion.
The following user(s) said Thank You: galactor88
1 year 11 months ago #82347

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

  • Posts: 54
  • Thank you received: 5
I'm facing the same problem... my 36mm filters are not large enough for my QHY268 due to the overshooting. In particular flat correction becomes nearly impossible.

Hope someone is able to put the option for 1-direction in the driver.
1 year 7 months ago #84947

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

  • Posts: 472
  • Thank you received: 165
I took some USB traffic dump using the Windows program SX provides to see how it implements one-way rotation, but haven't had time to look at it in detail yet. There is also one other option to implement this by some work in the driver so that if a decreasing filter number is selected, the driver would first select the last filter, then the first filter and then move to the selected filter. That way motion would always be into the same direction.
1 year 7 months ago #85067

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

Right, this could be implemented at INDI::FilterInterface level and not bother with device-specific implementations.
1 year 7 months ago #85072

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

  • Posts: 54
  • Thank you received: 5
Hi, thanks a lot for the info.

I wrote to Terry Platt of SX asking for the source code of the Windows program, his answer was: "I don’t have the source to hand but the rotation direction is easily changed. All you need to do is to send the filter position numbers with 128 added for reverse rotation, so if you never do this, the wheel will always rotate anti-clockwise."

So I checked the sxwheel.cpp code and at line 149 I found the instance: "SendWheelMessage(f + 0x80, 0);"
I naively removed the "+ 0x80" which should be + 128 in HEX, recompiled and installed the driver.
And it magically works, rotation is always anti-clockwise.

There is a but, though. For whatever reason, at start-up, after the wheel finishes indexing (i.e. after it completes a full rotation at power on) the first filter switching is random, clockwise or anti-clockwise following the shortest route. Only the initial connection after indexing experiences this. If I disconnect and reconnect from the INDI Control Panel the rotation is always anti-clockwise, but if I disconnect, power down the wheel, power up it, wait for indexing, then the first movement is random... I'm not a coder, I tried a few random things (add + or - 0x80 here and there... but it didn't work.

My solution is that, since after indexing the wheel always (at least for as much as I tried) start at position number 1, I try to always disconnect the wheel with the filter set at position number 1. Then on connection the filter wheel doesn't move and if I then I make the first movement to position 2, it turns anti-clockwise and from there it keeps going that direction.

Surely a INDI wide implementation would remove all this hassle.
1 year 7 months ago #85075

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

  • Posts: 472
  • Thank you received: 165
Ah, it actually is documented in the pdf I linked, just hadn't noticed it:

Note1: The Select New filter command will always rotate the filter wheel in a
clockwise direction to arrive at the target filter. If 128 (0x80 hexadecimal) is
added to the “New Filter number” then this will allow the filter wheel to
rotate the wheel in either direction to reach the target filter in the shortest
time.

I added unidirectional movement as an option, will submit a pull request after some quick testing.
1 year 7 months ago #85088

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

  • Posts: 54
  • Thank you received: 5
That would be awesome!!!
1 year 7 months ago #85091

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

  • Posts: 472
  • Thank you received: 165
The following user(s) said Thank You: Massimo
Last edit: 1 year 7 months ago by Jarno Paananen.
1 year 7 months ago #85127

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

Time to create page: 0.993 seconds