# Default Repeater Configuration repeater: # Node name for logging and identification node_name: "mesh-repeater-01" # Geographic location (optional) # Latitude in decimal degrees (-90 to 90) latitude: 0.0 # Longitude in decimal degrees (-180 to 180) longitude: 0.0 # Path to identity file (public/private key) # If not specified, a new identity will be generated identity_file: null # Duplicate packet cache TTL in seconds cache_ttl: 60 # Score-based transmission filtering # Enable quality-based packet filtering and adaptive delays use_score_for_tx: false # Score threshold for quality monitoring (future use) # Currently reserved for potential future features like dashboard alerts, # proactive statistics collection, or advanced filtering strategies. # Changing this value has no effect on current packet processing. score_threshold: 0.3 # Automatic advertisement interval in hours # The repeater will send an advertisement packet at this interval # Set to 0 to disable automatic adverts (manual only via web interface) # Range: 0 (disabled) to 24+ hours # Recommended: 10 hours for typical deployments send_advert_interval_hours: 10 # Respond to discovery requests from other nodes # When enabled, the repeater will automatically respond to discovery packets # with its node information (node type 2 - repeater) allow_discovery: true # Mesh Network Configuration mesh: # Global flood policy - controls whether the repeater allows or denies flooding by default # true = allow flooding globally, false = deny flooding globally # Individual transport keys can override this setting global_flood_allow: true radio: # Frequency in Hz (869.618 MHz for EU) frequency: 869618000 # TX power in dBm tx_power: 14 # Bandwidth in Hz (62500 = 62.5 kHz) bandwidth: 62500 # LoRa spreading factor (7-12) spreading_factor: 8 # Coding rate (5-8) coding_rate: 8 # Preamble length in symbols preamble_length: 17 # Sync word (LoRa network ID) sync_word: 13380 # Enable CRC checking crc_enabled: true # Use implicit header mode implicit_header: false # SX1262 Hardware Configuration sx1262: # SPI bus and chip select bus_id: 0 cs_id: 0 # GPIO pins (BCM numbering) cs_pin: 21 reset_pin: 18 busy_pin: 20 irq_pin: 16 # TX/RX enable pins (-1 to disable) txen_pin: -1 rxen_pin: -1 # LED pins for TX/RX indication (-1 to disable) txled_pin: -1 rxled_pin: -1 use_dio3_tcxo: false # Waveshare hardware flag is_waveshare: false delays: # TX delay factor for flood mode (multiplier) tx_delay_factor: 1.0 # TX delay factor for direct mode (faster) direct_tx_delay_factor: 0.5 duty_cycle: # Enable/disable duty cycle enforcement # Set to false to disable airtime limits enforcement_enabled: false # Maximum airtime per minute in milliseconds max_airtime_per_minute: 3600 # Storage Configuration storage: # Directory for persistent storage files (SQLite, RRD) storage_dir: "/var/lib/pymc_repeater" # MQTT publishing configuration (optional) mqtt: # Enable/disable MQTT publishing enabled: false # MQTT broker settings broker: "localhost" port: 1883 # Authentication (optional) username: null password: null # Base topic for publishing # Messages will be published to: {base_topic}/{node_name}/{packet|advert} base_topic: "meshcore/repeater" # Data retention settings retention: # Clean up SQLite records older than this many days sqlite_cleanup_days: 31 # RRD archives are managed automatically: # - 1 minute resolution for 1 week # - 5 minute resolution for 1 month # - 1 hour resolution for 1 year letsmesh: enabled: false iata_code: "Test" # e.g., "SFO", "LHR", "Test" broker_index: 0 # Which LetsMesh broker (0=EU, 1=US West) status_interval: 300 owner: "" email: "" # Block specific packet types from being published to LetsMesh # If not specified or empty list, all types are published # Available types: REQ, RESPONSE, TXT_MSG, ACK, ADVERT, GRP_TXT, # GRP_DATA, ANON_REQ, PATH, TRACE, RAW_CUSTOM disallowed_packet_types: [] # - REQ # Don't publish requests # - RESPONSE # Don't publish responses # - TXT_MSG # Don't publish text messages # - ACK # Don't publish acknowledgments # - ADVERT # Don't publish advertisements # - GRP_TXT # Don't publish group text messages # - GRP_DATA # Don't publish group data # - ANON_REQ # Don't publish anonymous requests # - PATH # Don't publish path packets # - TRACE # Don't publish trace packets # - RAW_CUSTOM # Don't publish custom raw packets logging: # Log level: DEBUG, INFO, WARNING, ERROR level: INFO # Log format format: "%(asctime)s - %(name)s - %(levelname)s - %(message)s" # Web interface configuration web: # Enable Cross-Origin Resource Sharing (CORS) headers # Allows web frontends from different origins to access the API cors_enabled: false # Custom path to web frontend files (optional) # If not specified, uses the default built-in path # Example: /opt/custom-web-ui or /home/user/my-frontend # web_path: null