Contents[Hide]

1. Introduction

INDI does not place any special semantics on property names (i.e. properties are just texts, numbers, or switches that represent no physical function). While GUI clients can construct graphical representation of properties in order to permit the user to operate the device, we run into situations where clients and drivers need to agree on the exact meaning of some fundamental properties.

What if some client need to be aware of the existence of some property in order to perform some function useful to the user? How can that client tie itself to such a property if the property can be arbitrary defined by drivers?

The solution is to define Standard Properties in order to establish a level of interoperability among INDI drivers and clients. We propose a set of shared INDI properties that encapsulate the most common characteristics of astronomical instrumentation of interest.

If the semantics of such properties are properly defined, not only it will insure base interoperability, but complete device automation becomes possible as well. Put another way, INDI standard properties are in essence properties that represent a clearly defined characteristic related to the operation of the device drivers.

For example, a very common standard property is EQUATORIAL_EOD_COORD. This property represents the telescope's current RA and DEC. Clients need to be aware of this property in order to, for example, draw the telescope's cross hair on the sky map. If you write a script to control a telescope, you know that any telescope supporting EQUATORIAL_EOD_COORD will behave in an expected manner when the property is invoked.

INDI clients are required to honor standard properties if when and they implement any functions associated with a particular standard property. Furthermore, INDI drivers employing standard properties should strictly adhere to the standard properties structure as defined next.

2. General

The following tables describe standard properties pertaining to generic devices and class-specific devices like telescope, CCDs...etc. The name of a standard property and its members must be strictly reserved in all drivers. However, it is permissible to change the label element of properties. You can find numerous uses of the standard properties in the INDI library driver repository.

NameTypeMemberDescription
CONNECTION Switch    
CONNECT Establish connection to device
DISCONNECT Disconnect device
DEVICE_PORT Text PORT Device connection port
TIME_LST Number LST Local sidereal time HH:MM:SS
TIME_UTC Text    
  UTC Time & Offset
UTC UTC time in ISO 8601 format
OFFSET UTC offset, in hours +E
GEOGRAPHIC_COORD Number    
  Earth geodetic coordinate
LAT Site latitude (-90 to +90), degrees +N
LONG Site longitude (0 to 360), degrees +E
ELEV Site elevation, meters
ATMOSPHERE Number    
  Weather conditions
TEMPERATURE Kelvin
PRESSURE hPa
HUMIDITY Percentage %
UPLOAD_MODE Switch    
UPLOAD_CLIENT Send BLOB to client
UPLOAD_LOCAL Save BLOB locally
UPLOAD_BOTH Send blob to client and save it locally as well
UPLOAD_SETTINGS Text    
UPLOAD_DIR Upload directory if the BLOB is saved locally
UPLOAD_PREFIX Prefix used when saving filename
ACTIVE_DEVICES Text    
  Name of active devices. If defined, at least one member below must be defined in the vector.
ACTIVE_TELESCOPE  
ACTIVE_CCD  
ACTIVE_FILTER  
ACTIVE_FOCUSER  
ACTIVE_DOME  
ACTIVE_GPS  

ACTIVE_DEVICES is used to aid clients in automatically providing the users with a list of active devices (i.e. CONNECTION is ON) whenever needed. For example, a CCD driver may define ACTIVE_DEVICES property with one member: ACTIVE_TELESCOPE. Suppose that the client is also running LX200 Basic driver to control the telescope. If the telescope is connected, the client may automatically fill the ACTIVE_TELESCOPE field or provide a drop-down list of active telescopes to select from. Once set, the CCD driver may record, for example, the telescope name, RA, DEC, among other metadata once it captures an image. Therefore, ACTIVE_DEVICES is primarily used to link together different classes of devices to exchange warnrmation if required.

3. Telescopes

Telescope standard properties define critical properties for the operation and control of the mount. In addition to the properties below, all properties in INDI Alignment Subsystem are considered standard properties as well and must be reserved in all implementations.

NameTypeMemberDescription
EQUATORIAL_COORD Number   Equatorial astrometric J2000 coordinate
RA J2000 RA, hours
DEC J2000 Dec, degrees +N
EQUATORIAL_EOD_COORD Number   Equatorial astrometric epoch of date coordinate
RA JNow RA, hours
DEC JNow Dec, degrees +N
TARGET_EOD_COORD Number   Slew Target. Read Only property set once requested EQUATORIAL_EOD_COORD is accepted by driver.
RA JNow RA, hours
DEC JNow Dec, degrees +N
HORIZONTAL_COORD Number   topocentric coordinate
ALT Altitude, degrees above horizon
AZ Azimuth, degrees E of N
ON_COORD_SET Switch   Action device takes when sent any *_COORD property. N.B: Setting this property does not cause any action but it prepares the mount driver for the next action when any *_COORD number property is received. For example, to sync the mount, first set switch to SYNC and then send the EQUATORIAL_EOD_COORD with the desired sync coordinates.
SLEW Slew to a coordinate and stop upon receiving coordinates.
TRACK Slew to a coordinate and track upon receiving coordinates.
SYNC Accept current coordinate as correct upon receiving coordinates.
TELESCOPE_MOTION_NS Switch   Move telescope north or south
MOTION_NORTH Move the telescope toward North.
MOTION_SOUTH Move the telescope toward South.
TELESCOPE_MOTION_WE Switch   Move telescope west or east
MOTION_WEST Move the telescope toward West.
MOTION_EAST Move the telescope toward East.
TELESCOPE_TIMED_GUIDE_NS Number   Timed pulse guide in north/south direction
TIMED_GUIDE_N Guide the scope north for TIMED_GUIDE_N milliseconds.
TIMED_GUIDE_S Guide the scope south for TIMED_GUIDE_S milliseconds.
TELESCOPE_TIMED_GUIDE_WE Number   Timed pulse guide in west/east direction
TIMED_GUIDE_W Guide the scope west for TIMED_GUIDE_W milliseconds.
TIMED_GUIDE_E Guide the scope east for TIMED_GUIDE_E milliseconds.
TELESCOPE_SLEW_RATE Switch   Multiple switch slew rate. The driver can define as many switches as desirable, but at minimum should implement the four switches below.
SLEW_GUIDE 0.5x to 1.0x sidereal rate or slowest possible speed.
SLEW_CENTERING Slow speed.
SLEW_FIND Medium speed.
SLEW_MAX Maximum speed.
TELESCOPE_PARK Switch   Park and unpark the telescope.
PARK Park the telescope to HOME position.
UNPARK Unpark the telescope
TELESCOPE_PARK_POSITION Number   Home park position (RA/DEC or AZ/ALT) in degrees or encoder ticks.
PARK_RA/PARK_AZ RA/AZ park coordinates in degrees or ticks.
PARK_DEC/PARK_ALT DEC/ALT park coordinates in degrees or ticks.
TELESCOPE_PARK_OPTION Switch   Updates TELESCOPE_PARK_POSITION values
PARK_CURRENT Use current coordinates/encoders as home park position.
PARK_DEFAULT Use driver's default park position.
PARK_WRITE_DATA Write TELESCOPE_PARK_POSITION and current parking status to file ($HOME/.indi/ParkData.xml)
TELESCOPE_ABORT_MOTION Switch ABORT_MOTION Stop telescope rapidly, but gracefully
TELESCOPE_TRACK_RATE Switch    
TRACK_SIDEREAL Track at sidereal rate.
TRACK_SOLAR Track at solar rate.
TRACK_LUNAR Track at lunar rate.
TRACK_CUSTOM Custom track rate. This element is optional
TELESCOPE_INFO Number    
TELESCOPE_APERTURE Telescope aperture, mm
TELESCOPE_FOCAL_LENGTH Telescope focal length, mm
GUIDER_APERTURE Guide telescope aperture, mm
GUIDER_FOCAL_LENGTH Guider telescope focal length, mm
TELESCOPE_PIER_SIDE Switch   GEM Pier Side
PIER_EAST Mount on the East side of pier (Pointing West).
PIER_WEST Mount on the West side of pier (Pointing East).

For clients that want to implement the GOTO functionality of a telescope, they should expect telescope drivers to define either:

  • EQUATORIAL_EOD_COORD  for current Epoch; and/or
  • HORIZONTAL_COORD.

4. CCDs

NameTypeMemberDescription
CCD_EXPOSURE Number CCD_EXPOSURE_VALUE Expose the CCD chip for CCD_EXPOSURE_VALUE seconds
CCD_ABORT_EXPOSURE Number ABORT Abort CCD exposure
CCD_FRAME Number   CCD frame size.
X Left-most pixel position
Y Top-most pixel position
WIDTH Frame width in pixels
HEIGHT Frame height in pixels
CCD_TEMPERATURE Number CCD_TEMPERATURE_VALUE CCD chip temperature in degrees Celsius
CCD_COOLER Switch   CCD Cooler control.
COOLER_ON Turn cooler on
COOLER_OFF Turn cooler off
CCD_COOLER_POWER Number CCD_COOLER_VALUE Percentage % of Cooler Power utilized
CCD_FRAME_TYPE Switch    
FRAME_LIGHT Take a light frame exposure
FRAME_BIAS Take a bias frame exposure
FRAME_DARK Take a dark frame exposure
FRAME_FLAT Take a flat field frame exposure
CCD_BINNING Number    
HOR_BIN Horizontal binning
VER_BIN Vertical binning
CCD_COMPRESSION Switch    
CCD_COMPRESS Compress CCD frame (If FITS, it uses fpack to send a .fz file)
CCD_RAW Send raw CCD frame
CCD_FRAME_RESET Switch    
RESET Reset CCD frame to default X,Y,W, and H settings. Set binning to 1x1.
CCD_INFO Number    
CCD_MAX_X Resolution x
CCD_MAX_Y Resolution y
CCD_PIXEL_SIZE CCD pixel size in microns
CCD_PIXEL_SIZE_X Pixel size X, microns
CCD_PIXEL_SIZE_Y Pixel size Y, microns
CCD_BITSPERPIXEL Bits per pixel
CCD_CFA TEXT   Color Filter Array warnrmation if the CCD produces a bayered image. Debayering performed at client side.
CFA_OFFSET_X CFA X Offset.
CFA_OFFSET_X CFA Y Offset.
CFA_TYPE CFA Filter type (e.g. RGGB).
CCD1 BLOB   CCD1 for primary CCD, CCD2 for guider CCD.
CCD1 Binary fits data encoded in base64. The CCD1.format is used to indicate the data type (e.g. ".fits")

Most CCD_* properties are also applicable to GUIDER chip, so replace CCD with GUIDER above to define properties for the GUIDER chip, if applicable.

5. Streaming

Some CCD drivers support streaming and recording of video streams. All the properties defined in StreamManager are considered reserved standard properties. The stream data is sent via the same CCD1 BLOB used for image transmission and therefore it is not possible to stream and send regular CCD captures at the same time.

NameTypeMemberDescription
CCD_VIDEO_STREAM Switch    
STREAM_ON Turn on video stream
STREAM_OFF Turn off video stream
STREAMING_EXPOSURE Number    
STREAMING_EXPOSURE_VALUE Frame exposure values in seconds when streaming. This is advisory only as some streaming devices cannot control the exposure duration.
STREAMING_DIVISOR_VALUE The divisor is used to skip frames as way to throttle the stream down. By default, a divisor value of 1 does not skip any frames. A value of two would skip every other frame (thereby cutting the FPS in half). A frame is skipped when the number of captured frames % divisor is equal to zero.
FPS Number Read-Only  
EST_FPS Instant frame rate.
AVG_FPS Average FPS over 1 second.
RECORD_FILE Text  

Recorders are responsible for recording the video stream to a file. The recording file directory and name can be set via the RECORD_FILE property which is composed of RECORD_FILE_DIR and RECORD_FILE_NAME elements. You can specify a record directory name together with a file name. You may use special character sequences to generate dynamic names:

  • _D_ is replaced with the date ('YYYY-MM-DD')
  • _H_ is replaced with the time ('hh-mm-ss')
  • _T_ is replaced with a timestamp
  • _F_ is replaced with the filter name currently in use
RECORD_FILE_DIR Directory to save the file. It defaults to $HOME/indi__D_
RECORD_FILE_NAME Recording file name. It defaults to indi_record__T_
RECORD_OPTIONS Switch   Set the desired duration in seconds or total frames required for the recording.
RECORD_DURATION Duration in seconds.
RECORD_FRAME_TOTAL Total number of frames required
RECORD_STREAM Switch   Start or Stop the stream recording to a file.
RECORD_ON Start recording. Do not stop unless asked to.
RECORD_DURATION_ON Start recording until the duration set in RECORD_OPTIONS has elapsed.
RECORD_FRAME_ON Start recording until the number of frames set in RECOR_OPTIONS has been captured.
RECORD_OFF Stops recording.

6. Filter wheels

NameTypeMemberDescription
FILTER_SLOT Number FILTER_SLOT_VALUE The filter wheel's current slot number. Important: Filter numbers start from 1 to N
FILTER_NAME Text FILTER_NAME_VALUE The filter wheel's current slot name

7. Focusers

NameTypeMemberDescription
FOCUS_SPEED Number   Select focus speed from 0 to N where 0 maps to no motion, and N maps to the fastest speed possible
FOCUS_SPEED_VALUE Set focuser speed to SPEED
FOCUS_MOTION Switch    
FOCUS_INWARD Focus inward
FOCUS_OUTWARD Focus outward
FOCUS_TIMER Number    
FOCUS_TIMER_VALUE Focus in the direction of FOCUS_MOTION at rate FOCUS_SPEED for FOCUS_TIMER_VALUE milliseconds
REL_FOCUS_POSITION Number   Relative position
FOCUS_RELATIVE_POSITION Move # of steps in FOCUS_MOTION direction.
ABS_FOCUS_POSITION Number   Absolute position
FOCUS_ABSOLUTE_POSITION Steps
FOCUS_MAX Number   Focus maximum travel limit in steps.
FOCUS_MAX_VALUE Steps
FOCUS_REVERSE_MOTION Switch    
ENABLED Reverse default motor direction
DISABLED Do not reverse, move motor in the default direction.
FOCUS_ABORT_MOTION Switch    
ABORT Abort focus motion.
FOCUS_SYNC Number   Accept this position as the new focuser absolute position.
FOCUS_SYNC_VALUE Steps

8. Domes

NameTypeMemberDescription
DOME_SPEED Number    
DOME_SPEED_VALUE Set dome speed in RPM.
DOME_MOTION Switch    
DOME_CW Move dome Clockwise, looking down
DOME_CCW Move dome counter clockwise, looking down
DOME_TIMER Number    
DOME_TIMER_VALUE Move the dome in the direction of DOME_MOTION at rate DOME_SPEED for DOME_TIMER_VALUE milliseconds
REL_DOME_POSITION Number   Relative position
DOME_RELATIVE_POSITION Move DOME_RELATIVE_POSITION degrees azimuth in the direction of DOME_MOTION.
ABS_DOME_POSITION Number   Absolute position
DOME_ABSOLUTE_POSITION Move dome to DOME_ABSOLUTE_POSITION absolute azimuth angle in degrees.
DOME_ABORT_MOTION Switch    
ABORT Abort dome motion.
DOME_SHUTTER Switch    
SHUTTER_OPEN Open dome shutter.
SHUTTER_CLOSE Close dome shutter.
DOME_GOTO Switch    
DOME_HOME Go to home position.
DOME_PARK Go to park position.
DOME_PARAMS Number    
HOME_POSITION Dome home position in absolute degrees azimuth.
PARK_POSITION Dome parking position in absolute degrees azimuth.
AUTOSYNC_THRESHOLD If dome is slaved, AUTOSYNC_THRESHOLD is the number of acceptable azimuth degrees error between reported and requested dome position. Once the difference between target and current dome positions exceed this value, the dome shall be commanded to move to the target position.
DOME_AUTOSYNC Switch    
DOME_AUTOSYNC_ENABLE Enable dome slaving.
DOME_AUTOSYNC_DISABLE Disable dome slaving.
DOME_MEASUREMENTS Number    
DM_DOME_RADIUS Dome radius (m).
DOME_SHUTTER_WIDTH Dome shutter width (m).
DM_NORTH_DISPLACEMENT Displacement to the north of the mount center (m).
DM_EAST_DISPLACEMENT Displacement to the east of the mount center (m).
DM_UP_DISPLACEMENT UP displacement of the mount center (m).
DM_OTA_OFFSET Distance from the optical axis to the mount center (m).