×

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

Bi-monthly release with minor bug fixes and improvements

INDI not talking to celestron

  • Posts: 4
  • Thank you received: 0
I'm trying to talk to a Celestron 6se via indiserver, and it appears it isn't talking properly.

Version info:
2014-03-06T06:45:23: startup: indiserver -h 
Usage: indiserver [options] driver [driver ...]
Purpose: server for local and remote INDI drivers
INDI Library: 0.9.7
Code $Revision: 726523 $. Protocol 1.7.

== Verify my comm works ==
PC -> USB-RS232 converter -> Celestron RS232 cable -> telescope handset. I can fire up minicom to test that it talks. Using the nextar 'echo' command ('K'), i can echo back things:
$ sudo minicom -b 9600 -o -D /dev/ttyUSB0
 
K#K#K#K#H#I#M#O#M#

Cool. Let's fire up the indiserver:
$ indiserver -vvv indi_celestron_gps
2014-03-06T06:52:20: startup: indiserver -vvv indi_celestron_gps 
2014-03-06T06:52:20: Driver indi_celestron_gps: pid=8306 rfd=3 wfd=7 efd=8
2014-03-06T06:52:20: listening to port 7624 on fd 4
2014-03-06T06:52:20: Driver indi_celestron_gps: sending msg copy 1 nq 1:
<getProperties version='1.7'/>
 
2014-03-06T06:52:20: Driver indi_celestron_gps: initializing from Celeston GPS device...
2014-03-06T06:52:20: Driver indi_celestron_gps: read defSwitchVector Celestron GPS CONNECTION Idle rw
    CONNECT='Off'
 DISCONNECT='On'
2014-03-06T06:52:20: Driver indi_celestron_gps: read defTextVector Celestron GPS DRIVER_INFO Idle ro
       NAME='Celestron GPS'
       EXEC='indi_celestron_gps'
    VERSION='2.0'
2014-03-06T06:52:20: Driver indi_celestron_gps: read defSwitchVector Celestron GPS DEBUG Idle rw
     ENABLE='Off'
    DISABLE='On'
2014-03-06T06:52:20: Driver indi_celestron_gps: read defSwitchVector Celestron GPS SIMULATION Idle rw
     ENABLE='Off'
    DISABLE='On'
2014-03-06T06:52:20: Driver indi_celestron_gps: read defSwitchVector Celestron GPS CONFIG_PROCESS Idle rw
 CONFIG_LOAD='Off'
 CONFIG_SAVE='Off'
 CONFIG_DEFAULT='Off'
2014-03-06T06:52:20: Driver indi_celestron_gps: read defTextVector Celestron GPS DEVICE_PORT Idle rw
       PORT='/dev/ttyUSB0'
2014-03-06T06:52:20: Driver indi_celestron_gps: read defSwitchVector Celestron GPS CONFIG_PROCESS Idle rw
 CONFIG_LOAD='Off'
 CONFIG_SAVE='Off'
 CONFIG_DEFAULT='Off'

Connecting via kstars:
2014-03-06T06:52:44: Client 0: queuing <defSwitchVector device='Celestron GPS' name='CONFIG_PROCESS'>
2014-03-06T06:52:44: Client 0: sending msg copy 1 nq 8:
<defSwitchVector device="Celestron GPS" name="CONNECTION" label="Connection" group="Main Control" state="Idle" perm="rw" rule="OneOfMany" timeout="60" timestamp="2014-03-06T06:52:44">
    <defSwitch name="CONNECT" label="Connect">
Off
    </defSwitch>
    <defSwitch name="DISCONNECT" label="Disconnect">
On
    </defSwitch>
</defSwitchVector>
 
2014-03-06T06:52:44: Client 0: sending msg copy 1 nq 7:
<defTextVector device="Celestron GPS" name="DRIVER_INFO" label="Driver Info" group="Options" state="Idle" perm="ro" timeout="60" timestamp="2014-03-06T06:52:44">
    <defText name="NAME" label="Name">
Celestron GPS
    </defText>
    <defText name="EXEC" label="Exec">
indi_celestron_gps
    </defText>
    <defText name="VERSION" label="Version">
2.0
    </defText>
</defTextVector>
2014-03-06T06:52:44: Client 0: sending msg copy 1 nq 6:
<defSwitchVector device="Celestron GPS" name="DEBUG" label="Debug" group="Options" state="Idle" perm="rw" rule="OneOfMany" timeout="0" timestamp="2014-03-06T06:52:44">
    <defSwitch name="ENABLE" label="Enable">
Off
    </defSwitch>
    <defSwitch name="DISABLE" label="Disable">
On
    </defSwitch>
</defSwitchVector>
 
2014-03-06T06:52:44: Client 0: sending msg copy 1 nq 5:
<defSwitchVector device="Celestron GPS" name="SIMULATION" label="Simulation" group="Options" state="Idle" perm="rw" rule="OneOfMany" timeout="0" timestamp="2014-03-06T06:52:44">
    <defSwitch name="ENABLE" label="Enable">
Off
    </defSwitch>
    <defSwitch name="DISABLE" label="Disable">
On
    </defSwitch>
</defSwitchVector>
 
2014-03-06T06:52:44: Client 0: sending msg copy 1 nq 4:
<defSwitchVector device="Celestron GPS" name="CONFIG_PROCESS" label="Configuration" group="Options" state="Idle" perm="rw" rule="OneOfMany" timeout="0" timestamp="2014-03-06T06:52:44">
    <defSwitch name="CONFIG_LOAD" label="Load">
Off
    </defSwitch>
    <defSwitch name="CONFIG_SAVE" label="Save">
Off
    </defSwitch>
    <defSwitch name="CONFIG_DEFAULT" label="Default">
Off
    </defSwitch>
</defSwitchVector>
 
2014-03-06T06:52:44: Client 0: sending msg copy 1 nq 3:
<defTextVector device="Celestron GPS" name="DEVICE_PORT" label="Ports" group="Options" state="Idle" perm="rw" timeout="60" timestamp="2014-03-06T06:52:44">
    <defText name="PORT" label="Port">
/dev/ttyUSB0
    </defText>
</defTextVector>
 
2014-03-06T06:52:44: Client 0: sending msg copy 1 nq 2:
<defTextVector device="Celestron GPS" name="DEVICE_PORT" label="Ports" group="Options" state="Idle" perm="rw" timeout="60" timestamp="2014-03-06T06:52:44">
    <defText name="PORT" label="Port">
/dev/ttyUSB0
    </defText>
</defTextVector>
 
2014-03-06T06:52:44: Client 0: sending msg copy 1 nq 1:
<defSwitchVector device="Celestron GPS" name="CONFIG_PROCESS" label="Configuration" group="Options" state="Idle" perm="rw" rule="OneOfMany" timeout="60" timestamp="2014-03-06T06:52:44">
    <defSwitch name="CONFIG_LOAD" label="Load">
Off
    </defSwitch>
    <defSwitch name="CONFIG_SAVE" label="Save">
Off
    </defSwitch>
    <defSwitch name="CONFIG_DEFAULT" label="Default">
Off
    </defSwitch>
</defSwitchVector>
 
2014-03-06T06:52:44: Client 0: read enableBLOB Celestron GPS   Also
2014-03-06T06:52:44: Driver indi_celestron_gps: queuing responsible for <enableBLOB device='Celestron GPS' name=''>
2014-03-06T06:52:44: Driver indi_celestron_gps: sending msg copy 1 nq 1:
<enableBLOB device="Celestron GPS">
Also
</enableBLOB>
 

Then specify the USB device for my USB->RS232 converter:
2014-03-06T06:53:27: Client 0: read newTextVector Celestron GPS DEVICE_PORT 
       PORT='/dev/ttyUSB0'
2014-03-06T06:53:27: Driver indi_celestron_gps: queuing responsible for <newTextVector device='Celestron GPS' name='DEVICE_PORT'>
2014-03-06T06:53:27: Driver indi_celestron_gps: sending msg copy 1 nq 1:
<newTextVector device="Celestron GPS" name="DEVICE_PORT">
    <oneText name="PORT">
/dev/ttyUSB0
    </oneText>
</newTextVector>
 
2014-03-06T06:53:27: Driver indi_celestron_gps: read setTextVector Celestron GPS DEVICE_PORT Ok
       PORT='/dev/ttyUSB0'
2014-03-06T06:53:27: Client 0: queuing <setTextVector device='Celestron GPS' name='DEVICE_PORT'>
2014-03-06T06:53:27: Client 0: sending msg copy 1 nq 1:
<setTextVector device="Celestron GPS" name="DEVICE_PORT" state="Ok" timeout="60" timestamp="2014-03-06T06:53:27">
    <oneText name="PORT">
/dev/ttyUSB0
    </oneText>
</setTextVector>

Now, using the kstars interface, attempt to connect:
2014-03-06T06:54:12: Client 0: read newTextVector Celestron GPS DEVICE_PORT 
       PORT='/dev/ttyUSB0'
2014-03-06T06:54:12: Driver indi_celestron_gps: queuing responsible for <newTextVector device='Celestron GPS' name='DEVICE_PORT'>
2014-03-06T06:54:12: Client 0: read newSwitchVector Celestron GPS CONNECTION 
    CONNECT='On'
2014-03-06T06:54:12: Driver indi_celestron_gps: queuing responsible for <newSwitchVector device='Celestron GPS' name='CONNECTION'>
2014-03-06T06:54:12: Driver indi_celestron_gps: sending msg copy 1 nq 2:
<newTextVector device="Celestron GPS" name="DEVICE_PORT">
    <oneText name="PORT">
/dev/ttyUSB0
    </oneText>
</newTextVector>
 
2014-03-06T06:54:12: Driver indi_celestron_gps: sending msg copy 1 nq 1:
<newSwitchVector device="Celestron GPS" name="CONNECTION">
    <oneSwitch name="CONNECT">
On
    </oneSwitch>
</newSwitchVector>
 
2014-03-06T06:54:12: Driver indi_celestron_gps: Connecting to port: /dev/ttyUSB0
2014-03-06T06:54:12: Driver indi_celestron_gps: read setTextVector Celestron GPS DEVICE_PORT Ok
       PORT='/dev/ttyUSB0'
2014-03-06T06:54:12: Client 0: queuing <setTextVector device='Celestron GPS' name='DEVICE_PORT'>
2014-03-06T06:54:12: Client 0: sending msg copy 1 nq 1:
<setTextVector device="Celestron GPS" name="DEVICE_PORT" state="Ok" timeout="60" timestamp="2014-03-06T06:54:12">
    <oneText name="PORT">
/dev/ttyUSB0
    </oneText>
</setTextVector>

...and that's it, it never actually comes into a "connected" state.

Anyone know what I'm doing wrong? I had this working at one point, so I'm not sure what I've gotten out of configuration. Is there a straightforward way to snoop the serial traffic between indiserver and the telescope to see if it's trying to talk, or what?

Thanks!
10 years 3 weeks ago #724

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

Do you get any kind of error back? I'm actually going to test the driver with a Celestron mount today due to the number of folks who reported issues with the driver.
10 years 3 weeks ago #725

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

  • Posts: 171
  • Thank you received: 41
I use a Celestron CGE Pro mount, Connection: Computer -> USB to RS232 adapter -> RS232 cable -> handbox. Works nice with indi_celestron_gps, I just used it last night. I use Kubuntu 13.10 with latest drivers from the PPA.
10 years 3 weeks ago #726

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

  • Posts: 4
  • Thank you received: 0

Replied by M on topic INDI not talking to celestron

I didn't see any kind of error.

I powered the scope and my computer off, and tried it again after a fresh bootup of both, and everything worked! I started/stopped a few times and it was fine.

Suspicious, i tried my little serial port test again, where i manually sent some echos to the telescope. I quit and launched indiserver again, and had the issue. I realized that when I exited minicom, i did the 'exit and reset', which blasts some characters at the serial port on the way out. I wonder if indiserver is getting confused, because the telescope's serial port response thinks its in the middle of some other command, and doesn't respond properly? Does the celestron driver do anything to establish good comm (e.g. send echos until it hears back) before it expects responses?
10 years 3 weeks ago #727

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

Yes, the driver flushes the IO buffer then sends an echo command upon connection (though only once).
10 years 3 weeks ago #729

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

Time to create page: 0.689 seconds