Changelog¶
All notable changes to this project will be documented in this file.
[1.7.6] - 2026-01-28¶
Changed¶
Documentation Overhaul: Consolidated and reorganized the entire documentation suite. Migrated to Sphinx with the Furo theme and added support for PDF generation.
Language Standardization: All documentation and comments have been reviewed and standardized to English.
Project Structure: Cleaned up the
docs/directory, removing redundant and overlapping files in favor of a structured Sphinx hierarchy.
[1.7.5] - 2026-01-27¶
Added¶
Standalone Simulator Integration: Switched the standard validation and testing workflow to use the
caux-simstandalone simulator. This provides higher protocol faithfulness and better parity with real hardware.Experimental Test Pool: Created
tests/experimental/to host tests requiring specialized synchronization with external simulators.
Changed¶
Async Driver Architecture: Refactored
GOTOandSYNCoperations into non-blocking background tasks. The driver now remains fully responsive to INDI commands (likeABORT) during movement.Improved Abort Logic: The
TELESCOPE_ABORT_MOTIONcommand now immediately cancels any active background movement tasks for instant response.Test Robustness: Updated integration tests with increased timeouts and better state transition awareness to accommodate standalone simulator latency.
Fixed¶
Race Conditions: Resolved a race condition where GoTo status could blink between
BusyandIdledue to task completion timing.Sync Point Management: Fixed a coordinate capturing bug in the
SYNCcommand by ensuring RA/Dec are cached at the exact moment the command is received.
[1.7.0] - 2026-01-20¶
Changed¶
Configuration Format: Migrated from YAML (
config.yaml) to TOML (config.default.toml,config.toml). This utilizes the standard librarytomllibin Python 3.11+, reducing external dependencies.Logging System: Replaced all
print()statements with the standardloggingmodule. Logs are now properly routed tostderrwith appropriate levels (INFO, ERROR, DEBUG), ensuring compliance with INDI protocol requirements.Import Structure: Cleaned up internal imports in
celestron_indi_driver.pyand other modules, removing defensivetry...exceptblocks in favor of standard relative imports.Script Updates: Updated all validation scripts (
hit_validation.py,ppt_accuracy.py,pec_measure.py) to support the new TOML configuration and hierarchical loading.
Fixed¶
Test Stability: Resolved import errors in the test suite caused by circular or incorrect relative imports.
Dependency Bloat: Removed
pyyamlandtypes-PyYAMLfrom project dependencies.
[1.6.5] - 2026-01-12¶
Added¶
Type Hints: Added comprehensive type annotations to all core modules and simulator components for better maintainability and robustness.
GitHub Actions CI: Set up a professional CI pipeline verifying tests and type correctness on Python 3.11, 3.12, and 3.13.
Adaptive Alignment Model: The mathematical model now scales with the number of alignment points (SVD for 1-2 pts, 4-parameter for 3-5 pts, 6-parameter for 6+ pts).
Sub-step Rate Estimation: Maintains floating-point precision during velocity calculation to eliminate quantization drift.
Simulation Backdoor: Added
SIM_GET_SKY_POSITION(0xFF) for ground-truth verification in simulation.
Fixed¶
Non-Sidereal Tracking: Fixed a bug where Moon and Planet tracking used stale target coordinates. The loop now correctly re-calculates target positions at each tick.
Iterative GoTo: Corrected the two-stage slew implementation (Fast + Precision) and fixed coordinate synchronization during Sync operations.
CI Compatibility: Removed hardcoded
venvreferences in test suites, enabling execution in containerized environments.Driver Robustness: Fixed property inheritance and added safety checks for hardware communicator connection state.
Tracking Stability: Switched to a 30s differentiation window, matching the reference driver’s high-inertia approach.
Documentation: Updated
DEVELOPMENT_PLAN.mdandGEMINI.mdto reflect the latest project status. Added MathJax and MyST dollarmath extensions for professional LaTeX rendering.
[1.6.4] - 2026-01-09¶
Added¶
Real-World Validation Script: New standalone routine
scripts/real_world_validation.pyfor testing 4-star local alignment and tracking accuracy under simulated mechanical imperfections (Periodic Error, Cone Error, Backlash).
Fixed¶
Sub-step Precision in Rate Estimation: Refined guide rate conversion to minimize truncation errors by maintaining floating-point precision during velocity calculation before rounding to 24-bit AUX commands.
[1.6.3] - 2026-01-09¶
Added¶
High-Accuracy Dead Reckoning: Optimized tracking loop for sub-arcsecond stability.
Improved Differentiation: Increased sampling interval (\(dt=5.0s\)) to reduce quantization noise in velocity estimation.
Fixed¶
Rate Quantization: Reduced tracking drift by an order of magnitude through smoother numerical derivatives.
[1.6.2] - 2026-01-09¶
Added¶
Automated Tracking Accuracy Test: New test suite
tests/test_tracking_accuracy.pythat programmatically measures drift, jitter, and pointing error.Target Locking: Implemented
current_target_ra/decto prevent feedback drift during sidereal tracking.
Fixed¶
Iterative GoTo Refinement: Improved absolute pointing accuracy by implementing a two-stage slew (Fast Approach + Precision Centering).
GoTo Jumping: Eliminated redundant slew iterations and refined anti-backlash suppression during the fast phase.
Tracking Stability: Improved tracking rate derivative calculation by reducing the sample interval (\(dt=0.1s\)) and using a consistent time base.
Web Console Precision: Increased telemetry display precision for velocities to 4 decimal places, enabling visualization of sidereal rates.
[1.6.1] - 2026-01-08¶
Added¶
Visual Digital Twin Finalization: Completed the integration of Three.js visualization with real-time driver telemetry.
Enhanced Sky View: Verified FOV representation against bright stars (Polaris, Sirius, Vega).
[1.6.0] - 2026-01-08¶
Added¶
Visual Digital Twin Enhancements:
Added Angle Indicators: Compass ring and N/S markers in the 3D view.
Added Schematic Sky View: A real-time 10° field-of-view display showing nearby bright stars (using
ephemdata).Expanded Telemetry: Added velocities and power consumption to the web console.
Improved Packaging: Support for
[simulator]and[web]optional extras.
Fixed¶
Refined Evolution 8” dimensions for better faithfulness to real hardware.
Synchronized coordinate systems between physics engine and 3D visualization.
[1.5.1] - 2026-01-08¶
Added¶
Web Console & Digital Twin: Implemented an optional 3D visualization console using Three.js and FastAPI.
Evolution 8” Model: Added a faithful geometric model of the Evolution 8 mount for visual validation.
Collision Visualization: Real-time visual warnings in the web console if the camera clearance is insufficient.
Optional Dependencies: Support for
[simulator]and[web]extras in the Python package.
[1.4.0] - 2026-01-07¶
Added¶
PyPI Packaging: Refactored project to modern
srclayout and addedpyproject.tomlfor standard distribution.CLI Entry Points: Added
indi-celestron-auxandcelestron-aux-simulatoras standalone commands.Centralized Configuration: All driver and validation settings are now managed via a single
config.yamlwith support for CLI and Environment overrides.Internal INDI Server: Integrated
indipyserverallowing the driver to run as a standalone network server.
[1.3.0] - 2026-01-07¶
Added¶
Homing Support: Implemented
HOMEINDI property for automated homing/leveling sequences.Reference Parity: Verified protocol parity with
indi-celestronauxC++ driver.Improved Test Suite: Added
test_11_homingand improved wrap-around awareness in assertions.
[1.2.0] - 2026-01-07¶
Added¶
Dynamic Mount Detection: Implemented a capabilities matrix mapping Model IDs to mount types (Alt-Az, GEM) and features.
RTC Management: Support for reading and writing Real-Time Clock data to the mount (
GPS_SET_TIME,GPS_SET_DATE).Site Management: Implemented writing Latitude/Longitude back to the mount hardware.
Power Management: New
AUX_POWERproperty for reporting supply voltage and current consumption (Evolution battery module).Extended GPS Status: Added satellite count reporting.
Simulator Upgrades: Added support for RTC, Location setting, and Battery telemetry commands.
Changed¶
Property Standardization: Renamed motion switches to standard
SLEW_NORTH/SOUTH/WEST/EAST.Slew Rate Compliance: Added standard
TELESCOPE_SLEW_RATEswitch vector (Guide, Centering, Find, Max) mapped to the native 1-9 scale.Updated
scripts/hit_validation.pyto match the new property names.
[1.1.1] - 2026-01-07¶
Fixed¶
External Simulator Support: Resolved test failures occurring when running against an external TUI simulator.
Test Robustness: Increased GoTo step tolerance to 500 steps to account for simulator jitter and Periodic Error.
Timing & Timeouts: Increased test timeouts to 60-90 seconds to accommodate realistic slew speeds (4°/s) and TUI overhead.
Test Isolation: Added explicit mount position and rate reset in
asyncSetUpfor functional and safety tests.Environment Variables: Ensured
EXTERNAL_SIMandSIM_PORTare respected by all test suites.
[1.1.0] - 2026-01-07¶
Added¶
Hardware Interaction Test (HIT): Interactive safety routine for physical mount testing (
scripts/hit_validation.py).Photography & Pointing Test (PPT): Automated accuracy measurement using INDI and ASTAP (
scripts/ppt_accuracy.py).Emergency Abort: Support for
TELESCOPE_ABORT_MOTIONin the driver.Residual-Aware Grid Thinning: Improved alignment point management using consistency-weighted grid sectors.
Changed¶
Updated
AlignmentModelto use 15° grid sectors for better sky coverage.Optimized functional tests for robustness against encoder jitter.
[1.0.0] - 2026-01-07¶
Added¶
Phase 11: Advanced Calibration implemented.
6-Parameter Geometric Model: Compenses for Rotation, Cone Error (\(CH\)), Non-Perpendicularity (\(NP\)), and Altitude Index error (\(ID\)).
Spatial Point Thinning: Alignment points within 5 degrees are automatically replaced, ensuring even sky coverage and preventing local “clouds” of data from skewing the global model.
Refraction Correction: Switchable atmospheric refraction correction in the driver logic.
Calibration Tab: New INDI tab displaying measured mechanical errors and residuals.
Graceful Fallback: The alignment system automatically switches between Identity, Axis-Angle, SVD, and Full Geometric models depending on the number of available stars.
New test suite
tests/test_alignment_advanced.py.
Changed¶
Refactored
AlignmentModelto usescipy.optimize.least_squaresfor non-linear fitting.Updated
celestron_indi_driver.pyto support new calibration properties.Formalized dependencies in
requirements.txt(scipy).
[0.9.0] - 2026-01-07¶
Added¶
Phase 9: Comprehensive Test Documentation: Added detailed Google-style docstrings to all 23+ tests, documenting methodology and expected results.
Phase 10: Simulator Realism: Added tunable imperfections to the NSE Simulator:
Mechanical Backlash: Simulates gear play when reversing.
Periodic Error (PE): Sinusoidal tracking error in RA/Azimuth.
Cone Error: Mechanical offset in Altitude axis.
Encoder Jitter: Random Gaussian noise in position reporting.
Simulator Core Test Suite: Added
tests/test_simulator_core.pyto verify simulator physics and protocol compliance.New TUI Panel: Displays active imperfections in the simulator interface.
Changed¶
Improved
config.yamlto support simulator-specific settings.Refactored
NexStarScopeto support simulation of mechanical errors.
[0.8.0] - 2026-01-07¶
Added¶
Phase 8: Multi-Point SVD Alignment implemented.
Replaced 3-point matrix inversion with a robust Singular Value Decomposition (SVD) solver.
Support for an unlimited number of alignment stars with automatic fit optimization.
RMS Error reporting in INDI (arcseconds residual).
Proximity Weighting (Local Bias): Heavy weighting of points near the target for high-precision local models.
Automatic Pruning: Configurable circular buffer for alignment points (useful for long AP sessions).
Comprehensive documentation in
docs/andsimulator/.New test suite
tests/test_alignment_svd.py.
Changed¶
Refactored
alignment.pyto usenumpyfor linear algebra.Updated
celestron_indi_driver.pyto use the new alignment properties and logic.Optimized alignment point management (Clear Last, Clear All).
[0.7.0] - 2026-01-07¶
Added¶
Phase 7: Moving Objects Support implemented.
Support for tracking Sun, Moon, and Planets using
ephemlibrary.Support for Satellite tracking using TLE data (
TLE_DATAproperty).New INDI properties:
TARGET_TYPE,PLANET_SELECT,TLE_DATA.Implemented
_get_target_equatorialfor dynamic coordinate resolution.New test suite
tests/test_moving_objects.pyverifying non-sidereal tracking.
Changed¶
Simulator Calibration: Adjusted slew speeds to match Celestron Evolution (\(4^\circ/s\) Fast, \(1^\circ/s\) Slow).
Test Optimization: Updated functional tests to use realistic speeds and longer timeouts.
[0.6.1] - 2026-01-06¶
Fixed¶
Fixed Altitude wrap-around bug in simulator where negative altitudes were reported as large positive values (e.g., 337.5° instead of -22.5°).
Treated Altitude as a linear axis instead of a full circle to avoid incorrect movement directions in GoTo.
Added support for signed angle representation in simulator TUI for Altitude.
Normalized incoming motor controller coordinates to handle signed values correctly in driver logic.
All 17 automated tests (Functional, Safety, Math) verified passing.
[0.6.0] - 2026-01-06¶
Added¶
Phase 6: Safety & Accessories implemented.
New INDI properties:
TELESCOPE_LIMITS,TELESCOPE_CORDWRAP,TELESCOPE_CORDWRAP_POS.Support for Focuser accessory (
ABS_FOCUS_POSITION).Support for GPS module (
GPS_REFRESH, automatic location sync).New test suite
tests/test_safety.pyfor safety features.Enforced software slew limits in
goto_positionand background monitoring.
Changed¶
Internationalization: All documentation, comments, and UI strings translated to English.
Increased simulator slew rates:
GOTO_FASTat 15 deg/s,GOTO_SLOWat 0.5 deg/s.Improved AUX command logging in simulator TUI.
Fixed latitude/longitude parsing from GPS module.
[0.5.3] - 2026-01-06¶
Added¶
New functional test
test_6b_robustness_polechecking driver stability near the celestial pole.
Fixed¶
Increased GoTo speeds in simulator (Fast: 5°/s, Slow: 1°/s) and extended timeouts in the driver, eliminating timeout errors in tests.
Improved physical motion model in simulator (smoother braking and no oscillations at target).
Secured mathematical functions against precision errors near singularities (poles, zenith).
[0.5.2] - 2026-01-06¶
Added¶
Debug mode (
-d/--debug) in simulator, reporting operation parameters tostderr.Implementation of a sliding window for sky velocity calculations (vRA, vDec) to eliminate numerical noise.
Fixed¶
Fixed oscillations of displayed vRA/vDec speeds in the TUI interface.
Improved velocity calculation stability in headless mode.
[0.5.1] - 2026-01-06¶
Added¶
Extension of the simulator TUI interface with motor rotation speed display (vAlt, vAzm) in °/s.
Display of celestial sphere movement speeds (vRA, vDec) in “/s (arcsec/s).
Improved styling of the Textual interface.
[0.5.0] - 2026-01-05¶
Added¶
Modern simulator TUI interface based on the Textual library (replacing curses).
Advanced Alignment system based on 3x3 matrix transformations.
Support for
TELESCOPE_ON_COORD_SETproperty (SLEW, TRACK, SYNC modes).Ability to add alignment points (max 3 stars) to correct mount alignment errors.
New test suite:
test_10_alignment_3starand alignment math tests (tests/test_alignment_math.py).Support for
EXTERNAL_SIMenvironment variable in functional tests.
Changed¶
Full code documentation (Google Style Docstrings) for all modules.
Removed deprecated function call warnings (
utcnow,get_event_loop).Improved
Parklogic – handling step counter wrap-around.Changed configuration format to YAML (
config.yaml).
[0.4.0] - 2026-01-05¶
Added¶
Implementation of Anti-backlash GoTo approach logic (Phase 4).
New INDI properties:
GOTO_APPROACH_MODE(DISABLED, FIXED_OFFSET, TRACKING_DIRECTION) andGOTO_APPROACH_OFFSET.Advanced tracking loop based on 2nd order prediction (Phase 5).
Angular velocity (\(\omega\)) determination algorithm using symmetric differential expression.
New INDI properties:
TELESCOPE_TRACK_MODE(Sidereal, Solar, Lunar).Communication locking mechanism (
asyncio.Lock) inAUXCommunicatorto ensure safe concurrent access to the AUX bus.New functional tests:
test_7_approach_logic,test_8_approach_tracking_direction,test_9_predictive_tracking.
Changed¶
Refactored GoTo method to support multi-stage movement (Stage 1: Fast Approach, Stage 2: Slow Final).
equatorial_to_stepsmethod now supportstime_offsetparameter.
[0.3.0] - 2026-01-05¶
Added¶
Integration with
ephemlibrary for astronomical coordinate transformations.Support for INDI property
GEOGRAPHIC_COORD(Latitude, Longitude, Elevation).Support for INDI property
EQUATORIAL_EOD_COORD(RA/Dec).Implementation of GoTo logic for equatorial coordinates (RA/Dec -> Alt/Az -> Encoders).
Automatic calculation and reporting of current RA/Dec based on encoder position.
New functional test
test_6_equatorial_gotoverifying transformation correctness.Configuration file
config.yamlsupport with default location in Bębło.Stellarium integration instructions for visual verification.
Changed¶
Improved
handle_equatorial_gotorobustness against missing event data.
[0.2.1] - 2026-01-05¶
Added¶
Complete set of functional tests in
tests/directory based onunittest.Tests cover: Firmware Info, GoTo Precision, Tracking Logic, Park/Unpark, Connection Robustness.
Automatic capture of simulator logs during tests (
test_sim.log).
Changed¶
Improved robustness of
handle_sync,handle_park,handle_unpark,handle_guide_ratemethods against missing event data (facilitates testing).Synchronized project state and roadmap.
[0.2.0] - 2026-01-05¶
Added¶
TCP connection support in
AUXCommunicator(URLsocket://host:port).“Echo Skipping” mechanism in the AUX protocol, enabling operation on single-wire buses.
Headless mode (
-t/--text) in the telescope simulator.ephemlibrary support in the simulator.Implementation of
TELESCOPE_GUIDE_RATEproperty in the INDI driver.Verified control loop operation (Slew/Read/Tracking) with an extended automated test.
Changed¶
Full refactoring of
celestron_indi_driver.pyto adapt toindipydriver 3.0.4API.Fixed
NumberMemberconstructor errors (argument order).Improved AUX frame reading stability (using
readexactly).Removed erroneous null bytes from source files.
[0.1.0] - 2026-01-05¶
Added¶
Initial implementation of the Celestron AUX driver in Python.
Basic INDI properties:
CONNECTION,PORT,FIRMWARE_INFO,MOUNT_POSITION.Motion control:
SLEW_RATE,TELESCOPE_MOTION_NS/WE,TELESCOPE_ABSOLUTE_COORD.Mount synchronization and parking.
Telescope simulator with TUI (curses) interface.
Implementation of binary AUX protocol (packet packing/unpacking, checksums).