Telescope Control (client-server)
|Line 1:||Line 1:|
'''Warning: when you abuse
'''Warning: when you abuse 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
Revision as of 10:18, 20 October 2008
Warning: when you abuse Stellarium's 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.
Note: version 0.10.0 of Stellarium does not include the key bindings for telescope control. The telescope control feature is being re-worked and will be re-introduced in a future release. If you want to use telescope control, you should use version 0.9.1 for now.
In this page I describe the telescope control feature that is present in stellarium since version 0.8.1.
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:
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: ASCOM Support
Programs that cannot be supported by us, because we have not the source code:
- StellariumScope.exe (http://www.ByteArts.com/stellarium): is a program for MS Windows allowing stellarium to control a variety of telescope 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). Formerly known as "StellariumServer".
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.
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 svn.
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 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. 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 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:
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
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)