Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
992cc08
Update cli_commands.md to include path.hash.mode and loop.detect
AI7NC Mar 6, 2026
d2a6fda
Update cli_commands.md
AI7NC Mar 7, 2026
721c21f
Apply suggestion from @weebl2000
AI7NC Mar 7, 2026
0228d59
Apply suggestion from @weebl2000
AI7NC Mar 7, 2026
4aaa557
Apply suggestion from @weebl2000
AI7NC Mar 7, 2026
fe32f16
Update cli_commands.md R399 updates
AI7NC Mar 7, 2026
bb45486
Update cli_commands.md R402
AI7NC Mar 7, 2026
36db50a
Update cli_commands.md R400 grammer
AI7NC Mar 7, 2026
b872abd
feat(heltec_v3): unified BLE/USB/WiFi companion transport with runtim…
just-stuff-tm Mar 8, 2026
43712e7
update commands
just-stuff-tm Mar 8, 2026
b61b00a
companion: harden runtime transport/wifi custom var controls
just-stuff-tm Mar 8, 2026
df0cc1e
ui: add transport reboot countdown and wifi mode transition screens
just-stuff-tm Mar 8, 2026
fbd7105
companion: finalize runtime transport/wifi UX, commands, and docs
just-stuff-tm Mar 8, 2026
dd166d2
heltec_v2: add all-transports companion target and build docs
just-stuff-tm Mar 8, 2026
0d0b31e
docs: sync CLI and payload docs with implementation
robekl Mar 9, 2026
6677b40
docs: sync companion and kiss protocol docs
robekl Mar 9, 2026
c80bd9c
Merge pull request #1952 from AI7NC/patch-1
ripplebiz Mar 10, 2026
095f97b
set prv.key doc update
robekl Mar 11, 2026
82d1a3d
Merge pull request #1977 from robekl/docs/implementation-sync-release
liamcottle Mar 11, 2026
ddf222c
Merge branch 'meshcore-dev:main' into feat/heltec-v3-runtime-transpor…
just-stuff-tm Mar 11, 2026
9ef3b2b
Fix companion transport state handling
just-stuff-tm Mar 11, 2026
d07824b
Hide BLE PIN outside BLE mode
just-stuff-tm Mar 11, 2026
c523b27
Ficx icon overlap
just-stuff-tm Mar 11, 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
46 changes: 46 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,52 @@ For developers;

The Simple Secure Chat example can be interacted with through the Serial Monitor in Visual Studio Code, or with a Serial USB Terminal on Android.

## Build And Flash This Fork (Heltec V3 / Heltec V2)

If you want to build and flash this fork directly from terminal:

```bash
git clone https://github.com/just-stuff-tm/MeshCore.git
cd MeshCore
git checkout feat/heltec-v3-runtime-transport-dev
```

Install PlatformIO Core (if not already installed):

```bash
python3 -m pip install -U platformio
```

Build firmware:

```bash
~/.platformio/penv/bin/pio run -e Heltec_v3_companion_radio_tcp_usb_ble
```

For Heltec V2:

```bash
~/.platformio/penv/bin/pio run -e Heltec_v2_companion_radio_tcp_usb_ble
```

Flash firmware (USB serial example):

```bash
~/.platformio/penv/bin/pio run -e Heltec_v3_companion_radio_tcp_usb_ble -t upload --upload-port /dev/ttyUSB0
```

For Heltec V2:

```bash
~/.platformio/penv/bin/pio run -e Heltec_v2_companion_radio_tcp_usb_ble -t upload --upload-port /dev/ttyUSB0
```

Optional serial companion check:

```bash
meshcli -s /dev/ttyUSB0
```

## ⚡️ MeshCore Flasher

We have prebuilt firmware ready to flash on supported devices.
Expand Down
1 change: 1 addition & 0 deletions build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -225,6 +225,7 @@ build_companion_firmwares() {
# build all companion firmwares
build_all_firmwares_by_suffix "_companion_radio_usb"
build_all_firmwares_by_suffix "_companion_radio_ble"
build_all_firmwares_by_suffix "_companion_radio_tcp_usb_ble"

}

Expand Down
106 changes: 100 additions & 6 deletions docs/cli_commands.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,12 @@ This document provides an overview of CLI commands that can be sent to MeshCore

---

### Send a zero-hop advert
**Usage:**
- `advert.zerohop`

---

### Start an Over-The-Air (OTA) firmware update
**Usage:**
- `start ota`
Expand Down Expand Up @@ -355,13 +361,25 @@ This document provides an overview of CLI commands that can be sent to MeshCore

---

#### View this node's public key
**Usage:** `get public.key`

---

#### View this node's configured role
**Usage:** `get role`

---

#### View or change this node's power saving flag (Repeater Only)
**Usage:**
- `powersaving <state>`
- `powersaving`
- `powersaving on`
- `powersaving off`

**Parameters:**
- `state`: `on`|`off`
- `on`: enable power saving
- `off`: disable power saving

**Default:** `on`

Expand All @@ -383,6 +401,46 @@ This document provides an overview of CLI commands that can be sent to MeshCore

---

#### View or change this node's advert path hash size
**Usage:**
- `get path.hash.mode`
- `set path.hash.mode <value>`

**Parameters:**
- `value`: Path hash size (0-2)
- `0`: 1 Byte hash size (256 unique ids)[64 max flood]
- `1`: 2 Byte hash size (65,536 unique ids)[32 max flood]
- `2`: 3 Byte hash size (16,777,216 unique ids)[21 max flood]
- `3`: DO NOT USE (Reserved)

**Default:** `0`

**Note:** the 'path.hash.mode' sets the low-level ID/hash encoding size used when the repeater adverts. This setting has no impact on what packet ID/hash size this repeater forwards, all sizes should be forwarded on firmware >= 1.14. This feature was added in firmware 1.14

**Temporary Note:** adverts with ID/hash sizes of 2 or 3 bytes may have limited flood propogation in your network while this feature is new as v1.13.0 firmware and older will drop packets with multibyte path ID/hashes as only 1-byte hashes are suppored. Consider your install base of firmware >=1.14 has reached a criticality for effective network flooding before implementing higher ID/hash sizes.

---

#### View or change this node's loop detection
**Usage:**
- `get loop.detect`
- `set loop.detect <state>`

**Parameters:**
- `state`:
- `off`: no loop detection is performed
- `minimal`: packets are dropped if repeater's ID/hash appears 4 or more times (1-byte), 2 or more (2-byte), 1 or more (3-byte)
- `moderate`: packets are dropped if repeater's ID/hash appears 2 or more times (1-byte), 1 or more (2-byte), 1 or more (3-byte)
- `strict`: packets are dropped if repeater's ID/hash appears 1 or more times (1-byte), 1 or more (2-byte), 1 or more (3-byte)

**Default:** `off`

**Note:** When it is enabled, repeaters will now reject flood packets which look like they are in a loop. This has been happening recently in some meshes when there is just a single 'bad' repeater firmware out there (prob some forked or custom firmware). If the payload is messed with, then forwarded, the same packet ends up causing a packet storm, repeated up to the max 64 hops. This feature was added in firmware 1.14

**Example:** If preference is `loop.detect minimal`, and a 1-byte path size packet is received, the repeater will see if its own ID/hash is already in the path. If it's already encoded 4 times, it will reject the packet. If the packet uses 2-byte path size, and repeater's own ID/hash is already encoded 2 times, it rejects. If the packet uses 3-byte path size, and the repeater's own ID/hash is already encoded 1 time, it rejects.

---

#### View or change the retransmit delay factor for flood traffic
**Usage:**
- `get txdelay`
Expand Down Expand Up @@ -804,6 +862,11 @@ region save

### Bridge (When bridge support is compiled in)

#### View the compiled bridge type
**Usage:** `get bridge.type`

---

#### View or change the bridge enabled flag
**Usage:**
- `get bridge.enabled`
Expand Down Expand Up @@ -841,10 +904,10 @@ region save

**Parameters:**
- `source`:
- `rx`: bridges received packets
- `tx`: bridges transmitted packets
- `logRx`: bridges received packets
- `logTx`: bridges transmitted packets

**Default:** `tx`
**Default:** `logTx`

---

Expand Down Expand Up @@ -876,8 +939,39 @@ region save
- `set bridge.secret <secret>`

**Parameters:**
- `secret`: 16-character encryption secret
- `secret`: ESP-NOW bridge secret, up to 15 characters

**Default:** Varies by board

---

#### View the bootloader version (nRF52 only)
**Usage:** `get bootloader.ver`

---

#### View power management support
**Usage:** `get pwrmgt.support`

---

#### View the current power source
**Usage:** `get pwrmgt.source`

**Note:** Returns an error on boards without power management support.

---

#### View the boot reset and shutdown reasons
**Usage:** `get pwrmgt.bootreason`

**Note:** Returns an error on boards without power management support.

---

#### View the boot voltage
**Usage:** `get pwrmgt.bootmv`

**Note:** Returns an error on boards without power management support.

---
Loading