From 0e47bdf846ef23a7ca7b1601b855b08ee653aa38 Mon Sep 17 00:00:00 2001 From: Kevin Le Date: Fri, 14 Aug 2026 23:25:35 +0700 Subject: [PATCH] Hardcoded femon, femoff for v4 and T096 --- variants/heltec_t096/T096Board.cpp | 4 ++++ variants/heltec_t096/platformio.ini | 12 ++++++++++-- variants/heltec_v4/HeltecV4Board.cpp | 4 ++++ variants/heltec_v4/platformio.ini | 24 ++++++++++++++++++++++-- 4 files changed, 40 insertions(+), 4 deletions(-) diff --git a/variants/heltec_t096/T096Board.cpp b/variants/heltec_t096/T096Board.cpp index 78af529d6..af048e38a 100644 --- a/variants/heltec_t096/T096Board.cpp +++ b/variants/heltec_t096/T096Board.cpp @@ -122,6 +122,10 @@ const char* T096Board::getManufacturerName() const { } bool T096Board::setLoRaFemLnaEnabled(bool enable) { +#if defined(RADIO_FEM_RXGAIN) && (RADIO_FEM_RXGAIN == 0) + enable = false; +#endif + if (!loRaFEMControl.isLnaCanControl()) { return false; } diff --git a/variants/heltec_t096/platformio.ini b/variants/heltec_t096/platformio.ini index 02e883287..cb0a511f6 100644 --- a/variants/heltec_t096/platformio.ini +++ b/variants/heltec_t096/platformio.ini @@ -9,7 +9,7 @@ build_flags = ${nrf52_base.build_flags} -I variants/heltec_t096 -I src/helpers/ui -D HELTEC_T096 - -D NRF52_POWER_MANAGEMENT +; -D NRF52_POWER_MANAGEMENT -D P_LORA_DIO_1=21 -D P_LORA_NSS=5 -D P_LORA_RESET=16 @@ -69,6 +69,7 @@ build_flags = -D MAX_NEIGHBOURS=50 ; -D MESH_PACKET_LOGGING=1 ; -D MESH_DEBUG=1 +; -D POWERSAVING_DEBUG=1 [env:Heltec_t096_repeater_bridge_rs232] extends = Heltec_t096 @@ -120,7 +121,7 @@ build_src_filter = ${Heltec_t096.build_src_filter} lib_deps = ${Heltec_t096.lib_deps} -[env:Heltec_t096_companion_radio_ble] +[env:Heltec_t096_companion_radio_ble_femon] extends = Heltec_t096 board_build.ldscript = boards/nrf52840_s140_v6_extrafs.ld board_upload.maximum_size = 712704 @@ -135,6 +136,7 @@ build_flags = -D OFFLINE_QUEUE_SIZE=256 ; -D MESH_PACKET_LOGGING=1 ; -D MESH_DEBUG=1 +; -D POWERSAVING_DEBUG=1 build_src_filter = ${Heltec_t096.build_src_filter} + +<../examples/companion_radio/*.cpp> @@ -143,6 +145,12 @@ lib_deps = ${Heltec_t096.lib_deps} densaugeo/base64 @ ~1.4.0 +[env:Heltec_t096_companion_radio_ble_femoff] +extends = env:Heltec_t096_companion_radio_ble_femon +build_flags = + ${env:Heltec_t096_companion_radio_ble_femon.build_flags} + -D RADIO_FEM_RXGAIN=0 ; undefined (default on), 1=on, 0=off + [env:Heltec_t096_companion_radio_usb] extends = Heltec_t096 board_build.ldscript = boards/nrf52840_s140_v6_extrafs.ld diff --git a/variants/heltec_v4/HeltecV4Board.cpp b/variants/heltec_v4/HeltecV4Board.cpp index 3f13f41f6..ba3a7f1c3 100644 --- a/variants/heltec_v4/HeltecV4Board.cpp +++ b/variants/heltec_v4/HeltecV4Board.cpp @@ -64,6 +64,10 @@ void HeltecV4Board::begin() { } bool HeltecV4Board::setLoRaFemLnaEnabled(bool enable) { +#if defined(RADIO_FEM_RXGAIN) && (RADIO_FEM_RXGAIN == 0) + enable = false; +#endif + if (!loRaFEMControl.isLnaCanControl()) { return false; } diff --git a/variants/heltec_v4/platformio.ini b/variants/heltec_v4/platformio.ini index d718c006c..c2c483032 100644 --- a/variants/heltec_v4/platformio.ini +++ b/variants/heltec_v4/platformio.ini @@ -179,7 +179,7 @@ lib_deps = ${heltec_v4_oled.lib_deps} densaugeo/base64 @ ~1.4.0 -[env:heltec_v4_companion_radio_usb] +[env:heltec_v4_companion_radio_usb_femon] extends = heltec_v4_oled build_flags = ${heltec_v4_oled.build_flags} @@ -199,7 +199,13 @@ lib_deps = ${heltec_v4_oled.lib_deps} densaugeo/base64 @ ~1.4.0 -[env:heltec_v4_companion_radio_ble] +[env:heltec_v4_companion_radio_usb_femoff] +extends = env:heltec_v4_companion_radio_usb_femon +build_flags = + ${env:heltec_v4_companion_radio_usb_femon.build_flags} + -D RADIO_FEM_RXGAIN=0 ; undefined (default on), 1=on, 0=off + +[env:heltec_v4_companion_radio_ble_femon] extends = heltec_v4_oled build_flags = ${heltec_v4_oled.build_flags} @@ -223,6 +229,12 @@ lib_deps = ${heltec_v4_oled.lib_deps} densaugeo/base64 @ ~1.4.0 +[env:heltec_v4_3_companion_radio_ble_femoff] +extends = env:heltec_v4_companion_radio_ble_femon +build_flags = + ${env:heltec_v4_companion_radio_ble_femon.build_flags} + -D RADIO_FEM_RXGAIN=0 ; undefined (default on), 1=on, 0=off + [env:heltec_v4_companion_radio_wifi] extends = heltec_v4_oled build_flags = @@ -388,6 +400,14 @@ lib_deps = ${heltec_v4_tft.lib_deps} densaugeo/base64 @ ~1.4.0 +[env:heltec_v4_expansionkit_tft_companion_radio_ble] +extends = env:heltec_v4_tft_companion_radio_ble +platform_packages = framework-arduinoespressif32 @ symlink://D:/esp32-2.0.17 +build_flags = + ${env:heltec_v4_tft_companion_radio_ble.build_flags} + -D ENV_PIN_SDA=4 + -D ENV_PIN_SCL=3 + [env:heltec_v4_tft_companion_radio_wifi] extends = heltec_v4_tft build_flags =