feat: update preamble_length to 32 for radio configurations

This commit is contained in:
Lloyd
2026-06-05 16:00:23 +01:00
parent 225feda195
commit e9a9f21cab
5 changed files with 28 additions and 27 deletions
+1 -1
View File
@@ -374,7 +374,7 @@ radio:
coding_rate: 8
# Preamble length in symbols
preamble_length: 17
preamble_length: 32
# Use implicit header mode
implicit_header: false
+21 -21
View File
@@ -13,7 +13,7 @@
"txled_pin": -1,
"rxled_pin": -1,
"tx_power": 22,
"preamble_length": 17,
"preamble_length": 32,
"is_waveshare": true
},
"uconsole_aiov1": {
@@ -29,7 +29,7 @@
"txled_pin": -1,
"rxled_pin": -1,
"tx_power": 22,
"preamble_length": 17
"preamble_length": 32
},
"uconsole_aio_v2": {
"name": "uConsole LoRa Module aio v2",
@@ -44,7 +44,7 @@
"txled_pin": -1,
"rxled_pin": -1,
"tx_power": 22,
"preamble_length": 17,
"preamble_length": 32,
"use_dio3_tcxo": true,
"use_dio2_rf": true
},
@@ -62,7 +62,7 @@
"rxled_pin": -1,
"tx_power": 22,
"use_dio3_tcxo": true,
"preamble_length": 17
"preamble_length": 32
},
"pimesh-1w-v2": {
"name": "PiMesh-1W (V2)",
@@ -80,7 +80,7 @@
"tx_power": 22,
"use_dio3_tcxo": true,
"use_dio2_rf": true,
"preamble_length": 17
"preamble_length": 32
},
"meshadv-mini": {
"name": "MeshAdv Mini",
@@ -95,7 +95,7 @@
"txled_pin": -1,
"rxled_pin": -1,
"tx_power": 22,
"preamble_length": 17
"preamble_length": 32
},
"meshadv": {
"name": "MeshAdv",
@@ -111,7 +111,7 @@
"rxled_pin": -1,
"tx_power": 22,
"use_dio3_tcxo": true,
"preamble_length": 17
"preamble_length": 32
},
"zebra": {
"name": "ZebraHat-1W",
@@ -128,7 +128,7 @@
"tx_power": 18,
"use_dio3_tcxo": true,
"use_dio2_rf": true,
"preamble_length": 17
"preamble_length": 32
},
"femtofox-1W-SX": {
"name": "FemtoFox SX1262 (1W)",
@@ -146,7 +146,7 @@
"rxled_pin": -1,
"tx_power": 30,
"use_dio3_tcxo": true,
"preamble_length": 17
"preamble_length": 32
},
"femtofox-2W-SX": {
"name": "FemtoFox SX1262 (2W)",
@@ -181,7 +181,7 @@
"tx_power": 8,
"use_dio3_tcxo": true,
"use_dio2_rf": true,
"preamble_length": 17
"preamble_length": 32
},
"nebra-duo-hat": {
"name": "NebraDuo-E22P-1W",
@@ -198,7 +198,7 @@
"tx_power": 18,
"use_dio3_tcxo": true,
"use_dio2_rf": true,
"preamble_length": 17
"preamble_length": 32
},
"ch341-usb-sx1262": {
"name": "CH341 USB-SPI + SX1262 (example)",
@@ -221,7 +221,7 @@
"use_dio2_rf": true,
"use_dio3_tcxo": true,
"dio3_tcxo_voltage": 1.8,
"preamble_length": 17,
"preamble_length": 32,
"is_waveshare": false
},
"ultrapeater-e22": {
@@ -239,7 +239,7 @@
"tx_power": 22,
"use_dio2_rf": false,
"use_dio3_tcxo": true,
"preamble_length": 17,
"preamble_length": 32,
"use_gpiod_backend": true,
"gpio_chip": 1
},
@@ -259,7 +259,7 @@
"tx_power": 22,
"use_dio2_rf": false,
"use_dio3_tcxo": true,
"preamble_length": 17,
"preamble_length": 32,
"use_gpiod_backend": true,
"gpio_chip": 1
},
@@ -280,7 +280,7 @@
"use_dio2_rf": true,
"use_dio3_tcxo": true,
"dio3_tcxo_voltage": 1.8,
"preamble_length": 17,
"preamble_length": 32,
"use_gpiod_backend": true,
"gpio_chip": 1
},
@@ -301,7 +301,7 @@
"use_dio2_rf": true,
"use_dio3_tcxo": true,
"dio3_tcxo_voltage": 1.8,
"preamble_length": 17,
"preamble_length": 32,
"use_gpiod_backend": true,
"gpio_chip": 1
},
@@ -321,7 +321,7 @@
"tx_power": 22,
"use_dio2_rf": false,
"use_dio3_tcxo": true,
"preamble_length": 17
"preamble_length": 32
},
"ultrapeaterzero-e22p": {
"name": "Zindello Industries UltraPeaterZero E22P",
@@ -339,7 +339,7 @@
"tx_power": 22,
"use_dio2_rf": false,
"use_dio3_tcxo": true,
"preamble_length": 17
"preamble_length": 32
},
"pymc_usb": {
"name": "pymc_usb modem (USB-CDC)",
@@ -347,7 +347,7 @@
"connection_type": "usb",
"radio_type": "pymc_usb",
"tx_power": 22,
"preamble_length": 16
"preamble_length": 32
},
"pymc_tcp": {
"name": "pymc_tcp modem (Wi-Fi / Ethernet)",
@@ -355,7 +355,7 @@
"connection_type": "network",
"radio_type": "pymc_tcp",
"tx_power": 22,
"preamble_length": 16
"preamble_length": 32
},
"kiss": {
"name": "KISS modem (serial)",
@@ -363,7 +363,7 @@
"connection_type": "usb",
"radio_type": "kiss",
"tx_power": 14,
"preamble_length": 17
"preamble_length": 32
}
}
}
+1
View File
@@ -541,6 +541,7 @@ def get_radio_for_board(board_config: dict):
"spreading_factor": int(radio_cfg.get("spreading_factor", 8)),
"coding_rate": int(radio_cfg.get("coding_rate", 8)),
"tx_power": int(radio_cfg.get("tx_power", 14)),
"preamble_length": int(radio_cfg.get("preamble_length", 32)),
}
radio = KissModemWrapper(
port=port,
+1 -1
View File
@@ -92,7 +92,7 @@ class RepeaterHandler(BaseHandler):
"spreading_factor": getattr(radio, "spreading_factor", 8),
"bandwidth": getattr(radio, "bandwidth", 125000),
"coding_rate": getattr(radio, "coding_rate", 8),
"preamble_length": getattr(radio, "preamble_length", 17),
"preamble_length": getattr(radio, "preamble_length", 32),
"frequency": getattr(radio, "frequency", 915000000),
"tx_power": getattr(radio, "tx_power", 14),
}
+4 -4
View File
@@ -1220,7 +1220,7 @@ class APIEndpoints:
tx_power_preset if tx_power_preset is not None else 14
)
if "preamble_length" not in config_yaml["radio"]:
config_yaml["radio"]["preamble_length"] = 17
config_yaml["radio"]["preamble_length"] = 32
elif hardware_key == "pymc_usb":
# pymc_usb modem: external SX1262 board over USB-CDC.
# Accept pymc_usb_port / pymc_usb_baudrate from the request body
@@ -1240,7 +1240,7 @@ class APIEndpoints:
elif "tx_power" in hw_config:
config_yaml["radio"]["tx_power"] = hw_config.get("tx_power", 22)
if "preamble_length" in hw_config:
config_yaml["radio"]["preamble_length"] = hw_config.get("preamble_length", 16)
config_yaml["radio"]["preamble_length"] = hw_config.get("preamble_length", 32)
elif hardware_key == "pymc_tcp":
# pymc_tcp modem: external SX1262 board exposed as TCP over Wi-Fi/Ethernet.
# 'host' has no sensible default — must be the modem's LAN address or
@@ -1267,7 +1267,7 @@ class APIEndpoints:
elif "tx_power" in hw_config:
config_yaml["radio"]["tx_power"] = hw_config.get("tx_power", 22)
if "preamble_length" in hw_config:
config_yaml["radio"]["preamble_length"] = hw_config.get("preamble_length", 16)
config_yaml["radio"]["preamble_length"] = hw_config.get("preamble_length", 32)
else:
# SX1262 / sx1262_ch341: radio_type and optional CH341 from hw_config
if "radio_type" in hw_config:
@@ -1293,7 +1293,7 @@ class APIEndpoints:
elif "tx_power" in hw_config:
config_yaml["radio"]["tx_power"] = hw_config.get("tx_power", 22)
if "preamble_length" in hw_config:
config_yaml["radio"]["preamble_length"] = hw_config.get("preamble_length", 17)
config_yaml["radio"]["preamble_length"] = hw_config.get("preamble_length", 32)
if "sx1262" not in config_yaml:
config_yaml["sx1262"] = {}