In large or densely populated mesh networks, repeaters quickly hit their limits: too many flood adverts, interference and an exhausted airtime budget (duty cycle) lead to collisions and lost messages. This is exactly where MeshCore-Evo comes in – a community fork of the official MeshCore firmware that bundles selected improvements that haven't been adopted upstream yet.
Note: MeshCore-Evo is an unofficial community fork by the developer mattzzw and is not official MeshCore firmware. Use it at your own risk.
What is MeshCore-Evo?
MeshCore-Evo describes itself as a "friendly fork" of the MeshCore project. Its goal is to provide repeater firmware with a few pending upstream improvements – i.e. pull requests (PRs) that haven't been merged into the official repository yet, or that may never be merged for various reasons. The fork is MIT-licensed and is always based on an official MeshCore version (currently the 1.15.0 development branch).
The focus is clearly on repeaters in large or dense networks. For ordinary companion clients the fork is less relevant – in MeshCore these don't forward packets anyway.
What MeshCore-Evo improves
The focus is on typical problems of large networks:
- Make flood adverts controllable: instead of forwarding every advert flood unchecked, the share of forwarded flood adverts can be metered – noticeably relieving dense networks.
- Refine
denyf *: a repeater that rejects everything viadenyf *can still allow paths for direct messages. - Detect interference in hardware: the radio chip's Channel Activity Detection (CAD) detects interference more reliably.
Current version: v1.15.0-evo_0.1.20 (14 May 2026)
The latest version is based on the official MeshCore 1.15.0 dev branch (as of 14 May 2026) and adds the following pull requests (PRs) that haven't been merged upstream yet:
- PR2553 – Limit flood adverts:
set flood.advert.base 0...1controls the forwarding of flood advert packets (0= no forwarding,0.308= default,1= forward all). - PR1810 – Direct messages despite
denyf *: allows direct message paths even whendenyf *is set. In this version it is modified so that flood adverts are not blocked, onlyPAYLOAD_TYPE_GRP_TXTandPAYLOAD_TYPE_GRP_DATA(group text and group data). - PR1727 (new in this version) – Hardware CAD: hardware-side Channel Activity Detection for interference checking, enabled with
set int.thresh 1.
- Lockout voltage lowered from 3.3 V to 0 V for the RAK 4631, Xiao nRF and T114 variants.
- Flood adverts disabled by default (
flood.advert.interval= 0). - New: LoRa coding rate
LORA_CRset to 8 by default (inplatformio.ini).
⚠️ Important after flashing: Check thatradio.rxgainis on andflood.advert.baseis set to0.308.
The two preceding versions were v1.15.0-evo_0.1.19 (24 April 2026) and v1.14.1-evo_0.1.18 (5 April 2026).
Versioning and release cadence
Versions use a two-part scheme: the underlying MeshCore version plus an evo suffix, e.g. v1.15.0-evo_0.1.20. Since late February 2026, roughly a dozen releases have appeared, each quickly following new MeshCore versions (1.13.0 → 1.14.x → 1.15.0).
Who should take a look?
Above all, operators of repeaters in dense or high-traffic networks struggling with advert floods, interference or duty cycle limits. If you run a single repeater in a quiet area, the official firmware is usually perfectly fine.
Since this is an unofficial fork: read the release notes carefully, check the settings after flashing, and coordinate with your community when in doubt.
Sources
- Repository: github.com/mattzzw/MeshCore-Evo
- Releases & changelogs: github.com/mattzzw/MeshCore-Evo/releases