From 83fca697827b42a5a56ae7e15f8b7f593fbfe91d Mon Sep 17 00:00:00 2001 From: liquidraver <504870+liquidraver@users.noreply.github.com> Date: Fri, 24 Apr 2026 22:46:03 +0200 Subject: [PATCH] remove hardcoded max TX, set optional defaults instead --- .../esp32/heltec_wifi_lora32_v4/board.conf | 3 +- .../esp32/heltec_wifi_lora32_v43/board.conf | 3 +- zephcore/boards/esp32/station_g2/board.conf | 46 ++++++------ zephcore/boards/esp32/ttgo_lora32/board.conf | 73 +++++++++---------- .../nrf52840/promicro_sx1262/board.conf | 29 ++++---- 5 files changed, 74 insertions(+), 80 deletions(-) diff --git a/zephcore/boards/esp32/heltec_wifi_lora32_v4/board.conf b/zephcore/boards/esp32/heltec_wifi_lora32_v4/board.conf index a5618bd..c8d68c4 100644 --- a/zephcore/boards/esp32/heltec_wifi_lora32_v4/board.conf +++ b/zephcore/boards/esp32/heltec_wifi_lora32_v4/board.conf @@ -20,6 +20,5 @@ CONFIG_ZEPHCORE_SX126X_HELTEC_REG_PATCH=y # TX power — SX1262 input to GC1109 PA. # 10 dBm → ~22 dBm radiated output (GC1109 ~12 dB gain). -# Do not exceed 10 dBm into the PA to avoid compression. +# Driving >10 dBm into the PA compresses it; set as default but not capped. CONFIG_ZEPHCORE_DEFAULT_TX_POWER_DBM=10 -CONFIG_ZEPHCORE_MAX_TX_POWER_DBM=10 diff --git a/zephcore/boards/esp32/heltec_wifi_lora32_v43/board.conf b/zephcore/boards/esp32/heltec_wifi_lora32_v43/board.conf index 3c0cd6b..0725bd4 100644 --- a/zephcore/boards/esp32/heltec_wifi_lora32_v43/board.conf +++ b/zephcore/boards/esp32/heltec_wifi_lora32_v43/board.conf @@ -21,6 +21,5 @@ CONFIG_ZEPHCORE_SX126X_HELTEC_REG_PATCH=y # TX power — SX1262 input to KCT8103L PA. # 10 dBm → ~22 dBm radiated output (KCT8103L similar gain to GC1109). -# Do not exceed 10 dBm into the PA to avoid compression. +# Driving >10 dBm into the PA compresses it; set as default but not capped. CONFIG_ZEPHCORE_DEFAULT_TX_POWER_DBM=10 -CONFIG_ZEPHCORE_MAX_TX_POWER_DBM=10 diff --git a/zephcore/boards/esp32/station_g2/board.conf b/zephcore/boards/esp32/station_g2/board.conf index 17c593d..5001f03 100644 --- a/zephcore/boards/esp32/station_g2/board.conf +++ b/zephcore/boards/esp32/station_g2/board.conf @@ -1,24 +1,22 @@ -# SPDX-License-Identifier: Apache-2.0 -# BQ Station G2 — ZephCore board configuration -# -# Hardware: -# ESP32-S3 (16MB flash, 8MB PSRAM) -# SX1262 + PA on SPI2 (TX power 7 dBm → ~27 dBm with PA) -# SH1106 128x64 OLED on I2C0 -# GPS on UART1 -# User button on GPIO38 -# -# Include order: prj.conf → zephcore_common.conf → esp32_common.conf → board.conf - -# Board identification -CONFIG_ZEPHCORE_BOARD_NAME="Station G2" -CONFIG_BT_DIS_MODEL_NUMBER_STR="BQ Station G2" - -# TX power limits — Station G2 has ~20dB external PA. -# Default 15 dBm → ~35 dBm output (P1dB point). -# Cap at 19 dBm → ~39 dBm absolute max (matches Arduino MAX_LORA_TX_POWER). -CONFIG_ZEPHCORE_DEFAULT_TX_POWER_DBM=15 -CONFIG_ZEPHCORE_MAX_TX_POWER_DBM=19 - -# Flash size — 16MB (override Zephyr default) -CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y +# SPDX-License-Identifier: Apache-2.0 +# BQ Station G2 — ZephCore board configuration +# +# Hardware: +# ESP32-S3 (16MB flash, 8MB PSRAM) +# SX1262 + PA on SPI2 (TX power 7 dBm → ~27 dBm with PA) +# SH1106 128x64 OLED on I2C0 +# GPS on UART1 +# User button on GPIO38 +# +# Include order: prj.conf → zephcore_common.conf → esp32_common.conf → board.conf + +# Board identification +CONFIG_ZEPHCORE_BOARD_NAME="Station G2" +CONFIG_BT_DIS_MODEL_NUMBER_STR="BQ Station G2" + +# TX power — Station G2 has ~20dB external PA. +# Default 15 dBm → ~35 dBm output (P1dB point). Not capped — user can raise. +CONFIG_ZEPHCORE_DEFAULT_TX_POWER_DBM=15 + +# Flash size — 16MB (override Zephyr default) +CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y diff --git a/zephcore/boards/esp32/ttgo_lora32/board.conf b/zephcore/boards/esp32/ttgo_lora32/board.conf index 9f34566..417b157 100644 --- a/zephcore/boards/esp32/ttgo_lora32/board.conf +++ b/zephcore/boards/esp32/ttgo_lora32/board.conf @@ -1,37 +1,36 @@ -# TTGO LoRa32 — ESP32 + SX1276 -# -# Hardware: -# ESP32 (4MB flash) -# SX1276 on SPI3 -# SSD1306 128x64 OLED on I2C0 -# -# Include order: prj.conf → zephcore_common.conf → esp32_common.conf → board.conf - -# Board identification -CONFIG_ZEPHCORE_BOARD_NAME="TTGO LoRa32" -CONFIG_BT_DIS_MODEL_NUMBER_STR="TTGO LoRa32" - -# Radio: SX1276 via Zephyr loramac-node driver (not the native SX126x driver) -# zephcore_common.conf sets CONFIG_LORA_MODULE_BACKEND_NATIVE=y for SX126x boards. -# Override here: SX127x uses the loramac-node backend (classic LoRaMac-node library). -CONFIG_LORA_MODULE_BACKEND_NATIVE=n -CONFIG_LORA_MODULE_BACKEND_LORAMAC_NODE=y -CONFIG_ZEPHCORE_RADIO_SX127X=y - -# SX1276 PA_BOOST output: 17 dBm is the safe maximum without an external PA -CONFIG_ZEPHCORE_DEFAULT_TX_POWER_DBM=17 -CONFIG_ZEPHCORE_MAX_TX_POWER_DBM=17 - -# RX duty cycle is not supported by the loramac-node SX127x driver -# (lora_recv_duty_cycle returns -ENOSYS and gracefully falls back to -# lora_recv_async, but disable it to avoid the spurious attempt) -CONFIG_ZEPHCORE_LORA_RX_DUTY_CYCLE=n - -# Flash mode: ESP32-PICO-D4 (rev 1.0) — use DIO, not QIO. -# esp32_common.conf enables QIO for the ESP32-S3/C3/C6 boards in this repo. -# Classic ESP32 PICO-D4 rev 1.0 has an issue where bootloader_enable_qio_mode() -# polls the SPI flash WIP bit indefinitely; this hangs with no output after the -# chip-revision "Proceeding" message, the RTCWDT fires, and the board bootloops. -# DIO avoids the QIO-enable SPI sequence entirely and works reliably on PICO-D4. -CONFIG_ESPTOOLPY_FLASHMODE_QIO=n -CONFIG_ESPTOOLPY_FLASHMODE_DIO=y +# TTGO LoRa32 — ESP32 + SX1276 +# +# Hardware: +# ESP32 (4MB flash) +# SX1276 on SPI3 +# SSD1306 128x64 OLED on I2C0 +# +# Include order: prj.conf → zephcore_common.conf → esp32_common.conf → board.conf + +# Board identification +CONFIG_ZEPHCORE_BOARD_NAME="TTGO LoRa32" +CONFIG_BT_DIS_MODEL_NUMBER_STR="TTGO LoRa32" + +# Radio: SX1276 via Zephyr loramac-node driver (not the native SX126x driver) +# zephcore_common.conf sets CONFIG_LORA_MODULE_BACKEND_NATIVE=y for SX126x boards. +# Override here: SX127x uses the loramac-node backend (classic LoRaMac-node library). +CONFIG_LORA_MODULE_BACKEND_NATIVE=n +CONFIG_LORA_MODULE_BACKEND_LORAMAC_NODE=y +CONFIG_ZEPHCORE_RADIO_SX127X=y + +# SX1276 PA_BOOST output: 17 dBm is the safe maximum without an external PA +CONFIG_ZEPHCORE_DEFAULT_TX_POWER_DBM=17 + +# RX duty cycle is not supported by the loramac-node SX127x driver +# (lora_recv_duty_cycle returns -ENOSYS and gracefully falls back to +# lora_recv_async, but disable it to avoid the spurious attempt) +CONFIG_ZEPHCORE_LORA_RX_DUTY_CYCLE=n + +# Flash mode: ESP32-PICO-D4 (rev 1.0) — use DIO, not QIO. +# esp32_common.conf enables QIO for the ESP32-S3/C3/C6 boards in this repo. +# Classic ESP32 PICO-D4 rev 1.0 has an issue where bootloader_enable_qio_mode() +# polls the SPI flash WIP bit indefinitely; this hangs with no output after the +# chip-revision "Proceeding" message, the RTCWDT fires, and the board bootloops. +# DIO avoids the QIO-enable SPI sequence entirely and works reliably on PICO-D4. +CONFIG_ESPTOOLPY_FLASHMODE_QIO=n +CONFIG_ESPTOOLPY_FLASHMODE_DIO=y diff --git a/zephcore/boards/nrf52840/promicro_sx1262/board.conf b/zephcore/boards/nrf52840/promicro_sx1262/board.conf index acf4e77..f453a90 100644 --- a/zephcore/boards/nrf52840/promicro_sx1262/board.conf +++ b/zephcore/boards/nrf52840/promicro_sx1262/board.conf @@ -1,15 +1,14 @@ -# ProMicro SX1262 — nRF52840 SuperMini + Ebyte E22-900M30S -# SoftDevice v6 (S140 v6) — NiceNano/SuperMini bootloader uses S140 6.1.1 -# 0x00B6 = S140 v6 firmware ID; app partition starts at 0x26000 - -CONFIG_ZEPHCORE_BOARD_NAME="ProMicro SX1262" -CONFIG_BT_DIS_MODEL_NUMBER_STR="ProMicro SX1262 nRF52840-SX1262" -CONFIG_ZEPHCORE_SD_FWID=0x00B6 - -# Native Zephyr SX1262 driver (Ebyte E22-900M30S) -CONFIG_ZEPHCORE_RADIO_NATIVE=y - -# E22-900M30S has 30dB external PA — cap SX1262 output to 10 dBm -# to avoid PA damage on TX -CONFIG_ZEPHCORE_MAX_TX_POWER_DBM=10 -CONFIG_ZEPHCORE_DEFAULT_TX_POWER_DBM=10 +# ProMicro SX1262 — nRF52840 SuperMini + Ebyte E22-900M30S +# SoftDevice v6 (S140 v6) — NiceNano/SuperMini bootloader uses S140 6.1.1 +# 0x00B6 = S140 v6 firmware ID; app partition starts at 0x26000 + +CONFIG_ZEPHCORE_BOARD_NAME="ProMicro SX1262" +CONFIG_BT_DIS_MODEL_NUMBER_STR="ProMicro SX1262 nRF52840-SX1262" +CONFIG_ZEPHCORE_SD_FWID=0x00B6 + +# Native Zephyr SX1262 driver (Ebyte E22-900M30S) +CONFIG_ZEPHCORE_RADIO_NATIVE=y + +# E22-900M30S has 30dB external PA — default SX1262 output at 10 dBm +# to avoid PA damage on TX. Not capped — user can raise at their own risk. +CONFIG_ZEPHCORE_DEFAULT_TX_POWER_DBM=10