Description: This document outlines the development roadmap for OpenAstroFirmware, structured as GitHub-ready issues and epics. Each item references specific requirements from requirements.md and includes priority classification, acceptance criteria, and dependency information for systematic implementation.
Goal: Implement OpenAstroFirmware as a Zephyr RTOS-based telescope mount control system, providing complete LX200 protocol compatibility, precise stepper motor control, and extensible hardware support as specified in the requirements.
- 🔴 priority:critical - Safety-critical, core system functionality
- 🟠 priority:high - Core functionality, protocol compliance
- 🟡 priority:medium - Enhanced features, optional hardware support
- 🟢 priority:low - Future extensibility, advanced features
Zephyr RTOS foundation with hardware support and safety systems
🔴 priority:critical
Requirements: REQ-SYS-001, REQ-SYS-002, REQ-SYS-003, REQ-HW-001, REQ-HW-002
Description: Establish the foundational Zephyr RTOS platform with primary hardware support and development environment.
Acceptance Criteria:
- REQ-SYS-001: Zephyr RTOS version 4.2.0 integration functional
- REQ-SYS-002: 32-bit microcontroller platform support verified
- REQ-SYS-003: UART communication interface operational
- REQ-HW-001: MKS Robin Nano (STM32F407xx) board support functional
- REQ-HW-002: native_sim platform support for development/testing
Dependencies: None (foundation)
🟠 priority:high
Requirements: REQ-HW-004, REQ-HW-EXT-001, REQ-HW-EXT-002, REQ-HW-EXT-003, REQ-HW-EXT-004
Description: Implement hardware abstraction layer supporting multiple board variants and extensible hardware configurations.
Acceptance Criteria:
- REQ-HW-004: Multiple hardware variations supported through compile-time configuration
- REQ-HW-EXT-001: Hardware abstraction layer allows new microcontroller boards without core changes
- REQ-HW-EXT-002: Board-specific configuration files define hardware capabilities and pin mappings
- REQ-HW-EXT-003: Zephyr device tree system enables hardware-specific configurations
- REQ-HW-EXT-004: Standardized interfaces for new hardware platforms maintain firmware compatibility
Dependencies: 1.1 Zephyr RTOS Platform Setup
🔴 priority:critical
Requirements: REQ-SAF-001, REQ-SAF-002, REQ-SAF-003, REQ-SAF-004, REQ-SAF-005
Description: Implement comprehensive safety mechanisms to prevent mechanical damage and ensure safe operation.
Acceptance Criteria:
- REQ-SAF-001: Software limits implemented to prevent mechanical damage
- REQ-SAF-002: Emergency stop functionality immediately halts all motor movements
- REQ-SAF-003: Collision detection and prevention mechanisms active
- REQ-SAF-004: End switch detection supported for RA and DEC axes
- REQ-SAF-005: Timeout mechanisms implemented for command responses
Dependencies: 1.1 Zephyr RTOS Platform Setup
🔴 priority:critical
Requirements: REQ-PWR-001, REQ-PWR-002, REQ-MON-001, REQ-REL-001, REQ-REL-002, REQ-REL-003, REQ-REL-004, REQ-REL-005, REQ-REL-006, REQ-REL-007
Description: Implement power management, system monitoring, and comprehensive error handling for reliable operation.
Acceptance Criteria:
- REQ-PWR-001: Basic power management capabilities implemented
- REQ-PWR-002: Graceful shutdown procedures functional
- REQ-MON-001: System status monitoring and error reporting active
- REQ-REL-001: Comprehensive error handling implemented for all major subsystems
- REQ-REL-002: Meaningful error messages and status codes provided
- REQ-REL-003: Graceful recovery from communication errors implemented
- REQ-REL-004: System state consistency maintained during error conditions
- REQ-REL-005: Continued operation with non-critical errors supported
- REQ-REL-006: Input parameter validation implemented for all interfaces
- REQ-REL-007: Watchdog mechanisms implemented for critical operations
Dependencies: 1.1 Zephyr RTOS Platform Setup
🟠 priority:high
Requirements: REQ-DEV-001, REQ-DEV-002, REQ-DEV-003, REQ-DEV-004, REQ-TEST-001, REQ-TEST-002, REQ-TEST-003
Description: Establish development environment, build system, and testing infrastructure.
Acceptance Criteria:
- REQ-DEV-001: West build system support for project management
- REQ-DEV-002: CMake build system integration functional
- REQ-DEV-003: Comprehensive logging capabilities implemented for debugging
- REQ-DEV-004: In-hardware debugging capabilities supported
- REQ-TEST-001: Automated test suites included for major components
- REQ-TEST-002: Unit testing supported for individual modules
- REQ-TEST-003: Integration testing with hardware simulation supported
Dependencies: 1.1 Zephyr RTOS Platform Setup
Complete LX200 protocol support for telescope control software compatibility
🟠 priority:high
Requirements: REQ-COM-001, REQ-COM-002, REQ-COM-003, REQ-COM-004, REQ-COM-007, REQ-COM-008, REQ-COM-009, REQ-COM-010, REQ-PERF-002, REQ-TEST-004
Description: Implement the fundamental LX200 protocol parser, command processor, and response generator with proper error handling.
Acceptance Criteria:
- REQ-COM-001: Meade LX200 telescope serial command protocol implemented
- REQ-COM-002: Serial communication at 115200 baud rate supported as default
- REQ-COM-003: LX200 command format
:<command>[parameters]#parsing implemented - REQ-COM-004: Command prefix
:and terminator#validation functional - REQ-COM-007: Sequential but asynchronous command processing in background
- REQ-COM-008: Appropriate responses returned according to LX200 specification
- REQ-COM-009: Buffer overflow conditions handled gracefully when command length exceeds maximum
- REQ-COM-010: Command parsing supports maximum command length of 32 characters
- REQ-PERF-002: Response to LX200 commands within 100ms under normal conditions
- REQ-TEST-004: Test coverage provided for LX200 protocol implementation
Dependencies: EPIC 1 (Platform Foundation)
🟠 priority:high
Requirements: REQ-COM-005, REQ-COM-006
Description: Implement all standard LX200 command families with proper coordinate format support.
Acceptance Criteria:
- REQ-COM-005: Initialize commands (I) - scope initialization and serial control
- REQ-COM-005: Sync control commands (CM) - telescope coordinate synchronization
- REQ-COM-005: Distance commands (D) - mount slewing status queries
- REQ-COM-005: Focuser control commands (F) - focuser movement and control
- REQ-COM-005: Get telescope information commands (G) - status and coordinates
- REQ-COM-005: GPS commands (g) - GPS time and location setting
- REQ-COM-005: Home/Park commands (h) - home, park, and unpark operations
- REQ-COM-005: Movement commands (M) - slewing, tracking, and guiding operations
- REQ-COM-005: Stop movement commands (Q) - motor stop and quit control
- REQ-COM-005: Slew rate commands (R) - slewing rate configuration
- REQ-COM-005: Set telescope parameters commands (S) - coordinates, time, date, location
- REQ-COM-005: Extended OAT commands (X) - OpenAstroTech-specific functionality
- REQ-COM-006: Right Ascension format HH:MM:SS supported
- REQ-COM-006: Declination format sDDMM:SS or sDDMM'SS supported
- REQ-COM-006: Longitude format sDDD*MM or DDD (0-360 degrees west from Greenwich) supported
- REQ-COM-006: Latitude format sDD*MM supported
- REQ-COM-006: Hour Angle format HH:MM supported
- REQ-COM-006: Time format HH:MM:SS (24-hour) supported
- REQ-COM-006: Date format MM/DD/YY supported
- REQ-COM-006: Extended sync format sDD*MM:SS.HH:MM:SS (DEC and RA combined) supported
Dependencies: 2.1 Core LX200 Protocol Engine
🟠 priority:high
Requirements: REQ-COM-013, REQ-COM-014, REQ-COM-015, REQ-COM-016, REQ-COM-017, REQ-COM-018, REQ-COM-019, REQ-COM-020, REQ-COM-021, REQ-COM-022, REQ-COM-023, REQ-COM-024
Description: Implement OpenAstroTech-specific extended LX200 commands for enhanced functionality.
Acceptance Criteria:
- REQ-COM-013: OpenAstroTech-specific extended LX200 commands (X-family) implemented
- REQ-COM-014: Mount status reporting with
:GX#command returning comma-delimited data (mount state, motion state, stepper positions, coordinates) - REQ-COM-015: GPS-based time/location setting with configurable timeout using
:gTnnn#command - REQ-COM-016: Hall sensor-based auto-homing supported for RA and DEC axes with configurable search direction and range
- REQ-COM-017: Stepper motor direct control commands implemented for precise positioning and calibration
- REQ-COM-018: Drift alignment procedures supported for polar alignment assistance
- REQ-COM-019: Digital level integration supported for mount leveling when hardware present
- REQ-COM-020: Network status reporting implemented for WiFi-enabled hardware platforms
- REQ-COM-021: Backlash correction configuration and reporting supported
- REQ-COM-022: DEC axis limit setting and enforcement supported for safety
- REQ-COM-023: Tracking speed adjustment and manual slewing speed control supported
- REQ-COM-024: Mount configuration reporting implemented including hardware capabilities and driver settings
Dependencies: 2.2 LX200 Standard Command Families
🟡 priority:medium
Requirements: REQ-COM-011, REQ-COM-012, REQ-NET-001, REQ-NET-002, REQ-NET-003
Description: Implement wireless communication capabilities for WiFi and Bluetooth connectivity.
Acceptance Criteria:
- REQ-COM-011: WiFi connectivity supported for wireless telescope control
- REQ-COM-012: Bluetooth connectivity supported for wireless telescope control
- REQ-NET-001: WiFi connectivity supported on ESP32-based hardware platforms
- REQ-NET-002: Network status reporting provided including connection state, IP address, and hostname when WiFi enabled
- REQ-NET-003: Configurable network parameters supported including SSID and host settings when WiFi enabled
Dependencies: 2.3 Extended LX200 Commands
Comprehensive stepper motor control with multi-driver support and extensibility
🟠 priority:high
Requirements: REQ-STEP-001, REQ-STEP-002, REQ-STEP-003, REQ-STEP-004, REQ-STEP-005, REQ-STEP-EXT-001, REQ-STEP-EXT-002, REQ-STEP-EXT-004, REQ-TEST-005
Description: Implement standardized stepper driver interface supporting TMC controllers, GPIO drivers, and simulation drivers with plugin architecture.
Acceptance Criteria:
- REQ-STEP-001: TMC stepper motor controllers supported (TMC22xx, TMC50xx, TMC51xx series)
- REQ-STEP-002: GPIO-based stepper motor drivers supported
- REQ-STEP-003: Simulation/testing stepper motor drivers supported for development
- REQ-STEP-004: All stepper motor operations executed asynchronously
- REQ-STEP-005: Event notifications provided when stepper motors complete movements
- REQ-STEP-EXT-001: Standardized stepper driver interface allows new controller types without modifying core mount control logic
- REQ-STEP-EXT-002: Plugin-based architecture supports new stepper motor driver types (new TMC series, other manufacturers)
- REQ-STEP-EXT-004: Runtime detection and initialization of different stepper driver types supported
- REQ-TEST-005: Test coverage provided for stepper motor control functions
Dependencies: EPIC 1 (Platform Foundation)
🟠 priority:high
Requirements: REQ-STEP-006, REQ-STEP-007, REQ-STEP-008, REQ-STEP-009, REQ-STEP-010, REQ-STEP-011, REQ-STEP-012, REQ-STEP-013, REQ-STEP-014, REQ-STEP-015
Description: Implement comprehensive stepper motor control API with precise timing, positioning, and configuration capabilities.
Acceptance Criteria:
- REQ-STEP-006: Stepper motor enable/disable functionality provided
- REQ-STEP-007: Configurable micro-step resolutions supported (1, 2, 4, 8, 16, 32, 64, 128, 256 steps per full step)
- REQ-STEP-008: Setting and getting actual stepper motor positions supported
- REQ-STEP-009: Setting reference positions for stepper motors supported
- REQ-STEP-010: Move-by-steps and move-to-position commands supported
- REQ-STEP-011: Continuous running in specified directions supported
- REQ-STEP-012: Immediate stop commands for stepper motors supported
- REQ-STEP-013: Stepper motor movement status reporting provided (moving/stopped)
- REQ-STEP-014: Configurable step timing intervals with nanosecond precision supported
- REQ-STEP-015: Event callbacks for stepper motor operations supported
Dependencies: 3.1 Stepper Driver Framework
🟠 priority:high
Requirements: REQ-STEP-016, REQ-STEP-017, REQ-STEP-018, REQ-STEP-EXT-003, REQ-STEP-EXT-005
Description: Integrate Zephyr stepper framework with mount control, implement safety features, and provide calibration procedures.
Acceptance Criteria:
- REQ-STEP-016: Zephyr stepper framework integrated with mount control classes
- REQ-STEP-017: Limit switch integration supported for stepper motor safety
- REQ-STEP-018: Basic calibration procedures provided for stepper motor setup
- REQ-STEP-EXT-003: Configuration mechanisms provided for stepper driver parameters (current limits, microstepping, acceleration curves)
- REQ-STEP-EXT-005: Standardized calibration and testing interfaces work with all supported stepper driver types
Dependencies: 3.2 Stepper Motor Control API
Core mount control with precise tracking and coordinate management
🟠 priority:high
Requirements: REQ-AXIS-001, REQ-AXIS-002, REQ-AXIS-003, REQ-AXIS-004, REQ-AXIS-005, REQ-AXIS-006, REQ-AXIS-007, REQ-MNT-001
Description: Implement independent RA and DEC axis control with slewing, tracking, guiding, and coordinate synchronization capabilities.
Acceptance Criteria:
- REQ-AXIS-001: Both RA and DEC axes can slew by specified numbers of degrees
- REQ-AXIS-002: Both RA and DEC axes can slew at various configurable rates until commanded to stop
- REQ-AXIS-003: Constant RA tracking speed maintained without changing coordinate position
- REQ-AXIS-004: Guiding corrections supported on both axes (faster/slower RA, forward/reverse DEC) for specified durations with millisecond accuracy without changing coordinate reference
- REQ-AXIS-005: Coordinate synchronization allowed for both RA and DEC axes from connected telescope control software
- REQ-AXIS-006: Home position reference maintained through all RA and DEC operations
- REQ-AXIS-007: Homing operations supported using position sensors for both RA and DEC axes
- REQ-MNT-001: RA and DEC axis operations are independent and capable of simultaneous execution
Dependencies: EPIC 3 (Stepper Motor Control System)
🟠 priority:high
Requirements: REQ-MNT-002, REQ-MNT-003, REQ-MNT-004, REQ-MNT-005, REQ-MNT-006, REQ-MNT-007, REQ-COORD-001, REQ-COORD-002, REQ-COORD-003, REQ-COORD-004, REQ-COORD-005
Description: Implement coordinate transformation engine and advanced mount operations including meridian flip detection and hemisphere support.
Acceptance Criteria:
- REQ-MNT-002: RA/DEC coordinates converted to stepper motor target positions using solution with longest safe operational time
- REQ-MNT-003: Remaining safe operational time calculation implemented
- REQ-MNT-004: Time to meridian crossing calculation implemented for current position
- REQ-MNT-005: Both Northern and Southern hemisphere operations supported
- REQ-MNT-006: Awareness of current date, time, and geographic location maintained for hour angle calculations
- REQ-MNT-007: Meridian flip detection and safe operational time calculation supported based on RA ring position
- REQ-COORD-001: Equatorial coordinate system (RA/DEC) supported
- REQ-COORD-002: Horizontal coordinate system (ALT/AZ) supported
- REQ-COORD-003: Coordinate ranges validated before processing
- REQ-COORD-004: Coordinate precision modes supported (high and low precision)
- REQ-COORD-005: Coordinate accuracy maintained throughout operations
Dependencies: 4.1 RA/DEC Axis Control
🟠 priority:high
Requirements: REQ-MNT-008, REQ-MNT-009, REQ-MNT-010, REQ-MNT-011, REQ-MNT-012, REQ-ALT-001, REQ-ALT-002, REQ-ALT-003, REQ-ALT-004, REQ-ALT-005
Description: Implement advanced mount features including auto-homing, backlash correction, parking, and ALT/AZ support.
Acceptance Criteria:
- REQ-MNT-008: Hall sensor-based auto-homing supported with configurable search parameters and offset correction
- REQ-MNT-009: Backlash correction supported for RA axis with configurable overshoot and backtrack steps
- REQ-MNT-010: DEC axis limit enforcement supported with configurable upper and lower position limits
- REQ-MNT-011: Parking operations supported (move to home position, advance to parking offset, stop all movement)
- REQ-MNT-012: Unparking operations supported (resume tracking from parked state)
- REQ-ALT-001: When configured for ALT/AZ mode, altitude and azimuth axes can slew by specified degrees
- REQ-ALT-002: When configured for ALT/AZ mode, slewing at various rates until commanded to stop supported
- REQ-ALT-003: ALT/AZ functionality supported for polar alignment of equatorial mounts
- REQ-ALT-004: When configured for ALT/AZ mode, configurable minimum and maximum position limits supported with axis movement restrictions enforced
- REQ-ALT-005: When configured for ALT/AZ mode, home and current positions saved to non-volatile memory
Dependencies: 4.2 Coordinate Transformation & Mount Operations
🟠 priority:high
Requirements: REQ-TRK-001, REQ-TRK-002, REQ-TRK-003, REQ-TRK-004, REQ-TRK-005, REQ-GUIDE-001, REQ-GUIDE-002, REQ-GUIDE-003, REQ-GUIDE-004, REQ-GUIDE-005, REQ-SLEW-001, REQ-SLEW-002, REQ-SLEW-003, REQ-SLEW-004, REQ-SLEW-005, REQ-SLEW-006, REQ-PERF-001, REQ-PERF-003, REQ-PERF-004
Description: Implement comprehensive tracking and guiding with multiple tracking rates and precision slew rates.
Acceptance Criteria:
- REQ-TRK-001: Sidereal tracking rate supported
- REQ-TRK-002: Solar tracking rate supported
- REQ-TRK-003: Lunar tracking rate supported
- REQ-TRK-004: Tracking enable/disable functionality provided
- REQ-TRK-005: Custom tracking rate adjustments supported
- REQ-GUIDE-001: Guide pulse operations supported with directional control (North, South, East, West)
- REQ-GUIDE-002: Guide pulse duration control supported with millisecond precision from 1ms to 9999ms
- REQ-GUIDE-003: RA guiding supported by adjusting tracking speed (faster/slower) for specified duration
- REQ-GUIDE-004: DEC guiding supported by running motor at constant speed in forward/reverse direction for specified duration
- REQ-GUIDE-005: Guiding status reporting provided to indicate when guiding operations are active
- REQ-SLEW-001: Guide rate supported (slowest, 'G' rate)
- REQ-SLEW-002: Centering rate supported (medium-slow, 'C' rate)
- REQ-SLEW-003: Medium rate supported (medium-fast, 'M' rate)
- REQ-SLEW-004: Slew rate supported (fastest, 'S' rate)
- REQ-SLEW-005: Dynamic slew rate changes during operation allowed
- REQ-SLEW-006: Manual slewing mode supported with configurable speeds up to 2.5 degrees/second
- REQ-PERF-001: Tracking accuracy maintained with sub-arcsecond precision
- REQ-PERF-003: Guiding corrections supported with millisecond timing accuracy
- REQ-PERF-004: Real-time tracking performance maintained without interruption
Dependencies: 4.3 Advanced Mount Features
Comprehensive configuration management with non-volatile storage
🟠 priority:high
Requirements: REQ-CFG-001, REQ-CFG-002, REQ-CFG-003, REQ-CFG-004, REQ-CFG-005, REQ-CFG-006, REQ-CFG-007, REQ-CFG-008
Description: Implement Zephyr-based configuration system with build-time and runtime configuration capabilities.
Acceptance Criteria:
- REQ-CFG-001: Zephyr's Kconfig system used for configuration management
- REQ-CFG-002: Board-specific configuration files supported
- REQ-CFG-003: Device tree overlays supported for hardware configuration
- REQ-CFG-004: Interactive configuration menu (menuconfig) provided
- REQ-CFG-005: Runtime configuration of tracking rates supported
- REQ-CFG-006: Runtime configuration of slew rates supported
- REQ-CFG-007: Runtime configuration of coordinate precision modes supported
- REQ-CFG-008: Critical configuration parameters persist across power cycles
Dependencies: EPIC 1 (Platform Foundation)
🔴 priority:critical
Requirements: REQ-NVM-001, REQ-NVM-002, REQ-NVM-003, REQ-NVM-004, REQ-NVM-005, REQ-NVM-006, REQ-NVM-007, REQ-NVM-008
Description: Implement comprehensive non-volatile memory system for persistent configuration storage with versioning and integrity protection.
Acceptance Criteria:
- REQ-NVM-001: EEPROM or equivalent non-volatile memory supported for persistent data storage
- REQ-NVM-002: All user-configurable settings stored in non-volatile memory (mount parameters, stepper motor settings, network configuration, calibration data)
- REQ-NVM-003: Versioned configuration data structure implemented for safe migration between firmware versions
- REQ-NVM-004: Configuration version mismatches detected during boot with automatic migration or reset to safe defaults
- REQ-NVM-005: Configuration backup and validation mechanisms provided to prevent corruption of critical settings
- REQ-NVM-006: Factory reset functionality supported that restores all settings to safe default values
- REQ-NVM-007: Wear leveling or equivalent mechanisms implemented to extend non-volatile memory lifespan
- REQ-NVM-008: Configuration data integrity validated using checksums or equivalent error detection methods
Dependencies: 5.1 Build & Runtime Configuration
🟠 priority:high
Requirements: REQ-CFG-LX200-001, REQ-CFG-LX200-002, REQ-CFG-LX200-003, REQ-CFG-LX200-004, REQ-CFG-LX200-005, REQ-CFG-LX200-006, REQ-CFG-LX200-007, REQ-CFG-LX200-008
Description: Implement LX200-based configuration interface for remote configuration management through telescope control software.
Acceptance Criteria:
- REQ-CFG-LX200-001: Configuration parameter reading supported through LX200 extended commands (X-family)
- REQ-CFG-LX200-002: Configuration parameter writing supported through LX200 extended commands with immediate persistence to non-volatile memory
- REQ-CFG-LX200-003: LX200 commands provided to query available configuration parameters and their valid value ranges
- REQ-CFG-LX200-004: Configuration parameter validation supported before writing to non-volatile memory with appropriate error responses for invalid values
- REQ-CFG-LX200-005: LX200 commands provided to perform factory reset operations with appropriate confirmation mechanisms
- REQ-CFG-LX200-006: Configuration backup and restore operations supported through LX200 extended commands
- REQ-CFG-LX200-007: LX200 commands provided to query configuration version information and migration status
- REQ-CFG-LX200-008: Atomic configuration updates ensured through LX200 interface to prevent partial configuration corruption
Dependencies: 5.2 Non-Volatile Memory Management, EPIC 2 (LX200 Protocol)
Support for focusers, dew heaters, sensors, and GPS modules
🟡 priority:medium
Requirements: REQ-FOC-001, REQ-FOC-002, REQ-FOC-003, REQ-FOC-004, REQ-FOC-005, REQ-FOC-006, REQ-FOC-007, REQ-FOC-008, REQ-FOC-009
Description: Implement comprehensive focuser control with position tracking, speed control, and safety features.
Acceptance Criteria:
- REQ-FOC-001: When focuser connected, slewing at various rates until commanded to stop supported
- REQ-FOC-002: When focuser connected, slewing to specific target positions supported
- REQ-FOC-003: When focuser connected, setting motor position reference allowed
- REQ-FOC-004: When focuser connected, position feedback provided
- REQ-FOC-005: When focuser connected, inward movement supported (toward objective) with
:F+#command - REQ-FOC-006: When focuser connected, outward movement supported (away from objective) with
:F-#command - REQ-FOC-007: When focuser connected, configurable speed control supported with 4 speed levels (1=slowest, 4=fastest)
- REQ-FOC-008: When focuser connected, focuser movement status reporting supported (idle/moving)
- REQ-FOC-009: When focuser connected, immediate stop functionality supported
Dependencies: EPIC 3 (Stepper Motor Control System), EPIC 5 (Configuration & Persistence)
🟡 priority:medium
Requirements: REQ-DEW-001, REQ-DEW-002, REQ-DEW-003, REQ-DEW-004, REQ-DEW-005, REQ-DEW-006
Description: Implement PWM-based dew heater control with temperature monitoring and automated dew prevention.
Acceptance Criteria:
- REQ-DEW-001: Dew heater control functionality supported
- REQ-DEW-002: When dew heater connected, power control (on/off) provided for dew heater outputs
- REQ-DEW-003: When dew heater connected, variable power level control (PWM) supported for dew heater outputs
- REQ-DEW-004: When dew heater connected, multiple independent dew heater channels supported
- REQ-DEW-005: When dew heater connected, temperature-based automatic dew heater control supported
- REQ-DEW-006: When dew heater connected, dew heater status monitoring and reporting provided
Dependencies: EPIC 1 (Platform Foundation), EPIC 5 (Configuration & Persistence)
🟡 priority:medium
Requirements: REQ-SNS-001, REQ-SNS-002, REQ-SNS-003, REQ-SNS-004, REQ-SNS-EXT-001, REQ-SNS-EXT-002, REQ-SNS-EXT-003, REQ-SNS-EXT-004, REQ-SNS-EXT-005, REQ-SNS-EXT-006, REQ-LEVEL-001, REQ-LEVEL-002, REQ-LEVEL-003, REQ-LEVEL-004, REQ-LEVEL-005
Description: Implement comprehensive sensor support including end switches, temperature sensors, and digital level integration.
Acceptance Criteria:
- REQ-SNS-001: RA and DEC axis end switches supported
- REQ-SNS-002: RA and DEC axis homing switches supported
- REQ-SNS-003: Temperature sensor integration supported
- REQ-SNS-004: Sensor status monitoring and reporting provided
- REQ-SNS-EXT-001: Standardized sensor interface allows addition of new sensor types without modifying core functionality
- REQ-SNS-EXT-002: Plugin-based architecture supports new sensor types (temperature, humidity, pressure, accelerometer, magnetometer, etc.)
- REQ-SNS-EXT-003: Configuration mechanisms provided for sensor-specific parameters, communication protocols, and data formats
- REQ-SNS-EXT-004: Runtime sensor discovery and initialization supported for dynamically configurable sensor configurations
- REQ-SNS-EXT-005: Standardized sensor data reporting interfaces work with all supported sensor types
- REQ-SNS-EXT-006: Sensor-specific calibration procedures and data processing algorithms supported
- REQ-LEVEL-001: Digital level integration supported for mount leveling assistance
- REQ-LEVEL-002: When digital level connected, pitch and roll value reporting provided
- REQ-LEVEL-003: When digital level connected, reference pitch and roll value setting and storage supported
- REQ-LEVEL-004: When digital level connected, temperature reporting provided
- REQ-LEVEL-005: When digital level connected, enable/disable control supported
Dependencies: EPIC 1 (Platform Foundation), EPIC 5 (Configuration & Persistence)
🟡 priority:medium
Requirements: REQ-GPS-001, REQ-GPS-002, REQ-GPS-003, REQ-GPS-004, REQ-GPS-005
Description: Implement GPS module integration for automatic location and time synchronization.
Acceptance Criteria:
- REQ-GPS-001: GPS module integration supported for automatic time and location setting
- REQ-GPS-002: When GPS connected, automatic time and location setting supported with configurable timeout
- REQ-GPS-003: When GPS connected, blocking GPS operations supported with 2-minute default timeout
- REQ-GPS-004: When GPS connected, custom timeout GPS operations supported for non-blocking usage
- REQ-GPS-005: When GPS connected, GPS acquisition status reporting provided (success/timeout)
Dependencies: EPIC 4 (Mount Control & Tracking Systems), EPIC 5 (Configuration & Persistence)
Display support and web-based control interface
🟡 priority:medium
Requirements: REQ-UI-001, REQ-UI-002, REQ-UI-003
Description: Implement display support for mount status visualization.
Acceptance Criteria:
- REQ-UI-001: Information-only displays supported for mount status visualization
- REQ-UI-002: LCD screens supported (small, large, color, monochrome)
- REQ-UI-003: When display present, mount status information display provided
Dependencies: EPIC 1 (Platform Foundation), EPIC 4 (Mount Control), EPIC 5 (Configuration)
🟡 priority:medium
Requirements: REQ-WEB-001, REQ-WEB-002, REQ-WEB-003, REQ-WEB-004, REQ-WEB-005, REQ-WEB-006, REQ-WEB-007, REQ-WEB-008
Description: Implement embedded web server with responsive web interface for device configuration and control.
Acceptance Criteria:
- REQ-WEB-001: Embedded web server provided for device configuration when WiFi enabled
- REQ-WEB-002: When web server enabled, responsive web user interface accessible through standard web browsers
- REQ-WEB-003: Web interface allows configuration of mount parameters, stepper settings, sensor calibration, and network settings
- REQ-WEB-004: Web interface provides real-time mount status monitoring and control capabilities
- REQ-WEB-005: Web interface supports firmware update initiation and progress monitoring
- REQ-WEB-006: Web interface implements secure authentication to prevent unauthorized access
- REQ-WEB-007: Web interface provides configuration backup and restore functionality
- REQ-WEB-008: Web interface supports configuration of LX200 protocol settings and extended command features
Dependencies: EPIC 2 (LX200 Protocol), EPIC 5 (Configuration), 2.4 Network Communication Support
Software compatibility, firmware distribution, and quality standards
🔴 priority:critical
Requirements: REQ-COMPAT-001, REQ-COMPAT-002, REQ-COMPAT-003, REQ-COMPAT-004, REQ-COMPAT-005, REQ-COMPAT-006, REQ-COMPAT-007, REQ-COMPAT-008, REQ-COMP-001, REQ-COMP-003
Description: Implement comprehensive compatibility with telescope control software and hardware platforms.
Acceptance Criteria:
- REQ-COMPAT-001: ASCOM telescope control framework compatibility implemented
- REQ-COMPAT-002: INDI telescope control framework compatibility implemented
- REQ-COMPAT-003: N.I.N.A. (Nighttime Imaging 'N' Astronomy) software compatibility implemented
- REQ-COMPAT-004: SkySafari telescope control software compatibility implemented
- REQ-COMPAT-005: OatControl software compatibility implemented
- REQ-COMPAT-006: OpenAstroTracker (OAT) mount hardware supported
- REQ-COMPAT-007: OpenAstroMount (OAM) mount hardware supported
- REQ-COMPAT-008: OpenAstroExplorer (OAE) mount hardware supported
- REQ-COMP-001: Full compliance with Meade LX200 command protocol specification implemented
- REQ-COMP-003: Compliance with relevant astronomical coordinate system standards implemented
Dependencies: EPIC 2 (LX200 Protocol), EPIC 4 (Mount Control)
🔴 priority:critical
Requirements: REQ-FW-BUILD-001, REQ-FW-BUILD-002, REQ-FW-BUILD-003, REQ-FW-BUILD-004, REQ-FW-BUILD-005, REQ-FW-UPDATE-001, REQ-FW-UPDATE-002, REQ-FW-UPDATE-003, REQ-FW-UPDATE-004, REQ-FW-UPDATE-005, REQ-FW-UPDATE-006, REQ-UX-001, REQ-UX-002, REQ-UX-003, REQ-UX-004, REQ-UX-005
Description: Implement secure firmware build, distribution, and update system with user-friendly tools.
Acceptance Criteria:
- REQ-FW-BUILD-001: Automated firmware build processes generate distributable firmware images for all supported hardware platforms
- REQ-FW-BUILD-002: Firmware images generated in standard formats suitable for different update mechanisms (binary, hex, signed images)
- REQ-FW-BUILD-003: Versioned firmware releases provided with clear version identification and changelog information
- REQ-FW-BUILD-004: Firmware image signing and verification supported for secure updates
- REQ-FW-BUILD-005: Pre-built firmware images provided for common hardware configurations through official distribution channels
- REQ-FW-UPDATE-001: Firmware updates supported via serial/USB connection for initial installation and recovery scenarios
- REQ-FW-UPDATE-002: Over-the-air (OTA) firmware updates supported when WiFi connectivity available
- REQ-FW-UPDATE-003: When OTA updates supported, secure firmware download implemented with integrity verification
- REQ-FW-UPDATE-004: Firmware update rollback mechanisms supported to recover from failed updates
- REQ-FW-UPDATE-005: Bootloader functionality maintained for firmware recovery in case of corrupted main firmware
- REQ-FW-UPDATE-006: During firmware updates, critical user configuration and calibration data preserved
- REQ-UX-001: Clear documentation and guides provided for firmware installation and updates
- REQ-UX-002: User-friendly tools or scripts provided to simplify firmware update process for non-technical users
- REQ-UX-003: Clear status indicators and progress feedback provided during firmware update operations
- REQ-UX-004: Graceful error handling and recovery procedures implemented for failed update attempts
- REQ-UX-005: Automated update notification mechanisms provided when new firmware versions available
Dependencies: 7.2 Web-Based Control Interface, EPIC 1 (Platform Foundation)
🔴 priority:critical
Requirements: REQ-QUAL-001, REQ-QUAL-002, REQ-QUAL-003, REQ-QUAL-004, REQ-COMP-002, REQ-PERF-005, REQ-PERF-006, REQ-PERF-007
Description: Implement comprehensive quality assurance, code standards, and performance optimization.
Acceptance Criteria:
- REQ-QUAL-001: C++20 standard used, Google C++ Style Guide adherence (or project-specified equivalent), 95% compliance achieved through automated analysis tools (clang-tidy, cpplint)
- REQ-QUAL-002: High code quality maintained through automated analysis tools
- REQ-QUAL-003: Established architectural design patterns followed
- REQ-QUAL-004: Comprehensive documentation maintained for all public APIs
- REQ-COMP-002: Zephyr RTOS coding standards and practices adhered to
- REQ-PERF-005: Operation within memory constraints of supported hardware platforms achieved
- REQ-PERF-006: CPU usage minimized to ensure real-time operation
- REQ-PERF-007: Concurrent operations handled (RA/DEC movement, communication, tracking) without performance degradation
Dependencies: All previous EPICs (full system integration)
🟢 priority:low
Requirements: REQ-EXT-001, REQ-EXT-002, REQ-EXT-003, REQ-EXT-004, REQ-EXT-005, REQ-EXT-006, REQ-EXT-007, REQ-EXT-008, REQ-EXT-009, REQ-EXT-010, REQ-EXT-011, REQ-EXT-012
Description: Implement modular architecture foundation for future feature expansion and extensibility.
Acceptance Criteria:
- REQ-EXT-001: Modular architecture provided for easy feature addition
- REQ-EXT-002: Plugin architecture supported for additional hardware drivers
- REQ-EXT-003: Clear APIs provided for extending functionality
- REQ-EXT-004: Architecture supports future implementation of custom object tracking (Sun, Moon, ISS, comets)
- REQ-EXT-005: Architecture supports future implementation of multiple mount types (German Equatorial, Fork, etc.)
- REQ-EXT-006: Architecture supports future implementation of automated calibration and alignment procedures
- REQ-EXT-007: Architecture supports future implementation of periodic error correction (PEC)
- REQ-EXT-008: Architecture supports future implementation of WiFi/Bluetooth connectivity
- REQ-EXT-009: Architecture supports future implementation of GPS integration for automatic site setup
- REQ-EXT-010: Comprehensive documentation and examples provided for adding new hardware board support
- REQ-EXT-011: Standardized interfaces and templates provided for integrating new stepper motor driver types
- REQ-EXT-012: Extensible sensor framework provided with well-defined interfaces for adding new sensor types and capabilities
Dependencies: EPIC 1 (Platform Foundation), EPIC 5 (Configuration)
- EPIC 1: Platform Foundation & System Infrastructure
- EPIC 2: LX200 Protocol Implementation - can start after 1.1
- EPIC 3: Stepper Motor Control System - can start after 1.1
- EPIC 4: Mount Control & Tracking Systems - requires EPIC 3
- EPIC 5: Configuration & Persistence Systems - can start after 1.1
- EPIC 6: Hardware Accessories & Sensors - requires EPIC 1, 5
- EPIC 7: User Interface & Web Systems - requires EPIC 2, 4, 5
- EPIC 8: Compatibility & Quality Assurance - requires most EPICs
Note: Phases can overlap significantly due to parallel development of independent EPICs.
- Foundation Path: 1.1 → 1.2 → All other EPICs
- Control Path: 1.1 → 3.1 → 3.2 → 3.3 → 4.1 → 4.2 → 4.3 → 4.4
- Protocol Path: 1.1 → 2.1 → 2.2 → 2.3 → 2.4
- Configuration Path: 1.1 → 5.1 → 5.2 → 5.3
- Integration Path: All EPICs → 8.1, 8.2, 8.3
Note: EPICs can be developed in parallel where dependencies allow.
- REQ-COMP-001: 100% Meade LX200 command protocol specification compliance
- REQ-PERF-001: Sub-arcsecond tracking precision maintained
- REQ-PERF-002: <100ms response time for LX200 commands under normal conditions
- REQ-PERF-003: Millisecond timing accuracy for guiding corrections
- REQ-PERF-004: Real-time tracking performance without interruption
- REQ-REL-001-007: Comprehensive error handling and recovery implemented
- REQ-SAF-001-005: All safety requirements implemented and validated
- REQ-NVM-001-008: Configuration persistence and integrity maintained
- REQ-FW-UPDATE-001-006: Secure firmware update and rollback capability
- REQ-HW-001-003: Primary hardware platforms fully supported
- REQ-COMPAT-006-008: OpenAstro hardware family compatibility maintained
- REQ-STEP-001-003: All specified stepper driver types supported
- REQ-HW-EXT-001-004: Hardware extensibility framework functional
- REQ-COMPAT-001-005: Major telescope control software compatibility verified
- REQ-TEST-001-003: Comprehensive test coverage implemented
- REQ-QUAL-001-004: Code quality standards maintained
- REQ-EXT-001-012: Future extensibility architecture established
This roadmap ensures systematic implementation of all requirements specified in requirements.md, with proper dependency management, requirement traceability, and measurable success criteria. Each EPIC can be broken down into individual GitHub issues for detailed project management and community contribution.