INDIOpen Astronomy InstrumentationGet INDI

Standard Properties

INDI does not place any special semantics on property names (i.e.

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.

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
CONNECTIONSwitch
CONNECTEstablish connection to device
DISCONNECTDisconnect device
DEVICE_PORTTextPORTDevice connection port
TIME_LSTNumberLSTLocal sidereal time HH:MM:SS
TIME_UTCText
UTC Time & Offset
UTCUTC time in ISO 8601 format
OFFSETUTC offset, in hours +E
GEOGRAPHIC_COORDNumber
Earth geodetic coordinate
LATSite latitude (-90 to +90), degrees +N
LONGSite longitude (0 to 360), degrees +E
ELEVSite elevation, meters
ATMOSPHERENumber
Weather conditions
TEMPERATUREKelvin
PRESSUREhPa
HUMIDITYPercentage %
UPLOAD_MODESwitch
UPLOAD_CLIENTSend BLOB to client
UPLOAD_LOCALSave BLOB locally
UPLOAD_BOTHSend blob to client and save it locally as well
UPLOAD_SETTINGSText
UPLOAD_DIRUpload directory if the BLOB is saved locally
UPLOAD_PREFIXPrefix used when saving filename
ACTIVE_DEVICESText
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.

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_COORDNumberEquatorial astrometric J2000 coordinate
RAJ2000 RA, hours
DECJ2000 Dec, degrees +N
EQUATORIAL_EOD_COORDNumberEquatorial astrometric epoch of date coordinate
RAJNow RA, hours
DECJNow Dec, degrees +N
TARGET_EOD_COORDNumberSlew Target. Read Only property set once requested EQUATORIAL_EOD_COORD is accepted by driver.
RAJNow RA, hours
DECJNow Dec, degrees +N
HORIZONTAL_COORDNumbertopocentric coordinate
ALTAltitude, degrees above horizon
AZAzimuth, degrees E of N
ON_COORD_SETSwitchAction 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.
SLEWSlew to a coordinate and stop upon receiving coordinates.
TRACKSlew to a coordinate and track upon receiving coordinates.
SYNCAccept current coordinate as correct upon receiving coordinates.
TELESCOPE_MOTION_NSSwitchMove telescope north or south
MOTION_NORTHMove the telescope toward North.
MOTION_SOUTHMove the telescope toward South.
TELESCOPE_MOTION_WESwitchMove telescope west or east
MOTION_WESTMove the telescope toward West.
MOTION_EASTMove the telescope toward East.
TELESCOPE_TIMED_GUIDE_NSNumberTimed pulse guide in north/south direction
TIMED_GUIDE_NGuide the scope north for TIMED_GUIDE_N milliseconds.
TIMED_GUIDE_SGuide the scope south for TIMED_GUIDE_S milliseconds.
TELESCOPE_TIMED_GUIDE_WENumberTimed pulse guide in west/east direction
TIMED_GUIDE_WGuide the scope west for TIMED_GUIDE_W milliseconds.
TIMED_GUIDE_EGuide the scope east for TIMED_GUIDE_E milliseconds.
TELESCOPE_SLEW_RATESwitchMultiple switch slew rate. The driver can define as many switches as desirable, but at minimum should implement the four switches below.
SLEW_GUIDE0.5x to 1.0x sidereal rate or slowest possible speed.
SLEW_CENTERINGSlow speed.
SLEW_FINDMedium speed.
SLEW_MAXMaximum speed.
TELESCOPE_PARKSwitchPark and unpark the telescope.
PARKPark the telescope to HOME position.
UNPARKUnpark the telescope
TELESCOPE_PARK_POSITIONNumberHome park position (RA/DEC or AZ/ALT) in degrees or encoder ticks.
PARK_RA/PARK_AZRA/AZ park coordinates in degrees or ticks.
PARK_DEC/PARK_ALTDEC/ALT park coordinates in degrees or ticks.
TELESCOPE_PARK_OPTIONSwitchUpdates TELESCOPE_PARK_POSITION values
PARK_CURRENTUse current coordinates/encoders as home park position.
PARK_DEFAULTUse driver’s default park position.
PARK_WRITE_DATAWrite TELESCOPE_PARK_POSITION and current parking status to file ($HOME/.indi/ParkData.xml)
TELESCOPE_ABORT_MOTIONSwitchABORT_MOTIONStop telescope rapidly, but gracefully
TELESCOPE_TRACK_RATESwitch
TRACK_SIDEREALTrack at sidereal rate.
TRACK_SOLARTrack at solar rate.
TRACK_LUNARTrack at lunar rate.
TRACK_CUSTOMCustom track rate. This element is optional
TELESCOPE_INFONumber
TELESCOPE_APERTURETelescope aperture, mm
TELESCOPE_FOCAL_LENGTHTelescope focal length, mm
GUIDER_APERTUREGuide telescope aperture, mm
GUIDER_FOCAL_LENGTHGuider telescope focal length, mm
TELESCOPE_PIER_SIDESwitchGEM Pier Side
PIER_EASTMount on the East side of pier (Pointing West).
PIER_WESTMount 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.

CCDs

NameTypeMemberDescription
CCD_EXPOSURENumberCCD_EXPOSURE_VALUEExpose the CCD chip for CCD_EXPOSURE_VALUE seconds
CCD_ABORT_EXPOSURENumberABORTAbort CCD exposure
CCD_FRAMENumberCCD frame size.
XLeft-most pixel position
YTop-most pixel position
WIDTHFrame width in pixels
HEIGHTFrame height in pixels
CCD_TEMPERATURENumberCCD_TEMPERATURE_VALUECCD chip temperature in degrees Celsius
CCD_COOLERSwitchCCD Cooler control.
COOLER_ONTurn cooler on
COOLER_OFFTurn cooler off
CCD_COOLER_POWERNumberCCD_COOLER_VALUEPercentage % of Cooler Power utilized
CCD_FRAME_TYPESwitch
FRAME_LIGHTTake a light frame exposure
FRAME_BIASTake a bias frame exposure
FRAME_DARKTake a dark frame exposure
FRAME_FLATTake a flat field frame exposure
CCD_BINNINGNumber
HOR_BINHorizontal binning
VER_BINVertical binning
CCD_COMPRESSIONSwitch
CCD_COMPRESSCompress CCD frame (If FITS, it uses fpack to send a .fz file)
CCD_RAWSend raw CCD frame
CCD_FRAME_RESETSwitch
RESETReset CCD frame to default X,Y,W, and H settings. Set binning to 1x1.
CCD_INFONumber
CCD_MAX_XResolution x
CCD_MAX_YResolution y
CCD_PIXEL_SIZECCD pixel size in microns
CCD_PIXEL_SIZE_XPixel size X, microns
CCD_PIXEL_SIZE_YPixel size Y, microns
CCD_BITSPERPIXELBits per pixel
CCD_CFATEXTColor Filter Array warnrmation if the CCD produces a bayered image. Debayering performed at client side.
CFA_OFFSET_XCFA X Offset.
CFA_OFFSET_XCFA Y Offset.
CFA_TYPECFA Filter type (e.g. RGGB).
CCD1BLOBCCD1 for primary CCD, CCD2 for guider CCD.
CCD1Binary 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.

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_STREAMSwitch
STREAM_ONTurn on video stream
STREAM_OFFTurn off video stream
STREAMING_EXPOSURENumber
STREAMING_EXPOSURE_VALUEFrame exposure values in seconds when streaming. This is advisory only as some streaming devices cannot control the exposure duration.
STREAMING_DIVISOR_VALUEThe 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.
FPSNumberRead-Only
EST_FPSInstant frame rate.
AVG_FPSAverage FPS over 1 second.
RECORD_FILEText
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. |

Filter wheels

NameTypeMemberDescription
FILTER_SLOTNumberFILTER_SLOT_VALUEThe filter wheel’s current slot number. Important: Filter numbers start from 1 to N
FILTER_NAMETextFILTER_NAME_VALUEThe filter wheel’s current slot name

Focusers

NameTypeMemberDescription
FOCUS_SPEEDNumberSelect focus speed from 0 to N where 0 maps to no motion, and N maps to the fastest speed possible
FOCUS_SPEED_VALUESet focuser speed to SPEED
FOCUS_MOTIONSwitch
FOCUS_INWARDFocus inward
FOCUS_OUTWARDFocus outward
FOCUS_TIMERNumber
FOCUS_TIMER_VALUEFocus in the direction of FOCUS_MOTION at rate FOCUS_SPEED for FOCUS_TIMER_VALUE milliseconds
REL_FOCUS_POSITIONNumberRelative position
FOCUS_RELATIVE_POSITIONMove # of steps in FOCUS_MOTION direction.
ABS_FOCUS_POSITIONNumberAbsolute position
FOCUS_ABSOLUTE_POSITIONSteps
FOCUS_MAXNumberFocus maximum travel limit in steps.
FOCUS_MAX_VALUESteps
FOCUS_REVERSE_MOTIONSwitch
ENABLEDReverse default motor direction
DISABLEDDo not reverse, move motor in the default direction.
FOCUS_ABORT_MOTIONSwitch
ABORTAbort focus motion.
FOCUS_SYNCNumberAccept this position as the new focuser absolute position.
FOCUS_SYNC_VALUESteps

Domes

NameTypeMemberDescription
DOME_SPEEDNumber
DOME_SPEED_VALUESet dome speed in RPM.
DOME_MOTIONSwitch
DOME_CWMove dome Clockwise, looking down
DOME_CCWMove dome counter clockwise, looking down
DOME_TIMERNumber
DOME_TIMER_VALUEMove the dome in the direction of DOME_MOTION at rate DOME_SPEED for DOME_TIMER_VALUE milliseconds
REL_DOME_POSITIONNumberRelative position
DOME_RELATIVE_POSITIONMove DOME_RELATIVE_POSITION degrees azimuth in the direction of DOME_MOTION.
ABS_DOME_POSITIONNumberAbsolute position
DOME_ABSOLUTE_POSITIONMove dome to DOME_ABSOLUTE_POSITION absolute azimuth angle in degrees.
DOME_ABORT_MOTIONSwitch
ABORTAbort dome motion.
DOME_SHUTTERSwitch
SHUTTER_OPENOpen dome shutter.
SHUTTER_CLOSEClose dome shutter.
DOME_GOTOSwitch
DOME_HOMEGo to home position.
DOME_PARKGo to park position.
DOME_PARAMSNumber
HOME_POSITIONDome home position in absolute degrees azimuth.
PARK_POSITIONDome parking position in absolute degrees azimuth.
AUTOSYNC_THRESHOLDIf 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_AUTOSYNCSwitch
DOME_AUTOSYNC_ENABLEEnable dome slaving.
DOME_AUTOSYNC_DISABLEDisable dome slaving.
DOME_MEASUREMENTSNumber
DM_DOME_RADIUSDome radius (m).
DOME_SHUTTER_WIDTHDome shutter width (m).
DM_NORTH_DISPLACEMENTDisplacement to the north of the mount center (m).
DM_EAST_DISPLACEMENTDisplacement to the east of the mount center (m).
DM_UP_DISPLACEMENTUP displacement of the mount center (m).
DM_OTA_OFFSETDistance from the optical axis to the mount center (m).