MeshCore V1.18.0.mups2 is out: Better Tools For Finding Out Why Packets Get Lost

I have published mups18-2 (MeshCore v1.18.0.mups2), the second release of my custom MeshCore firmware based on IoTThinks PowerSaving-v18. It uses the same base and the same pull requests as mups18-1. The changes are mostly about seeing what a repeater actually does with the radio channel.

See why receiving fails.

“get rx.errors” on a repeater shows receive errors by cause: correctly received frames, CRC errors split into payload and header errors, and everything else. “get rx.errors snr“, “get rx.errors rssi” and “get rx.errors len” give histograms, and “get rx.errors last” lists the latest broken frames with age, RSSI, SNR, length and first bytes.

See how often the channel is busy.

“get cad” now also counts how often a send attempt found the channel busy and had to wait, and how often the repeater transmitted anyway after the maximum wait. I also fixed a timer in the channel check: an old busy episode could make the next packet go out immediately.

Smaller things:

  • Trailing blanks in CLI commands are ignored on repeaters, room servers and sensors, so e.g. “get txdelay ” works. Passwords are left exactly as typed.
  • The packet filter’s filter age now also drops group texts stamped too far in the future, taken over from Dutch-MeshCore. It stays off by default and in dry-run mode.
  • The base moved to the PowerSaving-v18 state of 2026-11-04. New in the file list: Xiao S3 WIO as repeater and companion.

Changed defaults (new installs only; existing devices keep their settings):

“advert.interval” is now 238 minutes instead of 240,
“agc.reset.interval” is 0 (the official default) instead of 12 s,
and the filter’s hop limit for REQ, RESPONSE and ANON_REQ is 5 instead of 6.

As always: use at your own risk, make a backup first, and back up the device’s private key. Without it a device gets a new identity after a full erase or a change of firmware.

Download and details: https://github.com/m0urs/MeshCore/releases/latest

Run the MeshCore web flasher locally, with your own firmware

I put together a small tool that runs the MeshCore web flasher (flasher.meshcore.io) and the Repeater Setup page on your own computer. After the first setup it also works offline.

What it does:

  • Offers firmware from one folder on your disk: your own builds, the official releases and any custom firmware. The folder structure doesn’t matter, only the file names do.
  • Labels the drop-down entries so builds are easy to tell apart (e.g. MUPS v1.18.0.mups1, MUPS-dev …, Original v1.18.0-81dbae5).
  • Includes the Repeater Setup page, and the serial console’s clock sync sends a valid time instead of failing.
  • Needs only Python 3. Runs on Windows, Linux and WSL, and git is optional.
  • Adding new firmware is a copy plus one refresh command.

Download and details: https://github.com/m0urs/meshcore-local-flasher

Tested on native Windows and on Linux (WSL) with Chrome. Not yet tested: erase and bootloader update on real nRF52 devices. Feedback and bug reports are welcome.

mups18: A New Custom MeshCore Firmware Based on v1.18.0

I have published a new release of my custom MeshCore firmware, mups18-1 (v1.18.0.mups1). It builds on the official MeshCore v1.18.0 and the IoTThinks PowerSaving-v18 branch, and adds a few pull requests that have not made it into the official firmware yet, plus defaults tuned for our network.

The most important points

  • Power saving, now also on companions. The receiver sleeps in short cycles, so battery and solar nodes last noticeably longer. New in this line: powersaving on|off on companions (on by default).
  • Repeated sending for direct messages (PR #2670). A node listens whether the next hop forwarded its packet and, if not, sends it again (up to three times by default). Direct messages and their acknowledgements arrive much more reliably. The more nodes on a path run this firmware, the bigger the effect. It stays compatible with the official firmware.
  • Defaults for our network. EU profile (869.618 MHz, BW 62.5, SF 8, CR 8), 10 % duty cycle and the recommended repeater settings are preset for new installs. Hardware CAD before transmitting is on by default on companions as well as repeaters.
  • Optional repeater features, off by default: a packet filter (for example to not forward channels that have nothing to do with your region) and an airtime reserve for scoped floods.
  • Included pull requests: #1349, #2834, #3260, #3536 and #2586, plus a partial port of #2670. The full list, with all commands, is in the documentation (MUPS18.md).
  • Updating from mups17: your stored settings are kept. WiFi credentials of WiFi companions have to be set again (set wifi.ssid, set wifi.pwd, then reboot), because v1.18.0 replaces my own commands with the official ones. Defaults only apply to new installs.

Supported devices

  • Repeater: Heltec V3, RAK4631, SenseCAP Solar P1
  • Companion: Heltec V3 (Bluetooth or WiFi), Seeed T1000-E, Seeed Wio Tracker L1, LilyGo T-Echo
  • Room server: Heltec V3

If you need another device, get in touch.

Download and documentation

RTM Tasks: Remember The Milk inside Betterbird and Thunderbird

I have used Remember The Milk (RTM) for years to keep track of my tasks, and I read my mail in Betterbird. The two never fitted together well. RTM’s CalDAV interface turns tasks into calendar entries, which loses most of what makes RTM useful: smart lists, tags, Smart Add and the way tasks are sorted and grouped. So I built an add-on that talks to RTM directly.

RTM Tasks shows and edits your RTM tasks in their own tab in Betterbird and Thunderbird. It uses the RTM REST API, so it works like RTM itself.

What it does

  • Views for overdue, today, next 7 days, no date and all tasks, plus your lists, smart lists and tags. Smart lists are evaluated by RTM itself, so they always behave the same as on the web.
  • Grouping and sorting like in RTM: by default by priority and name, grouped by due date. The order can be reversed.
  • A detail pane for everything you would want to change: name, priority, list, location, start and due date, tags, link and notes. You can also complete, postpone, delete and undo.
  • Smart Add for new tasks, for example Call Anna ^tomorrow !1 #Private.
  • Create a task from a mail, using a button in the message view or the right-click menu. The task gets a link back to the mail, and you can attach the mail text as a note.
  • Favorites, a start view, a collapsible navigation and a button in the left toolbar with a counter for overdue and due-today tasks, or for a smart list of your choice.
  • Incremental sync every five minutes and a local cache.
  • English and German user interface.

Setup

  1. Request a free API key and shared secret from RTM at rememberthemilk.com/services/api/keys.rtm.
  2. Download the signed .xpi from the releases page and install it from file in the Add-ons Manager.
  3. Open the add-on’s settings, enter your key and secret, connect and grant access in the browser.

Good to know

  • Your API key, shared secret and token are stored unencrypted in the local Betterbird profile. The add-on talks only to api.rememberthemilk.com, and there is no telemetry.
  • RTM allows about one request per second, so the add-on throttles itself. Large changes can take a moment.
  • It is not listed on the official add-ons site, which is why you install it from the file.
  • This product uses the Remember The Milk API but is not endorsed or certified by Remember The Milk.

Download and source code

Releases and source code (MIT license) are on GitLab: https://gitlab.com/m0urs/rtm-tasks

If you find a bug or have an idea, please open an issue there.

This extension supersedes the old “Send Mail to RTM” extension as that functionality is also included here.

(more…)

Thread View: a Gmail-style conversation view for Thunderbird and Betterbird

Betterbird and Thunderbird show threads as a tree in the message list. That works, but it’s not always pleasant to read a long discussion that way. So I built a small add-on called Thread View. It shows all messages of a conversation as cards in a tab of their own, newest on top, much like the conversation view in Gmail.

What it does

  • Click Thread View in the message header (or press Alt+T). The whole conversation opens in a tab and scrolls to the message you came from.
  • The message you opened and all unread messages are expanded, the others are collapsed to one line. Older, already read messages are folded into “N more messages”.
  • Quoted text is hidden by default and can be shown per message or for the whole thread.
  • Every card has icons for reply, reply all, forward, delete, and “open this message in a normal tab”.
  • Attachments can be opened with a click or saved with the download icon.
  • Archive all and Delete all act on the entire thread.
  • Keyboard: Esc closes the tab, j/k move between cards, o expands or collapses a card.
  • The interface is available in English and German. In German the button is called “Mailverlauf”.

Privacy

The add-on makes no network requests. It only reads the messages of the thread you open, and remote content in HTML mails stays blocked. The source code is MIT-licensed.

Requirements

Betterbird or Thunderbird 128 or newer. I develop and test it with Betterbird 153.5.0.

Download and install

Get the latest .xpi from the releases page:
👉 https://gitlab.com/m0urs/thread-view/-/releases

In Betterbird, open the menu → Add-ons and Themes → gear icon → “Install Add-on From File…” and pick the downloaded file.

Known limits

Thread detection relies on the References/In-Reply-To headers and the subject line. Old messages with a changed subject and no references can be missing, and the Thread View button is sometimes enabled for a message that is not part of a thread, or greyed out although a thread exists. If you find a case that doesn’t work, please open an issue in the repository: https://gitlab.com/m0urs/thread-view

(more…)

Remember The Milk-Plugin for Betterbird / Thunderbird

Deprecated: This add-on is now part of : RTM Tasks: Remember The Milk inside Betterbird and Thunderbird

I just created an extension for Betterbird (and Thunderbird 115 or newer) that creates a task in Remember The Milk from an email in two clicks, similar to the Remember The Milk add-on for Gmail.

Features

“RTM” button in the opened message and a context menu entry in the message list (also works with several selected messages)

Input dialog with:

  • task name (pre-filled with the subject)
  • priority
  • list (the last used list is remembered)
  • location
  • start date and due date (free text such as “tomorrow”, “friday”, “5pm”; parsing is done by Remember The Milk)
  • tags (comma separated)
  • your own note
  • option to attach the email content (sender, date, message ID, text) as a note

Note: the user interface of the extension is currently in German.

You can download it from Gitlab:

https://gitlab.com/m0urs/betterbird-rtm-task

MeshCore-Informationen

Da ich mich in den letzten Monaten doch recht intensiv mit dem Thema MeshCore beschäftigt habe, ist mittlerweile eine relativ umfangreiche Sammlung an Informationen entstanden, die ich anderen Interessierten nicht vorenthalten möchte.

Die Startseite findet man unter

https://urspringer.de/meshcore

Neben einer Linksammlung, in der ich Links zu anderen MeshCore-relevanten Themen zusammengestellt habe, möchte ich noch die folgenden Dokumente hervorheben:

Meshcore oder Meshtastic?

Seit ein paar Tagen fahre ich zweigleisig.

Ich habe nun sowohl einige Meshtastic– als auch einige Meshcore-Geräte am Start. Noch bin ich mir nicht sicher, wer das Rennen machen wird.

Allerdings ist mein Hauptgerät, der SenseCAP T1000-E, nun erst einmal auf Meshcore geflashed. Mein derzeitiger Eindruck ist, dass Meshcore für eine Notfallkommunikation stabiler läuft.

Allerdings bekommt auch Meshcore so langsam Probleme mit der Netzauslastung. Daran wird zwar gerade gearbeitet (durch das Einführen von “Regions” auf den Repeatern und dem zukünftigen “Zwang” bei Nachrichten einen Scope mitzugeben (also z.B. “#rhein-main”), damit die Nachrichten nicht grundsätzlich durch ganz Deutschland bzw. in angrenzende Länder verteilt werden. Aus meiner Sicht ist das auch nicht nötig, es würde mir reichen eine stabile Kommunikation im Radius von z.B. 50 km zu haben.

Man muss abwarten, ob man damit die Probleme in den Griff bekommt … Es bleibt spannend!

Weiterführende Links:

Mesh Hessen
LocalMesh (Meshcore)
reewale.net (Meshcore)

Mein Kontakt-QR-Code für Meshcore (Mobiler/Portabler Knoten):

Mein Kontakt-QR-Code für Meshcore (Fester Knoten zuhause):