EastMesh
ForkEastMesh firmware builds for MeshCore, with MQTT repeaters, WiFi companions, and simple release downloads for supported boards. Features an optional local HTTPS config panel on supported ESP32 targets, JWT auth using device identity, and battery reporting.
Fork of MeshCore (Reference)
- Maintainer
- xJARiD ↗
- Status
- Active
- Maturity
- Beta
- Lifecycle
- Active
- Latest version
- 2026.6.5
- Released
- 2026-06-26
- Runtime
- Arduino · C++
- Distribution
- Community
- Licensing
- Open source
- License
- MIT
Capabilities
Transports
- ✓ BLE
- ✓ USB serial
- ✓ Native TCP
- ✓ Wi-Fi AP
Operations
- ✕ Web flasher
- ✓ OTA updates
Networking
- ✓ Repeater
- ✕ Room server
- ✓ Observer
- ✓ MQTT
- ✕ KISS modem
Hardware
- ✓ GPS
- ✓ Display
- ✕ Sensors
- ✕ Low-power RX
Protocol
- ✓ MeshCore compatible
Node role
Features
- MQTT repeater builds
- WiFi companion builds
- Optional local HTTPS config panel (ESP32)
- JWT auth using device identity
- Battery reporting on supported targets
- Observer role support
Project signals
- GitHub stars
- 18
- Forks
- 6
- Watchers
- 2
- Open issues
- 0
- Contributors
- 172
- Release downloads
- 3,317
- Latest downloads
- 108
- Source available
- Yes
- Releases available
- Yes
- CI builds
- Yes
Releases
from GitHub · updated 2026-06-26v2026.6.5 # Latest 2 variants 2 days ago · 2026-06-26 02:52 UTC
MeshCore EastMesh Observer
EastMesh
observer-eastmeshfirmware for MeshCore boards with secure MQTT uplink and optional local web management, based on MeshCore firmwarev1.16.0.This release adds the Waev curated broker as a selectable MQTT uplink — with automatic short-lived auth tokens to satisfy Waev's requirements — and widens the Custom MQTT settings panel in the web panel.
What's Changed
- Added the
waevcurated broker (wss://mqtt.waev.app:443/mqtt) using WSS, verified TLS, and MeshCore JWT authentication with the broker host as the token audience. - Added
get mqtt.waevandset mqtt.waev on|offto toggle the Waev broker, and added Waev to the Primary MQTT and Secondary MQTT dropdowns in the web panel. - Added per-broker JWT auth token lifetimes; Waev receives a 1-hour token to match its shorter maximum token lifetime, while the other brokers keep the existing lifetime.
- Fixed the web panel so the Custom MQTT settings panel spans the full width of the MQTT Servers card when Custom is selected.
- Updated the README and custom CLI guides for the Waev broker.
Breaking Changes
- None in this release.
If you are upgrading from before
2026.6.4, that release's changes still apply:get mqtt.statusswitched from per-broker fields top:/s:broker slots, and saved LetsMesh EU/US selections are cleared once on upgrade.Notes
eastmesh-auremains the recommended MQTT endpoint oncemqtt.iatais configured;meshmapperandwaevare available as global second brokers.- Select brokers from the Primary and Secondary dropdowns in the web panel, or toggle them from the CLI (
set mqtt.eastmesh-au on,set mqtt.meshmapper on,set mqtt.waev on, etc.). A maximum of two brokers can be enabled at once. waev(mqtt.waev.app) uses a 1-hour auth token that the firmware refreshes automatically, so no extra configuration is needed. Set your Waev account email withset mqtt.email <email>so Waev can link the observer to your account.- LetsMesh EU/US are retired but still selectable for legacy use.
- Custom MQTT is available for private broker deployments and uses username/password auth only. For TCP custom MQTT, use the broker host and port as before. For WSS custom MQTT, set the host and port, select WSS transport, and the firmware connects using
wss://host:port/mqtt. - WSS uses TLS encryption and validates against the ESP-IDF x509 root CA bundle.
- For maximum heap headroom on busy observers, use the web panel for setup and troubleshooting, then disable it with
set web off. - Browsers may still require accepting the self-signed certificate warning on first HTTPS access.
flood.max.unscopeddefaults to64; lower it only if you want to limit how far unscoped flood traffic repeats.flood.max.advertcontrols the hop limit for flooded advert packets.
Documentation
xjarid.github.io/MeshCore-EastMesh
Flashing
Assets
.bin- standard update image-merged.bin- full ESP32 image for flashing after erase
- Added the
v2026.6.4 # 2 variants 5 days ago · 2026-06-23 00:27 UTC
MeshCore EastMesh Observer
EastMesh
observer-eastmeshfirmware for MeshCore boards with secure MQTT uplink and optional local web management, based on MeshCore firmwarev1.16.0.This release replaces the retired LetsMesh brokers with the new MeshMapper broker and reworks broker selection into Primary and Secondary slots.
What's Changed
- Added the
meshmappercurated broker (wss://mqtt.meshmapper.net:443/mqtt) using WSS, verified TLS, and MeshCore JWT authentication with the broker host as the token audience. - Added
get mqtt.meshmapperandset mqtt.meshmapper on|offto toggle the MeshMapper broker. - Reworked the web-panel broker section into Primary MQTT and Secondary MQTT dropdowns that enforce the two-broker maximum and reveal the custom host, username, and password fields when Custom is selected.
- Retired the unmaintained LetsMesh EU/US brokers; they remain selectable but are marked retired, and saved selections are cleared once on upgrade so dead brokers stop retrying.
- Shortened
get mqtt.statusto report the two active broker slots asp:<broker>:<state>ands:<broker>:<state>(for examplep:meshmapper:up), keeping the reply within the LoRa text limit. - Custom MQTT remains username/password only; no JWT/web auth is used for custom brokers.
- Updated the README, web panel, and custom CLI guides for MeshMapper and the Primary/Secondary broker layout.
Breaking Changes
get mqtt.statusoutput changed from per-broker fields top:/s:broker slots; update anything that parses the previous format.- Saved LetsMesh EU/US broker selections are cleared once on upgrade; re-enable a broker such as MeshMapper if you need a second uplink.
Notes
eastmesh-auremains the recommended MQTT endpoint oncemqtt.iatais configured;meshmapperis available as a global second broker.- Select brokers from the Primary and Secondary dropdowns in the web panel, or toggle them from the CLI (
set mqtt.eastmesh-au on,set mqtt.meshmapper on, etc.). A maximum of two brokers can be enabled at once. - LetsMesh EU/US are retired but still selectable for legacy use.
- Custom MQTT is available for private broker deployments. For TCP custom MQTT, use the broker host and port as before. For WSS custom MQTT, set the host and port, select WSS transport, and the firmware connects using
wss://host:port/mqtt. - WSS uses TLS encryption and validates against the ESP-IDF x509 root CA bundle.
- For maximum heap headroom on busy observers, use the web panel for setup and troubleshooting, then disable it with
set web off. - Browsers may still require accepting the self-signed certificate warning on first HTTPS access.
flood.max.unscopeddefaults to64; lower it only if you want to limit how far unscoped flood traffic repeats.flood.max.advertcontrols the hop limit for flooded advert packets.
Documentation
xjarid.github.io/MeshCore-EastMesh
Flashing
Assets
.bin- standard update image-merged.bin- full ESP32 image for flashing after erase
- Added the
v2026.6.3 # 2 variants 18 days ago · 2026-06-09 10:19 UTC
MeshCore EastMesh Observer
EastMesh
observer-eastmeshfirmware for MeshCore boards with secure MQTT uplink and optional local web management, based on MeshCore firmwarev1.16.0.This release adds secure WebSocket transport support for custom MQTT brokers from the Observer web panel and CLI.
What's Changed
- Added TCP/WSS transport selection for custom MQTT brokers.
- Added web-panel Custom MQTT transport control for switching between TCP and WSS.
- Added CLI support for viewing and setting the custom MQTT transport.
- Kept custom MQTT authentication to username and password only; no JWT/web auth is used for custom brokers.
- Verified custom MQTT WSS connections with the ESP-IDF x509 root CA bundle.
- Fixed custom MQTT WSS to use the
/mqttWebSocket path. - Configured custom MQTT WSS using a full
wss://host:port/mqttURI so ESP-MQTT handles the WebSocket connection consistently. - Updated
get mqtt.statusto show the custom MQTT transport and state, for examplecustom:wss:up.
Breaking Changes
None.
Notes
eastmesh-auremains the recommended MQTT endpoint oncemqtt.iatais configured.- Custom MQTT is available for private broker deployments.
- For TCP custom MQTT, use the broker host and port as before.
- For WSS custom MQTT, set the host and port, select WSS transport, and the firmware will connect using
wss://host:port/mqtt. - WSS uses TLS encryption and validates against the ESP-IDF x509 root CA bundle.
- For maximum heap headroom on busy observers, use the web panel for setup and troubleshooting, then disable it with
set web off. - Browsers may still require accepting the self-signed certificate warning on first HTTPS access.
flood.max.unscopeddefaults to64; lower it only if you want to limit how far unscoped flood traffic repeats.flood.max.advertcontrols the hop limit for flooded advert packets.
Documentation
xjarid.github.io/MeshCore-EastMesh
Flashing
Assets
.bin- standard update image-merged.bin- full ESP32 image for flashing after erase
Device compatibility (1)
| Device | MCU | Radio | Status | Notes |
|---|---|---|---|---|
| Heltec V4 | esp32-s3 | Semtech SX1262 | ✓ Supported |