panoptes.pocs.mount.ioptron package

Submodules

panoptes.pocs.mount.ioptron.base module

Base implementation for iOptron serial mounts.

Provides common parsing, initialization, parking, and coordinate conversion used by specific iOptron models (e.g., CEM40, HAE16, iEQ30Pro).

class panoptes.pocs.mount.ioptron.base.Mount(location, mount_version=None, *args, **kwargs)[source]

Bases: AbstractSerialMount

Mount class for iOptron mounts.

initialize(set_rates=True, unpark=False, *arg, **kwargs)[source]

Initialize the connection with the mount and setup for location.

iOptron mounts are initialized by sending the following two commands to the mount:

  • MountInfo

If the mount is successfully initialized, the _setup_location_for_mount method is also called.

Returns:

Returns the value from self.is_initialized.

Return type:

bool

property is_home

Mount home status.

park(ra_direction=None, ra_seconds=None, dec_direction=None, dec_seconds=None, *args, **kwargs)[source]

Slews to the park position and parks the mount.

This still uses a custom park command because the mount will not allow the Declination axis to move below 0 degrees.

Note

When mount is parked no movement commands will be accepted.

Parameters:
  • ra_direction (str or None) – The direction to move the RA axis. If not provided (the default), then look at config setting, otherwise ‘west’.

  • ra_seconds (str or None) – The number of seconds to move the RA axis at maximum move speed. If not provided (the default), then look at config setting, otherwise 15 seconds.

  • dec_direction (str or None) – The direction to move the Declination axis. If not provided (the default), then look at config setting, otherwise ‘north’.

  • dec_seconds (str or None) – The number of seconds to move the Declination axis at maximum move speed. If not provided (the default), then look at config setting, otherwise 15 seconds.

Returns:

indicating success

Return type:

bool

set_rates(alt_limit: float | str | None = None, meridian_treatment: str = '015', button_moving_rate: int = 9)[source]

Set the mount rates.

Parameters:
  • alt_limit (float, str, None) – Altitude limit in degrees or string with sign.

  • meridian_treatment (str) – Meridian treatment. Default is ‘015’.

  • button_moving_rate (int) – Button moving rate. Default is 9.

Returns:

None

panoptes.pocs.mount.ioptron.cem40 module

iOptron CEM40 mount driver wrapper.

Specializes the ioptron.base Mount with CEM40-specific homing and target coordinate behaviors.

class panoptes.pocs.mount.ioptron.cem40.Mount(location, mount_version='0040', *args, **kwargs)[source]

Bases: Mount

search_for_home()[source]

Search for the home position.

This method uses the internal homing pin on the mount to return the mount to the home (or zero) position.

set_target_coordinates(*args, **kwargs)[source]

After setting target coordinates, check number of positions.

The newer mounts can determine if there are 0, 1, or 2 possible positions for the given RA/Dec, with the latter being the case for the meridian flip.

Parameters:
  • *args – Positional arguments passed through to BaseMount.set_target_coordinates, typically the target SkyCoord.

  • **kwargs – Keyword arguments passed through to BaseMount.set_target_coordinates.

Returns:

True if the target coordinates are set successfully and at least one valid position exists; False otherwise.

Return type:

bool

panoptes.pocs.mount.ioptron.hae16 module

iOptron HAE16 mount wrapper reusing the CEM40 base behavior.

class panoptes.pocs.mount.ioptron.hae16.Mount(location, mount_version='0012', *args, **kwargs)[source]

Bases: Mount

iOptron HAE16 model-specific Mount shim.

Simply sets the expected mount_version and otherwise relies on BaseMount/CEM40 behavior.

panoptes.pocs.mount.ioptron.ieq30pro module

iOptron iEQ30Pro mount wrapper leveraging the shared iOptron base.

class panoptes.pocs.mount.ioptron.ieq30pro.Mount(location, mount_version='0030', *args, **kwargs)[source]

Bases: Mount

iOptron iEQ30Pro model-specific Mount wrapper.

Module contents

class panoptes.pocs.mount.ioptron.MountGPS(*values)[source]

Bases: IntEnum

GPS power/lock state reported by iOptron controllers.

EXTRACTED = 2
OFF = 0
ON = 1
class panoptes.pocs.mount.ioptron.MountHemisphere(*values)[source]

Bases: IntEnum

Hemisphere setting for tracking calculations.

NORTHERN = 1
SOUTHERN = 0
class panoptes.pocs.mount.ioptron.MountInfo(*values)[source]

Bases: IntEnum

The return type given by the MountInfo command to identify the mount.

CEM120 = 120
CEM120EC = 121
CEM120EC2 = 122
CEM25 = 25
CEM26 = 26
CEM26EC = 27
CEM40 = 40
CEM40EC = 41
CEM60 = 60
CEM60EC = 61
CEM70 = 70
CEM70EC = 71
GEM28 = 28
GEM28EC = 29
GEM45 = 43
GEM45EC = 44
HAE16 = 12
iEQ30Pro = 30
iEQ45Pro = 45
iEQ45ProAA = 46
class panoptes.pocs.mount.ioptron.MountMovementSpeed(*values)[source]

Bases: IntEnum

Hand-controller move rates expressed as multiples of sidereal.

SIDEREAL_1 = 1
SIDEREAL_128 = 6
SIDEREAL_16 = 4
SIDEREAL_2 = 2
SIDEREAL_256 = 7
SIDEREAL_512 = 8
SIDEREAL_64 = 5
SIDEREAL_8 = 3
SIDEREAL_MAX = 9
class panoptes.pocs.mount.ioptron.MountState(*values)[source]

Bases: IntEnum

High-level motion/operational state of the mount.

AT_HOME = 7
GUIDING = 3
MERIDIAN_FLIPPING = 4
PARKED = 6
SLEWING = 2
STOPPED = 0
TRACKING = 1
TRACKING_PEC = 5
UNKNOWN = 8
class panoptes.pocs.mount.ioptron.MountTimeSource(*values)[source]

Bases: IntEnum

Source from which the mount obtains its clock/time.

GPS = 3
HAND_CONTROLLER = 2
RS232 = 1
class panoptes.pocs.mount.ioptron.MountTrackingState(*values)[source]

Bases: IntEnum

Tracking rate/mode selections supported by iOptron.

CUSTOM = 4
KING = 3
LUNAR = 1
SIDEREAL = 0
SOLAR = 2