chore: rename EastMesh observer release tracks
This commit is contained in:
@@ -32,7 +32,7 @@ body:
|
||||
attributes:
|
||||
label: Firmware Target
|
||||
description: Firmware environment or binary name, if known.
|
||||
placeholder: e.g. Heltec_v3_repeater_mqtt
|
||||
placeholder: e.g. Heltec_v3_repeater_observer
|
||||
validations:
|
||||
required: false
|
||||
|
||||
|
||||
@@ -41,19 +41,19 @@ runs:
|
||||
echo "$GITHUB_WORKSPACE/.venv/bin" >> "$GITHUB_PATH"
|
||||
|
||||
# Active release tag formats:
|
||||
# companion-wifi-v1.2.3
|
||||
# repeater-bridge-espnow-v1.2.3
|
||||
# repeater-mqtt-bridge-eastmesh-v1.0.1
|
||||
# repeater-mqtt-eastmesh-v1.0.1
|
||||
# with OFFICIAL_MESHCORE_VERSION=v1.2.3 configured as a GitHub variable.
|
||||
# companion-wifi-v1.15.0
|
||||
# repeater-bridge-espnow-v1.15.0
|
||||
# observer-bridge-espnow-eastmesh-v2026.5.1
|
||||
# observer-eastmesh-v2026.5.1
|
||||
# with OFFICIAL_MESHCORE_VERSION=v1.15.0 configured as a GitHub variable.
|
||||
#
|
||||
# This exports:
|
||||
# companion-wifi-v1.2.3 -> FIRMWARE_VERSION=v1.2.3, RELEASE_VERSION=v1.2.3
|
||||
# repeater-bridge-espnow-v1.2.3 -> FIRMWARE_VERSION=v1.2.3, RELEASE_VERSION=v1.2.3
|
||||
# repeater-mqtt-bridge-eastmesh-v1.0.1 -> FIRMWARE_VERSION=v1.2.3, EASTMESH_VERSION=v1.0.1,
|
||||
# RELEASE_VERSION=v1.2.3-eastmesh-v1.0.1
|
||||
# repeater-mqtt-eastmesh-v1.0.1 -> FIRMWARE_VERSION=v1.2.3, EASTMESH_VERSION=v1.0.1,
|
||||
# RELEASE_VERSION=v1.2.3-eastmesh-v1.0.1
|
||||
# companion-wifi-v1.15.0 -> FIRMWARE_VERSION=v1.15.0, RELEASE_VERSION=v1.15.0
|
||||
# repeater-bridge-espnow-v1.15.0 -> FIRMWARE_VERSION=v1.15.0, RELEASE_VERSION=v1.15.0
|
||||
# observer-bridge-espnow-eastmesh-v2026.5.1 -> FIRMWARE_VERSION=v1.15.0, EASTMESH_VERSION=v2026.5.1,
|
||||
# RELEASE_VERSION=v1.15.0-eastmesh-v2026.5.1
|
||||
# observer-eastmesh-v2026.5.1 -> FIRMWARE_VERSION=v1.15.0, EASTMESH_VERSION=v2026.5.1,
|
||||
# RELEASE_VERSION=v1.15.0-eastmesh-v2026.5.1
|
||||
- name: Extract Version Info
|
||||
shell: bash
|
||||
run: |
|
||||
@@ -73,13 +73,13 @@ runs:
|
||||
EASTMESH_VERSION=""
|
||||
FIRMWARE_VERSION="$STATIC_OFFICIAL_VERSION"
|
||||
|
||||
if [[ "$GIT_TAG_NAME" =~ ^repeater-mqtt-eastmesh-(v[[:alnum:]._-]+)$ ]]; then
|
||||
if [[ "$GIT_TAG_NAME" =~ ^observer-eastmesh-(v[[:alnum:]._-]+)$ ]]; then
|
||||
if [[ -z "$STATIC_OFFICIAL_VERSION" ]]; then
|
||||
echo "OFFICIAL_MESHCORE_VERSION must be set for EastMesh release tags" >&2
|
||||
exit 1
|
||||
fi
|
||||
EASTMESH_VERSION="${BASH_REMATCH[1]}"
|
||||
elif [[ "$GIT_TAG_NAME" =~ ^repeater-mqtt-bridge-eastmesh-(v[[:alnum:]._-]+)$ ]]; then
|
||||
elif [[ "$GIT_TAG_NAME" =~ ^observer-bridge-espnow-eastmesh-(v[[:alnum:]._-]+)$ ]]; then
|
||||
if [[ -z "$STATIC_OFFICIAL_VERSION" ]]; then
|
||||
echo "OFFICIAL_MESHCORE_VERSION must be set for EastMesh release tags" >&2
|
||||
exit 1
|
||||
|
||||
+5
-7
@@ -1,4 +1,4 @@
|
||||
name: EastMesh Build Repeater MQTT Bridge Firmwares
|
||||
name: EastMesh Build Observer ESP-NOW Firmwares
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
@@ -7,17 +7,15 @@ on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
tags:
|
||||
- "repeater-mqtt-bridge-eastmesh-*"
|
||||
- "observer-bridge-espnow-eastmesh-v*"
|
||||
|
||||
jobs:
|
||||
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
OFFICIAL_MESHCORE_VERSION: ${{ vars.OFFICIAL_MESHCORE_VERSION }}
|
||||
PLATFORMIO_BUILD_FLAGS: -UMQTT_DEBUG
|
||||
steps:
|
||||
|
||||
- name: Clone Repo
|
||||
uses: actions/checkout@v6
|
||||
|
||||
@@ -25,19 +23,19 @@ jobs:
|
||||
uses: ./.github/actions/setup-build-environment
|
||||
|
||||
- name: Build Firmwares
|
||||
run: /usr/bin/env bash eastmesh-build.sh build-repeater-mqtt-bridge-firmwares
|
||||
run: /usr/bin/env bash eastmesh-build.sh build-observer-espnow-firmwares
|
||||
|
||||
- name: Upload Workflow Artifacts
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: repeater-mqtt-bridge-firmwares
|
||||
name: observer-espnow-firmwares
|
||||
path: out
|
||||
|
||||
- name: Create Release
|
||||
uses: softprops/action-gh-release@v3
|
||||
if: startsWith(github.ref, 'refs/tags/')
|
||||
with:
|
||||
name: Repeater MQTT Bridge Firmware ${{ env.RELEASE_VERSION }}
|
||||
name: Observer ESP-NOW Bridge Firmware ${{ env.RELEASE_VERSION }}
|
||||
body: ""
|
||||
draft: true
|
||||
files: out/*
|
||||
+5
-7
@@ -1,4 +1,4 @@
|
||||
name: EastMesh Build Repeater MQTT Firmwares
|
||||
name: EastMesh Build Observer Firmwares
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
@@ -7,17 +7,15 @@ on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
tags:
|
||||
- "repeater-mqtt-eastmesh-*"
|
||||
- "observer-eastmesh-v*"
|
||||
|
||||
jobs:
|
||||
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
OFFICIAL_MESHCORE_VERSION: ${{ vars.OFFICIAL_MESHCORE_VERSION }}
|
||||
PLATFORMIO_BUILD_FLAGS: -UMQTT_DEBUG
|
||||
steps:
|
||||
|
||||
- name: Clone Repo
|
||||
uses: actions/checkout@v6
|
||||
|
||||
@@ -25,19 +23,19 @@ jobs:
|
||||
uses: ./.github/actions/setup-build-environment
|
||||
|
||||
- name: Build Firmwares
|
||||
run: /usr/bin/env bash eastmesh-build.sh build-repeater-mqtt-firmwares
|
||||
run: /usr/bin/env bash eastmesh-build.sh build-observer-firmwares
|
||||
|
||||
- name: Upload Workflow Artifacts
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: repeater-mqtt-firmwares
|
||||
name: observer-firmwares
|
||||
path: out
|
||||
|
||||
- name: Create Release
|
||||
uses: softprops/action-gh-release@v3
|
||||
if: startsWith(github.ref, 'refs/tags/')
|
||||
with:
|
||||
name: Repeater MQTT Firmware ${{ env.RELEASE_VERSION }}
|
||||
name: Observer MQTT Firmware ${{ env.RELEASE_VERSION }}
|
||||
body: ""
|
||||
draft: true
|
||||
files: out/*
|
||||
@@ -22,11 +22,11 @@ jobs:
|
||||
environment:
|
||||
# ESP32-S3 / core EastMesh targets
|
||||
- heltec_v4_companion_radio_wifi
|
||||
- heltec_v4_repeater_mqtt
|
||||
- heltec_v4_repeater_observer
|
||||
- LilyGo_TBeam_1W_companion_radio_wifi
|
||||
- LilyGo_TBeam_1W_repeater_mqtt
|
||||
- LilyGo_TBeam_1W_repeater_observer
|
||||
- T_Beam_S3_Supreme_SX1262_companion_radio_wifi
|
||||
- T_Beam_S3_Supreme_SX1262_repeater_mqtt
|
||||
- T_Beam_S3_Supreme_SX1262_repeater_observer
|
||||
|
||||
steps:
|
||||
- name: Clone Repo
|
||||
|
||||
@@ -21,12 +21,12 @@ jobs:
|
||||
matrix:
|
||||
environment:
|
||||
# ESP32-S3 / core EastMesh targets
|
||||
- heltec_v4_repeater_mqtt
|
||||
- LilyGo_TBeam_1W_repeater_mqtt
|
||||
- T_Beam_S3_Supreme_SX1262_repeater_mqtt
|
||||
- heltec_v4_repeater_observer
|
||||
- LilyGo_TBeam_1W_repeater_observer
|
||||
- T_Beam_S3_Supreme_SX1262_repeater_observer
|
||||
# ESP32-C6
|
||||
- LilyGo_Tlora_C6_repeater_mqtt
|
||||
- Xiao_C6_repeater_mqtt
|
||||
- LilyGo_Tlora_C6_repeater_observer
|
||||
- Xiao_C6_repeater_observer
|
||||
|
||||
steps:
|
||||
- name: Clone Repo
|
||||
|
||||
@@ -7,7 +7,7 @@ EastMesh layer on top of upstream MeshCore.
|
||||
**Default:** preserve upstream behavior.
|
||||
Only modify code for clearly scoped EastMesh features:
|
||||
|
||||
- `*_repeater_mqtt`
|
||||
- `*_repeater_observer`
|
||||
- `*_companion_radio_wifi`
|
||||
- MQTT uplink/broker
|
||||
- repeater web panel
|
||||
@@ -87,8 +87,8 @@ bash eastmesh-build.sh list
|
||||
Build a single target:
|
||||
|
||||
```bash
|
||||
uv run pio run -e heltec_v4_repeater_mqtt
|
||||
uv run pio run -e T_Beam_S3_Supreme_SX1262_repeater_mqtt
|
||||
uv run pio run -e heltec_v4_repeater_observer
|
||||
uv run pio run -e T_Beam_S3_Supreme_SX1262_repeater_observer
|
||||
uv run pio run -e heltec_v4_companion_radio_wifi
|
||||
uv run pio run -e T_Beam_S3_Supreme_SX1262_companion_radio_wifi
|
||||
```
|
||||
@@ -96,17 +96,17 @@ uv run pio run -e T_Beam_S3_Supreme_SX1262_companion_radio_wifi
|
||||
Build with release-style metadata:
|
||||
|
||||
```bash
|
||||
export FIRMWARE_VERSION=v1.14.1
|
||||
export EASTMESH_VERSION=v1.0.1
|
||||
bash eastmesh-build.sh build-firmware heltec_v4_repeater_mqtt
|
||||
bash eastmesh-build.sh build-firmware T_Beam_S3_Supreme_SX1262_repeater_mqtt
|
||||
export FIRMWARE_VERSION=v1.15.0
|
||||
export EASTMESH_VERSION=v2026.5.1
|
||||
bash eastmesh-build.sh build-firmware heltec_v4_repeater_observer
|
||||
bash eastmesh-build.sh build-firmware T_Beam_S3_Supreme_SX1262_repeater_observer
|
||||
```
|
||||
|
||||
Flash a target:
|
||||
|
||||
```bash
|
||||
uv run pio run -e heltec_v4_repeater_mqtt -t upload --upload-port /dev/tty.usbmodemXXXX
|
||||
uv run pio run -e T_Beam_S3_Supreme_SX1262_repeater_mqtt -t upload --upload-port /dev/tty.usbmodemXXXX
|
||||
uv run pio run -e heltec_v4_repeater_observer -t upload --upload-port /dev/tty.usbmodemXXXX
|
||||
uv run pio run -e T_Beam_S3_Supreme_SX1262_repeater_observer -t upload --upload-port /dev/tty.usbmodemXXXX
|
||||
```
|
||||
|
||||
## Key Files
|
||||
@@ -142,9 +142,9 @@ If you change any of the following, update docs in the same PR when practical:
|
||||
- Flashing/release asset guidance:
|
||||
- update `eastmesh-docs/releases.md`
|
||||
|
||||
## Repeater MQTT Notes
|
||||
## Observer Notes
|
||||
|
||||
`*_repeater_mqtt` builds may include the local HTTPS web panel on supported ESP32 targets.
|
||||
`*_repeater_observer` builds may include the local HTTPS web panel on supported ESP32 targets.
|
||||
|
||||
Operational guidance already reflected in docs:
|
||||
|
||||
@@ -160,7 +160,7 @@ Do not document companion rescue commands in repeater docs. Do not assume web-pa
|
||||
Companion release/version rule:
|
||||
|
||||
- companion tags use the official upstream MeshCore release version only
|
||||
- the current official MeshCore version is `v1.14.1`
|
||||
- the current official MeshCore version is `v1.15.0`
|
||||
- companion releases are only cut when `meshcore-dev/MeshCore` has made an official release
|
||||
- do not invent separate EastMesh companion version numbers
|
||||
|
||||
@@ -169,19 +169,19 @@ Companion release/version rule:
|
||||
Current tag formats:
|
||||
|
||||
```bash
|
||||
git tag companion-wifi-v1.2.3
|
||||
git tag repeater-bridge-espnow-v1.2.3
|
||||
git tag repeater-mqtt-bridge-eastmesh-v1.0.1
|
||||
git tag repeater-mqtt-eastmesh-v1.0.1
|
||||
git tag companion-wifi-v1.15.0
|
||||
git tag repeater-bridge-espnow-v1.15.0
|
||||
git tag observer-bridge-espnow-eastmesh-v2026.5.1
|
||||
git tag observer-eastmesh-v2026.5.1
|
||||
```
|
||||
|
||||
Rules:
|
||||
|
||||
- `companion-wifi` tags use the upstream MeshCore version directly
|
||||
- `repeater-bridge-espnow` tags use the upstream MeshCore version directly
|
||||
- `repeater-mqtt-bridge` tags use the EastMesh release version in the tag
|
||||
- `repeater-mqtt` tags use the EastMesh release version in the tag
|
||||
- GitHub Actions variable `OFFICIAL_MESHCORE_VERSION` supplies the upstream base version for repeater MQTT and repeater MQTT bridge release builds
|
||||
- `observer-bridge-espnow-eastmesh` tags use the EastMesh release version in the tag
|
||||
- `observer-eastmesh` tags use the EastMesh release version in the tag
|
||||
- GitHub Actions variable `OFFICIAL_MESHCORE_VERSION` supplies the upstream base version for Observer EastMesh and Observer ESP-NOW EastMesh release builds
|
||||
- if the upstream MeshCore release version changes, update `OFFICIAL_MESHCORE_VERSION` in GitHub before cutting release tags
|
||||
|
||||
Typical release flow:
|
||||
|
||||
@@ -6,15 +6,15 @@ MeshCore-EastMesh originates from the upstream MeshCore project:
|
||||
|
||||
Credits to Scott Powell / Ripple Radios and the MeshCore contributors for the original firmware and project foundation.
|
||||
|
||||
EastMesh is a community-driven mesh network across Eastern Australia. This repository provides tailored builds of MeshCore, including WiFi companion firmware with additional CLI tools and MQTT-enabled repeater builds that integrate with our CoreScope telemetry platform.
|
||||
EastMesh is a community-driven mesh network across Eastern Australia. This repository provides tailored builds of MeshCore, including WiFi companion firmware with additional CLI tools and Observer firmware that integrates with our CoreScope telemetry platform.
|
||||
|
||||
CoreScope (<https://core.eastmesh.au>) offers visibility into the network, including repeater status, observers, and mapping data.
|
||||
|
||||
**MQTT repeater builds feed EastMesh Core telemetry and are intended for Eastern Australia repeaters only**; running them elsewhere can skew shared network data.
|
||||
**Observer builds feed EastMesh Core telemetry and are intended for Eastern Australia repeaters only**; running them elsewhere can skew shared network data.
|
||||
|
||||
## What This Repo Adds
|
||||
|
||||
- `*_repeater_mqtt` firmware targets with:
|
||||
- `*_repeater_observer` firmware targets with:
|
||||
- native WiFi
|
||||
- MQTT over WSS with JWT auth
|
||||
- optional local HTTPS config panel on supported ESP32 targets
|
||||
@@ -81,22 +81,22 @@ bash eastmesh-build.sh list
|
||||
Build a single target:
|
||||
|
||||
```bash
|
||||
uv run pio run -e heltec_v4_repeater_mqtt
|
||||
uv run pio run -e heltec_v4_repeater_observer
|
||||
uv run pio run -e heltec_v4_companion_radio_wifi
|
||||
```
|
||||
|
||||
Build with release-style version metadata:
|
||||
|
||||
```bash
|
||||
export FIRMWARE_VERSION=v1.14.1
|
||||
export EASTMESH_VERSION=v1.0.1
|
||||
bash eastmesh-build.sh build-firmware heltec_v4_repeater_mqtt
|
||||
export FIRMWARE_VERSION=v1.15.0
|
||||
export EASTMESH_VERSION=v2026.5.1
|
||||
bash eastmesh-build.sh build-firmware heltec_v4_repeater_observer
|
||||
```
|
||||
|
||||
Flash a target:
|
||||
|
||||
```bash
|
||||
uv run pio run -e heltec_v4_repeater_mqtt -t upload --upload-port /dev/tty.usbmodemXXXX
|
||||
uv run pio run -e heltec_v4_repeater_observer -t upload --upload-port /dev/tty.usbmodemXXXX
|
||||
```
|
||||
|
||||
Open a serial monitor:
|
||||
@@ -124,7 +124,7 @@ uv run --group docs zensical build
|
||||
- [`platformio.ini`](./platformio.ini)
|
||||
- root PlatformIO config and ESP32 helper scripts
|
||||
- [`variants/eastmesh_mqtt/platformio.ini`](./variants/eastmesh_mqtt/platformio.ini)
|
||||
- shared EastMesh MQTT repeater env definitions
|
||||
- shared EastMesh observer env definitions
|
||||
- [`examples/simple_repeater/MyMesh.cpp`](./examples/simple_repeater/MyMesh.cpp)
|
||||
- repeater CLI wiring, MQTT command surface, and web allowlist integration
|
||||
- [`src/helpers/mqtt/MQTTUplink.cpp`](./src/helpers/mqtt/MQTTUplink.cpp)
|
||||
@@ -159,7 +159,7 @@ uv run --group docs zensical build
|
||||
|
||||
### Local Web Panel
|
||||
|
||||
On supported `*_repeater_mqtt` ESP32 targets, the repeater can expose a local HTTPS config panel over WiFi.
|
||||
On supported `*_repeater_observer` ESP32 targets, the repeater can expose a local HTTPS config panel over WiFi.
|
||||
|
||||
Features include:
|
||||
|
||||
@@ -169,7 +169,7 @@ Features include:
|
||||
- light and dark themes
|
||||
- optional disable via `set web off`
|
||||
|
||||
Recommended use is initial setup and occasional troubleshooting. On MQTT repeater deployments, disable the panel again when finished if you want maximum MQTT heap headroom.
|
||||
Recommended use is initial setup and occasional troubleshooting. On observer deployments, disable the panel again when finished if you want maximum MQTT heap headroom.
|
||||
|
||||
### Companion WiFi Additions
|
||||
|
||||
@@ -193,7 +193,9 @@ These rescue commands are only available after entering `CLI Rescue`:
|
||||
## Active GitHub Workflows
|
||||
|
||||
- `.github/workflows/eastmesh-build-companion-wifi-firmwares.yml`
|
||||
- `.github/workflows/eastmesh-build-repeater-mqtt-firmwares.yml`
|
||||
- `.github/workflows/eastmesh-build-observer-firmwares.yml`
|
||||
- `.github/workflows/eastmesh-build-repeater-bridge-espnow-firmwares.yml`
|
||||
- `.github/workflows/eastmesh-build-observer-espnow-firmwares.yml`
|
||||
- `.github/workflows/eastmesh-pr-build-check.yml`
|
||||
- `.github/workflows/eastmesh-push-build-check.yml`
|
||||
- `.github/workflows/eastmesh-github-pages.yml`
|
||||
@@ -203,7 +205,9 @@ The upstream MeshCore workflows are retained under their original filenames to r
|
||||
The current release workflows intentionally focus only on:
|
||||
|
||||
- `companion-wifi`
|
||||
- `repeater-mqtt`
|
||||
- `repeater-bridge-espnow`
|
||||
- `observer-eastmesh`
|
||||
- `observer-bridge-espnow-eastmesh`
|
||||
|
||||
## Release Tags
|
||||
|
||||
@@ -211,12 +215,14 @@ Current release tags are:
|
||||
|
||||
```bash
|
||||
git tag companion-wifi-v1.14.1
|
||||
git tag repeater-mqtt-eastmesh-v1.0.1
|
||||
git tag repeater-bridge-espnow-v1.15.0
|
||||
git tag observer-eastmesh-v2026.5.1
|
||||
git tag observer-bridge-espnow-eastmesh-v2026.5.1
|
||||
```
|
||||
|
||||
Companion WiFi uses the upstream MeshCore version in the tag.
|
||||
|
||||
Repeater MQTT uses:
|
||||
Observer uses:
|
||||
|
||||
- `OFFICIAL_MESHCORE_VERSION` from GitHub Actions variables as `FIRMWARE_VERSION`
|
||||
- the EastMesh tag version as `EASTMESH_VERSION`
|
||||
|
||||
+29
-29
@@ -8,7 +8,7 @@ Set the repository Actions variable `OFFICIAL_MESHCORE_VERSION` to the current u
|
||||
|
||||
Example:
|
||||
|
||||
- `OFFICIAL_MESHCORE_VERSION=v1.2.3`
|
||||
- `OFFICIAL_MESHCORE_VERSION=v1.15.0`
|
||||
|
||||
This value becomes the base `FIRMWARE_VERSION` used by the release workflows.
|
||||
|
||||
@@ -16,22 +16,22 @@ This value becomes the base `FIRMWARE_VERSION` used by the release workflows.
|
||||
|
||||
Push one or more of the following tag formats to trigger the matching firmware release workflow:
|
||||
|
||||
- `companion-wifi-v1.2.3`
|
||||
- `repeater-bridge-espnow-v1.2.3`
|
||||
- `repeater-mqtt-bridge-eastmesh-v1.0.1`
|
||||
- `repeater-mqtt-eastmesh-v1.0.1`
|
||||
- `companion-wifi-v1.15.0`
|
||||
- `repeater-bridge-espnow-v1.15.0`
|
||||
- `observer-bridge-espnow-eastmesh-v2026.5.1`
|
||||
- `observer-eastmesh-v2026.5.1`
|
||||
|
||||
Use the upstream MeshCore version in `companion-wifi-v1.2.3`.
|
||||
Use the upstream MeshCore version in `repeater-bridge-espnow-v1.2.3`.
|
||||
Use the EastMesh release version in `repeater-mqtt-bridge-eastmesh-v1.0.1`.
|
||||
Use the EastMesh release version in `repeater-mqtt-eastmesh-v1.0.1`.
|
||||
Use the upstream MeshCore version in `companion-wifi-v1.15.0`.
|
||||
Use the upstream MeshCore version in `repeater-bridge-espnow-v1.15.0`.
|
||||
Use the EastMesh release version in `observer-bridge-espnow-eastmesh-v2026.5.1`.
|
||||
Use the EastMesh release version in `observer-eastmesh-v2026.5.1`.
|
||||
|
||||
Each tag triggers a separate workflow:
|
||||
|
||||
- `companion-wifi-v*` builds companion WiFi firmware
|
||||
- `repeater-bridge-espnow-v*` builds repeater ESP-NOW bridge firmware
|
||||
- `repeater-mqtt-bridge-eastmesh-*` builds repeater MQTT bridge firmware
|
||||
- `repeater-mqtt-eastmesh-*` builds repeater MQTT firmware
|
||||
- `observer-bridge-espnow-eastmesh-v*` builds Observer ESP-NOW firmware
|
||||
- `observer-eastmesh-v*` builds Observer firmware
|
||||
|
||||
You can push one, or more tags on the same commit, and they will all build separately.
|
||||
|
||||
@@ -41,21 +41,21 @@ During the GitHub Actions build:
|
||||
|
||||
- `companion-wifi` uses the version in the tag as `FIRMWARE_VERSION`
|
||||
- `repeater-bridge-espnow` uses the version in the tag as `FIRMWARE_VERSION`
|
||||
- `repeater-mqtt-bridge` uses `OFFICIAL_MESHCORE_VERSION` as `FIRMWARE_VERSION` and the EastMesh version from the tag as `EASTMESH_VERSION`
|
||||
- `repeater-mqtt` uses `OFFICIAL_MESHCORE_VERSION` as `FIRMWARE_VERSION` and the EastMesh version from the tag as `EASTMESH_VERSION`
|
||||
- `observer-bridge-espnow-eastmesh` uses `OFFICIAL_MESHCORE_VERSION` as `FIRMWARE_VERSION` and the EastMesh version from the tag as `EASTMESH_VERSION`
|
||||
- `observer-eastmesh` uses `OFFICIAL_MESHCORE_VERSION` as `FIRMWARE_VERSION` and the EastMesh version from the tag as `EASTMESH_VERSION`
|
||||
|
||||
The resulting version string depends on the workflow:
|
||||
|
||||
- `companion-wifi`: `v1.2.3-<commit>`
|
||||
- `repeater-bridge-espnow`: `v1.2.3-<commit>`
|
||||
- `repeater-mqtt-bridge`: `v1.2.3-eastmesh-v1.0.1-<commit>`
|
||||
- `repeater-mqtt`: `v1.2.3-eastmesh-v1.0.1-<commit>`
|
||||
- `companion-wifi`: `v1.15.0-<commit>`
|
||||
- `repeater-bridge-espnow`: `v1.15.0-<commit>`
|
||||
- `observer-bridge-espnow-eastmesh`: `v1.15.0-eastmesh-v2026.5.1-<commit>`
|
||||
- `observer-eastmesh`: `v1.15.0-eastmesh-v2026.5.1-<commit>`
|
||||
|
||||
Example:
|
||||
|
||||
- tag: `repeater-mqtt-eastmesh-v1.0.1`
|
||||
- repo variable: `OFFICIAL_MESHCORE_VERSION=v1.2.3`
|
||||
- resulting build version: `v1.2.3-eastmesh-v1.0.1-abcdef`
|
||||
- tag: `observer-eastmesh-v2026.5.1`
|
||||
- repo variable: `OFFICIAL_MESHCORE_VERSION=v1.15.0`
|
||||
- resulting build version: `v1.15.0-eastmesh-v2026.5.1-abcdef`
|
||||
|
||||
## Typical Release Flow
|
||||
|
||||
@@ -73,16 +73,16 @@ If `release-notes.yml` should reflect the tagged firmware release in-repo, make
|
||||
Example:
|
||||
|
||||
```bash
|
||||
git tag companion-wifi-v1.2.3
|
||||
git tag repeater-bridge-espnow-v1.2.3
|
||||
git tag repeater-mqtt-bridge-eastmesh-v1.0.1
|
||||
git tag repeater-mqtt-eastmesh-v1.0.1
|
||||
git push origin companion-wifi-v1.2.3 repeater-bridge-espnow-v1.2.3 repeater-mqtt-bridge-eastmesh-v1.0.1 repeater-mqtt-eastmesh-v1.0.1
|
||||
git tag companion-wifi-v1.15.0
|
||||
git tag repeater-bridge-espnow-v1.15.0
|
||||
git tag observer-bridge-espnow-eastmesh-v2026.5.1
|
||||
git tag observer-eastmesh-v2026.5.1
|
||||
git push origin companion-wifi-v1.15.0 repeater-bridge-espnow-v1.15.0 observer-bridge-espnow-eastmesh-v2026.5.1 observer-eastmesh-v2026.5.1
|
||||
```
|
||||
|
||||
## Supported Tags
|
||||
|
||||
- `companion-wifi-v1.2.3`
|
||||
- `repeater-bridge-espnow-v1.2.3`
|
||||
- `repeater-mqtt-bridge-eastmesh-v1.0.1`
|
||||
- `repeater-mqtt-eastmesh-v1.0.1`
|
||||
- `companion-wifi-v1.15.0`
|
||||
- `repeater-bridge-espnow-v1.15.0`
|
||||
- `observer-bridge-espnow-eastmesh-v2026.5.1`
|
||||
- `observer-eastmesh-v2026.5.1`
|
||||
|
||||
+14
-14
@@ -35,8 +35,8 @@ Commands:
|
||||
build-companion-wifi-firmwares: Build all companion WiFi firmwares for all build targets.
|
||||
build-repeater-firmwares: Build all repeater firmwares for all build targets.
|
||||
build-repeater-bridge-espnow-firmwares: Build all repeater ESP-NOW bridge firmwares for all build targets.
|
||||
build-repeater-mqtt-firmwares: Build all repeater MQTT firmwares for all build targets.
|
||||
build-repeater-mqtt-bridge-firmwares: Build all repeater MQTT bridge firmwares for all build targets.
|
||||
build-observer-firmwares: Build all observer firmwares for all build targets.
|
||||
build-observer-espnow-firmwares: Build all observer ESP-NOW firmwares for all build targets.
|
||||
build-room-server-firmwares: Build all chat room server firmwares for all build targets.
|
||||
|
||||
Examples:
|
||||
@@ -58,11 +58,11 @@ $ sh eastmesh-build.sh build-repeater-firmwares
|
||||
Build all repeater ESP-NOW bridge firmwares
|
||||
$ sh eastmesh-build.sh build-repeater-bridge-espnow-firmwares
|
||||
|
||||
Build all repeater MQTT firmwares
|
||||
$ sh eastmesh-build.sh build-repeater-mqtt-firmwares
|
||||
Build all observer firmwares
|
||||
$ sh eastmesh-build.sh build-observer-firmwares
|
||||
|
||||
Build all repeater MQTT bridge firmwares
|
||||
$ sh eastmesh-build.sh build-repeater-mqtt-bridge-firmwares
|
||||
Build all observer ESP-NOW firmwares
|
||||
$ sh eastmesh-build.sh build-observer-espnow-firmwares
|
||||
|
||||
Build all chat room server firmwares
|
||||
$ sh eastmesh-build.sh build-room-server-firmwares
|
||||
@@ -315,15 +315,15 @@ build_companion_wifi_firmwares() {
|
||||
|
||||
}
|
||||
|
||||
build_repeater_mqtt_firmwares() {
|
||||
build_repeater_observer_firmwares() {
|
||||
|
||||
build_all_firmwares_by_suffix "_repeater_mqtt"
|
||||
build_all_firmwares_by_suffix "_repeater_observer"
|
||||
|
||||
}
|
||||
|
||||
build_repeater_mqtt_bridge_firmwares() {
|
||||
build_repeater_observer_espnow_firmwares() {
|
||||
|
||||
build_all_firmwares_by_suffix "_repeater_mqtt_bridge"
|
||||
build_all_firmwares_by_suffix "_repeater_observer_espnow"
|
||||
|
||||
}
|
||||
|
||||
@@ -376,10 +376,10 @@ elif [[ $1 == "build-repeater-firmwares" ]]; then
|
||||
build_repeater_firmwares
|
||||
elif [[ $1 == "build-repeater-bridge-espnow-firmwares" ]]; then
|
||||
build_repeater_bridge_espnow_firmwares
|
||||
elif [[ $1 == "build-repeater-mqtt-firmwares" ]]; then
|
||||
build_repeater_mqtt_firmwares
|
||||
elif [[ $1 == "build-repeater-mqtt-bridge-firmwares" ]]; then
|
||||
build_repeater_mqtt_bridge_firmwares
|
||||
elif [[ $1 == "build-observer-firmwares" ]]; then
|
||||
build_repeater_observer_firmwares
|
||||
elif [[ $1 == "build-observer-espnow-firmwares" ]]; then
|
||||
build_repeater_observer_espnow_firmwares
|
||||
elif [[ $1 == "build-room-server-firmwares" ]]; then
|
||||
build_room_server_firmwares
|
||||
fi
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Repeater Web API
|
||||
|
||||
This page documents the local HTTPS API exposed by EastMesh `*_repeater_mqtt` builds that support the web panel.
|
||||
This page documents the local HTTPS API exposed by EastMesh `*_repeater_observer` builds that support the web panel.
|
||||
|
||||
It is intended for:
|
||||
|
||||
@@ -34,7 +34,7 @@ curl -sk https://<repeater-ip>/api/command \
|
||||
|
||||
The API is available only when:
|
||||
|
||||
- you are running a supported `*_repeater_mqtt` firmware build
|
||||
- you are running a supported `*_repeater_observer` firmware build
|
||||
- the repeater web panel is enabled and running
|
||||
- you can reach the repeater over the local network
|
||||
- you have authenticated with the repeater admin password
|
||||
|
||||
+11
-11
@@ -16,9 +16,9 @@ For companions, think Wi-Fi-connected automation endpoint:
|
||||
For MQTT/web repeaters, think Wi-Fi, broker visibility, and enough headroom for the local web panel:
|
||||
|
||||
- common starting points are `Heltec_v3` and `heltec_v4`
|
||||
- `heltec_v4_repeater_mqtt` is a strong all-round MQTT repeater choice with GPS, PSRAM, and 16 MB flash
|
||||
- `heltec_v4_repeater_observer` is a strong all-round observer choice with GPS, PSRAM, and 16 MB flash
|
||||
- choose boards with more flash and PSRAM when you want MQTT plus the local web panel, stats, or more room for future features
|
||||
- screens are not a major requirement because MQTT repeaters have the local web panel for setup and troubleshooting
|
||||
- screens are not a major requirement because observers have the local web panel for setup and troubleshooting
|
||||
- headless repeaters are often the cleanest choice when the device will live in a roof, box, or fixed install and you will configure it from the web panel, serial console, or app
|
||||
|
||||
For bridge repeaters, think local radio linking between nearby repeaters:
|
||||
@@ -26,7 +26,7 @@ For bridge repeaters, think local radio linking between nearby repeaters:
|
||||
- use bridge firmware when two local repeaters need to exchange traffic across different MeshCore radio configs, such as `Australia (Narrow)` and `Australia (Mid)`
|
||||
- pure ESP-NOW bridge repeaters do not need MQTT, the EastMesh web panel, or a screen
|
||||
- prioritise stable power, suitable antennas, and placement over display features
|
||||
- use `repeater-mqtt-bridge` only when the same repeater also needs MQTT uplink; otherwise `repeater-bridge-espnow` keeps the role simpler
|
||||
- use `observer-bridge-espnow-eastmesh` only when the same repeater also needs MQTT uplink; otherwise `repeater-bridge-espnow` keeps the role simpler
|
||||
|
||||
Other notes:
|
||||
|
||||
@@ -40,7 +40,7 @@ Other notes:
|
||||
|
||||
The tables below are built from the repo's PlatformIO board metadata and variant build flags.
|
||||
|
||||
- `Target` is the short board name used in this comparison page. Release filenames and local build commands still use the full env names such as `heltec_v4_repeater_mqtt`.
|
||||
- `Target` is the short board name used in this comparison page. Release filenames and local build commands still use the full env names such as `heltec_v4_repeater_observer`.
|
||||
- `MCU` shows the chip family only. Actual runtime clock can vary by env and board configuration.
|
||||
- `RAM` is the MCU's built-in RAM.
|
||||
- `PSRAM` is extra memory on some boards. More PSRAM usually means more headroom for UI, MQTT, and future features.
|
||||
@@ -50,8 +50,8 @@ The tables below are built from the repo's PlatformIO board metadata and variant
|
||||
## Track Notes
|
||||
|
||||
- `companion-wifi` boards are for app-connected companion devices.
|
||||
- `repeater-mqtt` boards are for Wi-Fi repeaters that publish to MQTT.
|
||||
- `repeater-bridge-espnow` and `repeater-mqtt-bridge` boards are for local ESP-NOW bridge use between nearby repeaters on different MeshCore radio configs.
|
||||
- `observer-eastmesh` boards are for Wi-Fi repeaters that publish to MQTT.
|
||||
- `repeater-bridge-espnow` and `observer-bridge-espnow-eastmesh` boards are for local ESP-NOW bridge use between nearby repeaters on different MeshCore radio configs.
|
||||
|
||||
Bridge firmware is not MQTT-over-WAN or VPN bridging. Use it when two local repeaters need to exchange traffic across radio configs such as `Australia (Narrow)` and `Australia (Mid)`.
|
||||
|
||||
@@ -105,9 +105,9 @@ If you are deciding between otherwise similar boards, these target-level setting
|
||||
|
||||
\* These targets use a PA or RF front-end, so effective output can be much higher than the configured `LORA_TX_POWER`.
|
||||
|
||||
## `repeater_mqtt` Boards
|
||||
## `repeater_observer` Boards
|
||||
|
||||
This table includes all repeater MQTT targets currently defined in `variants/eastmesh_mqtt/platformio.ini`.
|
||||
This table includes all observer targets currently defined in `variants/eastmesh_mqtt/platformio.ini`.
|
||||
|
||||
| Target | MCU | RAM | PSRAM | Flash | LoRa | Display | GPS | SD |
|
||||
| ------------------------ | ------- | ------ | ----- | ----- | ------ | --------------- | --- | --- |
|
||||
@@ -184,9 +184,9 @@ These are the Wi-Fi companion targets that rely on the companion app as the prim
|
||||
|
||||
## Practical Picks
|
||||
|
||||
- Best all-round MQTT repeater with screen and overall headroom: `heltec_v4_repeater_mqtt`, `heltec_v4_tft_repeater_mqtt`, `Station_G2_repeater_mqtt`, `LilyGo_TBeam_1W_repeater_mqtt`.
|
||||
- Best MQTT repeater if you want a simple headless install: `RAK_3112_repeater_mqtt`, `Generic_E22_sx1262_repeater_mqtt`, `Meshimi_repeater_mqtt`, `Xiao_C6_repeater_mqtt`.
|
||||
- Best low-power display MQTT builds: `Heltec_E213_repeater_mqtt`, `Heltec_E290_repeater_mqtt`, `Heltec_Wireless_Paper_repeater_mqtt`, `ThinkNode_M5_Repeater_mqtt`.
|
||||
- Best all-round observer with screen and overall headroom: `heltec_v4_repeater_observer`, `heltec_v4_tft_repeater_observer`, `Station_G2_repeater_observer`, `LilyGo_TBeam_1W_repeater_observer`.
|
||||
- Best observer if you want a simple headless install: `RAK_3112_repeater_observer`, `Generic_E22_sx1262_repeater_observer`, `Meshimi_repeater_observer`, `Xiao_C6_repeater_observer`.
|
||||
- Best low-power display observer builds: `Heltec_E213_repeater_observer`, `Heltec_E290_repeater_observer`, `Heltec_Wireless_Paper_repeater_observer`, `ThinkNode_M5_Repeater_observer`.
|
||||
- Best companion choices if you want the richest local UI: `heltec_v4_tft_companion_radio_wifi` and `heltec_tracker_v2_companion_radio_wifi`.
|
||||
- Best companion choices if you want maximum memory headroom: `T_Beam_S3_Supreme_SX1262_companion_radio_wifi`, `Station_G2_companion_radio_wifi`, `LilyGo_TBeam_1W_companion_radio_wifi`.
|
||||
- Best companion choices if you are happy with an app-first, mostly headless setup: `RAK_3112_companion_radio_wifi`, `Xiao_S3_WIO_companion_radio_wifi`, `Station_G2_companion_radio_wifi`.
|
||||
|
||||
+11
-11
@@ -16,7 +16,7 @@ set mqtt.iata <code>
|
||||
get mqtt.status
|
||||
```
|
||||
|
||||
For MQTT repeaters with the local web panel, these are also useful:
|
||||
For observers with the local web panel, these are also useful:
|
||||
|
||||
```text
|
||||
set web on
|
||||
@@ -24,11 +24,11 @@ get web.status
|
||||
set web off
|
||||
```
|
||||
|
||||
Use `set web on` while setting up or troubleshooting, then use `set web off` when a fixed MQTT repeater needs maximum memory headroom.
|
||||
Use `set web on` while setting up or troubleshooting, then use `set web off` when a fixed observer needs maximum memory headroom.
|
||||
|
||||
## Repeater MQTT Commands
|
||||
## Observer Commands
|
||||
|
||||
These commands are available on `*_repeater_mqtt` firmware targets.
|
||||
These commands are available on `*_repeater_observer` firmware targets.
|
||||
|
||||
No-argument `get` commands must be entered exactly as shown.
|
||||
|
||||
@@ -71,7 +71,7 @@ No-argument `get` commands must be entered exactly as shown.
|
||||
|
||||
Notes:
|
||||
|
||||
- new repeater MQTT installs default `mqtt.iata` to `UNSET`
|
||||
- new observer installs default `mqtt.iata` to `UNSET`
|
||||
- `letsmesh-eu` and `letsmesh-us` remain off by default unless already configured in saved prefs
|
||||
- if `mqtt.iata` is `UNSET`, `eastmesh-au`, `letsmesh-eu`, and `letsmesh-us` will not connect even if they are toggled on
|
||||
- turning off a connected broker publishes a retained MQTT status update with `"status":"offline"` before the client disconnects
|
||||
@@ -83,7 +83,7 @@ Legacy dotted aliases are also accepted:
|
||||
- `mqtt.letsmesh.eu`
|
||||
- `mqtt.letsmesh.us`
|
||||
|
||||
### Wi-Fi Settings For MQTT Repeaters
|
||||
### Wi-Fi Settings For Observers
|
||||
|
||||
- `get wifi.status`: shows SSID, connection state, raw Wi-Fi status code, IP, channel, and signal when connected.
|
||||
- `get wifi.ssid`: shows the configured Wi-Fi SSID.
|
||||
@@ -92,9 +92,9 @@ Legacy dotted aliases are also accepted:
|
||||
- `get wifi.powersaving`: shows the current Wi-Fi power save mode.
|
||||
- `set wifi.powersaving none|min|max`: sets Wi-Fi power saving mode.
|
||||
|
||||
### ESP-NOW Bridge Settings For MQTT Bridge Repeaters
|
||||
### ESP-NOW Bridge Settings For Observer ESP-NOW Builds
|
||||
|
||||
These commands are available on `*_repeater_mqtt_bridge` firmware targets.
|
||||
These commands are available on `*_repeater_observer_espnow` firmware targets.
|
||||
|
||||
Bridge commands are for local ESP-NOW bridge use between nearby repeaters, such as linking repeaters on `Australia (Narrow)` and `Australia (Mid)`. They are not MQTT-over-WAN, VPN, or internet bridge controls.
|
||||
|
||||
@@ -103,9 +103,9 @@ Bridge commands are for local ESP-NOW bridge use between nearby repeaters, such
|
||||
- `get bridge.secret`: shows the configured ESP-NOW bridge secret.
|
||||
- `set bridge.secret <secret>`: sets the shared ESP-NOW bridge secret and restarts the bridge.
|
||||
|
||||
After running `set bridge.channel`, expect the bridge and web panel connection to drop briefly while the radio restarts. On current MQTT bridge test builds, this can look like the board rebooted.
|
||||
After running `set bridge.channel`, expect the bridge and web panel connection to drop briefly while the radio restarts. On current observer ESP-NOW builds, this can look like the board rebooted.
|
||||
|
||||
For `*_repeater_mqtt_bridge` builds that are connected to Wi-Fi, the ESP-NOW bridge channel must match the active 2.4 GHz Wi-Fi channel:
|
||||
For `*_repeater_observer_espnow` builds that are connected to Wi-Fi, the ESP-NOW bridge channel must match the active 2.4 GHz Wi-Fi channel:
|
||||
|
||||
1. Run `get wifi.status`.
|
||||
2. Read the `channel:<n>` value from the connected Wi-Fi status.
|
||||
@@ -145,7 +145,7 @@ OK
|
||||
|
||||
### Board Battery Reporting
|
||||
|
||||
- On repeater MQTT builds, background battery sampling used for MQTT/status history is rate-limited to about once per minute. Explicit status and telemetry requests still refresh the reading immediately.
|
||||
- On observer builds, background battery sampling used for MQTT/status history is rate-limited to about once per minute. Explicit status and telemetry requests still refresh the reading immediately.
|
||||
|
||||
### T-Beam 1W Fan Control
|
||||
|
||||
|
||||
@@ -4,8 +4,8 @@ MeshCore-EastMesh keeps the upstream MeshCore firmware intact and publishes four
|
||||
|
||||
- `companion-wifi`: use this for Wi-Fi-connected companion devices. It stays closest to upstream MeshCore and adds the EastMesh Wi-Fi rescue/configuration commands.
|
||||
- `repeater-bridge-espnow`: use this when you need a plain upstream-style repeater ESP-NOW bridge without MQTT uplink or the EastMesh web panel.
|
||||
- `repeater-mqtt`: use this for a Wi-Fi repeater that should publish to an MQTT broker and, on supported ESP32 boards, offer the optional local web panel for setup and troubleshooting.
|
||||
- `repeater-mqtt-bridge`: use this when one repeater needs both MQTT uplink and ESP-NOW bridge duties, including bridge channel/secret controls for keeping the bridge aligned with Wi-Fi.
|
||||
- `observer-eastmesh`: use this for a Wi-Fi repeater that should publish to an MQTT broker and, on supported ESP32 boards, offer the optional local web panel for setup and troubleshooting.
|
||||
- `observer-bridge-espnow-eastmesh`: use this when one repeater needs both MQTT uplink and ESP-NOW bridge duties, including bridge channel/secret controls for keeping the bridge aligned with Wi-Fi.
|
||||
|
||||
!!! note "Bridge tracks are local radio bridges"
|
||||
|
||||
|
||||
@@ -25,16 +25,16 @@ bash eastmesh-build.sh list
|
||||
Plain PlatformIO build for a single target:
|
||||
|
||||
```bash
|
||||
uv run pio run -e heltec_v4_repeater_mqtt
|
||||
uv run pio run -e heltec_v4_repeater_observer
|
||||
uv run pio run -e heltec_v4_companion_radio_wifi
|
||||
uv run pio run -e heltec_v4_repeater_bridge_espnow
|
||||
uv run pio run -e heltec_v4_repeater_mqtt_bridge
|
||||
uv run pio run -e heltec_v4_repeater_observer_espnow
|
||||
```
|
||||
|
||||
Flash a target:
|
||||
|
||||
```bash
|
||||
uv run pio run -e heltec_v4_repeater_mqtt -t upload --upload-port /dev/tty.usbmodemXXXX
|
||||
uv run pio run -e heltec_v4_repeater_observer -t upload --upload-port /dev/tty.usbmodemXXXX
|
||||
```
|
||||
|
||||
Serial monitor:
|
||||
@@ -54,12 +54,12 @@ export FIRMWARE_VERSION=v1.14.1
|
||||
bash eastmesh-build.sh build-firmware heltec_v4_companion_radio_wifi
|
||||
```
|
||||
|
||||
Repeater MQTT:
|
||||
Observer:
|
||||
|
||||
```bash
|
||||
export FIRMWARE_VERSION=v1.14.1
|
||||
export EASTMESH_VERSION=v1.0.1
|
||||
bash eastmesh-build.sh build-firmware heltec_v4_repeater_mqtt
|
||||
export FIRMWARE_VERSION=v1.15.0
|
||||
export EASTMESH_VERSION=v2026.5.1
|
||||
bash eastmesh-build.sh build-firmware heltec_v4_repeater_observer
|
||||
```
|
||||
|
||||
Repeater ESP-NOW bridge:
|
||||
@@ -69,12 +69,12 @@ export FIRMWARE_VERSION=v1.15.0
|
||||
bash eastmesh-build.sh build-firmware heltec_v4_repeater_bridge_espnow
|
||||
```
|
||||
|
||||
Repeater MQTT bridge:
|
||||
Observer ESP-NOW:
|
||||
|
||||
```bash
|
||||
export FIRMWARE_VERSION=v1.15.0
|
||||
export EASTMESH_VERSION=v1.4.0
|
||||
bash eastmesh-build.sh build-firmware heltec_v4_repeater_mqtt_bridge
|
||||
export EASTMESH_VERSION=v2026.5.1
|
||||
bash eastmesh-build.sh build-firmware heltec_v4_repeater_observer_espnow
|
||||
```
|
||||
|
||||
This produces versioned artifacts in `out/`.
|
||||
@@ -82,45 +82,45 @@ This produces versioned artifacts in `out/`.
|
||||
Versioning rule:
|
||||
|
||||
- `companion-wifi` and `repeater-bridge-espnow` use the upstream MeshCore version as `FIRMWARE_VERSION`
|
||||
- `repeater-mqtt` and `repeater-mqtt-bridge` use the upstream MeshCore version as `FIRMWARE_VERSION` plus the EastMesh release version as `EASTMESH_VERSION`
|
||||
- `observer-eastmesh` and `observer-bridge-espnow-eastmesh` use the upstream MeshCore version as `FIRMWARE_VERSION` plus the EastMesh release version as `EASTMESH_VERSION`
|
||||
|
||||
## Supported `repeater_mqtt` Boards
|
||||
## Supported `repeater_observer` Boards
|
||||
|
||||
These are the full PlatformIO env names used for local source builds and release artifact naming.
|
||||
|
||||
```text
|
||||
Generic_E22_sx1262_repeater_mqtt
|
||||
Generic_E22_sx1268_repeater_mqtt
|
||||
Heltec_E213_repeater_mqtt
|
||||
Heltec_E290_repeater_mqtt
|
||||
Heltec_T190_repeater_mqtt
|
||||
heltec_tracker_v2_repeater_mqtt
|
||||
Heltec_v2_repeater_mqtt
|
||||
Heltec_v3_repeater_mqtt
|
||||
heltec_v4_repeater_mqtt
|
||||
heltec_v4_tft_repeater_mqtt
|
||||
Heltec_Wireless_Paper_repeater_mqtt
|
||||
Heltec_Wireless_Tracker_repeater_mqtt
|
||||
Heltec_WSL3_repeater_mqtt
|
||||
LilyGo_T3S3_sx1262_repeater_mqtt
|
||||
LilyGo_T3S3_sx1276_repeater_mqtt
|
||||
LilyGo_TBeam_1W_repeater_mqtt
|
||||
LilyGo_TDeck_repeater_mqtt
|
||||
LilyGo_Tlora_C6_repeater_mqtt
|
||||
M5Stack_Unit_C6L_repeater_mqtt
|
||||
Meshadventurer_sx1262_repeater_mqtt
|
||||
Meshadventurer_sx1268_repeater_mqtt
|
||||
Meshimi_repeater_mqtt
|
||||
nibble_screen_connect_repeater_mqtt
|
||||
RAK_3112_repeater_mqtt
|
||||
Station_G2_logging_repeater_mqtt
|
||||
Station_G2_repeater_mqtt
|
||||
T_Beam_S3_Supreme_SX1262_repeater_mqtt
|
||||
Tbeam_SX1262_repeater_mqtt
|
||||
Tbeam_SX1276_repeater_mqtt
|
||||
WHY2025_badge_repeater_mqtt
|
||||
Xiao_C6_repeater_mqtt
|
||||
Xiao_S3_WIO_repeater_mqtt
|
||||
Generic_E22_sx1262_repeater_observer
|
||||
Generic_E22_sx1268_repeater_observer
|
||||
Heltec_E213_repeater_observer
|
||||
Heltec_E290_repeater_observer
|
||||
Heltec_T190_repeater_observer
|
||||
heltec_tracker_v2_repeater_observer
|
||||
Heltec_v2_repeater_observer
|
||||
Heltec_v3_repeater_observer
|
||||
heltec_v4_repeater_observer
|
||||
heltec_v4_tft_repeater_observer
|
||||
Heltec_Wireless_Paper_repeater_observer
|
||||
Heltec_Wireless_Tracker_repeater_observer
|
||||
Heltec_WSL3_repeater_observer
|
||||
LilyGo_T3S3_sx1262_repeater_observer
|
||||
LilyGo_T3S3_sx1276_repeater_observer
|
||||
LilyGo_TBeam_1W_repeater_observer
|
||||
LilyGo_TDeck_repeater_observer
|
||||
LilyGo_Tlora_C6_repeater_observer
|
||||
M5Stack_Unit_C6L_repeater_observer
|
||||
Meshadventurer_sx1262_repeater_observer
|
||||
Meshadventurer_sx1268_repeater_observer
|
||||
Meshimi_repeater_observer
|
||||
nibble_screen_connect_repeater_observer
|
||||
RAK_3112_repeater_observer
|
||||
Station_G2_logging_repeater_observer
|
||||
Station_G2_repeater_observer
|
||||
T_Beam_S3_Supreme_SX1262_repeater_observer
|
||||
Tbeam_SX1262_repeater_observer
|
||||
Tbeam_SX1276_repeater_observer
|
||||
WHY2025_badge_repeater_observer
|
||||
Xiao_C6_repeater_observer
|
||||
Xiao_S3_WIO_repeater_observer
|
||||
```
|
||||
|
||||
## Supported Bridge Boards
|
||||
@@ -129,18 +129,18 @@ Bridge targets can be listed from the repo root:
|
||||
|
||||
```bash
|
||||
bash eastmesh-build.sh list | grep '_repeater_bridge_espnow'
|
||||
bash eastmesh-build.sh list | grep '_repeater_mqtt_bridge'
|
||||
bash eastmesh-build.sh list | grep '_repeater_observer_espnow'
|
||||
```
|
||||
|
||||
Common examples:
|
||||
|
||||
```text
|
||||
heltec_v4_repeater_bridge_espnow
|
||||
heltec_v4_repeater_mqtt_bridge
|
||||
heltec_v4_repeater_observer_espnow
|
||||
Station_G2_repeater_bridge_espnow
|
||||
Station_G2_repeater_mqtt_bridge
|
||||
Station_G2_repeater_observer_espnow
|
||||
T_Beam_S3_Supreme_SX1262_repeater_bridge_espnow
|
||||
T_Beam_S3_Supreme_SX1262_repeater_mqtt_bridge
|
||||
T_Beam_S3_Supreme_SX1262_repeater_observer_espnow
|
||||
```
|
||||
|
||||
Bridge firmware is for local ESP-NOW bridge use between nearby repeaters. It is not MQTT-over-WAN or VPN bridging.
|
||||
|
||||
@@ -8,7 +8,7 @@ to the EastMesh firmware published at:
|
||||
|
||||
- `https://github.com/xJARiD/MeshCore-EastMesh`
|
||||
|
||||
These steps are intended for existing repeater users moving to the new EastMesh `*_repeater_mqtt` firmware.
|
||||
These steps are intended for existing repeater users moving to the new EastMesh `*_repeater_observer` firmware.
|
||||
|
||||
Start by downloading the correct EastMesh release for your board from:
|
||||
|
||||
|
||||
+16
-16
@@ -18,7 +18,7 @@ If this is your first time flashing EastMesh firmware, the easiest path is:
|
||||
6. Click `Flash Firmware`.
|
||||
7. After flashing, finish setup with `Open MeshCore Config Panel` or the `Serial Console`.
|
||||
|
||||
If you are not sure which track you need, start with `companion-wifi` for app-connected companion devices or `repeater-mqtt` for a fixed repeater that should publish to MQTT.
|
||||
If you are not sure which track you need, start with `companion-wifi` for app-connected companion devices or `observer-eastmesh` for a fixed repeater that should publish to MQTT.
|
||||
|
||||
## Pick Your Track
|
||||
|
||||
@@ -27,9 +27,9 @@ EastMesh publishes four release tracks:
|
||||
| Track | Use it when | Firmware filename suffix |
|
||||
| ----- | ----------- | ------------------------ |
|
||||
| `companion-wifi` | You want a companion device that connects over Wi-Fi instead of BLE or USB. | `*_companion_radio_wifi` |
|
||||
| `repeater-mqtt` | You want a repeater with Wi-Fi and MQTT uplink, usually feeding broker visibility such as EastMesh/CoreScope. | `*_repeater_mqtt` |
|
||||
| `observer-eastmesh` | You want a repeater with Wi-Fi and MQTT uplink, usually feeding broker visibility such as EastMesh/CoreScope. | `*_repeater_observer` |
|
||||
| `repeater-bridge-espnow` | You want a local ESP-NOW bridge between nearby repeaters, without MQTT uplink or the EastMesh web panel. | `*_repeater_bridge_espnow` |
|
||||
| `repeater-mqtt-bridge` | You want one repeater to provide both MQTT uplink and local ESP-NOW bridge duties. | `*_repeater_mqtt_bridge` |
|
||||
| `observer-bridge-espnow-eastmesh` | You want one repeater to provide both MQTT uplink and local ESP-NOW bridge duties. | `*_repeater_observer_espnow` |
|
||||
|
||||
!!! note "Bridge firmware is not a WAN bridge"
|
||||
|
||||
@@ -44,17 +44,17 @@ Download the asset that matches your board and firmware type.
|
||||
Examples:
|
||||
|
||||
- `heltec_v4_companion_radio_wifi-v1.14.1-abcdef.bin`
|
||||
- `heltec_v4_repeater_mqtt-v1.14.1-eastmesh-v1.0.1-abcdef.bin`
|
||||
- `heltec_v4_repeater_mqtt-v1.14.1-eastmesh-v1.0.1-abcdef-merged.bin`
|
||||
- `heltec_v4_repeater_observer-v1.15.0-eastmesh-v2026.5.1-abcdef.bin`
|
||||
- `heltec_v4_repeater_observer-v1.15.0-eastmesh-v2026.5.1-abcdef-merged.bin`
|
||||
- `heltec_v4_repeater_bridge_espnow-v1.15.0-abcdef.bin`
|
||||
- `heltec_v4_repeater_mqtt_bridge-v1.15.0-eastmesh-v1.4.0-abcdef.bin`
|
||||
- `heltec_v4_repeater_observer_espnow-v1.15.0-eastmesh-v2026.5.1-abcdef.bin`
|
||||
|
||||
The important part is the board/env prefix:
|
||||
|
||||
- `*_companion_radio_wifi`
|
||||
- `*_repeater_mqtt`
|
||||
- `*_repeater_observer`
|
||||
- `*_repeater_bridge_espnow`
|
||||
- `*_repeater_mqtt_bridge`
|
||||
- `*_repeater_observer_espnow`
|
||||
|
||||
## Which File To Flash
|
||||
|
||||
@@ -92,7 +92,7 @@ The recommended flasher is:
|
||||
It includes native support for the common EastMesh firmware types and can also flash custom firmware files:
|
||||
|
||||
- `companion_radio_wifi` firmware
|
||||
- `repeater_mqtt` firmware
|
||||
- `repeater_observer` firmware
|
||||
- custom firmware files
|
||||
|
||||
For bridge releases, use the matching bridge option if the flasher shows one. Otherwise, download the release asset yourself and flash it as a custom firmware file.
|
||||
@@ -126,7 +126,7 @@ It is the traditional way to configure a repeater after flashing, including:
|
||||
- flood max
|
||||
- some advanced repeater settings
|
||||
|
||||
As of `v1.2.1`, the local repeater web panel also includes the same common repeater settings, so users can complete initial setup there and return for occasional troubleshooting or configuration changes. On MQTT repeaters that need maximum headroom, it is still best to disable the panel again when you are finished.
|
||||
As of `v1.2.1`, the local repeater web panel also includes the same common repeater settings, so users can complete initial setup there and return for occasional troubleshooting or configuration changes. On observers that need maximum headroom, it is still best to disable the panel again when you are finished.
|
||||
|
||||
#### Console
|
||||
|
||||
@@ -140,8 +140,8 @@ It is especially useful, and often required, for initial Wi-Fi setup on Wi-Fi-ca
|
||||
This applies to:
|
||||
|
||||
- `companion_radio_wifi`
|
||||
- `repeater_mqtt`
|
||||
- `repeater_mqtt_bridge`
|
||||
- `repeater_observer`
|
||||
- `repeater_observer_espnow`
|
||||
|
||||
### Serial Console
|
||||
|
||||
@@ -160,9 +160,9 @@ For `set` commands, complete the command in the input box before sending it. For
|
||||
|
||||
## Common First Steps
|
||||
|
||||
### Repeater MQTT
|
||||
### Observer
|
||||
|
||||
`repeater_mqtt` builds include the EastMesh MQTT additions. Depending on the board, they may also include the local web panel.
|
||||
`repeater_observer` builds include the EastMesh MQTT additions. Depending on the board, they may also include the local web panel.
|
||||
|
||||
Typical first steps after flashing:
|
||||
|
||||
@@ -173,9 +173,9 @@ Typical first steps after flashing:
|
||||
- optionally set `mqtt.owner` and `mqtt.email`
|
||||
- optionally enable `letsmesh-eu` or `letsmesh-us`
|
||||
|
||||
### Repeater MQTT Bridge
|
||||
### Observer ESP-NOW
|
||||
|
||||
`repeater_mqtt_bridge` builds combine the MQTT repeater role with local ESP-NOW bridge support.
|
||||
`repeater_observer_espnow` builds combine the observer role with local ESP-NOW bridge support.
|
||||
|
||||
Typical first steps after flashing:
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Repeater Web Panel
|
||||
|
||||
This page is for end users running an EastMesh `*_repeater_mqtt` build with the local web panel enabled.
|
||||
This page is for end users running an EastMesh `*_repeater_observer` build with the local web panel enabled.
|
||||
|
||||
It covers how to reach the panel, what each section does, and what to expect when using it on desktop or mobile.
|
||||
|
||||
@@ -35,7 +35,7 @@ It gives you:
|
||||
Operational guidance:
|
||||
|
||||
- use it for initial setup, occasional configuration changes, and troubleshooting
|
||||
- when you are finished, prefer `set web off` on MQTT repeaters that need maximum headroom
|
||||
- when you are finished, prefer `set web off` on observers that need maximum headroom
|
||||
- this leaves more internal heap available for MQTT/WSS activity, especially on dual-broker setups
|
||||
|
||||
## Common Tasks
|
||||
@@ -78,7 +78,7 @@ The screenshots below show the current split between the lighter `/app` admin pa
|
||||
|
||||
You need:
|
||||
|
||||
- a supported `*_repeater_mqtt` firmware build
|
||||
- a supported `*_repeater_observer` firmware build
|
||||
- Wi-Fi configured on the repeater
|
||||
- the repeater connected to your local network
|
||||
- the repeater admin password
|
||||
@@ -249,7 +249,7 @@ This section includes:
|
||||
- `mqtt.email`: owner contact email.
|
||||
- MQTT server toggles: `eastmesh-au`, `letsmesh-eu`, and `letsmesh-us`.
|
||||
|
||||
`UNSET - To be configured` is the default for new repeater MQTT installs until a real saved value exists.
|
||||
`UNSET - To be configured` is the default for new observer installs until a real saved value exists.
|
||||
|
||||
Notes:
|
||||
|
||||
@@ -343,7 +343,7 @@ On mobile:
|
||||
3. The local HTTP redirect listener on port `80` is released so OTA can take over that port.
|
||||
4. Continue with your normal OTA workflow.
|
||||
|
||||
If an older build sends you through a strange redirect after `start ota`, use the web `Start OTA` button to begin the upgrade. This redirect issue is fixed in `repeater-mqtt-eastmesh-v1.3.11`.
|
||||
If an older build sends you through a strange redirect after `start ota`, use the web `Start OTA` button to begin the upgrade. This redirect issue is fixed in `observer-eastmesh-v1.3.11`.
|
||||
|
||||
### Use Historical Stats
|
||||
|
||||
|
||||
+34
-582
@@ -2,8 +2,8 @@ schema_version: 1
|
||||
tracks:
|
||||
- companion-wifi
|
||||
- repeater-bridge-espnow
|
||||
- repeater-mqtt
|
||||
- repeater-mqtt-bridge
|
||||
- observer-eastmesh
|
||||
- observer-bridge-espnow-eastmesh
|
||||
generated_from: "Adjacent git tag comparisons plus non-merge commit subjects."
|
||||
|
||||
releases:
|
||||
@@ -40,550 +40,6 @@ releases:
|
||||
text: "Updated the companion_wifi firmware base to upstream MeshCore v1.15.0."
|
||||
breaking_changes: []
|
||||
|
||||
- track: repeater-mqtt
|
||||
version: "1.0.1"
|
||||
tag: "repeater-mqtt-eastmesh-v1.0.1"
|
||||
date: "2026-04-09"
|
||||
previous_version: null
|
||||
summary: "First EastMesh repeater_mqtt release with MQTT uplink, optional local web panel support, and EastMesh-specific release plumbing."
|
||||
changes:
|
||||
- type: added
|
||||
area: mqtt
|
||||
text: "Added the EastMesh repeater_mqtt firmware track with MQTT uplink support and EastMesh-specific firmware workflows."
|
||||
- type: added
|
||||
area: web-panel
|
||||
text: "Added the initial local HTTPS repeater web configuration panel for supported targets."
|
||||
- type: added
|
||||
area: release
|
||||
text: "Added EastMesh release documentation, local build guidance, and CI workflows focused on the supported Wi-Fi and MQTT firmware tracks."
|
||||
- type: changed
|
||||
area: build
|
||||
text: "Moved web panel certificate generation into the build flow and kept the web panel optional for tighter firmware targets."
|
||||
breaking_changes: []
|
||||
|
||||
- track: repeater-mqtt
|
||||
version: "1.1.0"
|
||||
tag: "repeater-mqtt-eastmesh-v1.1.0"
|
||||
date: "2026-04-10"
|
||||
previous_version: "1.0.1"
|
||||
summary: "Expanded the repeater web panel with a fuller dashboard and MQTT settings, and stabilised HTTPS/TLS startup."
|
||||
changes:
|
||||
- type: added
|
||||
area: web-panel
|
||||
text: "Added a repeater dashboard and in-panel MQTT settings controls."
|
||||
- type: changed
|
||||
area: web-panel
|
||||
text: "Stabilised HTTPS/TLS startup behaviour for the local repeater web panel."
|
||||
- type: changed
|
||||
area: mqtt
|
||||
text: "Refactored MQTT uplink handling to support the expanded web panel controls and cleaner repeater status reporting."
|
||||
- type: docs
|
||||
area: setup
|
||||
text: "Added CLI rescue guidance for setting Wi-Fi on companion Wi-Fi builds and refreshed README/license content."
|
||||
breaking_changes: []
|
||||
|
||||
- track: repeater-mqtt
|
||||
version: "1.1.1"
|
||||
tag: "repeater-mqtt-eastmesh-v1.1.1"
|
||||
date: "2026-04-10"
|
||||
previous_version: "1.1.0"
|
||||
summary: "Added mqtt.status control support and tightened the web panel and migration documentation."
|
||||
changes:
|
||||
- type: added
|
||||
area: mqtt
|
||||
text: "Added mqtt.status control/reporting support to make broker state easier to inspect from the repeater CLI."
|
||||
- type: docs
|
||||
area: migration
|
||||
text: "Expanded migration guidance and aligned the docs site with the newer EastMesh structure."
|
||||
- type: docs
|
||||
area: web-panel
|
||||
text: "Added dedicated web panel documentation and refreshed the site theme and navigation."
|
||||
breaking_changes: []
|
||||
|
||||
- track: repeater-mqtt
|
||||
version: "1.1.2"
|
||||
tag: "repeater-mqtt-eastmesh-v1.1.2"
|
||||
date: "2026-04-10"
|
||||
previous_version: "1.1.1"
|
||||
summary: "Cleaned up legacy MQTT preference handling, restored status publishing, and expanded web panel controls."
|
||||
changes:
|
||||
- type: fixed
|
||||
area: mqtt
|
||||
text: "Cleared legacy MQTT preference fields so older persisted settings stopped leaking into current repeater behaviour."
|
||||
- type: fixed
|
||||
area: mqtt
|
||||
text: "Restored MQTT status publishing after the earlier control changes."
|
||||
- type: changed
|
||||
area: web-panel
|
||||
text: "Expanded the repeater web panel controls and updated the related CLI and web panel docs."
|
||||
breaking_changes: []
|
||||
|
||||
- track: repeater-mqtt
|
||||
version: "1.2.0"
|
||||
tag: "repeater-mqtt-eastmesh-v1.2.0"
|
||||
date: "2026-04-11"
|
||||
previous_version: "1.1.2"
|
||||
summary: "Reduced MQTT and web-panel memory pressure, streamlined broker controls, and polished the repeater admin surface."
|
||||
changes:
|
||||
- type: changed
|
||||
area: mqtt
|
||||
text: "Reduced MQTT uplink memory pressure and improved runtime behaviour on constrained repeater targets."
|
||||
- type: changed
|
||||
area: web-panel
|
||||
text: "Streamlined broker controls in the web panel and refreshed the end-user admin flow."
|
||||
- type: fixed
|
||||
area: web-panel
|
||||
text: "Corrected the noise floor gauge colouring and exposed prv.key in the web console."
|
||||
- type: added
|
||||
area: board-support
|
||||
text: "Added a battery reporting toggle for Heltec V3 repeater builds."
|
||||
- type: docs
|
||||
area: docs
|
||||
text: "Simplified the end-user guides and aligned the web panel docs with the current UI."
|
||||
breaking_changes: []
|
||||
|
||||
- track: repeater-mqtt
|
||||
version: "1.2.1"
|
||||
tag: "repeater-mqtt-eastmesh-v1.2.1"
|
||||
date: "2026-04-12"
|
||||
previous_version: "1.2.0"
|
||||
summary: "Made broker outages less disruptive and expanded the repeater web panel with radio presets and richer operational controls."
|
||||
changes:
|
||||
- type: fixed
|
||||
area: mqtt
|
||||
text: "Added graceful MQTT reconnect backoff during broker outages."
|
||||
- type: added
|
||||
area: web-panel
|
||||
text: "Added radio preset controls, repeater info cards, and clock sync controls to the repeater web panel."
|
||||
- type: docs
|
||||
area: release
|
||||
text: "Updated release guidance so the web panel can be used for common repeater setup before being disabled for maximum MQTT headroom."
|
||||
breaking_changes: []
|
||||
|
||||
- track: repeater-mqtt
|
||||
version: "1.2.2"
|
||||
tag: "repeater-mqtt-eastmesh-v1.2.2"
|
||||
date: "2026-04-13"
|
||||
previous_version: "1.2.1"
|
||||
summary: "Reduced repeater web panel load pressure and improved MQTT diagnostics."
|
||||
changes:
|
||||
- type: changed
|
||||
area: web-panel
|
||||
text: "Reduced web panel runtime pressure so opening the admin UI had less impact on busy MQTT repeaters."
|
||||
- type: added
|
||||
area: mqtt
|
||||
text: "Improved MQTT diagnostics and status visibility for troubleshooting broker and uplink issues."
|
||||
- type: docs
|
||||
area: web-panel
|
||||
text: "Updated the web panel documentation to match the lighter loading behaviour and operational guidance."
|
||||
breaking_changes: []
|
||||
|
||||
- track: repeater-mqtt
|
||||
version: "1.3.0"
|
||||
tag: "repeater-mqtt-eastmesh-v1.3.0"
|
||||
date: "2026-04-15"
|
||||
previous_version: "1.2.2"
|
||||
summary: "Added SD-backed stats history and split the repeater web UI into a lighter /app page and a dedicated /stats console."
|
||||
changes:
|
||||
- type: added
|
||||
area: stats
|
||||
text: "Added SD-backed stats archival and restore support for repeater history data."
|
||||
- type: added
|
||||
area: web-panel
|
||||
text: "Added a dedicated /stats web console for current status, historical trends, neighbours, and recent events."
|
||||
- type: changed
|
||||
area: web-panel
|
||||
text: "Reworked the local web UI so /app stays focused on configuration and admin controls while /stats handles visibility and history."
|
||||
- type: fixed
|
||||
area: stats
|
||||
text: "Restored /stats Wi-Fi signal quality and tuned the /stats signal, noise floor, and RSSI meters for correct LoRa-oriented ranges."
|
||||
- type: changed
|
||||
area: board-support
|
||||
text: "Removed ESP32-C3 repeater_mqtt target support and the related CI coverage."
|
||||
- type: docs
|
||||
area: docs
|
||||
text: "Expanded board comparison guidance and refreshed the published web panel screenshots and docs."
|
||||
breaking_changes:
|
||||
- "ESP32-C3 repeater_mqtt targets were removed in this release."
|
||||
|
||||
- track: repeater-mqtt
|
||||
version: "1.3.1"
|
||||
tag: "repeater-mqtt-eastmesh-v1.3.1"
|
||||
date: "2026-04-16"
|
||||
previous_version: "1.3.0"
|
||||
summary: "Made web stats safer on non-PSRAM repeaters by defaulting them off, switching constrained boards to live-only history, and allocating stats buffers lazily."
|
||||
changes:
|
||||
- type: fixed
|
||||
area: web-panel
|
||||
text: "Disabled web stats by default on non-PSRAM repeater builds so the local web UI places less memory pressure on constrained boards."
|
||||
- type: changed
|
||||
area: stats
|
||||
text: "Changed non-PSRAM repeater builds to a live-only stats mode with smaller in-memory history buffers instead of archive-backed persistence."
|
||||
- type: fixed
|
||||
area: stats
|
||||
text: "Lazy-initialised web stats buffers and released idle live-only buffers so opening /stats has less impact on busy or memory-constrained repeaters."
|
||||
- type: changed
|
||||
area: web-panel
|
||||
text: "Extended the web stats status output and JSON summary payloads to report whether history is running in live-only mode."
|
||||
- type: docs
|
||||
area: web-panel
|
||||
text: "Refreshed the published web panel screenshots and docs to use separate light and dark mode captures."
|
||||
breaking_changes: []
|
||||
|
||||
- track: repeater-mqtt
|
||||
version: "1.3.2"
|
||||
tag: "repeater-mqtt-eastmesh-v1.3.2"
|
||||
date: "2026-04-17"
|
||||
previous_version: "1.3.1"
|
||||
summary: "Refined the repeater /stats UX, added better early-event and noise-floor handling, and persisted the ESP32 fallback clock across reboot."
|
||||
changes:
|
||||
- type: fixed
|
||||
area: stats
|
||||
text: "Removed the misleading neighbour Route column from /stats and cleaned up the neighbour table payload to match the stored data."
|
||||
- type: changed
|
||||
area: stats
|
||||
text: "Retuned the /stats radio noise-floor meter and added a dedicated noise-floor trend with clearer ranges, colour bands, and orientation."
|
||||
- type: changed
|
||||
area: web-panel
|
||||
text: "Reordered the /stats trend cards and changed Packet Activity to a bar chart for interval-based packet counts."
|
||||
- type: fixed
|
||||
area: stats
|
||||
text: "Captured boot/session events earlier on live-only non-PSRAM repeaters so the Events panel is populated before /stats is first opened."
|
||||
- type: fixed
|
||||
area: clock
|
||||
text: "Persisted the ESP32 fallback clock in NVS with immediate saves on sync and periodic checkpoints so boards without a hardware RTC recover a recent sane epoch after reboot."
|
||||
- type: changed
|
||||
area: web-panel
|
||||
text: "Remembered whether the local web UI was last on /app or /stats and returned to that page after unlocking again."
|
||||
- type: changed
|
||||
area: mqtt
|
||||
text: "Changed the Services MQTT status to report degraded when only some enabled MQTT brokers are connected instead of treating any single connected broker as fully up."
|
||||
breaking_changes: []
|
||||
|
||||
- track: repeater-mqtt
|
||||
version: "1.3.3"
|
||||
tag: "repeater-mqtt-eastmesh-v1.3.3"
|
||||
date: "2026-04-17"
|
||||
previous_version: "1.3.2"
|
||||
summary: "Improved /stats memory visibility, tightened web stats startup on 2 MB-class PSRAM boards, polished the local repeater admin UI, and pulled in a high-level upstream MeshCore sync."
|
||||
changes:
|
||||
- type: fixed
|
||||
area: stats
|
||||
text: "Adjusted boot auto-capture for web stats to recognise 2 MB-class ESP32 PSRAM sizes instead of requiring an exact 2 MiB boundary."
|
||||
- type: changed
|
||||
area: stats
|
||||
text: "Extended `get web.stats.status` with focused startup diagnostics for PSRAM size and boot auto-capture, while trimming low-value fields so the reply fits cleanly."
|
||||
- type: changed
|
||||
area: web-panel
|
||||
text: "Updated the /stats Memory card to promote Heap Free, refine its headroom thresholds, and align the memory trend colours with the recent heap-free state."
|
||||
- type: fixed
|
||||
area: web-panel
|
||||
text: "Captured the /stats summary memory snapshot earlier in the request path so the live memory values are more consistent while the page is loading."
|
||||
- type: changed
|
||||
area: web-panel
|
||||
text: "Changed the local web panel tab title to use the repeater name when available, with a fallback to `Repeater Config`."
|
||||
- type: changed
|
||||
area: upstream
|
||||
text: "Synced with newer upstream MeshCore `dev` changes, including region/default-scope CLI support, companion default-scope handling, board/platform updates, and refreshed upstream documentation."
|
||||
- type: docs
|
||||
area: web-panel
|
||||
text: "Updated the web panel docs to describe the rough 2 MB PSRAM boot-history cutoff."
|
||||
breaking_changes: []
|
||||
|
||||
- track: repeater-mqtt
|
||||
version: "1.3.4"
|
||||
tag: "repeater-mqtt-eastmesh-v1.3.4"
|
||||
date: "2026-04-18"
|
||||
previous_version: "1.3.3"
|
||||
summary: "Polished the repeater web panel, fixed a T-Beam 1W build issue, and synced the documented web CLI allowlist with the shipped browser console."
|
||||
changes:
|
||||
- type: fixed
|
||||
area: board-support
|
||||
text: "Added the missing T-Beam 1W flash partition size so the repeater_mqtt target builds with the correct partition layout."
|
||||
- type: changed
|
||||
area: web-panel
|
||||
text: "Cached the repeater title across both the /app and /stats pages so the local admin UI presents a more consistent device label."
|
||||
- type: changed
|
||||
area: web-panel
|
||||
text: "Applied the newer four-band threshold styling to the largest-block memory meters in the /stats Memory card."
|
||||
- type: docs
|
||||
area: web-panel
|
||||
text: "Updated the documented web CLI allowlist to match the actual browser command gate, including the AGC reset interval commands and the troubleshooting note for `noise_floor` reporting `0`."
|
||||
breaking_changes: []
|
||||
|
||||
- track: repeater-mqtt
|
||||
version: "1.3.5"
|
||||
tag: "repeater-mqtt-eastmesh-v1.3.5"
|
||||
date: "2026-04-19"
|
||||
previous_version: "1.3.4"
|
||||
summary: "Prepares the next repeater_mqtt release on top of upstream MeshCore firmware v1.15.0."
|
||||
changes:
|
||||
- type: changed
|
||||
area: upstream
|
||||
text: "Updated the repeater_mqtt firmware base to upstream MeshCore v1.15.0."
|
||||
breaking_changes: []
|
||||
|
||||
- track: repeater-mqtt
|
||||
version: "1.3.6"
|
||||
tag: "repeater-mqtt-eastmesh-v1.3.6"
|
||||
date: "2026-04-20"
|
||||
previous_version: "1.3.5"
|
||||
summary: "Opened the repeater web CLI fully after login, added HTTP-to-HTTPS redirect support, preserved /stats through the login bounce, and fixed 4 MB repeater partition layouts."
|
||||
changes:
|
||||
- type: changed
|
||||
area: web-panel
|
||||
text: "Removed the browser-side repeater CLI allowlist so authenticated web panel sessions can run the same CLI commands accepted by the repeater."
|
||||
- type: added
|
||||
area: web-panel
|
||||
text: "Added a lightweight local HTTP listener that redirects browser requests to the repeater's HTTPS web panel URL."
|
||||
- type: changed
|
||||
area: web-panel
|
||||
text: "Changed the login flow so refreshing /stats and re-authenticating returns to /stats without persisting the last page in browser storage."
|
||||
- type: fixed
|
||||
area: board-support
|
||||
text: "Updated repeater_mqtt partition layouts for 4 MB boards so the affected targets use the correct flash sizing."
|
||||
- type: docs
|
||||
area: web-panel
|
||||
text: "Updated the repeater web panel and custom CLI docs to reflect full web CLI access and the new HTTP-to-HTTPS behavior."
|
||||
breaking_changes: []
|
||||
|
||||
- track: repeater-mqtt
|
||||
version: "1.3.7"
|
||||
tag: "repeater-mqtt-eastmesh-v1.3.7"
|
||||
date: "2026-04-20"
|
||||
previous_version: "1.3.6"
|
||||
summary: "Made MQTT IATA explicit on fresh repeater installs, blocked broker connects until it is configured, and surfaced the missing-IATA state in the web panel and CLI status."
|
||||
changes:
|
||||
- type: changed
|
||||
area: mqtt
|
||||
text: "Changed fresh repeater_mqtt defaults to use `mqtt.iata=UNSET` instead of pre-filling Melbourne."
|
||||
- type: fixed
|
||||
area: mqtt
|
||||
text: "Blocked EastMesh and LetsMesh broker connection attempts while `mqtt.iata` is unset, and reported `invalid iata` in `get mqtt.status` for enabled brokers until a real code is saved."
|
||||
- type: changed
|
||||
area: web-panel
|
||||
text: "Added a top-of-page warning banner and inline MQTT Settings warning when the repeater still needs its MQTT IATA configured."
|
||||
- type: docs
|
||||
area: mqtt
|
||||
text: "Updated the custom CLI and web panel docs to describe the unset-first MQTT IATA flow and the resulting broker behaviour."
|
||||
breaking_changes: []
|
||||
|
||||
- track: repeater-mqtt
|
||||
version: "1.3.8"
|
||||
tag: "repeater-mqtt-eastmesh-v1.3.8"
|
||||
date: "2026-04-21"
|
||||
previous_version: "1.3.7"
|
||||
summary: "Expanded repeater `/stats` with environment telemetry and persisted trends, and hardened archive startup on shared-SPI boards."
|
||||
changes:
|
||||
- type: fixed
|
||||
area: web-panel
|
||||
text: "Fixed Radio Settings preset application in the repeater web panel so the generated `set radio` command uses the comma-separated format accepted by the CLI."
|
||||
- type: added
|
||||
area: board-support
|
||||
text: "Added T-Beam 1W repeater fan CLI controls with persisted mode and post-TX timeout settings."
|
||||
- type: added
|
||||
area: board-support
|
||||
text: "Added T-Beam 1W manual fan mode handling so `fan off` stays off, `fan on` stays on, and TX hold only applies while the board is in auto mode."
|
||||
- type: fixed
|
||||
area: stats
|
||||
text: "Stabilised T-Beam 1W web stats with SD archive enabled by making archive access reuse the same SPI object as the LoRa radio on the board's shared SPI bus."
|
||||
- type: added
|
||||
area: web-panel
|
||||
text: "Added an optional `Environment` section on `/stats` for boards that expose GPS or environmental telemetry, and hid metrics that have no current reading."
|
||||
- type: added
|
||||
area: stats
|
||||
text: "Extended `/stats` history persistence in PSRAM and on the SD-backed archive to capture supported environment telemetry, including voltage, temperatures, humidity, barometer, altitude, and GPS satellites."
|
||||
- type: added
|
||||
area: stats
|
||||
text: "Added environment trend series to `/stats`, including a GPS satellites graph that only appears when GPS is enabled."
|
||||
- type: fixed
|
||||
area: board-support
|
||||
text: "Hardened archive startup on the T-Beam S3 Supreme by providing a safe default shared-archive SPI hook so boards without an override do not crash during early boot."
|
||||
- type: docs
|
||||
area: docs
|
||||
text: "Updated the web panel, API, and custom CLI docs to cover the environment summary/trends, stats persistence behaviour, and existing T-Beam 1W fan controls."
|
||||
breaking_changes: []
|
||||
|
||||
- track: repeater-mqtt
|
||||
version: "1.3.9"
|
||||
tag: "repeater-mqtt-eastmesh-v1.3.9"
|
||||
date: "2026-04-22"
|
||||
previous_version: "1.3.8"
|
||||
summary: "Reduced unnecessary repeater battery polling by removing hot-loop MQTT sampling and reusing throttled battery reads across stats and web status paths."
|
||||
changes:
|
||||
- type: fixed
|
||||
area: mqtt
|
||||
text: "Stopped rebuilding the MQTT status battery reading from a fresh ADC sample on every repeater loop iteration and switched that path to a throttled cached value instead."
|
||||
- type: changed
|
||||
area: stats
|
||||
text: "Reused a single battery sample across the web stats history and summary builders so one logical stats operation no longer performs multiple immediate battery reads."
|
||||
- type: fixed
|
||||
area: board-support
|
||||
text: "Reduced Heltec V3 battery-sense activity while MQTT and web features are active, while still keeping explicit status and telemetry requests on a fresh reading path."
|
||||
- type: changed
|
||||
area: board-support
|
||||
text: "Removed the obsolete battery reporting toggle path and its stale CLI documentation now that repeater battery sampling is handled correctly without a board-level reporting disable switch."
|
||||
- type: docs
|
||||
area: docs
|
||||
text: "Updated the custom CLI docs to note that repeater MQTT background battery sampling is now rate-limited while explicit status and telemetry requests still refresh immediately."
|
||||
breaking_changes: []
|
||||
|
||||
- track: repeater-mqtt
|
||||
version: "1.3.10"
|
||||
tag: "repeater-mqtt-eastmesh-v1.3.10"
|
||||
date: "2026-04-22"
|
||||
previous_version: "1.3.9"
|
||||
summary: "Made `/stats` battery display board-aware and corrected count-trend rendering for restored packet activity and GPS satellites."
|
||||
changes:
|
||||
- type: changed
|
||||
area: stats
|
||||
text: "Updated the `/stats` Core battery meter to prefer a board-reported battery percentage when available and otherwise scale from a board-specific battery voltage range instead of a fixed single-cell assumption."
|
||||
- type: added
|
||||
area: board-support
|
||||
text: "Added default board battery range hints to the board abstraction and set the T-Beam 1W repeater battery profile to a 2S `6000-8400 mV` range for the web stats path."
|
||||
- type: fixed
|
||||
area: web-panel
|
||||
text: "Corrected `/stats` packet activity and GPS satellites bar charts so restored zero values no longer draw phantom bars and the final bar uses the same spacing as the rest of the series."
|
||||
- type: added
|
||||
area: mqtt
|
||||
text: "Added a `get mqtt.client_version` repeater CLI command and exposed the same value in the `/app` quick MQTT command buttons."
|
||||
- type: changed
|
||||
area: web-panel
|
||||
text: "Reworked the `/app` Info panel to show `Version` and `Client Version`, and moved `Clock UTC` into Repeater Settings beside Device Name."
|
||||
- type: fixed
|
||||
area: web-panel
|
||||
text: "Narrowed `start ota` handling so the repeater only releases the local HTTP redirect listener on port `80`, allowing ElegantOTA to start without unnecessarily stopping the rest of the repeater services."
|
||||
- type: docs
|
||||
area: docs
|
||||
text: "Updated the web panel, API, and custom CLI docs to describe the board-aware battery display, the new MQTT client-version command, and the revised `/app` layout."
|
||||
breaking_changes: []
|
||||
|
||||
- track: repeater-mqtt
|
||||
version: "1.3.11"
|
||||
tag: "repeater-mqtt-eastmesh-v1.3.11"
|
||||
date: "2026-04-23"
|
||||
previous_version: "1.3.10"
|
||||
summary: "Makes OTA startup consistent across command sources, fixes T-Beam 1W SX1262 repeater builds, and cleans up PMU-backed battery stats in `/stats`."
|
||||
changes:
|
||||
- type: fixed
|
||||
area: web-panel
|
||||
text: "Moved OTA startup preparation into the shared repeater web service path so `start ota` now behaves consistently whether it is triggered from the web panel, serial CLI, or a remote CLI session."
|
||||
- type: fixed
|
||||
area: web-panel
|
||||
text: "Fixed the old repeater OTA redirect glitch so starting an upgrade no longer falls into the earlier odd redirect behaviour before the OTA page loads."
|
||||
- type: fixed
|
||||
area: board-support
|
||||
text: "Added the missing `USE_SX1262` build flag for the LilyGo T-Beam 1W repeater target so the `*_repeater_mqtt` variant builds with the correct radio configuration."
|
||||
- type: fixed
|
||||
area: stats
|
||||
text: "Cleaned up `/stats` battery details on PMU-backed boards so the Core battery card no longer shows a synthetic battery-voltage range beside a board-reported battery percentage."
|
||||
- type: docs
|
||||
area: web-panel
|
||||
text: "Updated the web panel and custom CLI docs to note the OTA redirect fallback on older builds and to describe the consistent `start ota` handling across command sources."
|
||||
breaking_changes: []
|
||||
|
||||
- track: repeater-mqtt
|
||||
version: "1.3.12"
|
||||
tag: "repeater-mqtt-eastmesh-v1.3.12"
|
||||
date: "2026-04-27"
|
||||
previous_version: "1.3.11"
|
||||
summary: "Hardens T-Beam 1W SD archive access, reduces planned MQTT JWT refresh noise in `/stats`, and adds an Australian region shortcut to the repeater web panel."
|
||||
changes:
|
||||
- type: fixed
|
||||
area: board-support
|
||||
text: "Hardened T-Beam 1W SD archive mounting and recovery on the shared SPI bus by deasserting other chip selects, using a conservative SD SPI clock, and avoiding unnecessary SPI reinitialisation during recovery."
|
||||
- type: changed
|
||||
area: mqtt
|
||||
text: "Extended MQTT JWT lifetime and marked planned token refresh reconnects so `/stats` records `mqtt_token_refreshed` instead of a misleading short disconnect/connect event pair."
|
||||
- type: added
|
||||
area: web-panel
|
||||
text: "Added a `Region (Australia)` selector under `/app` Radio Settings that creates and allows the base `au` region plus the selected `au-STATE` region, then persists the region map."
|
||||
- type: docs
|
||||
area: web-panel
|
||||
text: "Updated the web panel and custom CLI docs for the planned MQTT token-refresh event and the new web-panel region shortcut."
|
||||
breaking_changes: []
|
||||
|
||||
- track: repeater-mqtt
|
||||
version: "1.3.13"
|
||||
tag: "repeater-mqtt-eastmesh-v1.3.13"
|
||||
date: "2026-04-28"
|
||||
previous_version: "1.3.12"
|
||||
summary: "Adds a safe MQTT WebSocket preflight for broker failover, restores clean MQTT client destruction when the heap is healthy, and clarifies that EastMesh MQTT repeaters feed Eastern Australia Core telemetry."
|
||||
changes:
|
||||
- type: fixed
|
||||
area: mqtt
|
||||
text: "Added a bounded WebSocket upgrade preflight before MQTT connects and reconnects so down or misrouted brokers that return non-upgrade HTTP responses are backed off before the ESP32 IDF 4.4 WebSocket transport can corrupt heap."
|
||||
- type: fixed
|
||||
area: mqtt
|
||||
text: "Restored normal MQTT client destruction when heap integrity is clean, while keeping a guarded abandon path if heap poisoning is already detected before `esp_mqtt_client_destroy()`."
|
||||
- type: changed
|
||||
area: mqtt
|
||||
text: "Reduced dual-broker connection pressure by checking both free internal heap and largest internal heap block before starting a second broker while another broker is already connected."
|
||||
- type: changed
|
||||
area: mqtt
|
||||
text: "Switched retrying disconnected MQTT clients to `esp_mqtt_client_reconnect()` instead of destroying and recreating the client on every reconnect attempt."
|
||||
- type: changed
|
||||
area: mqtt
|
||||
text: "Scoped MQTT TLS CA selection per broker instead of passing the combined CA bundle on Arduino-ESP32 2.x builds, while keeping certificate-bundle support for newer ESP-IDF stacks."
|
||||
- type: docs
|
||||
area: readme
|
||||
text: "Updated the README to describe EastMesh as an Eastern Australia community mesh network, introduce CoreScope telemetry, and warn that MQTT repeater builds are intended for Eastern Australia repeaters only."
|
||||
breaking_changes: []
|
||||
|
||||
- track: repeater-mqtt
|
||||
version: "1.3.14"
|
||||
tag: "repeater-mqtt-eastmesh-v1.3.14"
|
||||
date: "2026-04-30"
|
||||
previous_version: "1.3.13"
|
||||
summary: "Fixes `/stats` GPS visibility and no-PSRAM trend capture, improves web-panel session recovery and App/Stats navigation on constrained boards, quiets absent I2C sensor probes, and prevents truncated MQTT offline status payloads."
|
||||
changes:
|
||||
- type: fixed
|
||||
area: stats
|
||||
text: "Updated `/stats` GPS gauges and satellite trends to respect the active GPS setting so boards that report GPS hardware as on but deactivated after `gps off` no longer keep satellite metrics visible."
|
||||
- type: fixed
|
||||
area: stats
|
||||
text: "Allowed no-PSRAM boards to collect the small live `/stats` history buffer whenever `web.stats` is enabled, so Heltec v3 targets can show recent trend samples without archive storage."
|
||||
- type: fixed
|
||||
area: web-panel
|
||||
text: "Improved App/Stats navigation and session recovery by preserving the login token across panel views, validating stale browser tokens before loading settings, and clearing expired sessions quickly after a reflash."
|
||||
- type: fixed
|
||||
area: web-panel
|
||||
text: "Delayed the red MQTT IATA warning until the panel has loaded the configured value, avoiding a misleading unset banner while `/app` is still fetching settings."
|
||||
- type: fixed
|
||||
area: sensors
|
||||
text: "Probed optional I2C environmental sensor addresses before driver initialization so boards without those sensors no longer emit repeated Wire read errors during boot."
|
||||
- type: fixed
|
||||
area: mqtt
|
||||
text: "Increased the MQTT offline last-will payload buffer so the retained offline status JSON is not truncated when release metadata and identity fields are near their configured limits."
|
||||
- type: docs
|
||||
area: web-panel
|
||||
text: "Documented no-PSRAM `/stats` history behavior, stale browser-token recovery, and the lightweight `/api/session` endpoint used by the web panel."
|
||||
breaking_changes: []
|
||||
|
||||
- track: repeater-mqtt
|
||||
version: "1.3.15"
|
||||
tag: "repeater-mqtt-eastmesh-v1.3.15"
|
||||
date: "2026-04-30"
|
||||
previous_version: "1.3.14"
|
||||
summary: "Publishes retained offline status for clean MQTT broker disables and IATA topic changes so operator-driven disconnects do not leave stale online status behind."
|
||||
changes:
|
||||
- type: fixed
|
||||
area: mqtt
|
||||
text: "Published explicit retained offline status before a connected broker is toggled off, matching operator expectations without relying on last-will behavior that only fires on unclean disconnects."
|
||||
- type: fixed
|
||||
area: mqtt
|
||||
text: "Published retained offline status to the old status topic before `mqtt.iata` changes, then restarted connected broker clients so they reconnect and publish online status under the new IATA path."
|
||||
- type: docs
|
||||
area: mqtt
|
||||
text: "Updated the CLI and web-panel docs to describe retained offline status publishing for broker toggles and IATA changes."
|
||||
- type: fixed
|
||||
area: cli
|
||||
text: "Matched no-argument MQTT and Wi-Fi `get` commands exactly so malformed commands with trailing text no longer execute as valid getters."
|
||||
- type: changed
|
||||
area: build
|
||||
text: "Aligned release-style builds with direct PlatformIO builds by using the firmware source build date instead of stamping the current build day into `ver` output."
|
||||
breaking_changes: []
|
||||
|
||||
- track: repeater-bridge-espnow
|
||||
version: "1.15.0"
|
||||
tag: "repeater-bridge-espnow-v1.15.0"
|
||||
@@ -602,44 +58,40 @@ releases:
|
||||
text: "Updated release guidance to document the repeater ESP-NOW bridge tag format and versioning rule."
|
||||
breaking_changes: []
|
||||
|
||||
- track: repeater-mqtt
|
||||
version: "1.4.0"
|
||||
tag: "repeater-mqtt-eastmesh-v1.4.0"
|
||||
date: "2026-05-05"
|
||||
previous_version: "1.3.15"
|
||||
summary: "Adds bridge firmware release plumbing and hardens web-panel feature defaults so non-web bridge targets build cleanly."
|
||||
- track: observer-eastmesh
|
||||
version: "2026.5.1"
|
||||
tag: "observer-eastmesh-v2026.5.1"
|
||||
date: "2026-05-23"
|
||||
previous_version: "1.4.0"
|
||||
summary: "Renames the EastMesh MQTT repeater release track and PlatformIO targets to Observer naming."
|
||||
changes:
|
||||
- type: added
|
||||
- type: changed
|
||||
area: release
|
||||
text: "Documented the expanded bridge firmware release tracks alongside the existing repeater MQTT release flow."
|
||||
- type: fixed
|
||||
area: web-panel
|
||||
text: "Scoped the default web-panel enablement to MQTT uplink builds so non-web ESP32 bridge targets do not compile calls to web services that are not linked."
|
||||
text: "Renamed the EastMesh MQTT release tag format from `repeater-mqtt-eastmesh-v*` to `observer-eastmesh-v*`."
|
||||
- type: changed
|
||||
area: build
|
||||
text: "Tightened EastMesh build target discovery so generated `${env:...}` references are not mistaken for PlatformIO environments."
|
||||
breaking_changes: []
|
||||
|
||||
- track: repeater-mqtt-bridge
|
||||
version: "1.4.0"
|
||||
tag: "repeater-mqtt-bridge-eastmesh-v1.4.0"
|
||||
date: "2026-05-05"
|
||||
previous_version: null
|
||||
summary: "First EastMesh repeater MQTT bridge release track, combining MQTT uplink builds with ESP-NOW bridge firmware artifacts."
|
||||
changes:
|
||||
- type: added
|
||||
area: build
|
||||
text: "Added `*_repeater_mqtt_bridge` build coverage for EastMesh MQTT repeater targets."
|
||||
- type: added
|
||||
area: release
|
||||
text: "Added the `repeater-mqtt-bridge-eastmesh-v*` release tag format and draft-release workflow for MQTT bridge firmware artifacts."
|
||||
- type: added
|
||||
area: cli
|
||||
text: "Exposed the active Wi-Fi channel in `get wifi.status` so MQTT bridge operators can align `bridge.channel` with the connected 2.4 GHz Wi-Fi channel."
|
||||
text: "Renamed `*_repeater_mqtt` PlatformIO environments and release artifact prefixes to `*_repeater_observer`."
|
||||
- type: docs
|
||||
area: cli
|
||||
text: "Added MQTT bridge CLI guidance for `get/set bridge.channel`, `get/set bridge.secret`, and channel alignment with `get wifi.status`."
|
||||
- type: fixed
|
||||
area: web-panel
|
||||
text: "Kept the web service suspended during OTA start so the Start OTA path does not tear down the panel while OTA is taking over port `80`."
|
||||
breaking_changes: []
|
||||
area: docs
|
||||
text: "Updated EastMesh release, local build, board, web panel, API, and CLI documentation to use Observer naming."
|
||||
breaking_changes:
|
||||
- "The EastMesh MQTT release tag format and PlatformIO target suffix changed to Observer naming."
|
||||
|
||||
- track: observer-bridge-espnow-eastmesh
|
||||
version: "2026.5.1"
|
||||
tag: "observer-bridge-espnow-eastmesh-v2026.5.1"
|
||||
date: "2026-05-23"
|
||||
previous_version: "1.4.0"
|
||||
summary: "Renames the EastMesh MQTT bridge release track and PlatformIO targets to Observer ESP-NOW naming."
|
||||
changes:
|
||||
- type: changed
|
||||
area: release
|
||||
text: "Renamed the EastMesh MQTT bridge release tag format from `repeater-mqtt-bridge-eastmesh-v*` to `observer-bridge-espnow-eastmesh-v*`."
|
||||
- type: changed
|
||||
area: build
|
||||
text: "Renamed `*_repeater_mqtt_bridge` PlatformIO environments and release artifact prefixes to `*_repeater_observer_espnow`."
|
||||
- type: docs
|
||||
area: docs
|
||||
text: "Updated EastMesh release, local build, board, and CLI documentation to use Observer ESP-NOW naming."
|
||||
breaking_changes:
|
||||
- "The EastMesh MQTT bridge release tag format and PlatformIO target suffix changed to Observer ESP-NOW naming."
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
#endif
|
||||
|
||||
#ifndef CLIENT_VERSION
|
||||
#define CLIENT_VERSION "eastmesh-repeater-mqtt"
|
||||
#define CLIENT_VERSION "eastmesh-observer"
|
||||
#endif
|
||||
|
||||
#ifndef MQTT_DEBUG
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[env:Ebyte_EoRa-S3_Repeater_mqtt]
|
||||
[env:Ebyte_EoRa-S3_Repeater_observer]
|
||||
extends = Ebyte_EoRa-S3
|
||||
board_build.partitions = min_spiffs.csv
|
||||
build_flags =
|
||||
@@ -24,7 +24,7 @@ lib_deps =
|
||||
${Ebyte_EoRa-S3.lib_deps}
|
||||
${esp32_ota.lib_deps}
|
||||
|
||||
[env:Generic_E22_sx1262_repeater_mqtt]
|
||||
[env:Generic_E22_sx1262_repeater_observer]
|
||||
extends = Generic_E22
|
||||
board_build.partitions = min_spiffs.csv ; get around 4mb flash limit
|
||||
build_src_filter = ${Generic_E22.build_src_filter}
|
||||
@@ -51,7 +51,7 @@ lib_deps =
|
||||
${Generic_E22.lib_deps}
|
||||
${esp32_ota.lib_deps}
|
||||
|
||||
[env:Generic_E22_sx1268_repeater_mqtt]
|
||||
[env:Generic_E22_sx1268_repeater_observer]
|
||||
extends = Generic_E22
|
||||
board_build.partitions = min_spiffs.csv ; get around 4mb flash limit
|
||||
build_src_filter = ${Generic_E22.build_src_filter}
|
||||
@@ -78,7 +78,7 @@ lib_deps =
|
||||
${Generic_E22.lib_deps}
|
||||
${esp32_ota.lib_deps}
|
||||
|
||||
[env:Heltec_E213_repeater_mqtt]
|
||||
[env:Heltec_E213_repeater_observer]
|
||||
extends = Heltec_E213_base
|
||||
build_flags =
|
||||
${Heltec_E213_base.build_flags}
|
||||
@@ -104,7 +104,7 @@ lib_deps =
|
||||
${esp32_ota.lib_deps}
|
||||
bakercp/CRC32 @ ^2.0.0
|
||||
|
||||
[env:Heltec_E290_repeater_mqtt]
|
||||
[env:Heltec_E290_repeater_observer]
|
||||
extends = Heltec_E290_base
|
||||
build_flags =
|
||||
${Heltec_E290_base.build_flags}
|
||||
@@ -130,7 +130,7 @@ lib_deps =
|
||||
${esp32_ota.lib_deps}
|
||||
bakercp/CRC32 @ ^2.0.0
|
||||
|
||||
[env:Heltec_T190_repeater_mqtt]
|
||||
[env:Heltec_T190_repeater_observer]
|
||||
extends = Heltec_T190_base
|
||||
build_flags =
|
||||
${Heltec_T190_base.build_flags}
|
||||
@@ -153,7 +153,7 @@ lib_deps =
|
||||
${Heltec_T190_base.lib_deps}
|
||||
${esp32_ota.lib_deps}
|
||||
|
||||
[env:heltec_tracker_v2_repeater_mqtt]
|
||||
[env:heltec_tracker_v2_repeater_observer]
|
||||
extends = Heltec_tracker_v2
|
||||
build_flags =
|
||||
${Heltec_tracker_v2.build_flags}
|
||||
@@ -179,7 +179,7 @@ lib_deps =
|
||||
${esp32_ota.lib_deps}
|
||||
bakercp/CRC32 @ ^2.0.0
|
||||
|
||||
[env:Heltec_v2_repeater_mqtt]
|
||||
[env:Heltec_v2_repeater_observer]
|
||||
extends = Heltec_lora32_v2
|
||||
build_flags =
|
||||
${Heltec_lora32_v2.build_flags}
|
||||
@@ -205,7 +205,7 @@ lib_deps =
|
||||
${Heltec_lora32_v2.lib_deps}
|
||||
${esp32_ota.lib_deps}
|
||||
|
||||
[env:Heltec_v3_repeater_mqtt]
|
||||
[env:Heltec_v3_repeater_observer]
|
||||
extends = Heltec_lora32_v3
|
||||
build_flags =
|
||||
${Heltec_lora32_v3.build_flags}
|
||||
@@ -231,7 +231,7 @@ lib_deps =
|
||||
${esp32_ota.lib_deps}
|
||||
bakercp/CRC32 @ ^2.0.0
|
||||
|
||||
[env:heltec_v4_repeater_mqtt]
|
||||
[env:heltec_v4_repeater_observer]
|
||||
extends = heltec_v4_oled
|
||||
build_flags =
|
||||
${heltec_v4_oled.build_flags}
|
||||
@@ -258,7 +258,7 @@ lib_deps =
|
||||
${esp32_ota.lib_deps}
|
||||
bakercp/CRC32 @ ^2.0.0
|
||||
|
||||
[env:heltec_v4_tft_repeater_mqtt]
|
||||
[env:heltec_v4_tft_repeater_observer]
|
||||
extends = heltec_v4_tft
|
||||
build_flags =
|
||||
${heltec_v4_tft.build_flags}
|
||||
@@ -284,7 +284,7 @@ lib_deps =
|
||||
${esp32_ota.lib_deps}
|
||||
bakercp/CRC32 @ ^2.0.0
|
||||
|
||||
[env:Heltec_Wireless_Paper_repeater_mqtt]
|
||||
[env:Heltec_Wireless_Paper_repeater_observer]
|
||||
extends = Heltec_Wireless_Paper_base
|
||||
build_flags =
|
||||
${Heltec_Wireless_Paper_base.build_flags}
|
||||
@@ -310,7 +310,7 @@ lib_deps =
|
||||
${esp32_ota.lib_deps}
|
||||
bakercp/CRC32 @ ^2.0.0
|
||||
|
||||
[env:Heltec_Wireless_Tracker_repeater_mqtt]
|
||||
[env:Heltec_Wireless_Tracker_repeater_observer]
|
||||
extends = Heltec_tracker_base
|
||||
build_flags =
|
||||
${Heltec_tracker_base.build_flags}
|
||||
@@ -336,7 +336,7 @@ lib_deps =
|
||||
${Heltec_tracker_base.lib_deps}
|
||||
${esp32_ota.lib_deps}
|
||||
|
||||
[env:Heltec_WSL3_repeater_mqtt]
|
||||
[env:Heltec_WSL3_repeater_observer]
|
||||
extends = Heltec_lora32_v3
|
||||
build_flags =
|
||||
${Heltec_lora32_v3.build_flags}
|
||||
@@ -360,7 +360,7 @@ lib_deps =
|
||||
${esp32_ota.lib_deps}
|
||||
bakercp/CRC32 @ ^2.0.0
|
||||
|
||||
[env:LilyGo_T3S3_sx1262_repeater_mqtt]
|
||||
[env:LilyGo_T3S3_sx1262_repeater_observer]
|
||||
extends = LilyGo_T3S3_sx1262
|
||||
board_build.partitions = min_spiffs.csv ; get around 4mb flash limit
|
||||
build_flags =
|
||||
@@ -386,7 +386,7 @@ lib_deps =
|
||||
${LilyGo_T3S3_sx1262.lib_deps}
|
||||
${esp32_ota.lib_deps}
|
||||
|
||||
[env:LilyGo_T3S3_sx1276_repeater_mqtt]
|
||||
[env:LilyGo_T3S3_sx1276_repeater_observer]
|
||||
extends = LilyGo_T3S3_sx1276
|
||||
board_build.partitions = min_spiffs.csv ; get around 4mb flash limit
|
||||
build_flags =
|
||||
@@ -412,7 +412,7 @@ lib_deps =
|
||||
${LilyGo_T3S3_sx1276.lib_deps}
|
||||
${esp32_ota.lib_deps}
|
||||
|
||||
[env:LilyGo_TBeam_1W_repeater_mqtt]
|
||||
[env:LilyGo_TBeam_1W_repeater_observer]
|
||||
extends = LilyGo_TBeam_1W
|
||||
build_flags =
|
||||
${LilyGo_TBeam_1W.build_flags}
|
||||
@@ -437,7 +437,7 @@ lib_deps =
|
||||
${LilyGo_TBeam_1W.lib_deps}
|
||||
${esp32_ota.lib_deps}
|
||||
|
||||
[env:LilyGo_TDeck_repeater_mqtt]
|
||||
[env:LilyGo_TDeck_repeater_observer]
|
||||
extends = LilyGo_TDeck
|
||||
build_flags =
|
||||
${LilyGo_TDeck.build_flags}
|
||||
@@ -461,7 +461,7 @@ lib_deps =
|
||||
${LilyGo_TDeck.lib_deps}
|
||||
${esp32_ota.lib_deps}
|
||||
|
||||
[env:LilyGo_Tlora_C6_repeater_mqtt]
|
||||
[env:LilyGo_Tlora_C6_repeater_observer]
|
||||
extends = tlora_c6
|
||||
build_src_filter = ${tlora_c6.build_src_filter}
|
||||
+<../examples/simple_repeater/*.cpp>
|
||||
@@ -483,7 +483,7 @@ build_flags =
|
||||
lib_deps =
|
||||
${tlora_c6.lib_deps}
|
||||
|
||||
[env:M5Stack_Unit_C6L_repeater_mqtt]
|
||||
[env:M5Stack_Unit_C6L_repeater_observer]
|
||||
extends = M5Stack_Unit_C6L
|
||||
build_src_filter = ${M5Stack_Unit_C6L.build_src_filter}
|
||||
+<../examples/simple_repeater/*.cpp>
|
||||
@@ -505,7 +505,7 @@ build_flags =
|
||||
lib_deps =
|
||||
${M5Stack_Unit_C6L.lib_deps}
|
||||
|
||||
[env:Meshadventurer_sx1262_repeater_mqtt]
|
||||
[env:Meshadventurer_sx1262_repeater_observer]
|
||||
extends = Meshadventurer
|
||||
build_src_filter = ${Meshadventurer.build_src_filter}
|
||||
+<../examples/simple_repeater>
|
||||
@@ -532,7 +532,7 @@ lib_deps =
|
||||
${Meshadventurer.lib_deps}
|
||||
${esp32_ota.lib_deps}
|
||||
|
||||
[env:Meshadventurer_sx1268_repeater_mqtt]
|
||||
[env:Meshadventurer_sx1268_repeater_observer]
|
||||
extends = Meshadventurer
|
||||
build_src_filter = ${Meshadventurer.build_src_filter}
|
||||
+<../examples/simple_repeater>
|
||||
@@ -559,7 +559,7 @@ lib_deps =
|
||||
${Meshadventurer.lib_deps}
|
||||
${esp32_ota.lib_deps}
|
||||
|
||||
[env:Meshimi_repeater_mqtt]
|
||||
[env:Meshimi_repeater_observer]
|
||||
extends = Meshimi
|
||||
build_src_filter = ${Meshimi.build_src_filter}
|
||||
+<../examples/simple_repeater/*.cpp>
|
||||
@@ -581,7 +581,7 @@ build_flags =
|
||||
lib_deps =
|
||||
${Meshimi.lib_deps}
|
||||
|
||||
[env:nibble_screen_connect_repeater_mqtt]
|
||||
[env:nibble_screen_connect_repeater_observer]
|
||||
extends = nibble_screen_connect_base
|
||||
board_build.partitions = min_spiffs.csv ; get around 4mb flash limit
|
||||
build_flags =
|
||||
@@ -607,7 +607,7 @@ lib_deps =
|
||||
${nibble_screen_connect_base.lib_deps}
|
||||
${esp32_ota.lib_deps}
|
||||
|
||||
[env:RAK_3112_repeater_mqtt]
|
||||
[env:RAK_3112_repeater_observer]
|
||||
extends = rak3112
|
||||
build_flags =
|
||||
${rak3112.build_flags}
|
||||
@@ -631,7 +631,7 @@ lib_deps =
|
||||
${esp32_ota.lib_deps}
|
||||
bakercp/CRC32 @ ^2.0.0
|
||||
|
||||
[env:Station_G2_repeater_mqtt]
|
||||
[env:Station_G2_repeater_observer]
|
||||
extends = Station_G2
|
||||
build_flags =
|
||||
${Station_G2.build_flags}
|
||||
@@ -654,7 +654,7 @@ lib_deps =
|
||||
${Station_G2.lib_deps}
|
||||
${esp32_ota.lib_deps}
|
||||
|
||||
[env:Station_G2_logging_repeater_mqtt]
|
||||
[env:Station_G2_logging_repeater_observer]
|
||||
extends = Station_G2
|
||||
build_flags =
|
||||
${Station_G2.build_flags}
|
||||
@@ -679,7 +679,7 @@ lib_deps =
|
||||
${Station_G2.lib_deps}
|
||||
${esp32_ota.lib_deps}
|
||||
|
||||
[env:T_Beam_S3_Supreme_SX1262_repeater_mqtt]
|
||||
[env:T_Beam_S3_Supreme_SX1262_repeater_observer]
|
||||
extends = T_Beam_S3_Supreme_SX1262
|
||||
build_flags =
|
||||
${T_Beam_S3_Supreme_SX1262.build_flags}
|
||||
@@ -702,7 +702,7 @@ lib_deps =
|
||||
${T_Beam_S3_Supreme_SX1262.lib_deps}
|
||||
${esp32_ota.lib_deps}
|
||||
|
||||
[env:Tbeam_SX1262_repeater_mqtt]
|
||||
[env:Tbeam_SX1262_repeater_observer]
|
||||
extends = LilyGo_TBeam_SX1262
|
||||
build_flags =
|
||||
${LilyGo_TBeam_SX1262.build_flags}
|
||||
@@ -725,7 +725,7 @@ lib_deps =
|
||||
${LilyGo_TBeam_SX1262.lib_deps}
|
||||
${esp32_ota.lib_deps}
|
||||
|
||||
[env:Tbeam_SX1276_repeater_mqtt]
|
||||
[env:Tbeam_SX1276_repeater_observer]
|
||||
extends = LilyGo_TBeam_SX1276
|
||||
build_flags =
|
||||
${LilyGo_TBeam_SX1276.build_flags}
|
||||
@@ -749,7 +749,7 @@ lib_deps =
|
||||
${LilyGo_TBeam_SX1276.lib_deps}
|
||||
${esp32_ota.lib_deps}
|
||||
|
||||
[env:ThinkNode_M2_Repeater_mqtt]
|
||||
[env:ThinkNode_M2_Repeater_observer]
|
||||
extends = ThinkNode_M2
|
||||
board_build.partitions = min_spiffs.csv ; get around 4mb flash limit
|
||||
build_src_filter = ${ThinkNode_M2.build_src_filter}
|
||||
@@ -773,7 +773,7 @@ lib_deps =
|
||||
${ThinkNode_M2.lib_deps}
|
||||
${esp32_ota.lib_deps}
|
||||
|
||||
[env:ThinkNode_M5_Repeater_mqtt]
|
||||
[env:ThinkNode_M5_Repeater_observer]
|
||||
extends = ThinkNode_M5
|
||||
board_build.partitions = min_spiffs.csv ; get around 4mb flash limit
|
||||
build_src_filter = ${ThinkNode_M5.build_src_filter}
|
||||
@@ -797,7 +797,7 @@ lib_deps =
|
||||
${ThinkNode_M5.lib_deps}
|
||||
${esp32_ota.lib_deps}
|
||||
|
||||
[env:WHY2025_badge_repeater_mqtt]
|
||||
[env:WHY2025_badge_repeater_observer]
|
||||
extends = WHY2025_badge
|
||||
build_src_filter = ${WHY2025_badge.build_src_filter}
|
||||
+<../examples/simple_repeater/*.cpp>
|
||||
@@ -819,7 +819,7 @@ build_flags =
|
||||
lib_deps =
|
||||
${WHY2025_badge.lib_deps}
|
||||
|
||||
[env:Xiao_C6_repeater_mqtt]
|
||||
[env:Xiao_C6_repeater_observer]
|
||||
extends = Xiao_C6
|
||||
build_src_filter = ${Xiao_C6.build_src_filter}
|
||||
+<../examples/simple_repeater/*.cpp>
|
||||
@@ -841,7 +841,7 @@ build_flags =
|
||||
lib_deps =
|
||||
${Xiao_C6.lib_deps}
|
||||
|
||||
[env:Xiao_S3_WIO_repeater_mqtt]
|
||||
[env:Xiao_S3_WIO_repeater_observer]
|
||||
extends = Xiao_S3_WIO
|
||||
build_src_filter = ${Xiao_S3_WIO.build_src_filter}
|
||||
+<../examples/simple_repeater/*.cpp>
|
||||
@@ -864,266 +864,266 @@ lib_deps =
|
||||
${Xiao_S3_WIO.lib_deps}
|
||||
${esp32_ota.lib_deps}
|
||||
|
||||
[env:Ebyte_EoRa-S3_Repeater_mqtt_bridge]
|
||||
extends = env:Ebyte_EoRa-S3_Repeater_mqtt
|
||||
[env:Ebyte_EoRa-S3_Repeater_observer_espnow]
|
||||
extends = env:Ebyte_EoRa-S3_Repeater_observer
|
||||
build_flags =
|
||||
${env:Ebyte_EoRa-S3_Repeater_mqtt.build_flags}
|
||||
${env:Ebyte_EoRa-S3_Repeater_observer.build_flags}
|
||||
-D WITH_ESPNOW_BRIDGE=1
|
||||
build_src_filter = ${env:Ebyte_EoRa-S3_Repeater_mqtt.build_src_filter}
|
||||
build_src_filter = ${env:Ebyte_EoRa-S3_Repeater_observer.build_src_filter}
|
||||
+<helpers/bridges/ESPNowBridge.cpp>
|
||||
|
||||
[env:Generic_E22_sx1262_repeater_mqtt_bridge]
|
||||
extends = env:Generic_E22_sx1262_repeater_mqtt
|
||||
[env:Generic_E22_sx1262_repeater_observer_espnow]
|
||||
extends = env:Generic_E22_sx1262_repeater_observer
|
||||
build_flags =
|
||||
${env:Generic_E22_sx1262_repeater_mqtt.build_flags}
|
||||
${env:Generic_E22_sx1262_repeater_observer.build_flags}
|
||||
-D WITH_ESPNOW_BRIDGE=1
|
||||
build_src_filter = ${env:Generic_E22_sx1262_repeater_mqtt.build_src_filter}
|
||||
build_src_filter = ${env:Generic_E22_sx1262_repeater_observer.build_src_filter}
|
||||
+<helpers/bridges/ESPNowBridge.cpp>
|
||||
|
||||
[env:Generic_E22_sx1268_repeater_mqtt_bridge]
|
||||
extends = env:Generic_E22_sx1268_repeater_mqtt
|
||||
[env:Generic_E22_sx1268_repeater_observer_espnow]
|
||||
extends = env:Generic_E22_sx1268_repeater_observer
|
||||
build_flags =
|
||||
${env:Generic_E22_sx1268_repeater_mqtt.build_flags}
|
||||
${env:Generic_E22_sx1268_repeater_observer.build_flags}
|
||||
-D WITH_ESPNOW_BRIDGE=1
|
||||
build_src_filter = ${env:Generic_E22_sx1268_repeater_mqtt.build_src_filter}
|
||||
build_src_filter = ${env:Generic_E22_sx1268_repeater_observer.build_src_filter}
|
||||
+<helpers/bridges/ESPNowBridge.cpp>
|
||||
|
||||
[env:Heltec_E213_repeater_mqtt_bridge]
|
||||
extends = env:Heltec_E213_repeater_mqtt
|
||||
[env:Heltec_E213_repeater_observer_espnow]
|
||||
extends = env:Heltec_E213_repeater_observer
|
||||
build_flags =
|
||||
${env:Heltec_E213_repeater_mqtt.build_flags}
|
||||
${env:Heltec_E213_repeater_observer.build_flags}
|
||||
-D WITH_ESPNOW_BRIDGE=1
|
||||
build_src_filter = ${env:Heltec_E213_repeater_mqtt.build_src_filter}
|
||||
build_src_filter = ${env:Heltec_E213_repeater_observer.build_src_filter}
|
||||
+<helpers/bridges/ESPNowBridge.cpp>
|
||||
|
||||
[env:Heltec_E290_repeater_mqtt_bridge]
|
||||
extends = env:Heltec_E290_repeater_mqtt
|
||||
[env:Heltec_E290_repeater_observer_espnow]
|
||||
extends = env:Heltec_E290_repeater_observer
|
||||
build_flags =
|
||||
${env:Heltec_E290_repeater_mqtt.build_flags}
|
||||
${env:Heltec_E290_repeater_observer.build_flags}
|
||||
-D WITH_ESPNOW_BRIDGE=1
|
||||
build_src_filter = ${env:Heltec_E290_repeater_mqtt.build_src_filter}
|
||||
build_src_filter = ${env:Heltec_E290_repeater_observer.build_src_filter}
|
||||
+<helpers/bridges/ESPNowBridge.cpp>
|
||||
|
||||
[env:Heltec_T190_repeater_mqtt_bridge]
|
||||
extends = env:Heltec_T190_repeater_mqtt
|
||||
[env:Heltec_T190_repeater_observer_espnow]
|
||||
extends = env:Heltec_T190_repeater_observer
|
||||
build_flags =
|
||||
${env:Heltec_T190_repeater_mqtt.build_flags}
|
||||
${env:Heltec_T190_repeater_observer.build_flags}
|
||||
-D WITH_ESPNOW_BRIDGE=1
|
||||
build_src_filter = ${env:Heltec_T190_repeater_mqtt.build_src_filter}
|
||||
build_src_filter = ${env:Heltec_T190_repeater_observer.build_src_filter}
|
||||
+<helpers/bridges/ESPNowBridge.cpp>
|
||||
|
||||
[env:heltec_tracker_v2_repeater_mqtt_bridge]
|
||||
extends = env:heltec_tracker_v2_repeater_mqtt
|
||||
[env:heltec_tracker_v2_repeater_observer_espnow]
|
||||
extends = env:heltec_tracker_v2_repeater_observer
|
||||
build_flags =
|
||||
${env:heltec_tracker_v2_repeater_mqtt.build_flags}
|
||||
${env:heltec_tracker_v2_repeater_observer.build_flags}
|
||||
-D WITH_ESPNOW_BRIDGE=1
|
||||
build_src_filter = ${env:heltec_tracker_v2_repeater_mqtt.build_src_filter}
|
||||
build_src_filter = ${env:heltec_tracker_v2_repeater_observer.build_src_filter}
|
||||
+<helpers/bridges/ESPNowBridge.cpp>
|
||||
|
||||
[env:Heltec_v2_repeater_mqtt_bridge]
|
||||
extends = env:Heltec_v2_repeater_mqtt
|
||||
[env:Heltec_v2_repeater_observer_espnow]
|
||||
extends = env:Heltec_v2_repeater_observer
|
||||
build_flags =
|
||||
${env:Heltec_v2_repeater_mqtt.build_flags}
|
||||
${env:Heltec_v2_repeater_observer.build_flags}
|
||||
-D WITH_ESPNOW_BRIDGE=1
|
||||
build_src_filter = ${env:Heltec_v2_repeater_mqtt.build_src_filter}
|
||||
build_src_filter = ${env:Heltec_v2_repeater_observer.build_src_filter}
|
||||
+<helpers/bridges/ESPNowBridge.cpp>
|
||||
|
||||
[env:Heltec_v3_repeater_mqtt_bridge]
|
||||
extends = env:Heltec_v3_repeater_mqtt
|
||||
[env:Heltec_v3_repeater_observer_espnow]
|
||||
extends = env:Heltec_v3_repeater_observer
|
||||
build_flags =
|
||||
${env:Heltec_v3_repeater_mqtt.build_flags}
|
||||
${env:Heltec_v3_repeater_observer.build_flags}
|
||||
-D WITH_ESPNOW_BRIDGE=1
|
||||
build_src_filter = ${env:Heltec_v3_repeater_mqtt.build_src_filter}
|
||||
build_src_filter = ${env:Heltec_v3_repeater_observer.build_src_filter}
|
||||
+<helpers/bridges/ESPNowBridge.cpp>
|
||||
|
||||
[env:heltec_v4_repeater_mqtt_bridge]
|
||||
extends = env:heltec_v4_repeater_mqtt
|
||||
[env:heltec_v4_repeater_observer_espnow]
|
||||
extends = env:heltec_v4_repeater_observer
|
||||
build_flags =
|
||||
${env:heltec_v4_repeater_mqtt.build_flags}
|
||||
${env:heltec_v4_repeater_observer.build_flags}
|
||||
-D WITH_ESPNOW_BRIDGE=1
|
||||
build_src_filter = ${env:heltec_v4_repeater_mqtt.build_src_filter}
|
||||
build_src_filter = ${env:heltec_v4_repeater_observer.build_src_filter}
|
||||
+<helpers/bridges/ESPNowBridge.cpp>
|
||||
|
||||
[env:heltec_v4_tft_repeater_mqtt_bridge]
|
||||
extends = env:heltec_v4_tft_repeater_mqtt
|
||||
[env:heltec_v4_tft_repeater_observer_espnow]
|
||||
extends = env:heltec_v4_tft_repeater_observer
|
||||
build_flags =
|
||||
${env:heltec_v4_tft_repeater_mqtt.build_flags}
|
||||
${env:heltec_v4_tft_repeater_observer.build_flags}
|
||||
-D WITH_ESPNOW_BRIDGE=1
|
||||
build_src_filter = ${env:heltec_v4_tft_repeater_mqtt.build_src_filter}
|
||||
build_src_filter = ${env:heltec_v4_tft_repeater_observer.build_src_filter}
|
||||
+<helpers/bridges/ESPNowBridge.cpp>
|
||||
|
||||
[env:Heltec_Wireless_Paper_repeater_mqtt_bridge]
|
||||
extends = env:Heltec_Wireless_Paper_repeater_mqtt
|
||||
[env:Heltec_Wireless_Paper_repeater_observer_espnow]
|
||||
extends = env:Heltec_Wireless_Paper_repeater_observer
|
||||
build_flags =
|
||||
${env:Heltec_Wireless_Paper_repeater_mqtt.build_flags}
|
||||
${env:Heltec_Wireless_Paper_repeater_observer.build_flags}
|
||||
-D WITH_ESPNOW_BRIDGE=1
|
||||
build_src_filter = ${env:Heltec_Wireless_Paper_repeater_mqtt.build_src_filter}
|
||||
build_src_filter = ${env:Heltec_Wireless_Paper_repeater_observer.build_src_filter}
|
||||
+<helpers/bridges/ESPNowBridge.cpp>
|
||||
|
||||
[env:Heltec_Wireless_Tracker_repeater_mqtt_bridge]
|
||||
extends = env:Heltec_Wireless_Tracker_repeater_mqtt
|
||||
[env:Heltec_Wireless_Tracker_repeater_observer_espnow]
|
||||
extends = env:Heltec_Wireless_Tracker_repeater_observer
|
||||
build_flags =
|
||||
${env:Heltec_Wireless_Tracker_repeater_mqtt.build_flags}
|
||||
${env:Heltec_Wireless_Tracker_repeater_observer.build_flags}
|
||||
-D WITH_ESPNOW_BRIDGE=1
|
||||
build_src_filter = ${env:Heltec_Wireless_Tracker_repeater_mqtt.build_src_filter}
|
||||
build_src_filter = ${env:Heltec_Wireless_Tracker_repeater_observer.build_src_filter}
|
||||
+<helpers/bridges/ESPNowBridge.cpp>
|
||||
|
||||
[env:Heltec_WSL3_repeater_mqtt_bridge]
|
||||
extends = env:Heltec_WSL3_repeater_mqtt
|
||||
[env:Heltec_WSL3_repeater_observer_espnow]
|
||||
extends = env:Heltec_WSL3_repeater_observer
|
||||
build_flags =
|
||||
${env:Heltec_WSL3_repeater_mqtt.build_flags}
|
||||
${env:Heltec_WSL3_repeater_observer.build_flags}
|
||||
-D WITH_ESPNOW_BRIDGE=1
|
||||
build_src_filter = ${env:Heltec_WSL3_repeater_mqtt.build_src_filter}
|
||||
build_src_filter = ${env:Heltec_WSL3_repeater_observer.build_src_filter}
|
||||
+<helpers/bridges/ESPNowBridge.cpp>
|
||||
|
||||
[env:LilyGo_T3S3_sx1262_repeater_mqtt_bridge]
|
||||
extends = env:LilyGo_T3S3_sx1262_repeater_mqtt
|
||||
[env:LilyGo_T3S3_sx1262_repeater_observer_espnow]
|
||||
extends = env:LilyGo_T3S3_sx1262_repeater_observer
|
||||
build_flags =
|
||||
${env:LilyGo_T3S3_sx1262_repeater_mqtt.build_flags}
|
||||
${env:LilyGo_T3S3_sx1262_repeater_observer.build_flags}
|
||||
-D WITH_ESPNOW_BRIDGE=1
|
||||
build_src_filter = ${env:LilyGo_T3S3_sx1262_repeater_mqtt.build_src_filter}
|
||||
build_src_filter = ${env:LilyGo_T3S3_sx1262_repeater_observer.build_src_filter}
|
||||
+<helpers/bridges/ESPNowBridge.cpp>
|
||||
|
||||
[env:LilyGo_T3S3_sx1276_repeater_mqtt_bridge]
|
||||
extends = env:LilyGo_T3S3_sx1276_repeater_mqtt
|
||||
[env:LilyGo_T3S3_sx1276_repeater_observer_espnow]
|
||||
extends = env:LilyGo_T3S3_sx1276_repeater_observer
|
||||
build_flags =
|
||||
${env:LilyGo_T3S3_sx1276_repeater_mqtt.build_flags}
|
||||
${env:LilyGo_T3S3_sx1276_repeater_observer.build_flags}
|
||||
-D WITH_ESPNOW_BRIDGE=1
|
||||
build_src_filter = ${env:LilyGo_T3S3_sx1276_repeater_mqtt.build_src_filter}
|
||||
build_src_filter = ${env:LilyGo_T3S3_sx1276_repeater_observer.build_src_filter}
|
||||
+<helpers/bridges/ESPNowBridge.cpp>
|
||||
|
||||
[env:LilyGo_TBeam_1W_repeater_mqtt_bridge]
|
||||
extends = env:LilyGo_TBeam_1W_repeater_mqtt
|
||||
[env:LilyGo_TBeam_1W_repeater_observer_espnow]
|
||||
extends = env:LilyGo_TBeam_1W_repeater_observer
|
||||
build_flags =
|
||||
${env:LilyGo_TBeam_1W_repeater_mqtt.build_flags}
|
||||
${env:LilyGo_TBeam_1W_repeater_observer.build_flags}
|
||||
-D WITH_ESPNOW_BRIDGE=1
|
||||
build_src_filter = ${env:LilyGo_TBeam_1W_repeater_mqtt.build_src_filter}
|
||||
build_src_filter = ${env:LilyGo_TBeam_1W_repeater_observer.build_src_filter}
|
||||
+<helpers/bridges/ESPNowBridge.cpp>
|
||||
|
||||
[env:LilyGo_TDeck_repeater_mqtt_bridge]
|
||||
extends = env:LilyGo_TDeck_repeater_mqtt
|
||||
[env:LilyGo_TDeck_repeater_observer_espnow]
|
||||
extends = env:LilyGo_TDeck_repeater_observer
|
||||
build_flags =
|
||||
${env:LilyGo_TDeck_repeater_mqtt.build_flags}
|
||||
${env:LilyGo_TDeck_repeater_observer.build_flags}
|
||||
-D WITH_ESPNOW_BRIDGE=1
|
||||
build_src_filter = ${env:LilyGo_TDeck_repeater_mqtt.build_src_filter}
|
||||
build_src_filter = ${env:LilyGo_TDeck_repeater_observer.build_src_filter}
|
||||
+<helpers/bridges/ESPNowBridge.cpp>
|
||||
|
||||
[env:LilyGo_Tlora_C6_repeater_mqtt_bridge]
|
||||
extends = env:LilyGo_Tlora_C6_repeater_mqtt
|
||||
[env:LilyGo_Tlora_C6_repeater_observer_espnow]
|
||||
extends = env:LilyGo_Tlora_C6_repeater_observer
|
||||
build_flags =
|
||||
${env:LilyGo_Tlora_C6_repeater_mqtt.build_flags}
|
||||
${env:LilyGo_Tlora_C6_repeater_observer.build_flags}
|
||||
-D WITH_ESPNOW_BRIDGE=1
|
||||
build_src_filter = ${env:LilyGo_Tlora_C6_repeater_mqtt.build_src_filter}
|
||||
build_src_filter = ${env:LilyGo_Tlora_C6_repeater_observer.build_src_filter}
|
||||
+<helpers/bridges/ESPNowBridge.cpp>
|
||||
|
||||
[env:M5Stack_Unit_C6L_repeater_mqtt_bridge]
|
||||
extends = env:M5Stack_Unit_C6L_repeater_mqtt
|
||||
[env:M5Stack_Unit_C6L_repeater_observer_espnow]
|
||||
extends = env:M5Stack_Unit_C6L_repeater_observer
|
||||
build_flags =
|
||||
${env:M5Stack_Unit_C6L_repeater_mqtt.build_flags}
|
||||
${env:M5Stack_Unit_C6L_repeater_observer.build_flags}
|
||||
-D WITH_ESPNOW_BRIDGE=1
|
||||
build_src_filter = ${env:M5Stack_Unit_C6L_repeater_mqtt.build_src_filter}
|
||||
build_src_filter = ${env:M5Stack_Unit_C6L_repeater_observer.build_src_filter}
|
||||
+<helpers/bridges/ESPNowBridge.cpp>
|
||||
|
||||
[env:Meshadventurer_sx1262_repeater_mqtt_bridge]
|
||||
extends = env:Meshadventurer_sx1262_repeater_mqtt
|
||||
[env:Meshadventurer_sx1262_repeater_observer_espnow]
|
||||
extends = env:Meshadventurer_sx1262_repeater_observer
|
||||
build_flags =
|
||||
${env:Meshadventurer_sx1262_repeater_mqtt.build_flags}
|
||||
${env:Meshadventurer_sx1262_repeater_observer.build_flags}
|
||||
-D WITH_ESPNOW_BRIDGE=1
|
||||
build_src_filter = ${env:Meshadventurer_sx1262_repeater_mqtt.build_src_filter}
|
||||
build_src_filter = ${env:Meshadventurer_sx1262_repeater_observer.build_src_filter}
|
||||
+<helpers/bridges/ESPNowBridge.cpp>
|
||||
|
||||
[env:Meshadventurer_sx1268_repeater_mqtt_bridge]
|
||||
extends = env:Meshadventurer_sx1268_repeater_mqtt
|
||||
[env:Meshadventurer_sx1268_repeater_observer_espnow]
|
||||
extends = env:Meshadventurer_sx1268_repeater_observer
|
||||
build_flags =
|
||||
${env:Meshadventurer_sx1268_repeater_mqtt.build_flags}
|
||||
${env:Meshadventurer_sx1268_repeater_observer.build_flags}
|
||||
-D WITH_ESPNOW_BRIDGE=1
|
||||
build_src_filter = ${env:Meshadventurer_sx1268_repeater_mqtt.build_src_filter}
|
||||
build_src_filter = ${env:Meshadventurer_sx1268_repeater_observer.build_src_filter}
|
||||
+<helpers/bridges/ESPNowBridge.cpp>
|
||||
|
||||
[env:nibble_screen_connect_repeater_mqtt_bridge]
|
||||
extends = env:nibble_screen_connect_repeater_mqtt
|
||||
[env:nibble_screen_connect_repeater_observer_espnow]
|
||||
extends = env:nibble_screen_connect_repeater_observer
|
||||
build_flags =
|
||||
${env:nibble_screen_connect_repeater_mqtt.build_flags}
|
||||
${env:nibble_screen_connect_repeater_observer.build_flags}
|
||||
-D WITH_ESPNOW_BRIDGE=1
|
||||
build_src_filter = ${env:nibble_screen_connect_repeater_mqtt.build_src_filter}
|
||||
build_src_filter = ${env:nibble_screen_connect_repeater_observer.build_src_filter}
|
||||
+<helpers/bridges/ESPNowBridge.cpp>
|
||||
|
||||
[env:RAK_3112_repeater_mqtt_bridge]
|
||||
extends = env:RAK_3112_repeater_mqtt
|
||||
[env:RAK_3112_repeater_observer_espnow]
|
||||
extends = env:RAK_3112_repeater_observer
|
||||
build_flags =
|
||||
${env:RAK_3112_repeater_mqtt.build_flags}
|
||||
${env:RAK_3112_repeater_observer.build_flags}
|
||||
-D WITH_ESPNOW_BRIDGE=1
|
||||
build_src_filter = ${env:RAK_3112_repeater_mqtt.build_src_filter}
|
||||
build_src_filter = ${env:RAK_3112_repeater_observer.build_src_filter}
|
||||
+<helpers/bridges/ESPNowBridge.cpp>
|
||||
|
||||
[env:Station_G2_repeater_mqtt_bridge]
|
||||
extends = env:Station_G2_repeater_mqtt
|
||||
[env:Station_G2_repeater_observer_espnow]
|
||||
extends = env:Station_G2_repeater_observer
|
||||
build_flags =
|
||||
${env:Station_G2_repeater_mqtt.build_flags}
|
||||
${env:Station_G2_repeater_observer.build_flags}
|
||||
-D WITH_ESPNOW_BRIDGE=1
|
||||
build_src_filter = ${env:Station_G2_repeater_mqtt.build_src_filter}
|
||||
build_src_filter = ${env:Station_G2_repeater_observer.build_src_filter}
|
||||
+<helpers/bridges/ESPNowBridge.cpp>
|
||||
|
||||
[env:Station_G2_logging_repeater_mqtt_bridge]
|
||||
extends = env:Station_G2_logging_repeater_mqtt
|
||||
[env:Station_G2_logging_repeater_observer_espnow]
|
||||
extends = env:Station_G2_logging_repeater_observer
|
||||
build_flags =
|
||||
${env:Station_G2_logging_repeater_mqtt.build_flags}
|
||||
${env:Station_G2_logging_repeater_observer.build_flags}
|
||||
-D WITH_ESPNOW_BRIDGE=1
|
||||
build_src_filter = ${env:Station_G2_logging_repeater_mqtt.build_src_filter}
|
||||
build_src_filter = ${env:Station_G2_logging_repeater_observer.build_src_filter}
|
||||
+<helpers/bridges/ESPNowBridge.cpp>
|
||||
|
||||
[env:T_Beam_S3_Supreme_SX1262_repeater_mqtt_bridge]
|
||||
extends = env:T_Beam_S3_Supreme_SX1262_repeater_mqtt
|
||||
[env:T_Beam_S3_Supreme_SX1262_repeater_observer_espnow]
|
||||
extends = env:T_Beam_S3_Supreme_SX1262_repeater_observer
|
||||
build_flags =
|
||||
${env:T_Beam_S3_Supreme_SX1262_repeater_mqtt.build_flags}
|
||||
${env:T_Beam_S3_Supreme_SX1262_repeater_observer.build_flags}
|
||||
-D WITH_ESPNOW_BRIDGE=1
|
||||
build_src_filter = ${env:T_Beam_S3_Supreme_SX1262_repeater_mqtt.build_src_filter}
|
||||
build_src_filter = ${env:T_Beam_S3_Supreme_SX1262_repeater_observer.build_src_filter}
|
||||
+<helpers/bridges/ESPNowBridge.cpp>
|
||||
|
||||
[env:Tbeam_SX1262_repeater_mqtt_bridge]
|
||||
extends = env:Tbeam_SX1262_repeater_mqtt
|
||||
[env:Tbeam_SX1262_repeater_observer_espnow]
|
||||
extends = env:Tbeam_SX1262_repeater_observer
|
||||
build_flags =
|
||||
${env:Tbeam_SX1262_repeater_mqtt.build_flags}
|
||||
${env:Tbeam_SX1262_repeater_observer.build_flags}
|
||||
-D WITH_ESPNOW_BRIDGE=1
|
||||
build_src_filter = ${env:Tbeam_SX1262_repeater_mqtt.build_src_filter}
|
||||
build_src_filter = ${env:Tbeam_SX1262_repeater_observer.build_src_filter}
|
||||
+<helpers/bridges/ESPNowBridge.cpp>
|
||||
|
||||
[env:Tbeam_SX1276_repeater_mqtt_bridge]
|
||||
extends = env:Tbeam_SX1276_repeater_mqtt
|
||||
[env:Tbeam_SX1276_repeater_observer_espnow]
|
||||
extends = env:Tbeam_SX1276_repeater_observer
|
||||
build_flags =
|
||||
${env:Tbeam_SX1276_repeater_mqtt.build_flags}
|
||||
${env:Tbeam_SX1276_repeater_observer.build_flags}
|
||||
-D WITH_ESPNOW_BRIDGE=1
|
||||
build_src_filter = ${env:Tbeam_SX1276_repeater_mqtt.build_src_filter}
|
||||
build_src_filter = ${env:Tbeam_SX1276_repeater_observer.build_src_filter}
|
||||
+<helpers/bridges/ESPNowBridge.cpp>
|
||||
|
||||
[env:ThinkNode_M2_Repeater_mqtt_bridge]
|
||||
extends = env:ThinkNode_M2_Repeater_mqtt
|
||||
[env:ThinkNode_M2_Repeater_observer_espnow]
|
||||
extends = env:ThinkNode_M2_Repeater_observer
|
||||
build_flags =
|
||||
${env:ThinkNode_M2_Repeater_mqtt.build_flags}
|
||||
${env:ThinkNode_M2_Repeater_observer.build_flags}
|
||||
-D WITH_ESPNOW_BRIDGE=1
|
||||
build_src_filter = ${env:ThinkNode_M2_Repeater_mqtt.build_src_filter}
|
||||
build_src_filter = ${env:ThinkNode_M2_Repeater_observer.build_src_filter}
|
||||
+<helpers/bridges/ESPNowBridge.cpp>
|
||||
|
||||
[env:ThinkNode_M5_Repeater_mqtt_bridge]
|
||||
extends = env:ThinkNode_M5_Repeater_mqtt
|
||||
[env:ThinkNode_M5_Repeater_observer_espnow]
|
||||
extends = env:ThinkNode_M5_Repeater_observer
|
||||
build_flags =
|
||||
${env:ThinkNode_M5_Repeater_mqtt.build_flags}
|
||||
${env:ThinkNode_M5_Repeater_observer.build_flags}
|
||||
-D WITH_ESPNOW_BRIDGE=1
|
||||
build_src_filter = ${env:ThinkNode_M5_Repeater_mqtt.build_src_filter}
|
||||
build_src_filter = ${env:ThinkNode_M5_Repeater_observer.build_src_filter}
|
||||
+<helpers/bridges/ESPNowBridge.cpp>
|
||||
|
||||
[env:WHY2025_badge_repeater_mqtt_bridge]
|
||||
extends = env:WHY2025_badge_repeater_mqtt
|
||||
[env:WHY2025_badge_repeater_observer_espnow]
|
||||
extends = env:WHY2025_badge_repeater_observer
|
||||
build_flags =
|
||||
${env:WHY2025_badge_repeater_mqtt.build_flags}
|
||||
${env:WHY2025_badge_repeater_observer.build_flags}
|
||||
-D WITH_ESPNOW_BRIDGE=1
|
||||
build_src_filter = ${env:WHY2025_badge_repeater_mqtt.build_src_filter}
|
||||
build_src_filter = ${env:WHY2025_badge_repeater_observer.build_src_filter}
|
||||
+<helpers/bridges/ESPNowBridge.cpp>
|
||||
|
||||
[env:Xiao_S3_WIO_repeater_mqtt_bridge]
|
||||
extends = env:Xiao_S3_WIO_repeater_mqtt
|
||||
[env:Xiao_S3_WIO_repeater_observer_espnow]
|
||||
extends = env:Xiao_S3_WIO_repeater_observer
|
||||
build_flags =
|
||||
${env:Xiao_S3_WIO_repeater_mqtt.build_flags}
|
||||
${env:Xiao_S3_WIO_repeater_observer.build_flags}
|
||||
-D WITH_ESPNOW_BRIDGE=1
|
||||
build_src_filter = ${env:Xiao_S3_WIO_repeater_mqtt.build_src_filter}
|
||||
build_src_filter = ${env:Xiao_S3_WIO_repeater_observer.build_src_filter}
|
||||
+<helpers/bridges/ESPNowBridge.cpp>
|
||||
|
||||
Reference in New Issue
Block a user