Astro Dwarf Scheduler is a comprehensive tool designed to automate imaging sessions for Dwarf II and Dwarf III devices. It provides both GUI and console interfaces for creating, managing, and executing astronomical imaging sessions with advanced scheduling capabilities.
- Automated Session Management: Processes JSON session files based on scheduled times
- Multi-Device Support: Full compatibility with Dwarf II and Dwarf III telescopes
- Flexible Connectivity: Supports both Bluetooth and Wi-Fi connections
- Cross-Platform: Works on Windows, macOS, and Linux
The modern GUI provides six comprehensive tabs:
- Multi-Configuration Support: Manage multiple telescope setups
- Real-Time Video Preview: Live MJPEG stream from telescope
- Session Monitoring: Live session info with runtime tracking and countdowns
- Connection Management: Bluetooth/Wi-Fi connection controls
- Scheduler Controls: Start/stop scheduler, calibration, polar alignment
- Session Statistics: Real-time file counts for ToDo/Current/Done/Error/Results
- Device Configuration: Telescope type, camera settings, imaging parameters
- Location Services: Automatic location detection and manual coordinates
- Path Management: Stellarium integration, session directories
- UI Preferences: Display brightness and interface customization
- Manual Session Creation: Target coordinates, imaging parameters, scheduling
- CSV Import Support:
- Stellarium CSV format
- Telescopius mosaic planning files
- Real-Time Stellarium Integration: Fetch current target from Stellarium
- Smart Validation: Comprehensive session data validation
- Multiple Target Types: Solar system objects, manual coordinates, or no goto
- Session Queue Management: Visual session pipeline (ToDo → Current → Done/Error)
- Real-Time Monitoring: Live video feed with frame capture
- Session Details: Complete session information display
- Queue Operations: Move, delete, and organize sessions
- Execution Controls: Start/stop individual or batch sessions
- Automated Analysis: JSON to CSV conversion by observation night
- Success/Error Tracking: Separate views for completed and failed sessions
- Session Statistics: Exposure counts, timing, equipment settings
- Data Export: CSV format for further analysis
- Historical Data: Organized by observation date
- Live Session Editing: Modify existing session files
- Form-Based Interface: User-friendly parameter adjustment
- Bulk Operations: Select and modify multiple sessions
- Real-Time Validation: Immediate feedback on changes
- Directory Auto-Creation: Intelligent session folder management
- Error Recovery: Robust error handling and session retry logic
- Time Zone Support: Proper handling of observation scheduling
- Configuration Backup: Safe configuration management
- Video Stream Management: Efficient MJPEG streaming with proper cleanup
- Memory Management: Optimized video streaming and UI updates
- Thread Safety: Proper multi-threaded operation
- Cross-Platform Paths: Proper path handling for all operating systems
- Python 3.8 or higher
- Windows 10/11, macOS 10.15+, or modern Linux distribution
-
Download or clone this project to your local machine
-
Install the required Python libraries:
python -m pip install -r requirements.txt python -m pip install -r requirements-local.txt --target .Note: The
dwarf_python_apilibrary must be installed locally in the root path of this project using the--target .parameter. -
Optional: Install video preview dependencies:
pip install Pillow requests
-
Configure the
config.inifile with your Wi-Fi SSID and password to use your Dwarf on your local Wi-Fi network.
python astro_dwarf_session_UI.pypython astro_dwarf_scheduler.pyFor console version with parameters:
python astro_dwarf_scheduler.py --ip ip_value --id (2 or 3)- Configure Settings: Use the Settings tab to set up your telescope and location
- Create Sessions: Use the Create Session tab or import CSV files
- Monitor Progress: Use the Overview tab to watch sessions execute
- Review Results: Check the Results tab for session analysis
- Session files are automatically organized in
./Astro_Sessions/subdirectories:ToDo/: Sessions waiting to be processedCurrent/: Currently executing sessionDone/: Successfully completed sessionsError/: Failed sessions for reviewResults/: CSV analysis files organized by night
The application supports multiple telescope configurations:
- Enable "Multiple" mode in the Main tab
- Create named configurations for different telescopes
- Each configuration maintains separate session directories
- Switch between configurations seamlessly
- Real-time target fetching from Stellarium
- Automatic coordinate conversion
- Object identification and description
- Seamless workflow integration
Name,RA,Dec,Magnitude,Type
M31,00:42:44.3,+41:16:09,3.4,GalaxyPane,RA,DEC,Description
1,00:42:44.3,+41:16:09,M31 Pane 1- If Bluetooth fails, the application will prompt for connection attempts
- Wi-Fi parameters can be set via command line for headless operation
- Use the Dwarfium app to establish initial connection if needed
- Dwarf ID Inconsistency Fix: The system handles dwarf_id values differently between Bluetooth and IP connections:
- Device returns actual ID: Dwarf II = 2, Dwarf III = 3
- Config stores offset ID: Dwarf II = 1, Dwarf III = 2
- Bluetooth connection: Correctly sends offset values
- IP connection: Now converts actual device ID to offset before storing
- Result: Consistent dwarf_id handling across all connection methods
- Install
Pillowandrequestsif video preview shows installation message - Check network connectivity to telescope IP
- Video stream URL:
http://{DWARF_IP}:8092/mainstream
- Ensure proper permissions for session directories
- Check that JSON session files are properly formatted
- Review error logs for detailed troubleshooting information
astro_dwarf_session/
├── astro_dwarf_session_UI.py # Main GUI application
├── astro_dwarf_scheduler.py # Console scheduler
├── config.py # Configuration management
├── dwarf_session.py # Session execution logic
├── tabs/ # GUI tab modules
├── Astro_Sessions/ # Session data directories
└── dwarf_python_api/ # Telescope API
- Creation → Sessions created in ToDo folder
- Scheduling → Automatic processing based on scheduled time
- Execution → Moved to Current during processing
- Completion → Moved to Done (success) or Error (failure)
- Analysis → Automatically analyzed into Results CSV files
We welcome contributions! The codebase includes comprehensive error handling, logging, and cross-platform compatibility.
- Clear skies and good luck! The Dwarf will work for you.
- The application automatically manages session directories and file organization.
- All configuration changes are applied immediately without restart required.