Insufficient Default Backoff Settings: rxdelay, txdelay, direct.txdelay#2310
Closed
KPrivitt wants to merge 86 commits intomeshcore-dev:mainfrom
Closed
Insufficient Default Backoff Settings: rxdelay, txdelay, direct.txdelay#2310KPrivitt wants to merge 86 commits intomeshcore-dev:mainfrom
KPrivitt wants to merge 86 commits intomeshcore-dev:mainfrom
Conversation
Co-authored-by: Wessel <wessel@weebl.me>
Co-authored-by: Wessel <wessel@weebl.me>
Co-authored-by: Wessel <wessel@weebl.me>
Default LNA enabled=true and fix the sleep order
Merge branch 'dev' into dev-heltec-v4.3
Support for R1 Neo hardware. New variant and baseboard class. * Known issues: - power management is not currently supported - power off via long button press is not implemented Add support for Epson Seiko RX8130CE I2C Real-time clock.
We translate to af internally, it's easier to store and doesn't break stored prefs. Made get/set af command show deprecated, but it still works fine.
Co-authored-by: ViezeVingertjes <michael.overhorst@gmail.com>
…hange Repeater name.
Docs changes are to reflect how it is currently in fw This adds ability to send datagram data to everyone in channel
…default-radio-rxgain Fix default radio.rxgain for Station G2
…o dutycycle-command
The companion_radio example was not restoring the GPS enabled/disabled preference from flash after reboot. The preference was being saved correctly when toggled via the mobile app, but on boot, sensors.begin() -> initBasicGPS() unconditionally sets gps_active=false and nothing subsequently restored the persisted state. Added applyGpsPrefs() (matching the pattern in simple_repeater, simple_sensor, and simple_room_server) and call it from main.cpp after sensors.begin() to ensure the GPS hardware is initialized before the saved preference is applied.
…o-gps-persistence fix(companion_radio): apply persisted GPS enabled setting on boot for ui-orig devices
Fix typo for ThinkNode M5 room server environment
Add get/set dutycycle command
Bump RadioLib to 7.6.0
ESP-NOW radios (ie, Generic_ESPNOW_* variants) do not compile due to missing methods Changes in January 2026 (019bbf7) to add additional stats (receive errors) to CMD_GET_STATS was not implemented in the ESPNOWRadio() class Changes in March 2026 (9a95e25) to add setRxBoostedGainMode to all devices rather than just SX1262/SX1268 were not applied to the ESPNowRadio() driver Specifically, this change adds the following to ESPNOWRadio() * getPacketsRecvErrors() - always returns 0 * getRxBoostedGainMode() - always returns false * setRxBoostedGainMode() - does nothing
…methods Add missing methods in ESPNOWRadio()
…over-neighbors-public Move sendNodeDiscoverReq() from private to public to enable post-boot neighbor discovery
Support for GAT562 Mesh Watch13 device
Co-authored-by: Wessel <wessel@weebl.me>
Co-authored-by: Wessel <wessel@weebl.me>
Muzi Works R1 Neo support
…mesh-watch Refactor GAT562 Mesh Watch
Fixed the initialization error of the BME680 sensor.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The current default values are:
_prefs.rx_delay_base = 0.0f; // turn off by default, was 10.0;
_prefs.tx_delay_factor = 0.5f; // was 0.25f
_prefs.direct_tx_delay_factor = 0.3f; // was 0.2
These control the Random Backoff behavior of a repeater, which reduces the probability of a collision between neighbor repeaters.
Backoff is essential in avoiding collisions. Many repeater owners are not aware of this capability and do not change them, this leaves the mesh under configured in order to avoid collisions. The default values are too low and are not providing any significant backoff for the Mesh.
The default value for rx_delay = 0, which is off. So, this mechanism is not being utilized. A recommended minimum value for rxdelay is 3
The default value for direct.x_delay = 0.3, which is provides 2 backoff slots, which has a high probability of a collision. A recommended minimum value for direct.x_delay is 1 which will provide 5 backoff slots and reduces the probability of a collision.
The default value for tx_delay = 0.5, which is provides 2 backoff slots, additional backoff slots will reduce the probability of a collision. A recommended minimum value for txdelay is 1.6 which provides 8 backoff slots and reduces the probability of a collision.
These all are configurable using CLI commands so users are still free to select their own preferred values and can turn them off.
Enabling some level of backoff will improve the performance of the Mesh.