MethodicConfigurator

Parameter Editor and Uploader Sub-Application Architecture

Overview

The Parameter Editor and Uploader sub-application is the core of the ArduPilot Methodic Configurator. It provides sequential configuration through intermediate parameter files, allowing users to view documentation, edit parameters, upload them to the flight controller, and save them to files. This systematic approach ensures methodical, traceable, and safe vehicle configuration.

Requirements

Functional Requirements

  1. Sequential Configuration Management
    • Must present configuration steps in a logical, numbered sequence
    • Must advance through intermediate parameter files systematically
    • Must track configuration progress and completion status
    • Must allow skipping steps that don’t apply to specific vehicles
    • Must support jumping to specific configuration steps when needed
  2. Parameter File Operations
    • Must load and parse intermediate parameter files (.param format)
    • Must preserve comments and formatting in parameter files
    • Must validate parameter syntax and structure
    • Must support parameter file editing and modification
    • Must save changes back to parameter files with proper formatting
  3. Parameter Table Management
    • Must display parameters in an editable table format
    • Must show current values, new values, units, and change reasons
    • Must support parameter addition and deletion
    • Must provide upload selection for individual parameters
    • Must highlight different parameter types (read-only, calibration, etc.)
  4. Documentation Integration
    • Must display relevant documentation for each configuration step
    • Must provide links to blog posts, wiki pages, and external tools
    • Must show parameter-specific documentation and tooltips
    • Must support automatic documentation opening in simple mode
    • Must handle offline operation when documentation is cached
  5. Flight Controller Integration
    • Must upload selected parameters to flight controller
    • Must verify successful parameter upload
    • Must handle flight controller resets when required
    • Must re-download and validate parameter values after upload
    • Must support retry mechanisms for failed uploads
  6. Progress Tracking
    • Must display overall configuration progress
    • Must show completion status for each configuration phase
    • Must provide visual indicators for mandatory vs. optional steps
    • Must track which steps have been completed successfully
    • Must support configuration resumption from any point
  7. Validation and Safety
    • Must validate parameter values against acceptable ranges
    • Must warn about potentially dangerous parameter combinations
    • Must prevent upload of invalid or out-of-range values
    • Must provide safety checks for critical parameters
    • Must support parameter rollback capabilities
  8. Summary and Reporting
    • Must generate comprehensive configuration summary at completion
    • Must categorize parameters by type (default, calibration, etc.)
    • Must create summary files for different parameter categories
    • Must provide configuration backup and archival
    • Must support configuration comparison and analysis

Non-Functional Requirements

  1. Performance
    • Parameter table should handle 1000+ parameters efficiently
    • Real-time validation should not cause UI lag
    • File operations should be fast and responsive
    • Documentation loading should not block the interface
  2. Usability
    • Interface should be intuitive for users at all skill levels
    • Parameter editing should provide immediate feedback
    • Error messages should be clear and actionable
    • Progress indication should be accurate and informative
  3. Reliability
    • Parameter uploads must be atomic and verifiable
    • Configuration state must be preserved across sessions
    • File operations must maintain data integrity
    • Recovery mechanisms must handle unexpected failures
  4. Scalability
    • Must support different vehicle types and configurations
    • Must handle varying numbers of configuration steps
    • Must adapt to different parameter set sizes
    • Must support multiple simultaneous vehicle configurations

Architecture

Components

Main Parameter Editor

Documentation Frame

Parameter Table Editor

Stage Progress Tracker

Configuration Steps Backend

Parameter File Backend

Data Flow

  1. Initialization
    • Load vehicle directory and configuration
    • Initialize configuration steps for vehicle type
    • Load current parameter values from flight controller
    • Set up progress tracking and state management
  2. Step Processing
    • Load current intermediate parameter file
    • Display relevant documentation
    • Present parameters in editable table
    • Allow user modifications and validation
    • Enable parameter selection for upload
  3. Parameter Upload
    • Validate selected parameters
    • Upload parameters to flight controller
    • Handle required flight controller resets
    • Verify parameter upload success
    • Update progress and advance to next step
  4. Completion
    • Generate comprehensive summary
    • Create categorized parameter files
    • Archive configuration for future reference
    • Provide completion report and next steps

Integration Points

Parameter Management System

Parameter Types

The system recognizes and handles different parameter categories:

Parameter Validation

Upload Process

  1. Pre-Upload Validation: Check all selected parameters
  2. Batch Upload: Send parameters to flight controller efficiently
  3. Reset Handling: Automatically reset FC when required parameters change
  4. Post-Upload Verification: Download and verify all uploaded parameters
  5. Retry Logic: Handle failed uploads with appropriate retry mechanisms

Documentation System

Documentation Types

Documentation Management

Progress Tracking System

Configuration Phases

The system organizes configuration into logical phases:

  1. Initial Setup: Basic vehicle configuration
  2. Hardware Configuration: Component-specific settings
  3. Safety Configuration: Failsafe and safety systems
  4. Tuning Configuration: Performance optimization
  5. Advanced Configuration: Optional advanced features

Progress Visualization

Error Handling Strategy

Testing Strategy

File Structure

frontend_tkinter_parameter_editor.py                    # Main parameter editor
frontend_tkinter_parameter_editor_documentation_frame.py # Documentation display
frontend_tkinter_parameter_editor_table.py              # Parameter table editor
frontend_tkinter_stage_progress.py                      # Progress tracking
backend_filesystem_configuration_steps.py              # Step management
backend_filesystem.py                                   # Parameter file operations

Dependencies

Configuration File Management

Intermediate Parameter Files

Parameter files follow a specific naming convention:

Summary Files

At completion, the system generates several summary files:

Configuration Steps Definition

Configuration steps are defined in JSON files:

Each step definition includes:

Performance Optimization

Table Performance

File Operations

Memory Management

Security Considerations