Telescope Control (client-server)

(Difference between revisions)
Jump to: navigation, search
m (Telescope Control moved to Telescope Control (client-server): archiving the old page, the information is obsolete)

Revision as of 16:06, 16 March 2010

WARNING: Stellarium CANNOT prevent your telescope from being pointed at the Sun.
  • Never point your telescope at the Sun without a proper solar filter installed. The powerful light amplified by the telescope WILL cause irreversible damage to your eyes and/or your equipment.
  • Even if you don't do it deliberately, a slew during daylight hours may cause your telescope to point at the sun on its way to the given destination, so it is strongly recommended to avoid using the telescope control feature before sunset without appropriate protection.

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.

From version 0.10.3 Telescope control plugins became an integral component of Stellarium and from 0.10.4 Stellarium should work on most platforms where control has been refined to be as simple as possible.



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. From version 0.10.3 the existing Stellarium telescope control programs are included in the plugin heading of the configuration menu. Instructions for acitvation are included in the help file

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
  • Argo Navis which is a setting circle kit for Dobsonian telescopes. It requires manually moving the telescope to the selected object.
  • Wrappers for the Remote Telescope System protocol, contributed by Petr Kubanek. These don't work in the same way as the rest, so for instructions, refer to their README file.
    • TelescopeServerRTS2: can be used to control through XML-RPC any telescopes supported by the RTS2 project
    • TelescopeServerRTS2.exe: same for MS Windows

Closed Source telescope servers

Programs that cannot be supported by us, because we do not have the source code:

  • StellariumScope is a program for MS Windows allowing Stellarium to control a variety of telescopes using the ASCOM drivers. Extends capabilities to include both "Slew" and "Sync" functions, and automated installation and setup (no need to edit configuration files). Initially developed by ByteArts. Formerly known as "StellariumServer".
  • HEQ5/EQ6 is a method of adapting StellariumScope to version 0.10.4 of Stellarium to the HEQ5/EQ6 type Equatorial mount Written by Karl Van Louwersen
  • 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:

  1. 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.
  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, either by using the Stellarium telescope library (recommended) or without it. No knowledge about Stellarium's 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, INDI, any proprietary library, whatever.


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

svn co

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

See the Download page for links to pre-built windows binaries.


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

flag_telescopes = true 
flag_telescope_name = true 
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

flag_light_travel_time = true
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:

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)

Telescope Compatibility List

Personal tools
in this wiki
other languages