Telescope Control (client-server)

From Stellarium Wiki
Revision as of 21:48, 8 August 2006 by Johannes (Talk | contribs)
Jump to: navigation, search

Warning: when you abuse stellariums telescope control feature for pointing your telescope to the sun without a proper solar filter, then this is your own fault. Stellarium cannot check if you have your solar filter properly installed or not. So when you ruin your telescope, your eyes, your childrens eyes or whatever, then this is not our fault, but yours.


Contents

Introduction

In this page I describe the telescope control feature that is present in stellarium since version 0.8.1.

Overview

Although stellarium is currently (since 0.8.1) able to control any telescope using a suiting external telescope server, up to now there exist only the following telescope server programs:

TelescopeServerDummy: can be used for testing and as a starting point for developing new telescope servers, no telescope is required

TelescopeServerDummy.exe: same for MS Windows

TelescopeServerLx200: used for controlling Meade LX200 or AutoStar telescopes

TelescopeServerLx200.exe: same for MS Windows

Architecture

Actual communication with the telescope is not done by stellarium itself, but by an external program which is called telescope server. Stellarium and the telescope server communicate with each other over TCP/IP. For the TCP communication there is an LGPL library which should make the development of telescope servers easy. This architecture has the following advantages:

1) The stellarium source code does not get bloated by incorporation of dozens of telescope control mechanisms and protocols. Instead the stellarium sourcecode stays maintainable.

2) TCP is available on any platform, so for stellarium there are little or no portability problems.

3) Any developer can easily provide an own telescope server for his own telescope, eigther by using the stellarium telescope library (recommended) or without it. No knowledge about the stellarium programs source code is required.

4) There are no license problems: An external telescope server can, but does not need to be GPL. When building your own telescope server you can link with any library you want: ASCOM, Indy, any proprietary library, whatever.

Building

The telescope server programs described above are available from anonymous cvs:

cvs -d:pserver:anonymous@stellarium.cvs.sourceforge.net:/cvsroot/stellarium login
cvs -z3 -d:pserver:anonymous@stellarium.cvs.sourceforge.net:/cvsroot/stellarium co -P telescope_server

There is a README file. Just change into the src directory and type 'make' (no autoconf/automake). In order to cross-compile for MS Windows export the environment variable CROSS_GPP and type 'make exe'. I have never tried native MS Windows compilation, but I suppose that any compiler will do. Same for other operating systems. If you have problems, write to the forum. Or write an email to me, I can also provide binaries.

Alternatively: downloading precompiled MS Windows binaries

I have noticed that MS Windows users often prefer downloading precompiled binaries instead of building by themselves. Therefore I provide Windows binaries:

TelescopeServerLx200.exe.gz
TelescopeServerDummy.exe.gz

I also provide a cross-compiled stellarium.exe which can be considered as a development snapshot:

stellarium.exe.gz

This is no windows installer archive, just a plain executable that is supposed to replace the official executable in the official package. I have heard that the official 0.8.1 windows binary has problems with the telescope control feature, so please use this binary instead.

Usage

Start stellarium, the telescope server(s) and your telescope(s). The order of starting does not matter. You can also stop and restart stellarium, the telescope server(s) or your telescope(s) at any time.

As soon as the telescope server has sent the telescopes position to stellarium, you will see a crosshair marker indicating the telescopes position, labeled with your telescopes name (config.ini). Note that the crosshair marker might be outside your current field of view. Zoom out and search for the marker, or alternatively use stellariums search feature. When you see the marker, you know that stellarium has successfully connected to the telescope server.

Run the server

Navigate to the directory containing the file, and start the telescope server with a command line like

TelescopeServerDummy 10000 or
TelescopeServerDummy.exe 10000 or
TelescopeServerLx200 10000 /dev/ttyS0 or
TelescopeServerLx200.exe 10000 COM1:

depending on your telescope and serial port. In this example I assume you use TCP port 10000, but you can use any free port you want. The telescope servers are capable of serving a huge number of Stellarium programs, so you can share the control of your telescope with other stellarium programs.

In your config.ini write

[astro] 
flag_telescopes = true 
flag_telescope_name = true 
...
[telescopes] 
1 = My_first_telescope:TCP:localhost:10000:500000
2 = My_second_telescope:TCP:localhost:10001:500000

Here I have assumed that you have started two different telescope servers on your machine for controlling two different telescopes. When you have just 1 GOTO telescope like me, leave out the last line. If you run the telescope server on a different machine, you must replace 'localhost' with the name of this machine. The value 500000 indicates, that Stellarium will not show the telescopes current position - which is unknown anyway - but instead an interpolated position of 500000 microseconds (=0.5 seconds) ago. 'My_first_telescope' is the name that will be shown in stellarium next to the telescope marker. '1' is the keyboard shortcut: <Ctlr><1> will make the telescope point to the currently selected object (GOTO). Currently up to 10 telescopes can be controlled using keys 0,1,...,9.

Gathering debug information

For debugging in most cases I will need the log of the telescope server. You can produce the logfile eigther by redirecting stdout into a file or by supplying the logfiles name as an additional command line parameter upon startup of the telescope server:

TelescopeServerDummy 10000 name-of-logfile.txt
TelescopeServerDummy.exe 10000 name-of-logfile.txt
TelescopeServerLx200 10000 /dev/ttyS0 name-of-logfile.txt
TelescopeServerLx200.exe 10000 COM1: name-of-logfile.txt

Other information useful for me is stellariums stdout and config.ini. The windows version stellarium.exe already redirects stdout into a file named stdout.txt.

Useful Stellarium features

in your config.ini write

[astro] 
flag_light_travel_time = true
...
[gui]
flag_show_flip_buttons = true

Accounting for light travel time is a must when you observe planetary satellites. You will also want to flip the stellarium image horizontally and/or vertically in order to match what you see in your eyepiece. You can do this with the flip buttons and/or the following keyboard shortcuts:

<Ctrl><Shift><h>: toggle horizontal image flip
<Ctrl><Shift><v>: toggle vertical image flip

When you have problems or when you are satisfied, write to the forum.

Yours, --Johannes 14:48, 18 June 2006 (PDT)

Telescope Compatibility List

Personal tools
Namespaces
Variants
Actions
in this wiki
other languages
Toolbox