e2d07d8 added the four missing boards to the support matrix, which was the right
call -- the docs were listing five of ten. Three details in it do not match what
we actually publish.
The T-Lora Pager's display is listed as AMOLED. It is a 2.33" IPS ST7796U LCD at
480x222 (TLORA_PAGER_PORT.md's hardware table, and the ST7796LCDDisplay driver
it boots). The AMOLED is the T-Display P4, one row down.
The Pager, the Heltec V4-R8 and the T-Display P4 are all marked Stable. All
three install from latest-beta on the site and all three carry data-dl-betaonly
there; only the T-Deck and the Heltec V4 + TFT are on the stable feed. Marking a
board Stable in DEVICES.md while the install button pulls a beta build tells a
user the wrong thing about what they are getting. All three now say
"Beta (new in beta_45)", which is the release the three of them debuted in.
Also adds the per-board feature note the Pager was missing: the two radio SKUs
and what happens if you flash the wrong one, and the microSD behaviour
(detected-but-unreadable cards offer a retry; formatting stays a host-side job).
The V4-R8, T-Display P4 and Attaky rows still have no feature note. Left for
someone who has the hardware.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
There was no way for anyone but me to put a self-built wadamesh on a Tanmatsu.
The repo carried tanmatsu/build.sh and nothing that could install what it built:
the AppFS writer lived only on my machine, so a fresh clone produced a binary and
no path onto the device. Anyone trying would land on `idf.py flash`, which
replaces the launcher OS.
tanmatsu/tools/ now carries the loop, generalised out of my local copy:
fetch-appfs.sh one-time, clones badge.team's esp32-component-appfs
dump-pristine.sh one-time, dumps YOUR device's AppFS partition as the baseline
tan_deploy.py builds the write-images and works out the changed sectors
tan_flash.sh detects the P4, writes app then metadata, verifies the commit
sermon.py non-resetting serial monitor
Three things had to change before this could work for anybody else. Absolute
paths to my checkout are gone. The hardcoded MAC of MY Tanmatsu is replaced by
detecting whichever port answers as an ESP32-P4, which is also more robust since
the board exposes two ports whose names move between replugs. And tan_flash.sh no
longer invokes tan_deploy.py twice: the second run would have read the metadata
the first had just written and bumped the version an extra time.
appfs.py is deliberately NOT vendored. It is badge.team's and the copy in
circulation has no licence header, so it is cloned instead. dev_appfs.bin is not
committed either: it is 8 MB and device-specific, and using someone else's dump
risks overwriting apps you have, since the deploy writes only what differs from
it. Both are gitignored.
Written up in TANMATSU_SIDELOAD.md and as a page on the site, linked from the
user guide, the homepage resources section and the README. The guide leads with
the model rather than the commands, because the failure that matters is not a
typo, it is not knowing that this board runs wadamesh as an app under a launcher
and that flashing it normally destroys that launcher.
Not re-verified on hardware: the tooling is the same loop that has been deploying
to my Tanmatsu, with the paths and device detection generalised. The first person
to run it on another machine is the real test.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
oumike's gap list. Three of the four are closed here.
"Save update bin to SD" was gated on a list of board names that had grown to
three entries and still left the T-Lora Pager out, despite it having both a card
and OTA. It is now gated on the capability that actually decides it, CAP_SD &&
CAP_OTA (plus the ESP32 / companion conditions it already carried), which is what
device_caps.h exists for: a new board with a card no longer has to remember to
add itself to a list.
Both halves were gated separately - the helper block and the button that uses it
- so widening only the button broke the pager build on undefined symbols. They
are now character-for-character identical, which is the point: they cannot drift
apart again.
Docs were further behind than the issue said. DEVICES.md listed five boards and
we ship ten: the T-Lora Pager, Heltec V4-R8, T-Display P4 and Attaky Mesh Series
were all missing from the support matrix, and the Pager was still sitting under
"Requested boards" with an open issue link. README listed five envs and claimed
the repo covers "the two boards". Both now match what release.sh actually builds.
Still open from #289: the static deploy/flasher/ page carries only two manifests.
Left alone for now - flasher.wadamesh.com redirects to the site flasher, which
generates its manifests from gen-flasher-meta.py and already covers every board,
so that directory may simply be dead. Worth confirming before adding files to it.
All 8 S3 boards build.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
User-facing key map and mode tour in the TLORA_PAGER_SHORTCUTS.md mold:
inputs, the close-what-you-see Back rule, function-key table with hold
actions, map pan, editing, lock screen, apps, and a user-terms summary
of the beta_66-branch navigation improvements. Linked from the README
board list and the DEVICES.md feature note.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
One page with every supported board, its install path, release channel
and maturity, plus the open hardware requests and the channel model.
The README board list now covers all five targets and links there.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
wadamesh now builds its MeshCore core from the ALLFATHER-BV/meshcomod monorepo
(the same repo as the non-touch firmware) via a lean, source-only core-* tag,
instead of the separate meshcomod-core fork. The 8 touch-app files this repo
vendors are excluded from the lib with -DMC_VENDORED_TOUCH_APP. Build is
byte-identical (Heltec flash 2625757, unchanged). One core, one repo.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Static lockup SVGs (no <style>/animation, which GitHub's README sanitizer strips)
in light + dark variants via <picture>. Also corrects the core-fork link to
ALLFATHER-BV/meshcomod-core (was the pre-rename ALLFATHER-BV/MeshCore).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- WADAMESH_SPLIT_PLAN.md: status planning -> executed (both boards green from the
published fork; T-Deck flash-verified on hardware); record what's done + the
remaining non-blocking phases (minimize fork, re-home release pipeline).
- README: drop the "early scaffold" note; add Architecture (core via lib_deps,
not vendored) + Build/flash instructions for both envs.
- NOTICE: add the bundled/vendored deps (ed25519, AsyncElegantOTA, TFT_eSPI,
Adafruit GFX/ST7789, chsc6x).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Kaj Schittecat <kaj@schittecat.com>
Adopt copyleft for the touch UI so distributed builds and forks must stay open
(the Meshtastic model — concentrates community effort instead of fragmenting into
closed forks), per the project direction.
- LICENSE: MIT -> full GPL-3.0 text
- NOTICE: third-party attributions; preserves MeshCore's MIT notice (MIT is
GPL-compatible). The MeshCore *fork* wadamesh builds against stays MIT so its
Wi-Fi/BLE hooks remain upstreamable.
- CONTRIBUTING.md: inbound=outbound GPL, DCO sign-off, SPDX headers, one-topic
PRs, prefer libraries, don't regress shipping boards.
- README: license + contributing sections.
GPL-3.0 (not v2) chosen for firmware: anti-tivoization keeps it user-installable,
and it's the only GPL compatible with Apache-2.0 deps (NimBLE).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Kaj Schittecat <kaj@schittecat.com>
Security baseline from commit #1: .gitignore excludes CLAUDE.md and .claude/
(ops/infra notes + agent config) so they can never be committed. The touch
firmware source lands here incrementally as the split from meshcomod proceeds.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>