logo thiccification and docs chores

This commit is contained in:
liquidraver
2026-08-24 21:43:40 +02:00
parent 7e73743579
commit 8c0464ea30
15 changed files with 33 additions and 79 deletions
+4 -2
View File
@@ -73,8 +73,10 @@ rtt_*.txt
# JLink scripts and outputs
*.jlink
# Documentation that was moved/deleted
/docs/
# Internal working docs: per-topic audit indexes, handovers, handoffs, and
# other local-only scratch notes (see the HANDOVER_*/*_AUDIT_INDEX rules below,
# kept for pre-2026-08-24 history/muscle memory even though this covers them).
/devdocs/
# Temporary/scratch files
*.tmp
+4 -3
View File
@@ -31,6 +31,7 @@ compatible licenses:
patches are applied to, and remain part of, the separately-licensed Zephyr
source tree fetched via `west update`; they are not distributed as
standalone files under this project's MIT license.
- `img/kite-network-logo-*.svg` (at the repository root, one level above this
file) — ZephCore logo, by recrof (https://github.com/recrof). Licensed under
the WTFPL.
- `img/kite-network-logo-bright.svg`, `img/kite-network-logo-dark.svg`,
`img/kite-network-logo-thick-bright.svg`, `img/kite-network-logo-thick-dark.svg`
— ZephCore logo, by recrof (https://github.com/recrof). Licensed under the
WTFPL.
+12 -56
View File
@@ -1,4 +1,4 @@
<h1>ZephCore — MeshCore for Zephyr RTOS&nbsp;<img src="img/kite-network-logo-bright.svg" alt="ZephCore logo" width="85" align="middle"></h1>
<h1>ZephCore — MeshCore for Zephyr RTOS&nbsp;<img src="img/kite-network-logo-thick-bright.svg" alt="ZephCore logo" width="85" align="middle"></h1>
A port of [MeshCore](https://github.com/meshcore-dev/MeshCore/) LoRa mesh firmware from Arduino to [Zephyr RTOS](https://zephyrproject.org/). Aiming for full protocol compatibility with the original Arduino firmware and the MeshCore mobile apps.
@@ -15,63 +15,20 @@ Other benefits:
## Supported Boards
### nRF52840
nRF52840, ESP32, nRF54L15, MG24, and STM32WL boards, covering SX126x, LR1110,
LR2021, and SX127x radios. ZephCore also runs as a **native Linux process** on
SBCs (Femtofox / Luckfox Pico Mini, Raspberry Pi + RAK6421 HAT) with a real
SX1262 on SPI/GPIO and the companion app connecting over TCP — see
[LINUX_NATIVE.md](docs/LINUX_NATIVE.md).
| Board | Radio | Extras |
|-------|-------|--------|
| **Wio Tracker L1** | SX1262 | GPS (L76KB), OLED (SH1106), joystick, buzzer, QSPI flash |
| **Seeed T1000-E** | LR1110 | GPS (AG3335), LEDs, button |
| **RAK4631** / **RAK WisMesh Pocket** | SX1262 | Same `rak4631` build. GPS (u-blox MAX-7Q), optional WisBlock OLED (SSD1306), I2C sensors (SHTC3, LPS22HB, BME680) |
| **RAK3401 1W** | SX1262 + SKY66122 (30 dBm) | GPS (u-blox MAX-7Q, optional), I2C sensors |
| **RAK WisMesh Tag** | SX1262 | GPS (AT6558R), accelerometer, buzzer |
| **ThinkNode M1** | SX1262 | GPS, e-paper display (SSD1681), QSPI flash, buzzer, RGB LEDs |
| **ThinkNode M3** | LR1110 | GPS, buzzer, two buttons, RGB LEDs |
| **ThinkNode M6** | SX1262 | GPS (L76K), QSPI flash, RGB LEDs |
| **LilyGo T-Echo** | SX1262 (TCXO 1.8V) | GPS (L76K), 1.54" e-paper (SSD1681), BME280, QSPI flash, touch-button backlight |
| **Heltec T114** | SX1262 | 1.14" TFT (ST7789V); screenless build via `no_display.conf` |
| **Heltec Mesh Node T096** | SX1262 + KCT8103L PA/FEM | UC6580 GNSS, ST7735S 160×80 TFT, button, LED, battery ADC |
| **Ikoka Nano 30dBm** | SX1262 (E22-900M30S, 30 dBm PA) | RGB LEDs |
| **GAT562 30S Mesh Kit** | SX1262 (30 dBm / 1 W PA) | RAK4631 core module. OLED (SSD1306), 5-way joystick, buzzer, GPS, BME280 pad, 2×18650 + solar |
| **SenseCAP Solar** | SX1262 | GPS (L76K), QSPI flash, battery monitor |
| **XIAO nRF52840 + Wio-SX1262** | SX1262 | Bare XIAO + Wio-SX1262 expansion |
| **ProMicro SX1262** | SX1262 (E22-900M30S) | GPS, battery ADC, button, LED |
| **muzi works R1 Neo** | SX1262 | GPS, RTC, buzzer, button, LEDs, soft power-off |
### ESP32
| Board | MCU | Radio | Extras |
|-------|-----|-------|--------|
| **XIAO ESP32-C3** | ESP32-C3 | SX1262 | BLE 5.0 |
| **XIAO ESP32-C6** | ESP32-C6 | SX1262 | BLE 5.0, Wi-Fi 6 |
| **XIAO ESP32-S3** | ESP32-S3 | SX1262 | BLE 5.0, 8MB flash, 8MB PSRAM |
| **Station G2** | ESP32-S3 | SX1262 + PA (~20 dB gain) | OLED (SH1106), GPS, 16MB flash, 8MB PSRAM |
| **LilyGo TLoRa C6** | ESP32-C6 | SX1262 | BLE 5.0, Wi-Fi 6 |
| **LilyGo T3S3** | ESP32-S3 | SX1262 | OLED (SSD1306), button, TX LED, battery ADC, 4MB flash, 2MB PSRAM. **SX1262 variant only** — the SX1276/SX1280/LR1121 versions of this board are not supported |
| **Heltec V3** | ESP32-S3 | SX1262 | OLED (SSD1306), 8MB flash |
| **Heltec V4.2** | ESP32-S3 | SX1262 + GC1109 PA | OLED (SSD1306), 16MB flash, 2MB PSRAM |
| **Heltec V4.3** | ESP32-S3 | SX1262 + KCT8103L PA | OLED (SSD1306), 16MB flash, 2MB PSRAM |
| **Heltec Wireless Tracker V1.1** | ESP32-S3 | SX1262 | ST7735R 160×80 TFT, UC6580 GPS |
| **Heltec Wireless Tracker V2** | ESP32-S3FN8 | SX1262 + KCT8103L PA/FEM | ST7735R 160x80 TFT, UC6580 GNSS, battery ADC |
| **ThinkNode M9** | ESP32-S3 | LR1110 | ST7789 320x240 TFT, CC1167Q GPS, PCF8563 RTC, buzzer, 16MB flash, 8MB PSRAM |
| **LilyGo T-Beam v1.2** | ESP32 (PICO-D4) | SX1262 | AXP2101 PMU, GNSS, USB-UART CLI |
| **TTGO LoRa32** | ESP32 (PICO-D4) | **SX1276** (loramac-node backend) | SX127x reference board — **source-only, no published firmware** |
### Other
| Board | MCU | Radio | Extras |
|-------|-----|-------|--------|
| **XIAO nRF54L15 + Wio-SX1262** | nRF54L15 | SX1262 | FLPR multicore, RRAM storage |
| **XIAO MG24 + Wio-SX1262** | EFR32MG24 | SX1262 | BLE (SiLabs blob) |
| **Seeed LoRa-E5 mini** | STM32WL (STM32WLE5JC) | Integrated sub-GHz (SX1262-class) | No BLE/USB — companion + CLI over USART1 |
ZephCore also runs as a **native Linux process** on SBCs (Femtofox / Luckfox Pico Mini, Raspberry Pi + RAK6421 HAT) with a real SX1262 on SPI/GPIO and the companion app connecting over TCP — see [LINUX_NATIVE.md](zephcore/LINUX_NATIVE.md).
For exact `west build -b` board strings, flash methods, and special setup, see the [supported boards list](zephcore/boards/supported_boards.md) and the [Board Porting Guide](zephcore/boards/example_board/README.md).
For the full board list with exact `west build -b` strings, radios, and
hardware notes, see the [supported boards list](docs/supported_boards.md) and
the [Board Porting Guide](zephcore/boards/example_board/README.md).
## Device Roles
- **Companion** (default) -- connects to MeshCore mobile apps via BLE. Contacts, channels, offline message queue.
- **Repeater** -- forwards packets, configured via USB serial CLI. See the [Repeater CLI Command Reference](zephcore/Repeater_CLI_commands.md) for all available commands.
- **Companion** (default) -- connects to MeshCore mobile apps via BLE/USB. Contacts, channels, offline message queue.
- **Repeater** -- forwards packets, configured via USB serial CLI. See the [Repeater CLI Command Reference](docs/Repeater_CLI_commands.md) for all available commands.
- **Room Server** -- store-and-forward shared message room (a "BBS"). Clients log in with an admin or guest password and post messages; the server pushes each new post to every other logged-in client. No BLE; configured via the same USB serial CLI as the repeater.
- **Observer** (ESP32 only) -- listen-only node that publishes received LoRa packets to MQTT over WiFi STA. Configured at runtime via serial CLI.
@@ -193,7 +150,6 @@ The old `txdelay`, `rxdelay`, and `direct.txdelay` commands are still accepted f
## Power Saving
- **LoRa RX duty cycle**: chip-autonomous receive windowing (sniff mode) reduces LoRa RX current from ~10-15mA to ~3-5mA. Off by default; toggle at runtime with `set rxduty on/off` (SX126x only — unsupported on LR1110 due to a mid-preamble lock issue, and on SX127x). Window timing is auto-sized per SF/BW/preamble from the SX126x datasheet constraints.
- **Adaptive Power Control (APC)**: compiled in by default but disabled at runtime. Enable per-node with `set tx apc` -- automatically reduces TX power when echo SNR shows excess margin, ramping back up if echoes drop. See [apc.md](zephcore/apc.md).
- **Production by default**: No logging, no asserts, reboot-on-fatal. Add `debug.conf` to enable logging.
- **GPIO-gated GPS**: Powered on only during fix acquisition
@@ -263,7 +219,7 @@ zephcore/
## License
MIT License — see [`zephcore/LICENSE`](zephcore/LICENSE). Same license as the
MIT License — see [`LICENSE`](LICENSE). Same license as the
upstream MeshCore project, which this work relies heavily on (see the
[official meshcore repo](https://github.com/meshcore-dev/MeshCore/)).
+1 -1
View File
@@ -84,4 +84,4 @@ adverts take tens of minutes to accumulate after a reboot, so an operator
syncing right after login always wins.
For the design details (consensus algorithm, security model, why the limits
are what they are), see [ARCHITECTURE.md](zephcore/ARCHITECTURE.md) section 4.9.
are what they are), see [ARCHITECTURE.md](ARCHITECTURE.md) section 4.9.
@@ -19,10 +19,12 @@ sensecap_solar
xiao_nrf52840
lilygo_techo
promicro_sx1262
promicro_lr2021
heltec_t114
heltec_t096
gat562_30s
muziworks_r1neo
lilygo_timpulse_plus
```
> **RAK WisMesh Pocket** (WisBlock pocket): use `-b rak4631` — same board string and firmware as **RAK4631**.
@@ -32,6 +34,10 @@ muziworks_r1neo
> **SenseCAP MeshTracker X1** (`meshtracker_x1`): nRF52840 + LR2021, AG3335M dual-band L1+L5 GNSS, SPA06 barometer, DRV2605L vibration, YSN8900 RTC, 8 MB QSPI flash (`/ext`), RGB LED, buzzer. Untested on hardware — first ZephCore board to use a real LR2021. The RTC is treated as an RX8900 second-source; boot-time discovery validates that before trusting it.
>
> **Heltec Mesh Node T096** (`heltec_t096`): nRF52840 with SX1262 + KCT8103L PA/FEM, UC6580 GNSS, and ST7735S 160x80 TFT companion display. The external SPI flash footprint is documented in the board notes but left disabled until the device parameters are confirmed.
>
> **LilyGo T-Impulse Plus** (`lilygo_timpulse_plus`): nRF52840 wristband/tracker with SX1262 (GPIO antenna switch, not DIO2), SSD1315 64x32 OLED, u-blox MIA-M10Q GPS, 4 MB QSPI flash (`/ext`), touch button, haptic motor. Builds and ships in releases, but several parameters are inferred from vendor sources and not bench-verified (TCXO voltage, battery divider ratio, OLED offsets) — see the board README. Early hardware testing also showed occasional spontaneous reboots, untriaged.
>
> **ProMicro LR2021** (`promicro_lr2021`): nRF52840 SuperMini + Semtech LR2021, the first ZephCore board bring-up for that radio. Source-only — **not in `build.sh`, the release workflow, or the Mesh America catalog**, so no release carries a binary for it. The bring-up module was destroyed by an accidental 5V feed (LR2021 VBAT max ~3.7V); build it yourself if you want to continue testing on a fresh module.
## ESP32
@@ -129,4 +135,4 @@ me25ls02/nrf54l15/cpuapp
Not `west build -b` boards — `EXTRA_CONF_FILE` presets on top of `native_sim`
for SBCs (Femtofox / Luckfox Pico Mini, Raspberry Pi + RAK6421 HAT). See
[LINUX_NATIVE.md](../LINUX_NATIVE.md) for build commands and wiring.
[LINUX_NATIVE.md](LINUX_NATIVE.md) for build commands and wiring.
+1
View File
@@ -0,0 +1 @@
<svg version="1.2" xmlns="http://www.w3.org/2000/svg" viewBox="27.295432425256188 18.5 401.2045675747438 466" width="445" height="505"><style>.a{fill:none;stroke:#7698bb;stroke-linecap:round;stroke-linejoin:round;stroke-width:10}.b{fill:#dfefff}.c{fill:none;stroke:#c9e4ff;stroke-linecap:round;stroke-linejoin:round;stroke-width:10}</style><path fill-rule="evenodd" class="a" d="m104.7 378.1l34.9 10.7z"/><path class="b" d="m113.1 383c-2.7 4.5-8.5 6.1-13 3.4-4.6-2.6-6.1-8.4-3.5-12.9 2.6-4.6 8.4-6.1 13-3.5 4.5 2.6 6.1 8.4 3.5 13z"/><path class="b" d="m147.4 393.5c-2.6 4.6-8.4 6.1-13 3.5-4.5-2.6-6.1-8.4-3.5-13 2.7-4.5 8.5-6.1 13-3.4 4.6 2.6 6.1 8.4 3.5 12.9z"/><path fill-rule="evenodd" class="a" d="m178.7 327.2l24.9 26.7z"/><path class="b" d="m183.5 335.6c-4.5 2.6-10.3 1-12.9-3.5-2.7-4.6-1.1-10.4 3.4-13 4.6-2.6 10.4-1.1 13 3.5 2.6 4.5 1.1 10.3-3.5 13z"/><path class="b" d="m208 361.9c-4.6 2.6-10.4 1.1-13-3.5-2.6-4.5-1.1-10.3 3.5-13 4.5-2.6 10.3-1 12.9 3.5 2.7 4.6 1.1 10.4-3.4 13z"/><path fill-rule="evenodd" class="a" d="m148 332.8l8.2 35.6z"/><path class="b" d="m148 342.5c-5.3 0-9.5-4.2-9.5-9.5 0-5.3 4.2-9.5 9.5-9.5 5.3 0 9.5 4.2 9.5 9.5 0 5.3-4.2 9.5-9.5 9.5z"/><path class="b" d="m156 377.5c-5.3 0-9.5-4.2-9.5-9.5 0-5.3 4.2-9.5 9.5-9.5 5.3 0 9.5 4.2 9.5 9.5 0 5.3-4.2 9.5-9.5 9.5z"/><path fill-rule="evenodd" class="a" d="m91.8 412.4l16.8 32.4z"/><path class="b" d="m94.1 421.8c-5.1 1.3-10.2-1.8-11.5-6.9-1.4-5.1 1.7-10.2 6.8-11.5 5.1-1.4 10.2 1.7 11.6 6.8 1.3 5.1-1.8 10.2-6.9 11.6z"/><path class="b" d="m110.6 453.6c-5.1 1.4-10.2-1.7-11.6-6.8-1.3-5.1 1.8-10.2 6.9-11.6 5.1-1.3 10.2 1.8 11.5 6.9 1.4 5.1-1.7 10.2-6.8 11.5z"/><path fill-rule="evenodd" class="a" d="m48.2 422.7l17.9 31.8z"/><path class="b" d="m50.9 432c-5 1.4-10.3-1.4-11.8-6.5-1.5-5 1.4-10.3 6.4-11.8 5.1-1.5 10.4 1.4 11.8 6.5 1.5 5-1.4 10.3-6.4 11.8z"/><path class="b" d="m68.5 463.3c-5.1 1.5-10.4-1.4-11.8-6.5-1.5-5 1.4-10.3 6.4-11.8 5-1.4 10.3 1.4 11.8 6.5 1.5 5-1.4 10.3-6.4 11.8z"/><path class="b" d="m37 484.5c-5.3 0-9.5-4.2-9.5-9.5 0-5.3 4.2-9.5 9.5-9.5 5.3 0 9.5 4.2 9.5 9.5 0 5.3-4.2 9.5-9.5 9.5z"/><path class="c" d="m206 307q-1.5 40.5-42 42-40.5 1.5-42 42-1.5 40.5-42 42c-27 1-42 15-43 42"/><path class="a" d="m399 28l-84 57m84-57l-74 110m74-110l-24 98m-150-53l100 65m-100-65l90 12m-90-12l30 77m60-65l10 53m50-12l-50 12m50-12l44 77m-94-65l-70 102m70-102l15 67m-15-67l94 65m-94-65l-70 12m70-12m-70 12l-43 52m43-52v90m-43-38l43 38m164-37m-79 2l-37 57m37-57l-85 35m0 0l48 22m-48-22l-49.1 67.1m97.1-45.1m37-57l79-2"/><path class="c" d="m225 73l-13 129-6 105 213-104-20-175z"/><path class="b" d="m399 37.5c-5.3 0-9.5-4.2-9.5-9.5 0-5.3 4.2-9.5 9.5-9.5 5.3 0 9.5 4.2 9.5 9.5 0 5.3-4.2 9.5-9.5 9.5z"/><path class="b" d="m225 82.5c-5.3 0-9.5-4.2-9.5-9.5 0-5.3 4.2-9.5 9.5-9.5 5.3 0 9.5 4.2 9.5 9.5 0 5.3-4.2 9.5-9.5 9.5z"/><path class="b" d="m419 212.5c-5.3 0-9.5-4.2-9.5-9.5 0-5.3 4.2-9.5 9.5-9.5 5.3 0 9.5 4.2 9.5 9.5 0 5.3-4.2 9.5-9.5 9.5z"/><path class="b" d="m206 316.5c-5.3 0-9.5-4.2-9.5-9.5 0-5.3 4.2-9.5 9.5-9.5 5.3 0 9.5 4.2 9.5 9.5 0 5.3-4.2 9.5-9.5 9.5z"/><path class="b" d="m315 94.5c-5.3 0-9.5-4.2-9.5-9.5 0-5.3 4.2-9.5 9.5-9.5 5.3 0 9.5 4.2 9.5 9.5 0 5.3-4.2 9.5-9.5 9.5z"/><path class="b" d="m375 135.5c-5.3 0-9.5-4.2-9.5-9.5 0-5.3 4.2-9.5 9.5-9.5 5.3 0 9.5 4.2 9.5 9.5 0 5.3-4.2 9.5-9.5 9.5z"/><path class="b" d="m325 147.5c-5.3 0-9.5-4.2-9.5-9.5 0-5.3 4.2-9.5 9.5-9.5 5.3 0 9.5 4.2 9.5 9.5 0 5.3-4.2 9.5-9.5 9.5z"/><path class="b" d="m255 159.5c-5.3 0-9.5-4.2-9.5-9.5 0-5.3 4.2-9.5 9.5-9.5 5.3 0 9.5 4.2 9.5 9.5 0 5.3-4.2 9.5-9.5 9.5z"/><path class="b" d="m212 211.5c-5.3 0-9.5-4.2-9.5-9.5 0-5.3 4.2-9.5 9.5-9.5 5.3 0 9.5 4.2 9.5 9.5 0 5.3-4.2 9.5-9.5 9.5z"/><path class="b" d="m340 214.5c-5.3 0-9.5-4.2-9.5-9.5 0-5.3 4.2-9.5 9.5-9.5 5.3 0 9.5 4.2 9.5 9.5 0 5.3-4.2 9.5-9.5 9.5z"/><path class="b" d="m255 249.5c-5.3 0-9.5-4.2-9.5-9.5 0-5.3 4.2-9.5 9.5-9.5 5.3 0 9.5 4.2 9.5 9.5 0 5.3-4.2 9.5-9.5 9.5z"/><path class="b" d="m303 271.5c-5.3 0-9.5-4.2-9.5-9.5 0-5.3 4.2-9.5 9.5-9.5 5.3 0 9.5 4.2 9.5 9.5 0 5.3-4.2 9.5-9.5 9.5z"/><path class="b" d="m37 484.5c-5.3 0-9.5-4.2-9.5-9.5 0-5.3 4.2-9.5 9.5-9.5 5.3 0 9.5 4.2 9.5 9.5 0 5.3-4.2 9.5-9.5 9.5z"/></svg>

After

Width:  |  Height:  |  Size: 4.1 KiB

+1
View File
@@ -0,0 +1 @@
<svg version="1.2" xmlns="http://www.w3.org/2000/svg" viewBox="27.295432425256188 18.5 401.2045675747438 466" width="445" height="505"><style>.a{fill:none;stroke:#a6c7e9;stroke-linecap:round;stroke-linejoin:round;stroke-width:10}.b{fill:#4f6881}.c{fill:none;stroke:#4f6881;stroke-linecap:round;stroke-linejoin:round;stroke-width:10}</style><path fill-rule="evenodd" class="a" d="m104.7 378.1l34.9 10.7z"/><path class="b" d="m113.1 383c-2.7 4.5-8.5 6.1-13 3.4-4.6-2.6-6.1-8.4-3.5-12.9 2.6-4.6 8.4-6.1 13-3.5 4.5 2.6 6.1 8.4 3.5 13z"/><path class="b" d="m147.4 393.5c-2.6 4.6-8.4 6.1-13 3.5-4.5-2.6-6.1-8.4-3.5-13 2.7-4.5 8.5-6.1 13-3.4 4.6 2.6 6.1 8.4 3.5 12.9z"/><path fill-rule="evenodd" class="a" d="m178.7 327.2l24.9 26.7z"/><path class="b" d="m183.5 335.6c-4.5 2.6-10.3 1-12.9-3.5-2.7-4.6-1.1-10.4 3.4-13 4.6-2.6 10.4-1.1 13 3.5 2.6 4.5 1.1 10.3-3.5 13z"/><path class="b" d="m208 361.9c-4.6 2.6-10.4 1.1-13-3.5-2.6-4.5-1.1-10.3 3.5-13 4.5-2.6 10.3-1 12.9 3.5 2.7 4.6 1.1 10.4-3.4 13z"/><path fill-rule="evenodd" class="a" d="m148 332.8l8.2 35.6z"/><path class="b" d="m148 342.5c-5.3 0-9.5-4.2-9.5-9.5 0-5.3 4.2-9.5 9.5-9.5 5.3 0 9.5 4.2 9.5 9.5 0 5.3-4.2 9.5-9.5 9.5z"/><path class="b" d="m156 377.5c-5.3 0-9.5-4.2-9.5-9.5 0-5.3 4.2-9.5 9.5-9.5 5.3 0 9.5 4.2 9.5 9.5 0 5.3-4.2 9.5-9.5 9.5z"/><path fill-rule="evenodd" class="a" d="m91.8 412.4l16.8 32.4z"/><path class="b" d="m94.1 421.8c-5.1 1.3-10.2-1.8-11.5-6.9-1.4-5.1 1.7-10.2 6.8-11.5 5.1-1.4 10.2 1.7 11.6 6.8 1.3 5.1-1.8 10.2-6.9 11.6z"/><path class="b" d="m110.6 453.6c-5.1 1.4-10.2-1.7-11.6-6.8-1.3-5.1 1.8-10.2 6.9-11.6 5.1-1.3 10.2 1.8 11.5 6.9 1.4 5.1-1.7 10.2-6.8 11.5z"/><path fill-rule="evenodd" class="a" d="m48.2 422.7l17.9 31.8z"/><path class="b" d="m50.9 432c-5 1.4-10.3-1.4-11.8-6.5-1.5-5 1.4-10.3 6.4-11.8 5.1-1.5 10.4 1.4 11.8 6.5 1.5 5-1.4 10.3-6.4 11.8z"/><path class="b" d="m68.5 463.3c-5.1 1.5-10.4-1.4-11.8-6.5-1.5-5 1.4-10.3 6.4-11.8 5-1.4 10.3 1.4 11.8 6.5 1.5 5-1.4 10.3-6.4 11.8z"/><path class="b" d="m37 484.5c-5.3 0-9.5-4.2-9.5-9.5 0-5.3 4.2-9.5 9.5-9.5 5.3 0 9.5 4.2 9.5 9.5 0 5.3-4.2 9.5-9.5 9.5z"/><path class="c" d="m206 307q-1.5 40.5-42 42-40.5 1.5-42 42-1.5 40.5-42 42c-27 1-42 15-43 42"/><path class="a" d="m399 28l-84 57m84-57l-74 110m74-110l-24 98m-150-53l100 65m-100-65l90 12m-90-12l30 77m60-65l10 53m50-12l-50 12m50-12l44 77m-94-65l-70 102m70-102l15 67m-15-67l94 65m-94-65l-70 12m70-12m-70 12l-43 52m43-52v90m-43-38l43 38m164-37m-79 2l-37 57m37-57l-85 35m0 0l48 22m-48-22l-49.1 67.1m97.1-45.1m37-57l79-2"/><path class="c" d="m225 73l-13 129-6 105 213-104-20-175z"/><path class="b" d="m399 37.5c-5.3 0-9.5-4.2-9.5-9.5 0-5.3 4.2-9.5 9.5-9.5 5.3 0 9.5 4.2 9.5 9.5 0 5.3-4.2 9.5-9.5 9.5z"/><path class="b" d="m225 82.5c-5.3 0-9.5-4.2-9.5-9.5 0-5.3 4.2-9.5 9.5-9.5 5.3 0 9.5 4.2 9.5 9.5 0 5.3-4.2 9.5-9.5 9.5z"/><path class="b" d="m419 212.5c-5.3 0-9.5-4.2-9.5-9.5 0-5.3 4.2-9.5 9.5-9.5 5.3 0 9.5 4.2 9.5 9.5 0 5.3-4.2 9.5-9.5 9.5z"/><path class="b" d="m206 316.5c-5.3 0-9.5-4.2-9.5-9.5 0-5.3 4.2-9.5 9.5-9.5 5.3 0 9.5 4.2 9.5 9.5 0 5.3-4.2 9.5-9.5 9.5z"/><path class="b" d="m315 94.5c-5.3 0-9.5-4.2-9.5-9.5 0-5.3 4.2-9.5 9.5-9.5 5.3 0 9.5 4.2 9.5 9.5 0 5.3-4.2 9.5-9.5 9.5z"/><path class="b" d="m375 135.5c-5.3 0-9.5-4.2-9.5-9.5 0-5.3 4.2-9.5 9.5-9.5 5.3 0 9.5 4.2 9.5 9.5 0 5.3-4.2 9.5-9.5 9.5z"/><path class="b" d="m325 147.5c-5.3 0-9.5-4.2-9.5-9.5 0-5.3 4.2-9.5 9.5-9.5 5.3 0 9.5 4.2 9.5 9.5 0 5.3-4.2 9.5-9.5 9.5z"/><path class="b" d="m255 159.5c-5.3 0-9.5-4.2-9.5-9.5 0-5.3 4.2-9.5 9.5-9.5 5.3 0 9.5 4.2 9.5 9.5 0 5.3-4.2 9.5-9.5 9.5z"/><path class="b" d="m212 211.5c-5.3 0-9.5-4.2-9.5-9.5 0-5.3 4.2-9.5 9.5-9.5 5.3 0 9.5 4.2 9.5 9.5 0 5.3-4.2 9.5-9.5 9.5z"/><path class="b" d="m340 214.5c-5.3 0-9.5-4.2-9.5-9.5 0-5.3 4.2-9.5 9.5-9.5 5.3 0 9.5 4.2 9.5 9.5 0 5.3-4.2 9.5-9.5 9.5z"/><path class="b" d="m255 249.5c-5.3 0-9.5-4.2-9.5-9.5 0-5.3 4.2-9.5 9.5-9.5 5.3 0 9.5 4.2 9.5 9.5 0 5.3-4.2 9.5-9.5 9.5z"/><path class="b" d="m303 271.5c-5.3 0-9.5-4.2-9.5-9.5 0-5.3 4.2-9.5 9.5-9.5 5.3 0 9.5 4.2 9.5 9.5 0 5.3-4.2 9.5-9.5 9.5z"/><path class="b" d="m37 484.5c-5.3 0-9.5-4.2-9.5-9.5 0-5.3 4.2-9.5 9.5-9.5 5.3 0 9.5 4.2 9.5 9.5 0 5.3-4.2 9.5-9.5 9.5z"/></svg>

After

Width:  |  Height:  |  Size: 4.1 KiB

@@ -59,7 +59,7 @@ Quiet sites end up *more* sensitive than the old fixed default (fewer stomped pa
off until the false alarms stop. CAD also now uses 4 detection symbols everywhere, which improves detection
of an in-progress packet's payload (not just its preamble). Full guide, including the honest limitation
that the "missed detection" side isn't locally observable, is in
**[ADAPTIVE_CAD.md](https://github.com/liquidraver/ZephCore/blob/master/zephcore/ADAPTIVE_CAD.md)**.
**[ADAPTIVE_CAD.md](https://github.com/liquidraver/ZephCore/blob/master/docs/ADAPTIVE_CAD.md)**.
(SX127x boards have no hardware CAD and keep their RSSI-based gate.)
### New: V-Contact — admin your companion from the chat app, no cable
+2 -15
View File
@@ -161,7 +161,7 @@ that empty slot. Unused slots are now skipped, so those messages are simply igno
If your node keeps finding the channel busy and can never transmit, it now says so after four seconds and
flags it as an error. Before, a node that could hear everyone but never got heard back looked completely
idle, with nothing in the log to explain it.
idle, with nothing in the log to explain it. (in debug logs)
All roles, all boards.
@@ -232,12 +232,6 @@ instead of once. Now it does it once, halving the time it spends unable to hear
LR2021 boards only.
## An LR1110 too old to reach the mesh now says so
An LR1110 running firmware older than 0x0303 cannot be moved off the public LoRa channel. It transmits
and receives perfectly well, but nobody on your mesh can see it. That now appears in the log instead of
looking like a broken radio.
## New setting: switch the antenna amplifier's receive gain off
Some boards carry an extra amplifier chip between the radio and the antenna. It boosts what the node
@@ -249,13 +243,6 @@ amplifier draws. Transmitting is untouched: every packet the node sends still go
amplifier at full strength. `set radio.fem.rxgain 1` puts it back, and `get radio.fem.rxgain` shows where
it stands. The node keeps the setting across reboots.
> [!WARNING]
> **This costs range, and a lot of it.** With the receive side off the node goes substantially deafer —
> on a Wireless Tracker V2 the measured noise floor moves by about 23 dB between the two settings. Distant
> and weak neighbours simply stop being heard, while the node's own transmissions carry exactly as far as
> before, so from the outside it still looks perfectly healthy. Only worth doing on a battery-powered node
> where you already know every neighbour is close and strong.
Supported on the **Heltec T096**, **Wireless Tracker V2**, **WiFi LoRa 32 V4** and **WiFi LoRa 32 V4.3**.
Everything else replies `Error: unsupported` — either the board has no such amplifier, or its amplifier is
switched on by a line the radio driver cannot reach. The **RAK3401 1 W** is in that second group.
@@ -280,7 +267,7 @@ LR1110 it never could, so the adaptive channel-busy detection had nothing to wor
calibrated. And the check that stops a node transmitting over a packet it is already receiving was
answering "not receiving" almost always, which quietly disabled it.
**LR1110 boards** (T1000-E, ThinkNode M9, Wio-SX1262 variants and others). If you switched `rxduty` off
**LR1110 boards** (T1000-E, ThinkNode M9, Wio variants and others). If you switched `rxduty` off
because the node seemed unreliable, it is worth switching back on.
## Contacts survive a power cut, and the flash lasts longer