Skip to content

Releases: mikecarper/MeshCore

v1.15.0-dev-7d237f87 Flood Retry & Direct Path Retry Repeater Firmware

09 May 01:42

Choose a tag to compare

v1.15.0-dev-6c20a106-meshdebug-on-logging-on

09 May 06:59
1a7b361

Choose a tag to compare

Built off of Powersaving 15 & Halo; this has flood repeat. See https://github.com/mikecarper/MeshCore/blob/keymind/docs/halo_keymind_settings.md for usage. Comes with settings enabled.

Full Changelog: v1.15.0-dev-6c20a106...v1.15.0-dev-7d237f87

Repeater firmware built with MESH_DEBUG=1 (meshdebug on) and MESH_PACKET_LOGGING=1 (logging on).
meshcore-dev#2367

v1.15.0-dev-6c20a106-meshdebug-off

29 Apr 20:45
bfd4800

Choose a tag to compare

This is based off powersaving 15

Repeater firmware built with MESH_DEBUG=0 (meshdebug off).
meshcore-dev#2367

On the CLI you can run this and it'll have stats. At the start the stats might be off but they will get better over time.

Get or set recent repeater fallback prefix/SNR

Usage:

  • get recent.repeater
  • get recent.repeater <page>
  • get recent.repeater page <page>
  • set recent.repeater <prefix_hex_6> <snr_db>

Parameters:

  • prefix_hex_6: Exactly 3 bytes of next-hop prefix in hex (6 chars)
  • snr_db: SNR in dB (supports decimals; stored at x4 precision)
  • page: 1-based page number

Notes:

  • set is rejected when the prefix already exists in neighbors.
  • Rows are shown newest-first.
  • Serial CLI prints all rows (no paging).
  • Over LoRa remote CLI, page size is fixed at 4 rows; choose page with get recent.repeater <page>.

View or change whether direct retries can fall back to the recently-heard repeater list

Usage:

  • get direct.retry.heard
  • set direct.retry.heard <state>

Parameters:

  • state: on|off

Default: on

Note: When enabled, a repeater can use recently-heard non-duplicate repeater prefixes as a fallback for direct retry eligibility when no suitable neighbor entry is available.


View or change the SNR margin used for direct retry eligibility

Usage:

  • get direct.retry.margin
  • set direct.retry.margin <value>

Parameters:

  • value: Margin in dB above the SF-specific receive floor (minimum 0, maximum 40, quarter-dB precision, default 2.5)

Default: 2.5

Note: The retry gate uses the active SF floor of SF5=-2.5, SF6=-5, SF7=-7.5, SF8=-10, SF9=-12.5, SF10=-15, SF11=-17.5, SF12=-20, then adds this margin.


View or change the number of direct retry attempts

Usage:

  • get direct.retry.count
  • set direct.retry.count <value>

Parameters:

  • value: Retry attempts after initial TX (1-15)

Default: 15


View or change the base direct retry wait (milliseconds)

Usage:

  • get direct.retry.base
  • set direct.retry.base <value>

Parameters:

  • value: Base wait in milliseconds (10-5000)

Default: 200

Note: The actual first retry wait is base + computed_echo_wait_from_live_phy.

v1.15.0-dev-6c20a106

29 Apr 00:13
bfd4800

Choose a tag to compare

This is based off powersaving 15

Repeater firmware built with MESH_DEBUG=1 (meshdebug on).

meshcore-dev#2367

To monitor on a USB connected radio on linux:
in one window
picocom -b 115200 /dev/ttyACM0 --imap lfcrlf --logfile /tmp/mesh.log
in another window
tail -F /tmp/mesh.log | rg --line-buffered "direct retry"

On the CLI you can run this and it'll have stats. At the start the stats might be off but they will get better over time.

Get or set recent repeater fallback prefix/SNR

Usage:

  • get recent.repeater
  • get recent.repeater <page>
  • get recent.repeater page <page>
  • set recent.repeater <prefix_hex_6> <snr_db>

Parameters:

  • prefix_hex_6: Exactly 3 bytes of next-hop prefix in hex (6 chars)
  • snr_db: SNR in dB (supports decimals; stored at x4 precision)
  • page: 1-based page number

Notes:

  • set is rejected when the prefix already exists in neighbors.
  • Rows are shown newest-first.
  • Serial CLI prints all rows (no paging).
  • Over LoRa remote CLI, page size is fixed at 4 rows; choose page with get recent.repeater <page>.

View or change whether direct retries can fall back to the recently-heard repeater list

Usage:

  • get direct.retry.heard
  • set direct.retry.heard <state>

Parameters:

  • state: on|off

Default: on

Note: When enabled, a repeater can use recently-heard non-duplicate repeater prefixes as a fallback for direct retry eligibility when no suitable neighbor entry is available.


View or change the SNR margin used for direct retry eligibility

Usage:

  • get direct.retry.margin
  • set direct.retry.margin <value>

Parameters:

  • value: Margin in dB above the SF-specific receive floor (minimum 0, maximum 40, quarter-dB precision, default 2.5)

Default: 2.5

Note: The retry gate uses the active SF floor of SF5=-2.5, SF6=-5, SF7=-7.5, SF8=-10, SF9=-12.5, SF10=-15, SF11=-17.5, SF12=-20, then adds this margin.


View or change the number of direct retry attempts

Usage:

  • get direct.retry.count
  • set direct.retry.count <value>

Parameters:

  • value: Retry attempts after initial TX (1-15)

Default: 15


View or change the base direct retry wait (milliseconds)

Usage:

  • get direct.retry.base
  • set direct.retry.base <value>

Parameters:

  • value: Base wait in milliseconds (10-5000)

Default: 200

Note: The actual first retry wait is base + computed_echo_wait_from_live_phy.