Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
118 commits
Select commit Hold shift + click to select a range
00c14cd
Add local-only uf2reset CLI command
mikecarper Apr 17, 2026
0ce1a55
Refactor build.sh menu and build flow
mikecarper Apr 20, 2026
166f804
Remove unrelated CLI changes from PR branch
mikecarper Apr 20, 2026
4c39334
Add new line at the end of the file.
mikecarper Apr 20, 2026
d8552e3
Better json arg passing in build.sh
mikecarper Apr 20, 2026
8525b4e
For packets with a path set; auto try again if no echo was heard
mikecarper Apr 21, 2026
fae6dd8
Merge branch 'main' into halo-direct-path-retries
mikecarper Apr 21, 2026
6a53f6d
Merge branch 'pr/buildsh-refactor-menu' into halo-direct-path-retries
mikecarper Apr 21, 2026
577433c
Retry 3 times with a 200ms,300ms,400ms backoff.
mikecarper Apr 23, 2026
9c2ac5a
Max retries is now a var that can be set between 1 to 15
mikecarper Apr 24, 2026
c5d8ada
Added features from PowerSaving 14.1.1
IoTThinks Apr 24, 2026
0702065
Delay sleep when BLE is active writing.
IoTThinks Apr 24, 2026
756268e
Fix issue with packet prefixes getting added to the table.
mikecarper Apr 24, 2026
0243ec4
Round up the SNR vs replacement to get a weighted average.
mikecarper Apr 24, 2026
a441376
Added TimeTrim and Kept RTC 8M during sleep
IoTThinks Apr 25, 2026
aa400da
Clear stale wakeup sources to avoid ghost wakeup
IoTThinks Apr 25, 2026
5a45d54
Added LilyGo_TBeam_1W_companion_radio_ble_ps
IoTThinks Apr 26, 2026
8fadd31
Merge branch 'main' of https://github.com/IoTThinks/MeshCore into hal…
mikecarper Apr 27, 2026
181ddb2
Added Heltec_WSL3_companion_radio_ble_ps
IoTThinks Apr 27, 2026
fa9f3bd
Added Heltec_Wireless_Tracker_companion_radio_ble_ps
IoTThinks Apr 27, 2026
e608503
Merged latest changes from "Add CLI control to LoRa's fem LNA" https:…
IoTThinks Apr 27, 2026
6c20a10
Refine direct retry SNR handling and recent repeater controls
mikecarper Apr 27, 2026
7f02cbe
Delayed sleep for BLE companions if BLE read is busy. Reduced sleep p…
IoTThinks May 4, 2026
eac4f72
Commented NRF52_POWER_MANAGEMENT and added PowerSaving BLE companions
IoTThinks May 6, 2026
517d3ed
Added isReadBusy for NRF52 BLE
IoTThinks May 6, 2026
3281ea2
To drift forward less than 7s/day (3.5 minutes/month) for ESP32-based…
IoTThinks May 6, 2026
ea3f7ac
Merge remote-tracking branch 'iotthinks/PowerSaving-v15' into halo-di…
mikecarper May 6, 2026
674beb0
Improve repeater direct retry handling
mikecarper May 7, 2026
4b49449
fix CustomLFS version pinning
IoTThinks May 7, 2026
041f103
Reduced MAX_CONTACTS to 100 to compile and add PS BLE
IoTThinks May 7, 2026
cc1759a
Added PS BLE
IoTThinks May 7, 2026
1610c0a
Added more boards to PowerSaving
IoTThinks May 7, 2026
d4febe7
Add flood retry controls
mikecarper May 7, 2026
93bd0f0
Fix flood retry diagnostics
mikecarper May 7, 2026
e0b19a1
Fix direct retry diagnostics
mikecarper May 7, 2026
8dcd497
Delay direct retry final failure
mikecarper May 7, 2026
4e10020
Merge branch 'meshcore-dev:main' into keymind
mikecarper May 8, 2026
9f81ffc
Merge branch 'meshcore-dev:main' into halo-direct-path-retries
mikecarper May 8, 2026
3a6766b
Improve flood retry bridge buckets
mikecarper May 8, 2026
ae67293
Honor flood retry ignore for echoes
mikecarper May 8, 2026
b475bde
Unify retry preset settings
mikecarper May 8, 2026
c244eff
Revise Halo and Keymind settings documentation
mikecarper May 8, 2026
bb8e714
Add adaptive CR for direct retries
mikecarper May 8, 2026
ca0679e
Merge adaptive CR direct retries into keymind
mikecarper May 8, 2026
7d237f8
Update keymind retry controls
mikecarper May 8, 2026
9a86090
Update direct retry CR controls
mikecarper May 9, 2026
8abf4a9
Added RADIO_FEM_RXGAIN in build option for T096
IoTThinks May 10, 2026
9ef5310
Merge branch 'meshcore-dev:main' into keymind
mikecarper May 13, 2026
271e6f6
Merge branch 'meshcore-dev:main' into halo-direct-path-retries
mikecarper May 13, 2026
69a76b0
Fixed boot loop due to flash mode for Xiao C6
IoTThinks May 15, 2026
76e1145
Merge upstream main into halo-direct-path-retries
mikecarper May 18, 2026
b2d8b8a
Merge remote-tracking branch 'origin/halo-direct-path-retries' into h…
mikecarper May 18, 2026
f32f12c
Merge upstream main into keymind
mikecarper May 18, 2026
19703dd
Added minor changes from PR1687
IoTThinks May 21, 2026
e59a3f5
Minor sleep settings for room servers
IoTThinks May 21, 2026
c15fdfe
Fixed hasPendingWork for BLE companions.
IoTThinks May 21, 2026
49b6b63
Supported PowerSaving for USB companion
IoTThinks May 22, 2026
475b3ac
Supported PowerSaving for 3 Tbeam boards
IoTThinks May 22, 2026
b59966b
Add direct path override support
mikecarper May 22, 2026
c0e3860
Add repeater flood text command
mikecarper May 22, 2026
f693bdb
Add opt-in battery alert flood text
mikecarper May 22, 2026
c93d907
Make battery alert thresholds configurable
mikecarper May 22, 2026
c371273
build.sh: add optional Cascadia profile overrides
mikecarper May 13, 2026
e1ba591
build.sh: retry radio preset API fetch with browser headers
mikecarper May 12, 2026
f47b087
build.sh: fix radio override flags for PlatformIO ordering
mikecarper May 12, 2026
6d7dfa6
build.sh: add interactive Wi-Fi build settings overrides
mikecarper May 13, 2026
815bd2c
build.sh: accept 1/0 for on/off prompts
mikecarper May 13, 2026
1ded5b3
build.sh: show on-off prompts as on(1)/off(0)
mikecarper May 13, 2026
0b245d5
Update Halo Keymind settings docs
mikecarper May 22, 2026
bf389b3
Document Keymind branch settings
mikecarper May 22, 2026
0f0f91c
Fixed directive and added isReadBusy for WiFi companion.
IoTThinks May 27, 2026
01f43b1
Merge branch 'PowerSaving-v15' of https://github.com/IoTThinks/MeshCo…
mikecarper May 28, 2026
fec6ddb
Remove Cascadia power saving default
mikecarper May 29, 2026
4f9b8bf
Handle direct route path consumption
mikecarper May 29, 2026
618c2b6
Support direct outpath override
mikecarper Jun 2, 2026
fc8f212
Merge branch 'meshcore-dev:main' into keymindCascade
mikecarper Jun 2, 2026
3d502b8
Merge branch 'meshcore-dev:main' into halo-direct-path-retries
mikecarper Jun 4, 2026
2af7b75
For packets with a path set; auto try again if no echo was heard
mikecarper Apr 21, 2026
dbc4dda
Retry 3 times with a 200ms,300ms,400ms backoff.
mikecarper Apr 23, 2026
b125d0a
Max retries is now a var that can be set between 1 to 15
mikecarper Apr 24, 2026
d028c69
Fix issue with packet prefixes getting added to the table.
mikecarper Apr 24, 2026
d1d5096
Round up the SNR vs replacement to get a weighted average.
mikecarper Apr 24, 2026
399939f
Refine direct retry SNR handling and recent repeater controls
mikecarper Apr 27, 2026
c20e573
Fix direct retry diagnostics
mikecarper May 7, 2026
dea5ed7
Add SECURITY.md
NoodlesNZ Jun 5, 2026
e67933c
PowerSaving 16
IoTThinks Jun 8, 2026
4a733c6
Renamed to add "femon" env to Heltec v4 and T096
IoTThinks Jun 9, 2026
e0733f8
Added 0x77 for ENV_INCLUDE_BME680_BSEC
IoTThinks Jun 9, 2026
7c1b1c6
Hotfix: CMD_SEND_RAW_PACKET not freeing packet on parse failure.
IoTThinks Jun 9, 2026
5a342c7
Merge pull request #2691 from NoodlesNZ/security-policy
liamcottle Jun 11, 2026
c94ed29
add github workflow to close stale issues
liamcottle Jun 11, 2026
3b39925
use single quotes for repo name
liamcottle Jun 11, 2026
55ad768
Merge pull request #2748 from liamcottle/github/stale-bot
liamcottle Jun 11, 2026
06130dc
added some missing CLI commands
formtapez Jun 12, 2026
d3444e6
fix formatting
formtapez Jun 12, 2026
e8d3c53
Merge pull request #2753 from formtapez/cli-docs
liamcottle Jun 12, 2026
19efda9
Reverted code change to GPS
IoTThinks Jun 12, 2026
60879c9
Merge remote-tracking branch 'upstream/dev' into halo-direct-path-ret…
mikecarper Jun 15, 2026
942bc6d
Merge branch 'PowerSaving-v16-iotthinks' into halo-direct-path-retries
mikecarper Jun 15, 2026
7b61a36
Merge branch 'mikecarper-keymindCascade' into halo-direct-path-retries
mikecarper Jun 15, 2026
4fc5476
Merge branch 'halo-direct-path-retries' of github.com:mikecarper/Mesh…
mikecarper Jun 15, 2026
d249c36
Merge remote-tracking branch 'upstream/main' into halo-direct-path-re…
mikecarper Jun 15, 2026
166261c
Merge remote-tracking branch 'upstream/dev' into HEAD
mikecarper Jun 15, 2026
29dc93b
Document Halo direct retry settings only
mikecarper Jun 15, 2026
17dc51d
Remove build and variant changes from Halo retry branch
mikecarper Jun 15, 2026
2acd61e
Remove PowerSaving changes from Halo retry branch
mikecarper Jun 15, 2026
7d8bb1d
Keep Halo branch focused on direct retry
mikecarper Jun 15, 2026
765ec14
Add direct retry controls
mikecarper Jun 16, 2026
cb5e2e7
Document direct retry CLI
mikecarper Jun 16, 2026
21c5e27
Tune unknown retry SNR
mikecarper Jun 16, 2026
e358867
Simplify recent repeater paging
mikecarper Jun 16, 2026
4ed9415
Clean up Mesh comments
mikecarper Jun 16, 2026
7d2ff38
Trim direct retry cleanup
mikecarper Jun 16, 2026
f58cdef
Revert Mesh comment noise
mikecarper Jun 16, 2026
4a9d6ba
Remove duplicate Mesh comments
mikecarper Jun 16, 2026
1f14f74
Clean Mesh header comments
mikecarper Jun 16, 2026
9c510ab
Add Packet EOF newline
mikecarper Jun 16, 2026
8d46ed4
Enable retry CR radio overrides
mikecarper Jun 16, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
233 changes: 233 additions & 0 deletions docs/cli_commands.md
Original file line number Diff line number Diff line change
Expand Up @@ -950,6 +950,239 @@ region save
- Enables flooding for all child regions automatically
- Useful for global networks with specific regional rules

---
### Direct Retry

Direct retry resends direct-routed packets when the downstream echo is not heard. It applies to direct messages and TRACE packets. It does not change ACK handling.

#### View or change direct retry state
**Usage:**
- `get direct.retry`
- `set direct.retry <state>`

**Parameters:**
- `state`: `on`|`off`

**Default:** `on`

**Examples:**
```
get direct.retry
set direct.retry on
set direct.retry off
```

---

#### View or apply a direct retry preset
**Usage:**
- `get retry.preset`
- `set retry.preset <preset>`

**Parameters:**
- `preset`: `infra`|`rooftop`|`mobile`

**Notes:**
- `infra`: fewer, slower retries for stable fixed infrastructure.
- `rooftop`: default long retry window for weak rooftop links.
- `mobile`: long retry count with shorter spacing for moving or changing links.
- Changing `direct.retry.count`, `direct.retry.base`, `direct.retry.step`, or `direct.retry.margin` makes the preset report as `custom`.

**Examples:**
```
get retry.preset
set retry.preset infra
set retry.preset rooftop
set retry.preset mobile
```

---

#### View or change direct retry count
**Usage:**
- `get direct.retry.count`
- `set direct.retry.count <count>`

**Parameters:**
- `count`: Maximum retry attempts after the original send, from `1` to `15`.

**Default:** `15` with the `rooftop` preset

**Examples:**
```
get direct.retry.count
set direct.retry.count 1
set direct.retry.count 4
set direct.retry.count 15
```

---

#### View or change direct retry base delay
**Usage:**
- `get direct.retry.base`
- `set direct.retry.base <ms>`

**Parameters:**
- `ms`: First retry wait in milliseconds, from `10` to `5000`.

**Default:** `175` with the `rooftop` preset

**Explanation:**
- The first retry waits `base` milliseconds after the failed echo window.
- Larger values reduce channel pressure and give slow repeaters more time.
- Smaller values recover faster but create tighter retry bursts.

**Examples:**
```
get direct.retry.base
set direct.retry.base 175
set direct.retry.base 275
set direct.retry.base 500
```

---

#### View or change direct retry step delay
**Usage:**
- `get direct.retry.step`
- `set direct.retry.step <ms>`

**Parameters:**
- `ms`: Extra milliseconds added for each subsequent retry, from `0` to `5000`.

**Default:** `100` with the `rooftop` preset

**Explanation:**
- Retry delay is `base + attempt_index * step`.
- With `base=175` and `step=100`, retries wait about `175`, `275`, `375`, `475` ms, and so on.
- `step=0` keeps every retry at the same delay.
- Larger steps spread retries over time and are safer on busy channels.

**Examples:**
```
get direct.retry.step
set direct.retry.step 0
set direct.retry.step 50
set direct.retry.step 100
set direct.retry.step 250
```

---

#### View or change direct retry SNR margin
**Usage:**
- `get direct.retry.margin`
- `set direct.retry.margin <snr_db>`

**Parameters:**
- `snr_db`: Extra SNR margin above the SF receive floor, from `0` to `40`.

**Default:** `5.00` with the `rooftop` preset

**Notes:**
- Unknown repeaters are still retried.
- Known repeaters below the receive floor plus this margin are skipped.
- Failed attempts lower the recent repeater SNR estimate by `0.25 dB`.

**Examples:**
```
get direct.retry.margin
set direct.retry.margin 0
set direct.retry.margin 2.5
set direct.retry.margin 5
set direct.retry.margin 10
```

---

#### View or change adaptive direct retry coding rate
**Usage:**
- `get direct.retry.cr`
- `set direct.retry.cr off`
- `set direct.retry.cr <cr4_min>,<cr5_min>,<cr7_min>,<cr8_max>`

**Parameters:**
- `cr4_min`: Minimum SNR in dB to retry at CR4.
- `cr5_min`: Minimum SNR in dB to retry at CR5.
- `cr7_min`: Minimum SNR in dB to retry at CR7.
- `cr8_max`: Maximum SNR in dB that forces CR8.

**Default:** `10.00,7.50,2.50,2.50`

**Explanation:**
- Higher SNR uses faster coding rates.
- Lower SNR uses more robust coding rates.
- CR6 is intentionally skipped.
- `off` disables per-packet retry CR overrides and uses the current radio CR.
- Unknown repeaters start at `+3.00 dB` for adaptive CR selection.
- A failed unknown repeater is seeded at `+2.75 dB`.
- Each later failure lowers the SNR estimate by `0.25 dB`.

**Examples:**
```
get direct.retry.cr
set direct.retry.cr off
set direct.retry.cr 10.0,7.5,2.5,2.5
set direct.retry.cr 12.0,8.0,4.0,1.0
set direct.retry.cr 8.0,5.0,1.5,0
set direct.retry.cr 6.0,3.0,0,-2.0
set direct.retry.cr 20.0,12.0,6.0,2.0
set direct.retry.cr 4.0,2.0,0,-4.0
```

**Example profiles:**
- Conservative weak-link profile:
```
set direct.retry.cr 12.0,8.0,4.0,1.0
```
- Balanced rooftop profile:
```
set direct.retry.cr 10.0,7.5,2.5,2.5
```
- Faster strong-link profile:
```
set direct.retry.cr 6.0,3.0,0,-2.0
```
- Very cautious noisy-link profile:
```
set direct.retry.cr 20.0,12.0,6.0,2.0
```

---

#### View, seed, or clear the recent repeater table
**Usage:**
- `get recent.repeater`
- `get recent.repeater <page>`
- `set recent.repeater <prefix> [snr_db]`
- `clear recent.repeater`

**Parameters:**
- `prefix`: Repeater path-hash prefix as hex.
- `snr_db`: Optional SNR in dB. If omitted or invalid, defaults to `3.0`.
- `page`: 1-based result page.

**SNR details:**
- Recent repeater SNR is stored internally in quarter-dB units.
- Heard repeater samples update an existing table entry with a weighted blend: `75%` existing SNR and `25%` new heard SNR, rounded up.
- Direct retry success also feeds the heard echo SNR back into the same weighted table.
- Direct retry failure is not weighted: each final echo-timeout failure lowers that repeater's SNR by `0.25 dB`.
- Unknown repeaters start at `+3.00 dB` for adaptive CR selection.
- If an unknown repeater fails, it is seeded into the table at `+2.75 dB`.
- `set recent.repeater <prefix> [snr_db]` seeds a missing prefix or adds another weighted sample for an existing prefix.
- Successful `set recent.repeater` replies include the stored prefix and SNR, for example `OK - set A1B2C3 at 3.0 SNR`.

**Examples:**
```
get recent.repeater
get recent.repeater 2
set recent.repeater A1B2C3 8.5
set recent.repeater 71CE82 -3.25
set recent.repeater A1B2C3
clear recent.repeater
```

---
### GPS (When GPS support is compiled in)

Expand Down
Loading