Форк репозитария VBart для meshcoretel.ru с моими добавками

Jared Dohrman de071cbb79 fix: reduce repeater web panel pressure and improve mqtt diagnostics 4 bulan lalu
.devcontainer 0ac33479d3 fix: update devcontainer features to use node instead of bun 4 bulan lalu
.github 9e0cff9e70 chore: enable local MQTT debug builds and disable MQTT_DEBUG in GitHub workflows 4 bulan lalu
.vscode 6c7efdd0f6 Initial commit 1 tahun lalu
arch 4b184a60d9 fix: stop tracking web panel cert key and generate it under ignored artifacts 4 bulan lalu
bin 13bc6e4178 setup automated firmware builds with github actions 1 tahun lalu
boards b5374a705a feat(web,mqtt): add repeater dashboard, MQTT settings, and stabilise HTTPS/TLS startup 4 bulan lalu
docs de071cbb79 fix: reduce repeater web panel pressure and improve mqtt diagnostics 4 bulan lalu
examples 71ddba8bdc feat: expand repeater web panel with radio presets, info cards, and clock sync controls 4 bulan lalu
include 6c7efdd0f6 Initial commit 1 tahun lalu
lib 03458269ac moved nrf sdk headers to ./lib/ and added Repeater envs for t114 & t-echo 1 tahun lalu
logo 22058c0ee5 add logo files 1 tahun lalu
src de071cbb79 fix: reduce repeater web panel pressure and improve mqtt diagnostics 4 bulan lalu
variants 9e0cff9e70 chore: enable local MQTT debug builds and disable MQTT_DEBUG in GitHub workflows 4 bulan lalu
.clang-format 4e2786c516 Re-applying 73a7a96, formatting, MyMesh reformat 1 tahun lalu
.envrc 21564ae494 add default.nix/.envrc for automagic platformio dev environment on NixOS 1 tahun lalu
.gitignore f653f9ae7c chore: clean up docs, add push workflow 4 bulan lalu
.python-version 009e281181 chore: wire uv, update GitHub workflows, and document EastMesh releases 4 bulan lalu
CONTRIBUTING.md 42db60bc26 * markdown changes 4 bulan lalu
README.md de071cbb79 fix: reduce repeater web panel pressure and improve mqtt diagnostics 4 bulan lalu
RELEASE.md 98fe78a379 feat: add MQTT repeater support, web config panel, and EastMesh-specific firmware workflows 4 bulan lalu
build.sh 98fe78a379 feat: add MQTT repeater support, web config panel, and EastMesh-specific firmware workflows 4 bulan lalu
build_as_lib.py 0959e64d11 lib_build: add UI_FLAVOR and some cleanup 11 bulan lalu
create-uf2.py 24ed5b377f added custom pio task "Create UF2 file" 9 bulan lalu
default.nix 24ef375fc7 default.nix: add python3 to the shell 1 tahun lalu
library.json 7829c51898 Bump to RadioLib 7.6.0 4 bulan lalu
license.txt 9c32a94382 chore: update README and license. 4 bulan lalu
merge-bin.py e58d866949 * merge-bin.py script 1 tahun lalu
mkdocs.yml 01d31b3121 chore: migrate site to Zensical 4 bulan lalu
platformio.ini b5374a705a feat(web,mqtt): add repeater dashboard, MQTT settings, and stabilise HTTPS/TLS startup 4 bulan lalu
pyproject.toml 01d31b3121 chore: migrate site to Zensical 4 bulan lalu
uv.lock 01d31b3121 chore: migrate site to Zensical 4 bulan lalu

README.md

MeshCore-EastMesh

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 firmware builds for MeshCore, with MQTT repeaters, WiFi companions, and simple release downloads for supported boards.

This repository keeps the upstream MeshCore firmware intact and adds an EastMesh layer on top for packaging, release automation, WiFi-enabled companion builds, and MQTT-enabled repeater builds.

What This Repo Adds

  • *_repeater_mqtt firmware targets with:
    • native WiFi
    • MQTT over WSS with JWT auth
    • optional local HTTPS config panel on supported ESP32 targets
  • *_companion_radio_wifi firmware targets for WiFi-connected companion devices
  • EastMesh-specific release workflows and versioning on top of upstream MeshCore releases
  • docs and release guidance for EastMesh users instead of the full upstream MeshCore docs set

Releases

Prebuilt firmware is published on GitHub Releases:

For flashing guidance, including when to use .bin vs -merged.bin, see:

The custom firmware flasher site is:

Install uv

This repo uses uv for Python tooling and runs PlatformIO through uv run.

Official install docs:

Common install methods:

macOS and Linux:

curl -LsSf https://astral.sh/uv/install.sh | sh

Homebrew:

brew install uv

Windows PowerShell:

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

Common Repo Usage

Install tooling:

uv sync

List available build targets:

bash build.sh list

Build a single target:

uv run pio run -e heltec_v4_repeater_mqtt
uv run pio run -e heltec_v4_companion_radio_wifi

Build with release-style version metadata:

export FIRMWARE_VERSION=v1.14.1
export EASTMESH_VERSION=v1.0.1
bash build.sh build-firmware heltec_v4_repeater_mqtt

Flash a target:

uv run pio run -e heltec_v4_repeater_mqtt -t upload --upload-port /dev/tty.usbmodemXXXX

Open a serial monitor:

uv run pio device monitor --port /dev/tty.usbmodemXXXX --baud 115200

Build docs locally:

uv run --group docs zensical serve
uv run --group docs zensical build

Key Files

Key EastMesh Features

MQTT Repeater Additions

  • hardcoded broker support for:
    • eastmesh-au
    • letsmesh-eu
    • letsmesh-us
  • WSS transport at /mqtt
  • JWT auth using the device identity
  • CLI controls for:
    • WiFi credentials
    • WiFi powersaving
    • board battery reporting on supported targets
    • MQTT endpoint enablement
    • MQTT packet and raw publishing
    • owner public key and email
    • local web panel enablement

Local Web Panel

On supported *_repeater_mqtt ESP32 targets, the repeater can expose a local HTTPS config panel over WiFi.

Features include:

  • password-gated access using the existing repeater admin password
  • allowlisted CLI execution
  • grouped quick actions
  • 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.

Some constrained targets disable the panel to stay within flash limits. For example, Xiao_C3_repeater_mqtt builds with WITH_WEB_PANEL=0.

Companion WiFi Additions

*_companion_radio_wifi targets now support persisted WiFi rescue commands:

  • open a serial monitor at 115200 baud
  • reboot the device
  • long-press the user button within the first 8 seconds after boot to enter CLI Rescue
  • wait for ========= CLI Rescue =========
  • send the commands from the serial monitor

These rescue commands are only available after entering CLI Rescue:

  • get wifi.status
  • get wifi.ssid
  • get wifi.powersaving
  • set wifi.ssid <ssid>
  • set wifi.pwd <password>
  • set wifi.powersaving none|min|max

Active GitHub Workflows

  • .github/workflows/build-companion-wifi-firmwares.yml
  • .github/workflows/build-repeater-mqtt-firmwares.yml
  • .github/workflows/pr-build-check.yml
  • .github/workflows/push-build-check.yml
  • .github/workflows/github-pages.yml

The current release workflows intentionally focus only on:

  • companion-wifi
  • repeater-mqtt

Release Tags

Current release tags are:

git tag companion-wifi-v1.14.1
git tag repeater-mqtt-eastmesh-v1.0.1

Companion WiFi uses the upstream MeshCore version in the tag.

Repeater MQTT uses:

  • OFFICIAL_MESHCORE_VERSION from GitHub Actions variables as FIRMWARE_VERSION
  • the EastMesh tag version as EASTMESH_VERSION

See RELEASE.md for the full release flow.

Documentation

Published docs site:

Current docs pages: