Telescope Control (client-server)
|⚠||WARNING: Stellarium CANNOT prevent your telescope from being pointed at the Sun.||☀|
If you abuse this feature to point your telescope to the sun and ruin your telescope, your eyes, your children's eyes or whatever, then this is not our fault, but yours.
Note: version 0.10.0 of Stellarium does not include the key bindings for telescope control. The telescope control feature was being re-worked and was re-introduced in 0.10.1. If you want to use telescope control, but can't run versions 0.10.1 and later, you can use version 0.9.1.
In this page I describe the telescope control feature that is present in Stellarium since version 0.8.1.
Although Stellarium is currently (since version 0.8.1) able to control any telescope using a suitable external telescope server program, up to now there exist only the following telescope servers:
Open Source telescope servers
These programs are supported by us:
- 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, G11 or compatible
- TelescopeServerLx200.exe: same for MS Windows
- TelescopeServerNexStar: used for controlling Celestron NexStar telescopes, contributed by Michael Heinz
- TelescopeServerNexStar.exe: same for MS Windows
Closed Source telescope servers
Programs that cannot be supported by us, because we have not the source code:
- StellariumScope is a program for MS Windows allowing Stellarium to control a variety of telescopes using the ASCOM drivers (http://ascom-standards.org). Extends capabilities to include both "Slew" and "Sync" functions, and automated installation and setup (no need to edit configuration files). Initially developed by ByteArts (http://www.ByteArts.com/stellarium). Formerly known as "StellariumServer".
- StellLXTSRB is a telescope server for Mac OS X, developed by Tony Barry. It has been used successfully with a Meade ETX-80 and an LX-90. According to its author, it will possibly work with any LX-emulating telescope.
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:
- The Stellarium source code does not get bloated by incorporation of dozens of telescope control mechanisms and protocols. Instead the Stellarium source code stays maintainable.
- TCP is available on any platform, so for Stellarium there are little or no portability problems.
- Any developer can easily provide an own telescope server for his own telescope, either by using the Stellarium telescope library (recommended) or without it. No knowledge about Stellarium's source code is required.
- 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, INDI, any proprietary library, whatever.
The telescope server programs described above are available from anonymous svn:
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.
Michael Heinz has provided an XCode project file for Mac, which is included in the SVN repository.
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:
Some people have problems with their browsers: the browser silently unpacks the gziped file. If you suffer from such a problem, just rename the downloaded file to TelescopeServerLx200.exe (or similar).
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 Stellarium's 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.
Note that because of some oddities in the way Windows handles COM ports higher than 9, if you are using COM port 10 or higher, you should specify the the name of the COM port on the command line with '\\.\COMxx:' where COMxx is the name of the COM port you are using. For example, if you are using Celestron NexStar on COM10 and TCP port 10000, you should start the server in the following way:
TelescopeServerNexStar.exe 10000 \\.\COM10:
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. If you have a slow telescope controller - like the Meade AutoStar 494 that comes with ETX 70 - you should increase this value to 1200000 or higher, in order to get smooth movement of the telescope marker. '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 log file either by redirecting stdout into a file, or by supplying the log file's name as an additional command line parameter upon startup of the telescope server:
TelescopeServerLx200 10000 /dev/ttyS0 name-of-logfile.txt TelescopeServerLx200.exe 10000 COM1: name-of-logfile.txt
Other information useful for me is Stellarium's stdout and config.ini. The Windows version stellarium.exe already redirects stdout into a file named stdout.txt. (Note: As of version 0.10.1 Stellarium creates a log file in the user data directory - log.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
Since version 0.9.1: For displaying concentric circles around the telescope marker indicating the FOV of your oculars write for example:
[telescopes] 1_ocular_0 = 0.5 1_ocular_1 = 0.1 ...
This will define 2 oculars with FOV=0.5 and 0.1 degrees for telescope 1. You can specify up to 10 oculars for each telescope.
When you have problems or when you are satisfied, write to the forum.
Yours, --Johannes 14:48, 18 June 2006 (PDT)