Skip to content

add heltec v4.3 board#1867

Merged
ripplebiz merged 11 commits intomeshcore-dev:devfrom
Quency-D:dev-heltec-v4.3
Mar 20, 2026
Merged

add heltec v4.3 board#1867
ripplebiz merged 11 commits intomeshcore-dev:devfrom
Quency-D:dev-heltec-v4.3

Conversation

@Quency-D
Copy link
Contributor

  1. This is the schematic diagram for v4.3.
  2. The main difference between v4.2 and v4.3 is the different fem and the different control pins of the fem.
  3. You can identify whether it is v4.2 or v4.3 by the default pull-up and pull-down resistors of GPIO2.
  4. The fem control code is centralized into a single file.

@Quency-D
Copy link
Contributor Author

Hi @weebl2000, I've tested and organized it, and I still think it's simpler to separate the fem control into a separate file. Do you have any other suggestions?

@weebl2000
Copy link
Contributor

Hi @weebl2000, I've tested and organized it, and I still think it's simpler to separate the fem control into a separate file. Do you have any other suggestions?

Make sure the FEM keeps power when it's enabled and the ESP32 is sleeping. See also PR #1600, it's not merged to dev yet.

Other than that go for it. Let me know if I can help out reviewing!

@Quency-D
Copy link
Contributor Author

Make sure the FEM keeps power when it's enabled and the ESP32 is sleeping. See also PR #1600, it's not merged to dev yet.

Other than that go for it. Let me know if I can help out reviewing!

Thanks for the reminder, I've added this feature.

void LoRaFEMControl::setRxModeEnableWhenMCUSleep(void)
{
    digitalWrite(P_LORA_PA_POWER, HIGH);
    rtc_gpio_hold_en((gpio_num_t)P_LORA_PA_POWER);
    if(fem_type==GC1109_PA) {
        digitalWrite(P_LORA_GC1109_PA_EN, HIGH);
        rtc_gpio_hold_en((gpio_num_t)P_LORA_GC1109_PA_EN);
        gpio_pulldown_en((gpio_num_t)P_LORA_GC1109_PA_TX_EN);
    } else if(fem_type==KCT8103L_PA) {
        digitalWrite(P_LORA_KCT8103L_PA_CSD, HIGH);
        rtc_gpio_hold_en((gpio_num_t)P_LORA_KCT8103L_PA_CSD);
        if(lna_enabled) {
            digitalWrite(P_LORA_KCT8103L_PA_CTX, LOW);
        } else {
            digitalWrite(P_LORA_KCT8103L_PA_CTX, HIGH);
        }
        rtc_gpio_hold_en((gpio_num_t)P_LORA_KCT8103L_PA_CTX);
    }
}

Copy link
Contributor

@weebl2000 weebl2000 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Regression Review vs #1857 and #1600

This PR adds V4.3 (KCT8103L) support via a LoRaFEMControl abstraction — nice idea to centralize FEM control. However, it regresses several critical behaviors established by #1857 and #1600. Details in the inline comments below.

Summary

# Issue Severity Regression vs
1 KCT8103L stuck in TX mode during RX (no LNA) CRITICAL #1857
2 rtc_gpio_hold_dis before pinMode causes glitch on deep sleep wake HIGH #1600
3 Unconditional 1ms delay (includes deep sleep wake) MEDIUM #1600
4 Blanket hold release for all pins regardless of FEM type LOW #1857

Copy link
Contributor

@weebl2000 weebl2000 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested fixes for the issues identified above.

Copy link
Contributor

@weebl2000 weebl2000 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Additional suggestions (header default + deep sleep path).

@weebl2000
Copy link
Contributor

The pin holding isn't correct when sleeping. Other than that I highly suggest to always have LNA enabled by default. It should only be disabled if it's causing issues and AGC reset (see PR #1743) doesn't fix it.

Quency-D and others added 3 commits March 3, 2026 17:06
Co-authored-by: Wessel <wessel@weebl.me>
Co-authored-by: Wessel <wessel@weebl.me>
Co-authored-by: Wessel <wessel@weebl.me>
@Quency-D
Copy link
Contributor Author

Quency-D commented Mar 3, 2026

Additional suggestions (header default + deep sleep path).

Could you elaborate a bit more? I didn't understand what you meant.

@AI7NC
Copy link
Contributor

AI7NC commented Mar 6, 2026

The pin holding isn't correct when sleeping. Other than that I highly suggest to always have LNA enabled by default. It should only be disabled if it's causing issues and AGC reset (see PR #1743) doesn't fix it.

So long as the user has the ability to disable the LNA in the settings. That's the primary benefit to this new variant of the v4.

@towerviewcams

@towerviewcams
Copy link

So long as the user has the ability to disable the LNA in the settings. That's the primary benefit to this new variant of the v4.

@towerviewcams

Not totally true, if you look at the release notes they have improved the ADC power systems for standby efficiency. improved reverse polarity bla bla and the KCT8103L has a better noise figure then the GC1109 did. It remains to be seen on all this, but, as you stated the LNA control alone makes this huge and turn key for less tech folks. Hopefully however there is more benefit. even just a couple of mA would be huge. fingers crossed

@IoTThinks
Copy link
Contributor

@towerviewcams Have you had the new Heltec v4.3 on hand yet?

@AI7NC
Copy link
Contributor

AI7NC commented Mar 13, 2026 via email

@da808fokai
Copy link

Did we incorporate or identify what's needed to switch the LNA on/off yet? Have a few 4.3 boards and keeping the LNA on at my location is a non-starter for testing from my initial test. It was the same way for the 4.2 at my location (had to bypass LNA and it performed well).

Happy to test anything that comes down the pipeline though. Thanks!

@IoTThinks
Copy link
Contributor

IoTThinks commented Mar 18, 2026

@towerviewcams What is the board at the red arrow?
There is already low discharge protection board at the green arrow.

It is another low discharge protection board or a buck/boost board?

image

@ripplebiz ripplebiz merged commit 7fa7ac2 into meshcore-dev:dev Mar 20, 2026
9 checks passed
@agdphd agdphd mentioned this pull request Mar 20, 2026
@IoTThinks
Copy link
Contributor

Did we incorporate or identify what's needed to switch the LNA on/off yet?

@da808fokai To disable LNA, I guess you can put loRaFEMControl.setLNAEnable(false); before loRaFEMControl.init()
in this file https://github.com/meshcore-dev/MeshCore/pull/1867/changes#diff-ecf037de11d4b912f86ddf1c3971134697acc944b5d62b3509ff708ec9761846R10

@theinfguy
Copy link

What is the suggested setting for TX power now that we have 4.3 FW support?

Still 22 max then the amp does the rest? Or does the FW expect a different value for max output?

Also has there been any changes to the noise floor calculation or is this reading the amplified RX value which will of course be the noise as well?

Lastly, I see some comments about the LNA being switchable? Is this available via CLI or UI and is it enabled by default?

@towerviewcams
Copy link

Still 22 max then the amp does the rest? Or does the FW expect a different value for max output?

We run our older V4 (4.2) boards at "set tx 17" after that your power amp only gains .5 db and is in complete saturation and current draw almost doubles. no good. wasting some much solar power

the new 4.3 board is the same. I have 8 of the new boards and have tested 5 of them. tx 17 is best power and just right at the line of saturation and lowest current draw

@da808fokai
Copy link

Did we incorporate or identify what's needed to switch the LNA on/off yet?

@da808fokai To disable LNA, I guess you can put loRaFEMControl.setLNAEnable(false); before loRaFEMControl.init() in this file https://github.com/meshcore-dev/MeshCore/pull/1867/changes#diff-ecf037de11d4b912f86ddf1c3971134697acc944b5d62b3509ff708ec9761846R10

Appreciate your work first of all! Think I'll wait until we can get it switchable in the CLI. I've had to take two boards in the past with v4.2 to determine what works best at the location. Was hoping to avoid this with 4.3 along with some of the other hopeful improvements. Thanks!

@towerviewcams
Copy link

Did we incorporate or identify what's needed to switch the LNA on/off yet?

@da808fokai To disable LNA, I guess you can put loRaFEMControl.setLNAEnable(false); before loRaFEMControl.init() in this file https://github.com/meshcore-dev/MeshCore/pull/1867/changes#diff-ecf037de11d4b912f86ddf1c3971134697acc944b5d62b3509ff708ec9761846R10

Appreciate your work first of all! Think I'll wait until we can get it switchable in the CLI. I've had to take two boards in the past with v4.2 to determine what works best at the location. Was hoping to avoid this with 4.3 along with some of the other hopeful improvements. Thanks!

Thats what I do now. one has LNA jump wire to bypass on the 4.2 board and the second is stock. Both get programed the exact same and leave one.....

@da808fokai
Copy link

da808fokai commented Mar 21, 2026

Did we incorporate or identify what's needed to switch the LNA on/off yet?

@da808fokai To disable LNA, I guess you can put loRaFEMControl.setLNAEnable(false); before loRaFEMControl.init() in this file https://github.com/meshcore-dev/MeshCore/pull/1867/changes#diff-ecf037de11d4b912f86ddf1c3971134697acc944b5d62b3509ff708ec9761846R10

Appreciate your work first of all! Think I'll wait until we can get it switchable in the CLI. I've had to take two boards in the past with v4.2 to determine what works best at the location. Was hoping to avoid this with 4.3 along with some of the other hopeful improvements. Thanks!

Thats what I do now. one has LNA jump wire to bypass on the 4.2 board and the second is stock. Both get programed the exact same and leave one.....

It would be dreamy to just CLI it off rather than retreive it from 50' up in a tree and swap boards. :) I really just need to find a new tree for this repeater away from the powerline crackle that's making it deaf. Although the powerline cut makes the lack of trees to the south work nicely for solar... Trade-off's...

Maybe I should take my ultrasonic dish on a hike and pinpoint the noise and report it to the power company. They'd probably tell me to go pound sand though...

@AI7NC
Copy link
Contributor

AI7NC commented Mar 21, 2026 via email

@da808fokai
Copy link

da808fokai commented Mar 21, 2026

I haven't, but don't really want to tote that gear on a hike straight uphill. It's in the middle of a forest with no cell towers/homes anywhere nearby. A bad arching electrical HV connection can make noise on a broad spectrum, but my experience at 900mhz is pretty limited to mesh. The arching crackle to my ears is roughly on a pole 50' away at same elevation as my repeater.

Bandpass arrives today. It was on my list of to-do when I go up there next for testing. Was waiting on 1.14.1 as well. It used to be a v4 up there, but switched it to a rak currently and still have -101dB average noise floor with -95dB peaks. Horrible for a rak 4641. Sorry to clutter this thread, it's not a rak discussion. But I had hoped to take a 4.3 up there eventually.

@AI7NC
Copy link
Contributor

AI7NC commented Mar 21, 2026 via email

@towerviewcams
Copy link

I haven't, but don't really want to tote that gear on a hike straight uphill. It's in the middle of a forest with no cell towers/homes anywhere nearby. A bad arching electrical HV connection can make noise on a broad spectrum, but my experience at 900mhz is pretty limited to mesh. The arching crackle to my ears is roughly on a pole 50' away at same elevation as my repeater.

Bandpass arrives today. It was on my list of to-do when I go up there next for testing. Was waiting on 1.14.1 as well. It used to be a v4 up there, but switched it to a rak currently and still have -101dB average noise floor with -95dB peaks. Horrible for a rak 4641. Sorry to clutter this thread, it's not a rak discussion. But I had hoped to take a 4.3 up there eventually.

I have learned the hard way!

never install a V4 any ware without a filter. not even in the forest miles from anything. The 17db LNA receiver amplifiers can hear a mouse fart and you will have degraded performance.

Major key things to have-
Filter - JMT on amazon is amazing (always sweep them to verify)
Tape your board up and then wrap in tin foil - you'll thank me
Antenna, make sure to tune your antenna system. all the way though your filter. get your match down to 1.1 swr or better.

@da808fokai
Copy link

Yeah, it's noisier up there than both the same boards v4 and rak anywhere at the 4 repeaters I look after in the neighborhood. They are always burrito wrapped and antennas always tuned. Last step is trying the filter on the rak. If that doesn't cut it then it'll just have to move it.

73!

@AI7NC
Copy link
Contributor

AI7NC commented Mar 21, 2026 via email

@da808fokai
Copy link

Not even close to it's location

@theinfguy
Copy link

theinfguy commented Mar 22, 2026

Ive just seen something strange with my v4.3... Changed the radio to SF10 and it become unreachable, even after a button reset. Repeater FW.

@theinfguy
Copy link

Can anyone confirm whether these changes get built into the repeater firmware? I was failing to reach nearby repeaters when I had flashed the repeater firmware to my 4.3. However this morning I flashed companion, put it up on a pole with 1 meter LESS height and I immediately hit 2 repeaters.

@Quency-D
Copy link
Contributor Author

Can anyone confirm whether these changes get built into the repeater firmware? I was failing to reach nearby repeaters when I had flashed the repeater firmware to my 4.3. However this morning I flashed companion, put it up on a pole with 1 meter LESS height and I immediately hit 2 repeaters.

Could you please tell me which version you burned? Because this commit was just merged, earlier versions cannot run correctly.

@theinfguy
Copy link

Can anyone confirm whether these changes get built into the repeater firmware? I was failing to reach nearby repeaters when I had flashed the repeater firmware to my 4.3. However this morning I flashed companion, put it up on a pole with 1 meter LESS height and I immediately hit 2 repeaters.

Could you please tell me which version you burned? Because this commit was just merged, earlier versions cannot run correctly.

Nightly from the dev branch. Saturday morning, so 48 hours ago I tried the repeater FW, 24 hours ago changed to a nightly companion ble.

@Quency-D
Copy link
Contributor Author

Nightly from the dev branch. Saturday morning, so 48 hours ago I tried the repeater FW, 24 hours ago changed to a nightly companion ble.

I just tried it and it works. You can try erasing the flash memory globally and then re-downloading the firmware.

@towerviewcams
Copy link

Nightly from the dev branch. Saturday morning, so 48 hours ago I tried the repeater FW, 24 hours ago changed to a nightly companion ble.

I just tried it and it works. You can try erasing the flash memory globally and then re-downloading the firmware.

@Quency-D did you see my test of the LNA bypass and that it was successful and power draw with the older powersaving is only 5.8mA? I have open a new request PR issue # 2128 and tagged you sir.

not only does the bypass work, but, it also removed power from the LNA / PA chip. so TX power is reduced to +23.48.......not the end of the world if we cant keep the PA powered for +27tx. but its working and receiver sensitivity is great

@Quency-D
Copy link
Contributor Author

Nightly from the dev branch. Saturday morning, so 48 hours ago I tried the repeater FW, 24 hours ago changed to a nightly companion ble.

I just tried it and it works. You can try erasing the flash memory globally and then re-downloading the firmware.

@Quency-D did you see my test of the LNA bypass and that it was successful and power draw with the older powersaving is only 5.8mA? I have open a new request PR issue # 2128 and tagged you sir.

not only does the bypass work, but, it also removed power from the LNA / PA chip. so TX power is reduced to +23.48.......not the end of the world if we cant keep the PA powered for +27tx. but its working and receiver sensitivity is great

Yes, I saw it. It was a really great experiment.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants