INDI
What is INDI
INDI (Instrument Neutral Distributed Interface) is a protocol for controlling astronomical instrumentation. It provides a distributed, device-independent control protocol for astronomical equipment that operates over TCP/IP networks. INDI is the underlying technology that powers many observatory control applications, including KStars/Ekos.
Why Use INDI with CitraSense
Direct INDI integration provides the most flexible and powerful hardware control option:
- Linux Native - Designed specifically for Linux observatory automation
- Device Independent - Standardized protocol works with hundreds of devices
- Distributed Architecture - Control equipment over network from anywhere
- Multiple Clients - Multiple applications can control same hardware simultaneously
- Lightweight - Minimal overhead compared to full GUI applications
- Extensible - Easy to add new drivers for custom or uncommon hardware
- Active Development - Regular updates and broad community support
- Professional Grade - Used in research observatories worldwide
Prerequisites
Before integrating INDI with CitraSense, ensure you have:
- Linux operating system (Ubuntu, Debian, Fedora, or similar)
- INDI Library 2.0.0 or later installed
- INDI drivers for your specific hardware
- Your telescope hardware connected and accessible
- Network connectivity if running INDI server remotely
- Root or sudo access for initial setup and driver installation
Installation
Install INDI Library and Drivers
INDI is for advanced users and as such, we assume you come bearing an INDI environment.
Install CitraSense with INDI Support
CitraSense requires the optional INDI dependencies:
uv tool install citrasense --with citrasense[indi]
Or with pip: pip install citrasense[indi]
This installs the pyindi-client library needed for INDI communication.
Configuration
In CitraSense Web Interface
- Navigate to Hardware Configuration
- Open CitraSense web interface (default:
http://localhost:24872) - Go to Hardware Settings
- Open CitraSense web interface (default:
- Select INDI Adapter
- Choose INDI from the hardware adapter dropdown
The following settings are available:
Setting Default Required/Optional Description INDI Server Host localhostRequired INDI server hostname or IP address INDI Server Port 7624(1-65535)Required INDI server port Telescope Device Name (auto-detect) Optional Name of the telescope device. Leave empty to auto-detect the first available telescope. Camera Device Name (auto-detect) Optional Name of the camera device. Leave empty to auto-detect the first available camera. - Configure Device Mapping
- Specify the INDI device names for your equipment:
- Telescope/Mount device name
- Camera device name
- Specify the INDI device names for your equipment:
- Save Configuration
- Save settings and check if connections turn green
Supported Features
The INDI adapter provides basic mount and camera control:
- ✅ Mount Control - Slew to coordinates, position readout, tracking, custom tracking rates
- ✅ Camera Control - Exposure control and image capture (FITS)
The INDI adapter is best suited for simple mount + camera setups. If you need filter wheel control, focuser support, or autofocus, consider the KStars adapter (which uses INDI under the hood but adds Ekos features) or the Direct Hardware adapter.
Limitations
Known Limitations
- Linux Only - INDI libraries only work on Linux systems (use KStars adapter for macOS/Windows)
- No Filter Wheel - Filter wheel control is not implemented in this adapter
- No Focuser - Focuser control is not available
- No Autofocus - Autofocus is not supported
- Basic Camera Control - Only exposure duration is configurable. Gain, offset, and binning are not adjustable through this adapter (fixed at 1x1 binning, light frames).
- Driver Availability - Not all hardware has INDI drivers; check INDI driver list
Platform Considerations
- Requires
pyindi-clientwhich only compiles on Linux - For development on macOS/Windows, use the provided Dev Container
Troubleshooting
Connection Issues
Problem: CitraSense cannot connect to INDI server
Solutions:
- Verify INDI server is running:
ps aux | grep indiserver - Check server is listening:
netstat -tlnp | grep 7624 - Ensure INDI Server Host and INDI Server Port are correct in CitraSense settings
- Test with indi_getprop:
indi_getprop -h localhost -p 7624 - Check firewall allows connections on INDI port
- Review INDI server logs for errors
Device Connection Problems
Problem: INDI devices won’t connect
Solutions:
- Check device is powered on and connected via USB/serial
- Verify user is in
dialoutgroup:groups $USER - Check device permissions:
ls -l /dev/ttyUSB* - Review USB device detection:
dmesg | tail - Try different USB ports or cables
- Restart INDI server with correct driver
- Check driver compatibility with your hardware version
Device Name Problems
Problem: CitraSense can’t find specified devices
Solutions:
- List available devices:
indi_getprop | grep DEVICE - Verify exact device names (case-sensitive)
- Update Telescope Device Name and Camera Device Name in CitraSense settings
- Leave device names empty to use auto-detection
- Ensure devices are connected in INDI before CitraSense connects
- Check for typos in device name configuration
Image Capture Problems
Problem: Images aren’t captured or are corrupted
Solutions:
- Verify camera is connected and cooled
- Check available disk space on INDI server
- Test manual capture with indi_eval or KStars
- Review camera driver logs
- Ensure proper USB power supply
- Check camera-specific settings (gain, offset, format)
- Verify FITS file integrity