Releases: dobrevit/RetiMesh_Node
Release list
v0.0.6
Commits since v0.0.5
- docs: document the branch and pull-request workflow (c661e74)
- Merge pull request #11 from dobrevit/docs/branch-and-pr-workflow (c2962cf)
- feat: support the LilyGO T-Beam (ESP32, AXP192/AXP2101 PMU, GPS, no SD) (10cf96b)
- fix: drive the T-Beam radio from VSPI, not the flash bus (b9618cd)
- fix: draw the QR page instead of falling through to the status page (0e2a477)
- Merge pull request #12 from dobrevit/fix/display-page-dispatch (fd0d269)
- Merge pull request #13 from dobrevit/feat/tbeam-board-support (8574cd6)
- feat: read the GNSS receiver on the T-Beam and take the clock from it (0752b56)
- fix: address the review on the GNSS branch (ff82897)
- Merge pull request #14 from dobrevit/feat/gps (7aa528f)
- feat: derive the transmit budget from the band the channel sits in (dfb79da)
- fix: address the review on the duty-cycle branch (349cb82)
- Merge pull request #15 from dobrevit/feat/duty-cycle-from-band (d988bc9)
- fix: charge the cell on terms we set, and say when it is happening (e08c71a)
- feat: redesign the display pages around labelled readings (55f0600)
- fix: address the review on the display branch (2a44cff)
- Merge pull request #16 from dobrevit/feat/display-status-icons (0c54cd5)
RetiMesh Node 0.0.6
🚀 Features
- Feat: Display status icons (#16) @mclueppers
- feat: derive the transmit budget from the band the channel sits in (#15) @mclueppers
- feat: read the GNSS receiver on the T-Beam and take the clock from it (#14) @mclueppers
- T-Beam v1.x board support (#13) @mclueppers
🐛 Fixes
- fix: draw the QR page instead of falling through to the status page (#12) @mclueppers
📻 Radio / protocol
- feat: derive the transmit budget from the band the channel sits in (#15) @mclueppers
- T-Beam v1.x board support (#13) @mclueppers
📖 Documentation
- Feat: Display status icons (#16) @mclueppers
- feat: derive the transmit budget from the band the channel sits in (#15) @mclueppers
- feat: read the GNSS receiver on the T-Beam and take the clock from it (#14) @mclueppers
- T-Beam v1.x board support (#13) @mclueppers
- docs: document the branch and pull-request workflow (#11) @mclueppers
🧰 CI & tooling
- T-Beam v1.x board support (#13) @mclueppers
Install
- Browser: open the web flasher, pick your board, click Install.
- Terminal:
pipx run --spec "git+https://github.com/dobrevit/RetiMesh_Node#subdirectory=tools/retimesh-flash" retimesh-flash install - Manual: flash
retimesh-node-0.0.6-<board>-merged.binat0x0with esptool; per-partition files and offsets are inrelease.json.
SHA-256 checksums for every asset are in sha256sums.txt.
v0.0.5
RetiMesh Node v0.0.5
The node now keeps its Reticulum state across restarts, respects an hourly
transmit budget, and shares the channel the way an RNode does.
🚀 Features
- Reticulum storage on the microSD card. When a card is mounted at boot,
the path table, known destinations, announce cache and packet hashlist live
on it (/sd/rns) instead of the ~900 KB flash partition shared with the web
app. The card is then reserved: it cannot be formatted while in use, and
pulling it is reported rather than ignored. Turn it off with Reticulum store
on SD on the settings page. - Node QR codes.
GET /api/qr?what=wifi|portal|addressreturns an SVG
generated on the device, and the display gains a QR page — point a camera at
the node to join its Wi-Fi instead of typing the password. The Wi-Fi code
needs the admin credentials whenever the access point is protected. - Hourly duty-cycle limiter.
duty_cycle_pct(default 1,0= off) caps
how much of each hour the node may transmit for — 1 % is the ETSI allowance
for 868.0–868.6 MHz, where the default channel sits. When the budget is
spent, packets wait in the queue instead of being dropped; the status page
and display show how much is left and when it frees up.
📻 Radio / protocol
- RNode-compatible CSMA. Wait for a clear channel, hold it clear for a DIFS
of two slots, then count down a contention window drawn from one of four
bands sized by recent channel use, restarting whenever a frame arrives. A slot
is 12 symbol times clamped to 24–100 ms (25 ms at SF8/BW125). Sharing a
channel with real RNodes is the point, so the sizing follows theirs. - Airtime accounting using the Semtech time-on-air formula, reported through
/api/status.airtime(short- and long-term channel use, budget used, CSMA
slot and band).
🐛 Fixes
- Reticulum state no longer survives only until the next reboot. microStore
deleted every record whose timestamp was "in the future", and on a device
whose clock restarts at zero that is everything the previous run wrote — the
path table, known destinations and hashlist were wiped on every restart.
Fixed in our fork; the firmware now builds against it. - The path list on the status page was always empty. Paths had moved into
microStore's table; the firmware was still reading the legacy in-memory one. - The DevKitC-1 release image put the web app inside the app partition.
Packaging read the wrong partition table for boards that inherit one from
their board definition, soesp32s3-qspiimages from earlier releases boot
without a web UI. Offsets now come from the partition table that was built. - The SD store could silently fall back to internal flash even with a
healthy card, because the boot mount retried through a probe that
re-initialises the card. Retries are plain mounts now, over a longer window. - A stack overflow could reboot the node: the SD task idled with under 1 KB
of its 4 KB stack. It has 8 KB, and the heartbeat reports every task's
headroom. - Stored paths whose interface no longer exists are dropped instead of
lingering unroutable; the bulletin-board probe no longer logs an error on
every status poll.
📖 Documentation
- Duty cycle and channel access explained in
docs/configuration.md; the QR
endpoint,airtimeandstorageobjects indocs/api.md.
⚠️ Upgrading
Nothing to do — settings and the node identity are preserved. If you flashed an
esp32s3-qspi image from v0.0.4 or earlier, reflash: the filesystem went to the
wrong offset.
Commits since v0.0.4
- Use PSRAM: 128-byte malloc threshold and ring storage in external RAM (10d2141)
- Wi-Fi station mode: join a LAN alongside the access point (abd463e)
- Power profiles, battery gauge, HIL harness (790674a)
- Bench env against the local microReticulum/microStore fix branches (f1ad68c)
- Document the t3s3-upstream environment (b6b62a4)
- Build against the forked microReticulum/microStore by default (088f3d9)
- Give the SD card task an 8 KB stack; report per-task stack headroom (dd57809)
- Packaging: take partition offsets from the built partition table (805848b)
- Keep the Reticulum store on the SD card, and make it survive reboots (cad5b09)
- Node QR codes on the portal and the display (d778e28)
- Drop stored paths whose interface no longer exists (33a5296)
- Airtime accounting, an hourly duty-cycle limiter, and RNode's CSMA (de047fd)
- Fix the SD store falling back to internal flash at boot (5ab00cd)
Install
- Browser: open the web flasher, pick your board, click Install.
- Terminal:
pipx run --spec "git+https://github.com/dobrevit/RetiMesh_Node#subdirectory=tools/retimesh-flash" retimesh-flash install - Manual: flash
retimesh-node-0.0.5-<board>-merged.binat0x0with esptool; per-partition files and offsets are inrelease.json.
SHA-256 checksums for every asset are in sha256sums.txt.
v0.0.4
RetiMesh Node 0.0.4
- Zero-config peering (AutoInterface): the node joins Reticulum's IPv6 multicast discovery on its Wi-Fi, so Sideband/RNS clients on the AP find it without entering an IP or port; each peer becomes its own Transport interface.
- mDNS: the portal and RNS port are reachable as retimesh.local.
- Sideband hand-off: LXMF entries in the neighbour list link straight into Sideband to message that peer.
- SD card support: hot-plug detection, capacity/partial-volume reporting, admin-protected format, event log on the card with download from the settings page.
- OLED transport page, announce limits, settings export/import, heap watermark (the "0.1" milestone items).
- Host-native unit tests (HDLC framing) and a CI test job.
- Quieter console: explicit / and favicon routes, no board.json probe, named interface deregistration.
- Docs: full user documentation set — getting started, architecture, configuration, Reticulum integration, hardware, HTTP API, troubleshooting, development, and examples (rnsd/RNode configs, announce watcher, beacon listener, remote NomadNet peer, API curl); Sideband ratchet-cache note.
- Release tooling: draft notes now include the commit list since the previous tag.
Install
- Browser: open the web flasher, pick your board, click Install.
- Terminal:
pipx run --spec "git+https://github.com/dobrevit/RetiMesh_Node#subdirectory=tools/retimesh-flash" retimesh-flash install - Manual: flash
retimesh-node-0.0.4-<board>-merged.binat0x0with esptool; per-partition files and offsets are inrelease.json.
SHA-256 checksums for every asset are in sha256sums.txt.
v0.0.3
RetiMesh Node 0.0.3
Commits since v0.0.2
- Reticulum announces and identity; announce-based neighbour discovery (ac378d5)
- BOOT button navigates the OLED (c8b0d64)
- transport: microReticulum spike — core starts with the node identity (3c88f32)
- Display sleeps after 60 s without a button press (2ef4610)
- transport: LoRa and per-client TCP interfaces on microReticulum Transport (e5cfc21)
- README: list microReticulum and friends in the license notice (0245d17)
- transport: drive Transport::jobs() every second; DEBUG logging compiled in (dc0d6c8)
Install
- Browser: open the web flasher, pick your board, click Install.
- Terminal:
pipx run --spec "git+https://github.com/dobrevit/RetiMesh_Node#subdirectory=tools/retimesh-flash" retimesh-flash install - Manual: flash
retimesh-node-0.0.3-<board>-merged.binat0x0with esptool; per-partition files and offsets are inrelease.json.
SHA-256 checksums for every asset are in sha256sums.txt.
v0.0.2
RetiMesh Node 0.0.2
- No changes
Install
- Browser: open the web flasher, pick your board, click Install.
- Terminal:
pipx run --spec "git+https://github.com/dobrevit/RetiMesh_Node#subdirectory=tools/retimesh-flash" retimesh-flash install - Manual: flash
retimesh-node-0.0.2-<board>-merged.binat0x0with esptool; per-partition files and offsets are inrelease.json.
SHA-256 checksums for every asset are in sha256sums.txt.
v0.0.1
RetiMesh Node 0.0.1
- No changes
Install
- Browser: open the web flasher, pick your board, click Install.
- Terminal:
pipx run --spec "git+https://github.com/dobrevit/RetiMesh_Node#subdirectory=tools/retimesh-flash" retimesh-flash install - Manual: flash
retimesh-node-0.0.1-<board>-merged.binat0x0with esptool; per-partition files and offsets are inrelease.json.
SHA-256 checksums for every asset are in sha256sums.txt.
Warning
Release Drafter could not find a previous published release for dobrevit/RetiMesh_Node. This draft was created without a comparison baseline.
Important
Treat this draft as a manual starting point.
Review the proposed version, tag, and notes before publishing.
If you did not expect this to happen, open an issue.