×

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

Bi-monthly release with minor bug fixes and improvements

Celestron Motorised Focuser - Is it supported in EKOS yet

  • Posts: 131
  • Thank you received: 11
Hi folks,

Celestron has just released their own motorised focuser for the first time. Anyone know if this is going to work in EKOS or not yet?

www.celestron.com/products/focus-motor-for-sct-and-edgehd


Thanks in advance, Craig
5 years 2 months ago #34002

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

I emailed Celestron, so let's see.
5 years 2 months ago #34009

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

  • Posts: 554
  • Thank you received: 138
I implemented the ASCOM driver for this focuser connected through the serial port on the base of the hand controller. Celestron did their own ASCOM driver for when it's connected independently using the USB port on the focuser.

The focuser motor uses the same commands as the other motors and is controlled using the same pass through method as used by the telescope driver. This works as follows
The focusMotor device ID is 0x12
Commands are:
get position:
Command MC_GET_Position = 0x01 This sends no data and returns 3 bytes containing a 24 bit unsigned integer with the position.
Move:
Command MC_GOTO_FAST = 0x02. Three data bytes containing the position as a 24 bit unsigned integer. It's an absolute move only.
IsMoving:
Command MC_SLEW_DONE = 0x13. This returns 1 data byte, if it is 0xFF then the slew has completed
Halt:
Command MC_MOVE_POS = 0x24 with 1 data byte containing 0. The data byte could contain values 0 to 9 where the value is the various rates with zero being stopped. Ant movement is in the positive direction, there is a corresponding MC_MOVE_NEG command which will move in the negative direction. I only use this with 0 to halt movement.
Get Limits:
Command FOC_GET_HS_POSITIONS = 0x2C. Returns 8 data bytes containing the low and high limits as 2 32 bit uints.

The data byte order seems to be the opposite way rount to what the PC uses.

I check the focus motor exists usingthe get version command.

Normally a user will want to control the telescope as well and so the focus and telescope driver have to be integrated, I'm not sure how that would be done in INDI.

HTH

Chris
The following user(s) said Thank You: Jasem Mutlaq, Jeff Wilson
5 years 2 months ago #34018

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

  • Posts: 51
  • Thank you received: 12
I saw the press release for this focuser, and I got pretty excited. One of my first thoughts was also, “will it work in Ekos?” @ChrisRowland’s post gives me hope. It also makes me wonder if my Arduino-based focuser could be modified such that control could be achieved through the AUX rather than a separate USB cable. (RJ-12 jack and some soldering required)
5 years 2 months ago #34025

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

Chris, thank you for your info.

So let me get this straight. The focuser can be controlled on the same port as the one used to control the mount correct? If this is the case, we can perhaps modify the Celestron driver to send the 0x01 command to check if we get a response and not, and based on that, we can decide whether to define a Focuser interface for the driver. Meade mount drivers already implement the Focuser interface, so it's not very difficult. I actually just got a reply from Celestron, can you check if it agrees with your findings?
If you want to roll your own focuser controller, it uses the same commands as the motor controllers (including goto, get position, and backlash settings) as the motor controllers.   The AuxBus address of the focuser is 18 (0x12).
 
 
 
There are 3 additional aux bus commands you might want.   
 
CALIBRATION_ENABLE  0x2A // takes 8 bit data value.  Clears calibration data.  If Value != 0, also starts calibration process.
 
IS_CALIBRATED       0x2B // returns 8 bit data.  true (0x01) if calibration is complete, false (0x00) otherwise. 
 
GET_CALIBRATION_POSITIONS       0X2C //  MC returns 2 uint32_t (8 bytes total) for the low side and high side limits. (typically < 65535).  Big endian.
5 years 2 months ago #34120

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

  • Posts: 554
  • Thank you received: 138
Yes, using the same port as used by the telescope in much the same way as the Meade does.

Yes, it's the same passthrough commands as the telescope axis motors. I chose not to implement backlash and calibrate, I see calibrate in particular as something that's better done by the Celestron software. What it does is to move to each end of the range looking for the hard stops. When it finds them it remembers their position.

For the question about using an Arduino based focuser, in theory it would be possible to connect it to the mount internal bus and reverse engineer Celestron's internal bus protocol but I don't see any benefit, especially as the Arduino already has a perfectly good USB interface that allows it to connect independently. The internal protocol uses the same commands but is different to the passthrough protocol used by the HC.
5 years 2 months ago #34125

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

  • Posts: 2
  • Thank you received: 2
I got one of these from High Point a couple of days ago. Out of the box it doesn't fit the SE8 properly, due to a crappy spacer that you have to use. You'll need to shim it, I used tinfoil around the focuser shaft. This should all be a precision fit, and the plastic spacer is easily 10 thou over on the inside diameter. In desperation, I paid for a windows product last night since ascom supports it. Looking forward to this getting into indi.
The following user(s) said Thank You: Chris Rowland
5 years 2 months ago #34127

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

  • Posts: 51
  • Thank you received: 12
One benefit is not needing to occupy another USB port, especially if you are running on a RPi (or Rcok64 in my case) and already taking up a lot of ports. On nights when I am not imaging, I’d still be able to motor focus without needing to hook a computer or battery up to the focuser. I also like to tinker, which is probably the best/honest reply.
5 years 2 months ago #34132

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


Thanks Chris, so we can use the pass thru commands to inquire about the focuser and then enable it in the driver? What would be the complete pass thru command for MC_GET_Position for example?
5 years 2 months ago #34176

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

  • Posts: 13
  • Thank you received: 2
I have this focusor and do not use it with a Celestron mount so independent focus control outside the mount is needed.

I will manage the focusor via USB connect directly to my RasberryPi running StellarMate.
5 years 1 month ago #34269

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


I don't have this focuser. Can I get access to your StellarMate to develop this driver? Please send email to support if you can help with this (support AT stellarmate DOT com)
5 years 1 month ago #34477

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

  • Posts: 2
  • Thank you received: 2
I started looking into the USB Protocol, but I'm at the wrong end of a learning curve on this one.
Here's what I have:
These 2 sequences start the focuser talking:
3b 03 22 12 fe cb --connect -->3b 07 12 22 fe 07 0f 20 30 61
3b 03 22 12 40 89 --?????? -->3b 04 12 22 40 00 88

Focuser continues to send this while you are connected.
keep alive
3b 03 22 12 01 c8 -->receive 3b 06 12 22 01 ignore last 4 bytes, appears to be counting (3b 06 12 22 01 00 83 59 e9 ) or timestamp

3b 04 22 12 25 09 9a move in 3
3b 04 22 12 25 00 a3 move in

3b 04 22 12 24 09 9b move out
3b 04 22 12 25 00 a3

3b 06 22 12 02 00 83 a4 9d move to 33700 = 0x83a4

byte1 always 3b
byte2 message length
byte3 always 22
byte4 always 12
byte5 command

final byte is a checksum, CheckSum8 2s Complement, on 2nd byte - (last byte-1)
The following user(s) said Thank You: Jasem Mutlaq
5 years 1 month ago #34491

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

Time to create page: 0.870 seconds