Add Heltec V4 R8 FEM LNA controls

This commit is contained in:
agessaman committed 2026-08-20 21:48:47 -07:00
1 parent 8fc0733299
commit 0cc6fdfea6
5 files changed
+29 -5

No files matched your search

+18
View File
@@ -84,3 +84,21 @@ const char* HeltecV4R8Board::getManufacturerName() const {
return "Heltec V4 R8 OLED";
#endif
}
bool HeltecV4R8Board::setLoRaFemLnaEnabled(bool enable) {
if (!loRaFEMControl.isLnaCanControl()) {
return false;
}
loRaFEMControl.setLNAEnable(enable);
loRaFEMControl.setRxModeEnable();
return true;
}
bool HeltecV4R8Board::canControlLoRaFemLna() const {
return loRaFEMControl.isLnaCanControl();
}
bool HeltecV4R8Board::isLoRaFemLnaEnabled() const {
return loRaFEMControl.isLNAEnabled();
}
+3
View File
@@ -25,6 +25,9 @@ public:
void onAfterTransmit(void) override;
void enterDeepSleep(uint32_t secs, int pin_wake_btn = -1);
void powerOff() override;
bool setLoRaFemLnaEnabled(bool enable) override;
bool canControlLoRaFemLna() const override;
bool isLoRaFemLnaEnabled() const override;
uint16_t getBattMilliVolts() override;
bool setAdcMultiplier(float multiplier) override {
if (multiplier == 0.0f) {
+1
View File
@@ -21,6 +21,7 @@ void LoRaFEMControl::init(void) {
digitalWrite(P_LORA_KCT8103L_PA_CSD, HIGH);
pinMode(P_LORA_KCT8103L_PA_CTX, OUTPUT);
digitalWrite(P_LORA_KCT8103L_PA_CTX, lna_enabled ? LOW : HIGH);
setLnaCanControl(true);
}
void LoRaFEMControl::setSleepModeEnable(void) {
+4 -2
View File
@@ -15,10 +15,12 @@ public:
void setRxModeEnable(void);
void setRxModeEnableWhenMCUSleep(void);
void setLNAEnable(bool enabled);
bool isLnaCanControl(void) { return true; }
void setLnaCanControl(bool can_control) { }
bool isLnaCanControl(void) const { return lna_can_control; }
void setLnaCanControl(bool can_control) { lna_can_control = can_control; }
bool isLNAEnabled(void) const { return lna_enabled; }
LoRaFEMType getFEMType(void) const { return KCT8103L_PA; }
private:
bool lna_enabled = false;
bool lna_can_control = false;
};
+3 -3
View File
@@ -17,9 +17,9 @@ build_flags =
-D P_LORA_SCLK=9
-D P_LORA_MISO=11
-D P_LORA_MOSI=10
-D P_LORA_PA_POWER=7
-D P_LORA_KCT8103L_PA_CSD=2
-D P_LORA_KCT8103L_PA_CTX=5
-D P_LORA_PA_POWER=7 ; VFEM_Ctrl - LDO power enable
-D P_LORA_KCT8103L_PA_CSD=2 ; FEM_EN / CSD (HIGH=on)
-D P_LORA_KCT8103L_PA_CTX=5 ; PA_CTX (LOW=RX LNA, HIGH=RX bypass)
-D P_LORA_TX_LED=46
-D PIN_USER_BTN=0
-D PIN_VEXT_EN=40