-
Notifications
You must be signed in to change notification settings - Fork 428
Improve Heltec v4 RX reception with undocumented register patch #1398
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: dev
Are you sure you want to change the base?
Conversation
|
UPDATE (2026-01-22) - Repeater builds: heltec_v4_repeater-1.11.0-pr1398-builds2.zip pr1398-boost_on - Standard build without any extra flags (Boosted Gain on) ==== [OLD BUILDS] Repeater builds for testing: pr1398 - Standard build - without any extra flags |
|
@Socalix thanks for this spinoff. It would get more traction if you embed the table from your last post in the other PR with the results. Would you do me a favor for the letsmesh MQTT output the debugging should be off to keep my RS232 stable. Could you build a set with this flag only? I love to test the files. Build firmware with the -D MESH_PACKET_LOGGING=1 flag enabled using PLATFORMIO_BUILD_FLAGS. PS: I have a cavity I could test with the RX boosted gain also. But not want to mesh up your PR. Let me know. |
|
I guess that this patch can also be applied to the Heltec Tracker v2. |
See also this branch: https://github.com/weebl2000/MeshCore/tree/semtech_patch - I've added it for Heltec Tracker v2 there. I'm not sure about the boosted gain=0. For me it seems boosted gain still improves reception. |
Good idea. PR summary updated with testing information.
Updated the zip file above with a new "pr1398-packetlog" and "pr1398-boost-packetlog" builds. |
Yes, you can simply add |
Thanks my second V4 arrived today going to test on the similar antennas. |
|
Thanks for this fix! I've been tying to get my v4 node connected to the area mesh, and though I could TX fine (packets seen on analyze.letsmesh.net), I rarely was getting responses. Tried 5 different antennas. This branches firmware seemed to have solved all the issues for me. |
@spiralshapeturtle Thank you for testing! Yep, I'm "lucky" to be the only one running Meshcore around me.. :)
Looks like the one without the RX Boosted Gain has around 3db lower noise floor, which could translate to 2% more lower-signal packets getting picked up. Of course can also be antenna and location related, so switching things around will be interesting. Since you have 6% TX, I wonder if having both repeaters running next to each other at the same time means that we're seeing them helping each other get more packets? i.e. only one repeater hears the original packet and the other repeater hears the packet from the first one repeating it, so the RX % will be similar. |
|
@Socalix test without TX mode. Firmware: 1.11.0-pr1398-boost-packetlog-4575800 (Build: 15-Jan-2026) Well I have run them without TX for a while and I put the SNR/RSSI values into claude.ai. Below the summary which I can reuse upcoming week after swapping the pigtails today. Im only swapping the IPX connector on the boards and keep everything the same. As stated earlier I have to different antennas so that could still be a factor to mitigate by swapping the connectors. WARNING below is an AI generated summary. |
|
Here is a big question and I'm hoping someone can help. How can we use this running Powersaving10 firmware so that we can turn off the LNA pre-amp at noisy tower sites. This would be a game changer. But we cant use the standard 1.11 firm as it draws to much power. suggestions ? 1/19/2026 update - its there already...... "powersaving on" and your set |
These tests are great! The difference of 20% RX with Boosted Gain and 25% without boost I believe confirms that TX enabled in the prior test let the repeaters "help" each other hear packets, so definitely TX disabled is the right way to test. Also 5% difference by itself may not sound much, but it's 25% better RX over the one with boosted gain. I also agree with the AI summary as it matches my previous tests - boosted gain is reducing the node's ability to hear some packets and causes the SNR overall to be lower. After you complete the test with flipped antennas, it would be great if you don't mind running one more test - pr1398-packetlog vs standard v1.11.0 so that we can see the RX difference there. |
This PR fix includes 2 things:
|
I have the test equipment to test this but my knowledge on how to modify the code is where Iack. Is this a command line entry? what do i download and how how do I bring it up and I'll find the rest. So I have the powersaving10 file and what to do from there? |
I don't know how it works with the file and coding, but I can tell you that on my V4 I can use the "powersaving on|off" command. So it might come with the nightly builds where the power saving is already included for the v1.12.0 release. Just type "powersaving on" For the record my tests are done without powersaving enabled. |
|
Hello guys, I was doing some tests on #1249 and while i was on it I also tried this PR. Here is a crosspost from the findings Hello guys Stock firmware: Reference: 296 messages, V4 received: 284, loss: 4 % |
|
@Socalix I only swapped the antenna IPX connector and now 24 hours later the result is as follow. AI summarized the data.
Firmware: 1.11.0-pr1398-boost-packetlog-4575800 (Build: 15-Jan-2026)
Firmware: 1.11.0-pr1398-packetlog-4575800 (Build: 15-Jan-2026)
PA5B Houten repeater is quite far away from me and that seems to be the differentiator, more on that at the bottom. I asked AI again about the far away repeater, arround 2 PM I changed the antenna cable where you can see the load rising and lowering, so the antenna with the tape label is better. Yesterday the (better) antenna with the tape label was on this node: This 24hours I swaped the (better) tape labeled antenna to this node
|
|
@spiralshapeturtle Can you also clarify which changes the boost-packetlog and packetlog firmwares contain? boost-packetlog -> is this boosted_gain=0 and the register fix? |
#1398 (comment) i just copied this, the only thing I know. |
packetlog = this PR which means register patch and NO boosted gain flag turned on. |
Thanks for testing! This is an interesting test and results. What antennas are you using on these nodes? |
I think the AI summary is a bit confusing today, but if I understand the letsmesh graphs correctly - what we see today is that antenna choice has a bigger impact on RX % than boosted gain flag. We still see the same 20% RX vs 25% RX on the same antennas regardless of the boosted gain. Correct? |
Antenna is: https://www.laskakit.cz/nicerf-sw868-zd210-antena-3dbi-21cm-868mhz/ ( on both nodes ) Also for the additional tests: |
Correct! The packet increase is related to the better antenna. But the interesting part is this see the distance table. Edit: can copy it on mobile will do tonight. Antenna Swap Test Results - Yesterday vs TodayTest Configuration
Better antenna = Original antenna without tape Complete Node Detection & Performance ComparisonUtrecht Node (~13.6 km)
Key Finding: Both firmwares show significant performance degradation with standard antenna Radome West Node (~4.0 km)
Key Finding: Anomaly - boost-packetlog improved with standard antenna (likely temporal variation) PA5B Houten Repeater (7.25 km)
Key Finding: Only packetlog firmware detects this repeater, regardless of antenna Zeist Slot (0.91 km) - Local Node
Key Finding: Only boost-packetlog detects this local node loramesh.nl (8.02 km)
Key Finding: Only boost-packetlog detects this node Zeist Sanatoriumbos (2.66 km) - Problem Node
Key Finding: Node has become unreachable for both setups today Summary StatisticsNode Reach Comparison
Performance Changes After Antenna SwapV4_2 (boost-packetlog): Better → Standard Antenna
Net Result: +2 nodes, -1 node, mixed performance V4 (packetlog): Standard → Better Antenna
Net Result: No new nodes, significant score decreases Critical Observations1. Antenna Performance is ComplexThe "better antenna" shows:
2. Firmware Dominates Results
3. Temporal Variations Matter
V4 (packetlog) with Better antenna achieved the highest single score (902) and best SNR (6dB), making it the optimal choice for long-range mesh networking. boost-packetlog excels at discovering local nodes but benefits less from the better antenna, suggesting its signal processing is optimized differently. |
|
@Socalix which one should I flash with the regular firmware? |
Yes did that! So packetlog v.s. standard is running now, where standard is on the better antenna and should get the same percentage RX. |
|
Just tested both the PR1398 packetlog and the PR1398 Boost Packetlog and both support Powersaving! This is amazing - I did not see this mentioned! it works! To confirm, the PR1398-packetlog has the LNA (17db pre amp) DISABLED. Is this correct? |
Awesome. We're just trying to figure out what is the optimal configuration - with or without Boosted Gain, so having 2 nodes next to each other and comparing RX like you did sounds great. |
I just checked on it. It seems that the Powersaving PR was merged to the dev branch a month ago, so it was not in the v1.11.0 firmware, but it's included here because PRs are branched from dev.
Both build have the register patch. The "PR1398-packetlog" also has the "RX_BOOSTED_GAIN" flag turned off. I am not sure if/how this is changing the LNA. My understanding is that it's SX1262 flag only. This is from Semtech documentation: |
|
Just for reference, we all have read this post right? https://wiki.heltec.org/news/v4-receive-sensitivity/v4-receive-sensitivity @Socalix I think we have a winner: boost-packetlog Today with stock firmware, check the score drops! Firmware: 1.11.0-pr1398-packetlog-4575800 (Build: 15-Jan-2026) does the V4 got different hardware revisions? My board got the text: HTIT-WB32LAF V4.2. With this regular letsmesh stock firmware without any RX optimizations, without cavity the results of processes packets are the same as with the boosted-packetlog from yesterday? The focus should be on the packets with SNR and RSSI. 1.11.0-letsmesh.net-6d32193 (Build: 30-Nov-2025) (with the better antenna) Still the normal 25% datapackets. Complete Test Data - All MeasurementsTest 1: (Initial Baseline)V4_2 - boost-packetlog-4575800 + Better AntennaUtrecht (13.69 km)
Radome West (4.06 km)
Zeist Sanatoriumbos (2.66 km)
V4 - packetlog-4575800 + Standard AntennaUtrecht (13.64 km)
Repeater PA5B Houten (7.25 km)
Radome West (3.93 km)
Zeist Sanatoriumbos (2.62 km)
Test 2: After Antenna SwapV4_2 - boost-packetlog-4575800 + Standard AntennaUtrecht (13.69 km)
Radome West (4.06 km)
Zeist Slot (0.91 km)
loramesh.nl (8.02 km)
Zeist Sanatoriumbos (2.66 km)
V4 - packetlog-4575800 + Better AntennaUtrecht (13.64 km)
Repeater PA5B Houten (7.25 km)
Radome West (3.93 km)
Zeist Sanatoriumbos (2.62 km)
Test 3: Stock Firmware TestV4_3 - Stock v1.11.0 + Better AntennaUtrecht (13.69 km)
Repeater PA5B Houten (7.27 km)
loramesh.nl (8.02 km)
Radome West (4.06 km)
Zeist Slot (0.90 km)
V4 - packetlog-4575800 + Standard Antenna (Same as Yesterday)Utrecht (13.64 km)
Repeater PA5B Houten (7.25 km)
Radome West (3.93 km)
Zeist Sanatoriumbos (2.62 km)
Configuration Summary
If I summarize this: Firmware Performance Comparison Summary
Key Findings
|
|
@Quency-D goodmorning, what is your opinion for the results? And we know that this PR works, how do we get this into v 1.12.0? What is Heltecs advice regarding the boost on / off ? In my results it seems that the boost version is performing better? |
As per your comment here: #1398 (comment) Soo, I have run the tests, same antenna, altough bent in the elbow in both nodes ( not sure it it matters on this model, the active elements seem to be in the antenna body and there is a coax visible in the elbow ). Both Heltec v4, Both in a client role. The NORXGAIN v4 reported a noise floor of about -65 to -69 I have also shuffeled the v4's to be sure that there is no" with a better reception hw" ( i.e different batch, diferent revision, whatever ) but I can conclude that the results are software dependent as now the "better" node from my previous tests performed worse and vice versa. the results are WITHRXGAIN : 548 msg Soo, well. I guess this is somewhat a wrench thrown in the finding of you guys, but yeah. My use case is radically different than yours ( client vs repeater ), and my environment is also radically different from yours ( guess your repeaters live in a nice open space whereas mine is in a deliberate poor rf environment ) |
EDIT:
Original comment: |
|
So I'm testing the packetlog-boost pr1398 firm now at a very noisy commercial tower site that has cellular and lots of high power broadcast. Long distance (backbone) pings/traces are now GREAT. the non boost does not disable the LNA as we all know in a V4, but, after @spiralshapeturtle testing this is what I went with. We have a very busy mesh in the pacific north west now and so far, this is working much better then stock firm. Later this afternoon, I will have this firm on the other end of the link (60 miles LOS) and will be able to give detailed feed back then and compare. |
Theoretically, adding RXGAIN should yield better results when noise levels are low, but may have adverse effects when noise levels are high. Therefore, it's best to add this variable to the app so that it becomes controllable. |
My understanding is that Heltec v4.1 was an internal version for testing and v4.2 is the first public version.
One thing I learned from all the tests I did the past few weeks is that it's very difficult to compare tests between different days. Best is to compare between 2 nodes on the same day. I'm not sure if it's because of environmental noise, weather patterns or star alignment, but I kept getting very different results between different days.
In my tests the No Boosted Gain was better as well, that's why I started this PR with it boosted gain turned off.
At this point I think all of our tests have proven that the register patch provided by @Quency-D is significantly improving RX in all cases and should be merged into the firmware. As for the Booted Gain, we see that this seems to be more of a case-by-case basis, depending on environment, antenna, noise level, etc. Considering this is controlled by an existing build flag already, and there's an open PR #1164 to make it configurable at runtime too, I'm going to revert the boosted gain part of the PR and keep the register patch only. |
Yes, this is the important part - flash the stock firmware with erase, and from that point on flash other build without erase. |
|
Boosted gain flag reverted, hopefully will be added as a runtime config soon. This PR is now fully tested ready to merge! |
Totally agree on that, thanks for your time invested. And for the record I put my V4 out in the field now: heltec_v4_repeater-1.11.0-pr1398-4575800.bin this file from your links is the normal file without, debugs, packetlogs etc? Which I could load into my repeaters. This file is good to go until @Quency-D / Heltec managed to get this PR merged into the new builds. Again thanks! |
|
@spiralshapeturtle I updated the builds zip up here #1398 (comment) with better names: pr1398-boost_on - Standard build without any extra flags (Boosted Gain on) |
|
@spiralshapeturtle & @Socalix |










Following several rounds of testing Heltec v4 RX reception as part of PR #1249 I found out that the best solution was using the original v1.11.0 code, with undocumented register 0x8B5 patch (setting LSB=1) as desribed by @Quency-D (Heltec engineer) here: #1249 (comment)
and without the RX Boosted Gain feature.This PR is doing just that: turning on the 0x8B5 LSB
and turning off RX Boosted Gain flag.UPDATE: After several rounds of testing here we determined that Boosted Gain flag should be turned on/off on a case-by-case basis, so this PR is now updated to only set the register value that has proven to consistently improve RX.
=== Additional Details ===
Test Process:
I put RAK4631 and Heltec v4, both with Alfa 915 antenna and repeater v1.11.0 firmware in the same location (attic, about 7 inches apart). I then took Heltec T114 with companion v1.11.0 about 1.25km (0.75mile) away and did ping every 3 seconds to the same repeater about 20-30 times. I then flashed the v4 with different firmwares and pinged again.
Test Sample: