Technical Reference¶
Architecture¶
The driver is asynchronous, using asyncio to manage the INDI state machine and AUX protocol communication.
celestron_indi_driver.py: INDI state machine and property mapping.celestron_aux_driver.py: AUX protocol handling and packet management.alignment.py: SVD-based coordinate transformations.
Tracking Logic¶
The driver uses an active tracking loop.
Velocity Estimation¶
The first derivative of Alt/Az positions is estimated using a central difference: $\(\omega = \frac{P(T + dt) - P(T - dt)}{2 \cdot dt}\)$
Noise Reduction¶
To reduce quantization noise from the 24-bit encoder steps, the driver employs:
30-second window: Used for sidereal rates.
Floating-Point Encoders: Internal transforms use floats to maintain precision between physical steps.
Sub-step Rate Estimation: Velocity is calculated using floating-point values before conversion to 24-bit hardware commands.
Drift Analysis¶
A larger time window (up to 30s) reduces the impact of rounding errors, maintaining stability during tracking.