When operating a remote observatory, complete control of the devices rest with the remote INDI servers and drivers. In case of a communication loss, the observatory should be capable of performing a graceful shutdown until communication is established again by the client.

Since the actual shutdown procedure can be unique to each observatory, the user should be able to configure the exact required shutdown procedure. But for most users, the usual shutdown procedure involves parking the dome (if one exists) followed by parking the mount. Using INDI WatchDog driver, the user can secure their remote observatory by setting a heart beat timeout threshold. A heart beat is a signal from the client to the watchdog driver to inform it that communication is OK. The user can configure the heart beat timeout in minutes in the WatchDog driver. If the driver does not receive the signal after the heart beat timeout threshold, it initiates the shutdown procedure. To disable the heart beat check, set it to zero.

The shutdown procedure is currently composed of the following steps in order:

  1. Park Dome: The dome driver specified under Options tab will be commanded to park. After parking is successful, the driver proceeds to the next step, otherwise it aborts the shutdown procedure.
  2. Park Mount: The mount driver specified under Options tab will be commanded to park.
  3. Execute Script: Execute a custom shutdown script as specified in the settings property. The script must be executable and exits successfully for this operation to be considered successful.
To park the dome and mount, the driver needs to act as a client as well in order to issue such commands. You need to specify the indiserver host and port where the dome and mount drivers are running. This is usually localhost at port 7624 which is the default value. The shutdown script can be used to perform any additional shutdown functions (e.g. turn off power, send email...etc). You can use Python INDI Client library to command devices, or INDI's built in scripting tools. All values can be saved in the config file by going to Options and clicking Save under the Configuration property. On subsequent runs, all values shall be loaded automatically on start up.

 Tip: When starting INDI server on a remote PC/Raspberry PI via SSH, make sure to run indiserver in the background so that if you get disconnected, the indiserver is not terminated. This is accomplished easily by adding & after the command. For example: indiserver -v indi_watchdog indi_eqmod_telescope indi_qhy_ccd &

 Getting Started

As more Single-Board-Computers such as the Raspberry PI, ODroid, Beaglebone..etc become more powerful with every release, they become closer to replacing the traditional desktop PC for trivial non-graphic intensive tasks. One of the nuisances of astrophotography is the necessity to be in close proximity to your equipment during the typical astrophotography workflow. Your telescope, CCD, focuser..etc are usually connected to a desktop or laptop running your favorite astrophotography software. In addition to freezing temperatures you might encountered in your neck of the wood in winter, it is often far more convenient to operate everything remotely from the comfort of your living room, and it's even better if it's done wirelessly.

Nowadays, the hardware and software technology stacks make this possible thanks to INDI/Ekos and cheap Single board Computers. INDI is the software that talks to your devices and controls them. INDI is a server and does not require a Graphical-User-Interface (GUI) nor a powerful PC, and hence INDI can run on devices such as the Raspberry PI. Ekos is the graphical client used to control the devices exposed by INDI. It offers powerful capabilities to capture, focus, guide, and plate-solve your images. Ekos requires a modern Linux distribution with KDE. Any desktop or laptop that can run Ubuntu/Kubuntu can run Ekos without any issues.

DBUS is a very powerful and versatile inter-process communication system used in Linux and other OSes. DBUS replaced DCOP in KDE4 and has since became the standard for IPC messages in KDE. With KStars (>v.2.3.0), it exposes a new INDI DBUS interface in addition to the existing KStars's DBUS interface giving you a fine control over most of KStars functionality.

In this tutorial, we will learn how to perform basic control of a telescope and CCD using DBUS and Python. We will utilize an external FITS viewer fv, you can install it in Ubuntu:


There’s always point where you have to decide in any expensive undertaking, such as amateur astronomy, where it’s best to apply your hard earned currency. For any given piece of equipment, you have to determine what feature set is required, decide what commercial products, if any, suit your needs and finally, what your best purchase option may be. For me, there’s always been a desire to see if I can build a more cost effective solution first, before I proceed to purchase.

With that in mind, it’s been my goal for some time, to complete my automated and remote solution for my personal astronomical observatory. Not having found a cost effective remote focusing solution on the market, I decided to see about low cost DIY alternatives. During my search and evaluation I turned to the INDI platform for ideas.

The Raspberry PI (RPi) is an ARM-based credit-card-sized single board computer. It costs around $35 (PI 2) and therefore it is a very attractive choice for amateur astronomers to control their equipment either locally or remotely. It can be used over Ethernet or WiFi to control your equipment remotely. 

Due to power limitations of the RPi, it is recommended to connect all devices to a powered USB hub. INDI Library v1.1.0 packages in addition to 3rd party drivers are available for the RPi (Raspbian Jessie, Wheezy packages are no longer offered). Furthermore, if you install Ubuntu Mate for Raspberry PI 2, you can get all the bleeding edge INDI and KStars directly from the Ubuntu INDI PPA, no need to download and install packages manually!

You typically would run an INDI server on the RPi and connect to it remotely from Ekos. While it is technically possible to build Ekos in RPi, it would not run smoothly; therefore it is recommended to run INDI server on the RPi and Ekos on a more powerful machine.

With EQMod & Ekos, you can finally put the alignment woes to rest. No more two or three star alignment, no more trying to recenter that star in the eye piece, all you have to do is to point your mount north, and Ekos does that rest. After the first sync, you can expect your desired object to be dead center. You don't have to build any complicated models, every time you slew to a target, you can use Ekos Alignment Module to verify the location and slew to the real coordinates if necessary. This is all made possible thanks to the astrometry.net solver.

So What do you need in order to achieve sub-arcseconds GOTOs?

  • Recent version of KStars.
  • INDI Library v0.9.7 or higher.
  • Astrometry.net v0.45 or higher (for offline plate solving). Ekos supports both online and offline solvers.
  • Mount that supports EQMod.
  • CCD.

INDI library v0.9.7 or above supports joystick integration under Linux. To control your telescope under INDI, you need the following:

  • Wired or wireless controller supported by Linux.
  • Telescope driver that supports joystick integration.

To date, all LX200 based (LX200 GPS, Autostar..etc), Celestron, and EQMOd drivers support joystick integration.

So, how do you control your telescope? In this tutorial, I will be connecting my ThurstMaster Wireless Joystick to an LX200 GPS telescope.

Follow the steps below:

Start KStars

Go to Device Manager under the Tools Menu --> Devices.

Select your telescope driver from the Telescope devices tree.

Select the joystick driver from Auxiliary devices tree.


Subscribe to INDI


3rd Party

Choose from the numerous 3rd party INDI drivers to suit your needs!

Got Problem?

Check out the FAQ, the forum, and the bug tracking system to resolve any issues you might have!
You can also subscribe to INDI newsletter and development mailing lists to get the latest updates on INDI!