Introduction to INDI
The INDI Library is a collection of programs designed to control astronomical equipment. Its telescope control platform, called Ekos, controls a TeenAstro mount through an INDI driver.
Driver design
TeenAstro, like many other mounts, is controlled with a protocol derived from an early Meade telescope, called LX200. The TeenAstro INDI driver derives directly from the simplest LX200 driver with basic functionality (lx200basic), and adds the TeenAstro specific functions. When available, the existing LX200 functionality is used, if not it is copied from OnStep and other drivers, or implemented from scratch.
Repository: https://github.com/indilib/indi
Source files : lx200_TeenAstro.cpp, lx200_TeenAstro.h
Driver info: indi_lx200_TeenAstro
Driver versions
Date | Version | Description |
---|---|---|
Jan 2020 | 0.8 | Basic functionality |
Apr 2020 | 1.0 | Added error handling for limits, save and restore driver configuration |
1 May 2020 | 1.1 | Fixed TCP/IP comms error, set default guide speed to 0.5x |
10 May 2020 | 1.2 | Compatibility with Firmware v1.2 (backward compatible with 1.1) |
Jan 2022 | 1.2a | Fixed slew speed selection |
Connection options
KStars / Ekos runs either on a PC, Mac or on a Raspberry Pi. The connection between this device and TeenAstro is done either through USB (the Telescope port on the main unit), or through Wifi to the Smart HandController (SHC), port 9999 (IP address depends on the network). When running through Wifi, the SHC requires a firmware version that allows permanent IP connections with the “One to One” Wifi menu option (SHC version 1.2b or above).
Mount Type
TeenAstro supports German Equatorial, Alt Azimuth, Fork Azimuth and Fork equatorial mounts. However the current driver only supports German Equatorial.
Current features
GOTO: yes
Sync: yes
Slew Speeds: Guide, Slow, Medium, Fast, Max. All speeds can be configured through the hand controller. Max speed depends on mount and motors.
Track Rates: Sidereal, Solar, Lunar
Tracking can be disabled
Auto Meridian Flip: no
Configurable custom parking positions: yes
Pulse-guiding: yes
Guide Rates: 0.25x, 0.5x, 1x
ST4 Guiding: yes
Sync and Alignment (2 or 3-star) is done using the hand controller. The mount needs to be aligned before connecting the driver.
Guiding can be done with ST4 or software (pulse-guiding)
4 sites are stored, with their coordinates including altitude (elevation)
An optional GPS device can be connected, its functionality is not exposed to the INDI driver.
Functionality - standard Meade commands
These lists are not complete, but are included here for convenience. Check the source code (Command_xx.ino) for details
Function | Command | Used in INDI driver |
---|---|---|
Get Right Ascension / Declination | :GR# :GD# | ✓ |
Get Azimuth / Altitude | :GA# :GZ# | |
Set target RA, Declination | :Sr...#, :Sd...# | ✓ |
Goto target RA/Dec | :MS# | ✓ |
Set target Azimuth / Altitude | :Sa...#, :Sz...# | |
Goto target az/alt | :MA# | |
Set tracking mode | :TQ# :TS# :TL# | ✓ |
Park / Unpark / Set parking position | :HQ# :HR# :HP# | ✓ |
Sync to current coords/object | :CS# :CM# | ✓ |
pier side / dist to meridian | :Gm# | |
Set centering speed (buttons) | :R# | ✓ |
Move N / S / W / E | :Mx# | ✓ |
Display firmware data | :GVD# :GVN# etc | ✓ |
Get current site location, UTC etc | :GM# etc. | ✓ |
Select Site | :Wn# | ✓ |
Send guiding command | :Mgn# etc. | ✓ |
Enable / Disable tracking | :Te# :Td# | ✓ |
Enable / disable refraction correction | :Tr# :Tn# | |
Get / Set site altitude | :Ge# :Se# | ✓ |
Functionality - TeenAstro-specific commands
All Get commands (:GX..) except :GXI# have a Set (:SX..) counterpart that sets the parameter in TeenAstro
Function | Command | Notes | Used in INDI driver |
---|---|---|---|
Get mount status | :GXI# | (1) | ✓ |
Get Acceleration | :GXRA# | ||
Get Max Rate | :GXRX# | ||
Get Default Rate | :GXRD# | ||
Get Backlash rate | :GXRB# | ||
Get Limits | :GXLn# | n is E/W/U/O/H | |
Get Date/Time | :GXTn# | n is 0 to 2 | |
Get Backlash values | :GXMBn# | n is D or R | |
Get Gear | :GXMGn# | n is D or R | |
Get Steps | :GXMSn# | n is D or R | |
Get Microsteps | :GXMMn# | n is D or R | |
Get Direction | :GXMRn# | n is D or R | |
Get High current | :GXMCn# | n is D or R | |
Get Low current | :GXMcn# | n is D or R | |
Get Pole Alignment (True / Apparent) | :GXApn# | See Command_G.ino | |
Get Debug info | :GXDnn# | See Command_G.ino | |
Get Axis Positions in degrees | :GXPn# | n is 1 or 2 | |
Get Custom Tracking Rate | :GXRn# | n is 0 to 4 | ✓ |
(1) Status is a 16-character string, coding the status as follows:
position | char values | meaning |
---|---|---|
0 | 0, 1, 2 | '0' + 2 * movingTo + sideralTracking |
1 | 0, 1 | sidereal mode |
2 | pIPF | not [p]arked, parking [I]n-progress, [P]arked, Park [F]ailed |
3 | space or H | at home |
4 | 0 to 3 | current slew rate |
5 | space @ G | spiral, guide |
6 | * + | * for guide pulse/ST4, + for guide recenter |
7-8 | > < b _ | see Command_G.ino |
9 | f | fault |
10 | c | corrected tracking |
11 | 0 1 | star alignment |
12 | E K k A | mount type |
13 | E W | pier side |
14 | 0 1 | GNSS valid |
15 | 0 to E | Last error code - See LX200RETURN in TeenAstroLX200io.h |
Not implemented
Tab | Function | command | Standard Meade | In TeenAstro |
---|---|---|---|---|
Main control | Object info - macro from lx200driver.h | :LI# | yes | no |
Main control | Alignment status | :Gw# | yes | no |
Main control | Elevation limits | :Sh# :So# | yes | yes |
Motion control | Custom track rate (RA / declination) | :RA# :RE# | yes | no |
Motion control | dual axis tracking | :T2# | no | no |
Motion control | Tracking frequency / frequency adjust | :T+# :T-# :GT# | yes | no |
Align | Polar align | :MP# | no | no |
PEC | Periodic Error Correction | :QZ# etc. | yes | no |
Focuser | Focus control | :F+ etc. | yes | yes |