Skip to content

Commit 2736011

Browse files
committed
Apply same fix for Heltec tracker v2
1 parent 044505d commit 2736011

File tree

2 files changed

+21
-8
lines changed

2 files changed

+21
-8
lines changed

variants/heltec_tracker_v2/HeltecTrackerV2Board.cpp

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,23 @@ void HeltecTrackerV2Board::begin() {
66
pinMode(PIN_ADC_CTRL, OUTPUT);
77
digitalWrite(PIN_ADC_CTRL, LOW); // Initially inactive
88

9+
// ---- GC1109 RF FRONT END CONFIGURATION ----
10+
// The Heltec Tracker V2 uses a GC1109 FEM chip with integrated PA and LNA
11+
// RF switch control: PA_TX_EN LOW = RX path (LNA), HIGH = TX path (PA)
12+
13+
// PA_POWER: Power enable for GC1109 chip (always on)
914
pinMode(P_LORA_PA_POWER, OUTPUT);
10-
digitalWrite(P_LORA_PA_POWER,HIGH);
15+
digitalWrite(P_LORA_PA_POWER, HIGH);
1116

17+
// PA_EN: Main enable for GC1109 (must be HIGH for both RX and TX)
1218
rtc_gpio_hold_dis((gpio_num_t)P_LORA_PA_EN);
1319
pinMode(P_LORA_PA_EN, OUTPUT);
14-
digitalWrite(P_LORA_PA_EN,HIGH);
20+
digitalWrite(P_LORA_PA_EN, HIGH);
21+
22+
// PA_TX_EN: RF switch control (LOW=RX/LNA, HIGH=TX/PA)
1523
pinMode(P_LORA_PA_TX_EN, OUTPUT);
16-
digitalWrite(P_LORA_PA_TX_EN,LOW);
24+
digitalWrite(P_LORA_PA_TX_EN, LOW); // Default to RX mode
25+
// -------------------------------------------
1726

1827
periph_power.begin();
1928

@@ -30,13 +39,13 @@ void HeltecTrackerV2Board::begin() {
3039
}
3140

3241
void HeltecTrackerV2Board::onBeforeTransmit(void) {
33-
digitalWrite(P_LORA_TX_LED, HIGH); // turn TX LED on
34-
digitalWrite(P_LORA_PA_TX_EN,HIGH);
42+
digitalWrite(P_LORA_TX_LED, HIGH); // Turn TX LED on
43+
digitalWrite(P_LORA_PA_TX_EN, HIGH); // Switch to TX path (PA)
3544
}
3645

3746
void HeltecTrackerV2Board::onAfterTransmit(void) {
38-
digitalWrite(P_LORA_TX_LED, LOW); // turn TX LED off
39-
digitalWrite(P_LORA_PA_TX_EN,LOW);
47+
digitalWrite(P_LORA_PA_TX_EN, LOW); // Switch back to RX path (LNA)
48+
digitalWrite(P_LORA_TX_LED, LOW); // Turn TX LED off
4049
}
4150

4251
void HeltecTrackerV2Board::enterDeepSleep(uint32_t secs, int pin_wake_btn) {
@@ -48,7 +57,9 @@ void HeltecTrackerV2Board::begin() {
4857

4958
rtc_gpio_hold_en((gpio_num_t)P_LORA_NSS);
5059

51-
rtc_gpio_hold_en((gpio_num_t)P_LORA_PA_EN); //It also needs to be enabled in receive mode
60+
// Hold GC1109 FEM pins during sleep (PA_EN=HIGH, PA_TX_EN=LOW for RX mode)
61+
rtc_gpio_hold_en((gpio_num_t)P_LORA_PA_EN);
62+
rtc_gpio_hold_en((gpio_num_t)P_LORA_PA_TX_EN);
5263

5364
if (pin_wake_btn < 0) {
5465
esp_sleep_enable_ext1_wakeup( (1L << P_LORA_DIO_1), ESP_EXT1_WAKEUP_ANY_HIGH); // wake up on: recv LoRa packet

variants/heltec_tracker_v2/platformio.ini

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ build_flags =
2626
-D SX126X_DIO3_TCXO_VOLTAGE=1.8
2727
-D SX126X_CURRENT_LIMIT=140
2828
-D SX126X_RX_BOOSTED_GAIN=1
29+
-D SX126X_RXEN=RADIOLIB_NC ; No separate RX enable pin
30+
-D SX126X_TXEN=46 ; TX enable pin (P_LORA_PA_TX_EN) controls RF switch
2931
-D PIN_BOARD_SDA=5
3032
-D PIN_BOARD_SCL=6
3133
-D PIN_USER_BTN=0

0 commit comments

Comments
 (0)