Skip to content

SMLunchen/mh_windowsclient

Repository files navigation

Meshhessen Client – Windows-Client fΓΌr Meshtastic-GerΓ€te (WPF Β· .NET 8)

Der Meshhessen Client ist ein kostenloser, nativer Windows-Client fΓΌr Meshtastic-GerΓ€te (WPF/.NET 8) fΓΌr Windows 10/11. Verbinde dein Meshtastic-GerΓ€t (LILYGO T-Beam, T-Deck, RAK4631, Heltec u.a.) per USB/Serial, TCP/WiFi oder Bluetooth mit deinem Windows-PC – vollstΓ€ndig offline-fΓ€hig, keine Cloud, keine Installation. Entwickelt von und fΓΌr die Meshhessen Community.

Windows .NET Status License Stars

English summary: Free Windows app for Meshtastic devices – offline map (OSM/OpenTopo), telemetry, traceroute, PKI decryption, USB/Serial/TCP/BLE support. No installation, no cloud. By the Meshhessen community (Hesse, Germany). β†’ English version below

πŸš€ Schnellstart

  1. Download: https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/runtime-desktop-8.0.23-windows-x64-installer
  2. Installer ausfΓΌhren
  3. Download: Neueste MeshhessenClient.exe aus den Releases herunterladen
  4. GerÀt anschließen: Meshtastic-Device per USB anstecken
  5. Starten: Doppelklick auf MeshhessenClient.exe – keine Installation nΓΆtig
  6. Verbinden: Verbindungstyp wΓ€hlen (Serial, TCP oder Bluetooth) β†’ β€žVerbinden" klicken
  7. Loslegen: 3–10 Sekunden warten bis KanΓ€le geladen sind, dann Nachrichten senden

Die App ist vollstΓ€ndig offline-fΓ€hig. Keine Cloud, keine Registrierung, keine Telemetrie zum Entwickler.

✨ Features

πŸ“¨ Nachrichten & Kommunikation

  • Nachrichten senden und empfangen (Broadcast & Direct Messages)
  • Multi-Channel – alle KanΓ€le deines GerΓ€ts automatisch geladen
  • Direktnachrichten (DMs) mit separatem Chat-Fenster im Tabbed-Layout
  • PKI-EntschlΓΌsselung – client-seitige EntschlΓΌsselung von PKI-verschlΓΌsselten DMs (X25519 + AES-256-CTR); Private Key wird automatisch vom verbundenen GerΓ€t geladen
  • Node-Public-Key-Datenbank – lokale CSV-Datei (node_keys.csv) zum Verwalten von Public Keys fΓΌr PKI-EntschlΓΌsselung
  • Tap-Back Reaktionen – auf Nachrichten mit Emoji reagieren (32 Emojis, wie Android-App)
    • Rechtsklick auf Nachricht β†’ Emoji-Picker
    • Reaktionen werden direkt an Sender/Kanal ΓΌbermittelt und angezeigt
    • Funktioniert in Kanal-Chat und DMs
  • Antwort-Funktion – auf einzelne Nachrichten antworten (Protokoll-Level)
    • Zitat-Block mit farblicher Hervorhebung der Originalnachricht
    • Funktioniert in Kanal-Chat und DMs
  • Nachrichten auswΓ€hlbar & kopierbar – Texte markieren, in Zwischenablage kopieren, Links anklicken
    • Rechtsklick auf beliebige Nachricht β†’ β€žNachricht kopieren" im KontextmenΓΌ
    • Kopiert immer die angeklickte Nachricht (nicht die zuletzt selektierte)
    • KontextmenΓΌ auch bei Nachrichten von unbekannten Sendern
  • 🚨 Alert Bell Support – Senden und Empfangen von Notrufen
    • 🚨 SOS-Button in Chat und DMs
    • Visuell: rote blinkende Umrandung + Notification-Bar mit β€žZur Karte springen"-Button

πŸ“Š Telemetrie & Statistik

  • Persistente Telemetrie-Datenbank – empfangene Paket- und GerΓ€tedaten werden lokal in einer SQLite-Datenbank gespeichert
  • Node-Statistik-Fenster – detaillierte Auswertung pro Node:
    • Tag/Nacht-Auswertung der EmpfangsqualitΓ€t
    • Zeitreihen-Graphen fΓΌr SNR, RSSI, Paketrate und GerΓ€tedaten (Batterie, Spannung)
  • LED-Indikatoren im Hauptfenster zeigen auf einen Blick den Status des verbundenen Nodes:
    • πŸ“Ά Signal – EmpfangsqualitΓ€t (SNR/RSSI-Trend)
    • πŸ‘₯ Nachbarn – Anzahl und StabilitΓ€t direkter Nachbar-Nodes
    • πŸ›€οΈ Pfad-StabilitΓ€t – StabilitΓ€t des Traceroute-Pfads
    • 🌐 Mesh-Health – Gesamtzustand des sichtbaren Meshes;
    • 🌀️ Wetter – fΓΌr Nodes mit Umweltsensor

πŸ—ΊοΈ Offline-Karte

  • Drei Kartentypen: OSM Standard, OSM Dark Mode, OpenTopoMap (topografisch)
  • Eigener Tile-Server – OSM-Policy verbietet Offline-Downloads, daher nutzen wir einen eigenen Server der das erlaubt
  • Offline-Tiles fΓΌr ganz Deutschland und angrenzende Gebiete
  • Node-Positionen als farbige Pins auf der Karte
  • Node-Pfade – GPS-PositionsverlΓ€ufe aufzeichnen und auf der Karte anzeigen
  • Wegpunkte (Waypoints) – empfangene Wegpunkte werden auf der Karte angezeigt; Wegpunkte per Karte-Rechtsklick erstellen und senden

πŸ“‘ Traceroute

  • Traceroute starten – direkt aus dem Node-KontextmenΓΌ (Nodes-Liste, Karte, Nachrichtenliste)
  • Eigenes Fenster pro Ziel-Node mit:
    • Hop-Tabelle: Node-Name, Entfernung, SNR (in dB), MQTT-Indikator (⚑ Blitz-Symbol)
    • Live-Status (Warten / Empfangen)
  • Karte: Route mit Linien plotten
    • Durchgezogene Linie wo Positionen bekannt
    • Gestrichelte Linie wo Positionen fehlen
    • Richtungspfeile auf Segmenten
    • Klick auf Segment β†’ SNR-Popup fΓΌr diesen Hop
    • Fallback auf eingestellte Kartenposition wenn eigene GPS fehlt
  • Mehrere Traceroutes gleichzeitig auf der Karte – jede bekommt eine eindeutige Farbe
  • Speichern & Laden – Traceroutes werden automatisch in traceroutes/ gespeichert (JSON)
    • Pfade unterschiedlicher Zeitpunkte vergleichen
    • Mehrere Dateien gleichzeitig laden
    • Historische Traceroutes direkt aus der Datenbank laden
  • Zeitreihenfilter – Traceroutes nach Zeitraum filtern (3d / 7d / 14d / 30d / 90d / Alle)
  • Deduplizierung – nur neueste Traceroute pro Node-Paar anzeigen (optional)
  • Karten-Legende – zeigt alle aktiven Traces mit Farbe und βœ•-Button zum Entfernen

πŸ”§ Node-Verwaltung

  • Knoten-Übersicht – alle Nodes im Mesh mit SNR, Batterie, Entfernung, Hop-Anzahl
  • Firmware-Version & Hardware-Modell – werden automatisch beim Verbinden abgefragt und im Node-Info-Fenster angezeigt
  • PKI-SchlΓΌssel-Indikator – πŸ”‘-Spalte zeigt, ob der Public Key des Nodes bekannt ist
  • Node-Farben – Nodes individuell einfΓ€rben (Karte + Listen)
  • Node-Notizen – Freitext-Notizen pro Node
  • Nodes anpinnen – Nodes in der Liste oben fixieren (unabhΓ€ngig von Sortierung)
  • Node-Konfiguration – Einstellungen des verbundenen GerΓ€ts anpassen
  • BT-PIN Γ€ndern – Bluetooth-PIN direkt aus dem Client setzen

βš™οΈ Verbindung & System

  • Multi-Verbindung – USB/Serial, TCP/WiFi und Bluetooth (BLE)
  • Auto-Reconnect – nach EinstellungsΓ€nderungen die einen Neustart erfordern
  • Update-Check – beim Start wird automatisch nach neuen Versionen gesucht; bei verfΓΌgbarem Update erscheint ein klickbarer Hinweis in der Statusleiste (offline-fΓ€hig: kein Fehler wenn kein Internet)
  • Multi-Sprache – Deutsch und Englisch (umschaltbar in Einstellungen)
  • Dark Mode & ModernWPF Fluent-Design
  • Automatisches Logging aller Nachrichten (logs/)
  • Debug-Tab mit Live-Log fΓΌrs Troubleshooting
  • Meshhessen-Schnellkonfiguration – One-Click fΓΌr Short Slow + EU868 + Meshhessen-Kanal

πŸ’¬ Die Meshhessen Community

Der Meshhessen Client ist ein Gemeinschaftsprojekt der Meshtastic-Community in Hessen. Unser regionales LoRa-Mesh wΓ€chst stetig – mach mit!

  • 🌐 Website: www.meshhessen.de
  • πŸ“‘ Netz: Wachsendes Mesh-Netzwerk in Hessen und Umgebung – Airtime ist kein All-you-can-eat β†’ Short Slow! ;)
  • 🀝 Mitmachen: Eigenen Node aufstellen, Reichweite erweitern, Community wachsen lassen

πŸ“Έ Screenshots

Offline-Karte mit Node-Positionen und Entfernungsanzeige: Meshhessen Client – Windows-App fΓΌr Meshtastic-GerΓ€te: Offline-Karte mit Node-Positionen (OSM)

Node-Übersicht mit SNR, Batterie und Hop-Anzahl: Meshhessen Client – Node-Übersicht mit SNR, RSSI, Batterie und Signal-LEDs

Nachrichtenansicht mit Kanal-Chat und Direktnachrichten: Meshhessen Client – Meshtastic Nachrichten, Kanal-Chat und Direktnachrichten (DM) unter Windows

Alert Bell / SOS-Notruf Anzeige: Meshhessen Client – Alert Bell SOS-Notruf Signalisierung fΓΌr Meshtastic-GerΓ€te unter Windows

Offline-Tile-Downloader fΓΌr Deutschland und Umgebung: Meshhessen Client – Offline-Karten-Tile-Downloader fΓΌr Meshtastic-GerΓ€te unter Windows (OSM, OpenTopoMap)

Kanal-Liste mit allen Meshtastic-KanΓ€len: Meshhessen Client – Meshtastic Kanal-Liste (Multi-Channel) unter Windows

Traceroute-Fenster mit Hop-Tabelle: Meshhessen Client – Traceroute fΓΌr Meshtastic-GerΓ€te: Hop-Tabelle, Entfernung und SNR unter Windows

Traceroute-Pfad auf der Karte: Meshhessen Client – Meshtastic Traceroute-Pfad auf Offline-Karte visualisiert

Node-Standort-Verlauf (GPS-Track) auf der Karte: Meshhessen Client – Meshtastic Node-Standort-Verlauf GPS-Track auf Karte

Telemetrie-LED-Ampel im Hauptfenster: Meshhessen Client – Meshtastic Telemetrie-LEDs fΓΌr Signal, Nachbarn, Mesh-Health und Wetter

Telemetrie-Zeitreihen-Graph (SNR, RSSI, Batterie): Meshhessen Client – Meshtastic Telemetrie-Graph SNR RSSI Batterie Zeitreihe OxyPlot

Node-Telemetrie-Statistik-Fenster: Meshhessen Client – Meshtastic Node-Telemetrie Tag/Nacht-Auswertung Statistik Windows Node-Telemetrie-Übersicht (Signal): Meshhessen Client – Meshtastic Node-Telemetrie-Übersicht: Signal-Analyse, Routing, Airtime und Nachbar-Statistik Airtime-Auswertung pro Node (TX/RX-Sendezeit, Kanalauslastung): Meshhessen Client – Meshtastic Airtime-Analyse: TX-Airtime, RX-Airtime und Kanalauslastung pro Node Nachbar-Analyse (direkte Mesh-Verbindungen und SNR-Trends): Meshhessen Client – Meshtastic Nachbar-Analyse: Direkte Verbindungen, SNR-Trends und Nachbar-StabilitΓ€t Batterie & Spannungs-Analyse (Tag/Nacht-Profil, Nachtabfall): Meshhessen Client – Meshtastic Batterie-Analyse: Spannungs-Verlauf, Tag/Nacht-Profil und Nachtabfall Routing-Statistik (Hop-Anzahl, Pfad-StabilitΓ€t, Pfadwechsel-Rate): Meshhessen Client – Meshtastic Routing-Statistik: Hop-Anzahl, Pfad-StabilitΓ€t und Pfadwechsel-Rate

https://github.com/SMLunchen/mh_windowsclient/blob/master/img/node-telemetry.png https://github.com/SMLunchen/mh_windowsclient/blob/master/img/node_airtime.png https://github.com/SMLunchen/mh_windowsclient/blob/master/img/node_neighbors.png https://github.com/SMLunchen/mh_windowsclient/blob/master/img/node_power.png https://github.com/SMLunchen/mh_windowsclient/blob/master/img/node_routing.png

⚠️ Bekannte EinschrÀnkungen

  • Keine persistente Message-History (Neustart = leere UI; Logs bleiben erhalten, beim Start geladene Nachrichten vom Node bleiben)
  • Getestet mit Firmware 2.x
  • T-Deck: Channels werden nicht immer in der Config-Sequenz mitgesendet (Retry-Workaround aktiv) – Das T-Deck ist fast schon mit sich selbst ΓΌberfordert, daher dauert dort alles etwas lΓ€nger…

πŸ—ΊοΈ Offline-Karte einrichten

Kartentypen: OSM Standard (hell), OSM Dark Mode, OpenTopoMap (topografisch) – wΓ€hlbar in Einstellungen.

⚠️ Wichtig: Bitte NICHT auf den offiziellen OSM Tile-Server zurΓΌckstellen – Offline-Downloads verstoßen gegen deren Policy. Wir nutzen einen eigenen Server, der das explizit erlaubt. Eigenen Tile-Server in den Einstellungen konfigurierbar.

Tiles herunterladen:

  1. Einstellungen ΓΆffnen β†’ Kartenquelle wΓ€hlen (OSM / OSM Dark / OpenTopo)
  2. β€žTiles herunterladen" klicken
  3. Bereich (Bounding Box) und Zoom-Level eingeben – z.B. Hessen: 49.3,7.7,51.7,10.2, Zoom 1-14
  4. Download starten
  5. Tiles werden unter maptiles/ gespeichert und sind dauerhaft offline verfΓΌgbar
  6. Tiles sind portabel – per USB ΓΌbertragbar

Karte nutzen:

  • Tab β€žπŸ—ΊοΈ Karte" ΓΆffnen
  • Rechtsklick auf Karte β†’ eigenen Standort setzen
  • Node-Pins erscheinen automatisch sobald GPS-Daten empfangen werden
  • Rechtsklick auf Node β†’ Farbe setzen, DM senden, Notiz bearbeiten, Traceroute starten

πŸ“ Nachrichten-Logs

Alle Nachrichten werden automatisch geloggt unter [EXE-Verzeichnis]/logs/:

  • Channel_0_Primary.log – KanalverlΓ€ufe
  • DM_DEADBEEF_Alice.log – Direktnachrichten

πŸ—οΈ Technischer Überblick

Komponente Technologie
UI WPF .NET 8, ModernWPF (Fluent)
Protokoll Meshtastic Protobuf ΓΌber Serial/TCP/BLE
Karte Mapsui 4.1 + lokale OSM-Tiles
Serialisierung Google.Protobuf, System.Text.Json
Verbindung Serial (0x94 0xC3 Framing), TCP/WiFi, Bluetooth Low Energy

Verbindungstypen:

Typ Transport Framing Besonderheiten
USB/Serial COM-Port, 115200 baud 4-Byte Header (0x94 0xC3 + LΓ€nge) Wakeup-Sequenz, Debug-Text interleaved
TCP/WiFi TCP-Socket 4-Byte Header (wie Serial) Hostname/IP + Port konfigurierbar
Bluetooth BLE GATT Characteristics Raw Protobuf (kein Framing) Direkte FromRadio/ToRadio Pakete

Verbindungssequenz:

Windows Client β†’ USB/Serial | TCP/WiFi | BLE β†’ Meshtastic Node β†’ LoRa β†’ Mesh
  1. Verbindung ΓΆffnen β†’ Wakeup-Sequenz senden (nur Serial/TCP) β†’ want_config_id senden
  2. my_info, node_info (Γ—N), channel (Γ—8), config, config_complete_id empfangen
  3. Falls Channels fehlen (z.B. T-Deck): Retry-Mechanismus mit bis zu 3 Runden per GetChannelRequest
  4. Bereit fΓΌr MeshPackets

Serielles Protokoll (Robustheit):

  • Max. PaketlΓ€nge 512 Bytes (per Meshtastic-Spezifikation), darΓΌber = korrupt β†’ false Start ΓΌberspringen
  • Schutz vor partiellem Header-Verlust (letztes Byte 0x94 wird bei Buffer-Clear bewahrt)
  • Stale-Packet-Timeout: unvollstΓ€ndige Pakete werden nach 5s verworfen
  • Device-Debug-Text (ANSI-Codes) wird erkannt, ANSI-Codes gestrippt, separat geloggt
  • Auto-Recovery: sendet Wakeup + want_config_id wenn >60s kein Protobuf-Paket empfangen wurde

Fehler-Erkennung (GerΓ€te-Logs):

Code Beschreibung
TxWatchdog Software-Bug beim LoRa-Senden
NoRadio Kein LoRa-Radio gefunden
TransmitFailed Radio-Sendehardware-Fehler
Brownout CPU-Spannung unter Minimum
SX1262Failure SX1262 Radio Selbsttest fehlgeschlagen
FlashCorruptionRecoverable Flash-Korruption erkannt (repariert)
FlashCorruptionUnrecoverable Flash-Korruption (nicht reparierbar)

πŸ”§ Aus Quellcode bauen

Voraussetzungen: .NET 8.0 SDK, Windows 10/11 x64

git clone https://github.com/SMLunchen/mh_windowsclient.git
cd mh_windowsclient
dotnet publish MeshhessenClient/MeshhessenClient.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -p:PublishTrimmed=false -o public

EXE liegt danach unter public\MeshhessenClient.exe. Alternativ: build.bat ausfΓΌhren.

πŸ™ Credits

Made with ❀️ by the Meshhessen Community · www.meshhessen.de


πŸ” Verwandte Suchbegriffe

Meshhessen Client Β· Windows-Client fΓΌr Meshtastic-GerΓ€te Β· Meshtastic Windows App Β· Meshtastic PC Software Β· Meshtastic Desktop App Β· Meshtastic USB Windows Β· Meshtastic Serial Windows Β· Meshtastic WPF Β· Meshtastic .NET Β· LoRa Mesh Windows Β· Meshtastic Offline Karte Β· Meshtastic Telemetrie Β· Meshtastic Traceroute Β· Meshtastic Hessen Β· Meshtastic Deutschland Β· Meshtastic Germany Β· LILYGO T-Beam Windows Β· T-Deck Windows Β· RAK4631 Windows Β· Heltec Windows Β· Meshtastic BLE Windows Β· Meshtastic Bluetooth Windows Β· Meshtastic PKI Β· Meshhessen Community Β· Meshhessen


Meshhessen Client – Windows Client for Meshtastic Devices (WPF Β· .NET 8)

Meshhessen Client is a free, native Windows client for Meshtastic devices (WPF/.NET 8) for Windows 10/11. Connect your Meshtastic device (LILYGO T-Beam, T-Deck, RAK4631, Heltec, etc.) via USB/Serial, TCP/WiFi, or Bluetooth to your Windows PC – fully offline-capable, no cloud, no installation required. Developed by and for the Meshhessen Community.

Windows .NET Status License Stars

πŸš€ Quick Start

  1. Download .NET runtime: https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/runtime-desktop-8.0.23-windows-x64-installer
  2. Run the installer
  3. Download: Get the latest MeshhessenClient.exe from Releases
  4. Connect device: Plug in your Meshtastic device via USB
  5. Launch: Double-click MeshhessenClient.exe – no installation required
  6. Connect: Select connection type (Serial, TCP, or Bluetooth) β†’ click "Connect"
  7. Start: Wait 3–10 seconds for channels to load, then send messages

The app is fully offline-capable. No cloud, no registration, no telemetry to the developer.

✨ Features

πŸ“¨ Messaging & Communication

  • Send and receive messages (broadcast & direct messages)
  • Multi-channel – all channels from your device loaded automatically
  • Direct Messages (DMs) with a dedicated chat window in a tabbed layout
  • PKI decryption – client-side decryption of PKI-encrypted DMs (X25519 + AES-256-CTR); private key is loaded automatically from the connected device
  • Node public key database – local CSV file (node_keys.csv) for managing public keys for PKI decryption
  • Tap-back reactions – react to messages with emoji (32 emojis, like the Android app)
    • Right-click a message β†’ emoji picker
    • Reactions are sent to the sender/channel and displayed inline
    • Works in channel chat and DMs
  • Reply function – reply to individual messages (protocol-level)
    • Quoted block with accent-colored highlight of the original message
    • Works in channel chat and DMs
  • Selectable & copyable messages – select text, copy to clipboard, click links
    • Right-click any message β†’ "Copy Message" in context menu
    • Always copies the right-clicked message (not just the last selected row)
    • Context menu available even for messages from unknown senders
  • 🚨 Alert Bell support – send and receive emergency alerts
    • 🚨 SOS button in chat and DMs
    • Visual: red blinking border + notification bar with "Jump to map" button

πŸ“Š Telemetry & Statistics

  • Persistent telemetry database – received packet and device data is stored locally in a SQLite database
  • Node statistics window – detailed analysis per node:
    • Day/night breakdown of reception quality
    • Time-series graphs for SNR, RSSI, packet rate and device data (battery, voltage)
  • LED indicators in the main window show the connected node's status at a glance:
    • πŸ“Ά Signal – reception quality (SNR/RSSI trend)
    • πŸ‘₯ Neighbors – number and stability of direct neighbor nodes
    • πŸ›€οΈ Path stability – stability of the traceroute path
    • 🌐 Mesh health – overall health of the visible mesh
    • 🌀️ Weather – for nodes with environmental sensors

πŸ—ΊοΈ Offline Map

  • Three map types: OSM Standard, OSM Dark Mode, OpenTopoMap (topographic)
  • Own tile server – OSM policy prohibits offline downloads; we use our own server that explicitly permits it
  • Offline tiles for all of Germany and neighboring areas
  • Node positions as colored pins on the map
  • Node paths – record GPS position history and display tracks on the map
  • Waypoints – received waypoints are displayed on the map; create and send waypoints via right-click on the map

πŸ“‘ Traceroute

  • Start traceroute – directly from the node context menu (node list, map, message list)
  • Dedicated window per target node with:
    • Hop table: node name, distance, SNR (in dB), MQTT indicator (⚑ lightning symbol)
    • Live status (waiting / received)
  • Map plotting – plot the route with lines
    • Solid line where positions are known
    • Dashed line where positions are missing
    • Direction arrows on segments
    • Click a segment β†’ SNR popup for that hop
    • Falls back to the configured map position if own GPS is unavailable
  • Multiple traceroutes at once on the map – each gets a unique color
  • Save & Load – traceroutes are automatically saved to traceroutes/ as JSON
    • Compare routes recorded at different times
    • Load multiple files simultaneously
    • Load historical traceroutes directly from the database
  • Time range filter – filter traceroutes by period (3d / 7d / 14d / 30d / 90d / All)
  • Deduplication – show only the latest traceroute per node pair (optional)
  • Map legend – shows all active traces with color and individual βœ• remove button

πŸ”§ Node Management

  • Node overview – all nodes in the mesh with SNR, battery, distance, hop count
  • Firmware version & hardware model – queried automatically on connect and shown in the node info window
  • PKI key indicator – πŸ”‘ column shows whether a node's public key is known
  • Node colors – color-code nodes individually (map + lists)
  • Node notes – free-text annotations per node
  • Pin nodes – pin nodes to the top of the list (independent of sorting)
  • Node configuration – adjust settings of the connected device
  • Change BT PIN – set Bluetooth PIN directly from the client

βš™οΈ Connection & System

  • Multi-connection – USB/Serial, TCP/WiFi, and Bluetooth (BLE)
  • Auto-reconnect – after settings changes that require a device reboot
  • Update check – automatically checks for new versions on startup; a clickable hint appears in the status bar if an update is available (offline-safe: no error if no internet)
  • Multi-language – German and English (switchable in settings)
  • Dark mode & ModernWPF Fluent design
  • Automatic logging of all messages (logs/)
  • Debug tab with live log for troubleshooting
  • Meshhessen quick-config – one-click Short Slow + EU868 + Meshhessen channel setup

πŸ’¬ The Meshhessen Community

The Meshhessen Client is a community project of the Meshtastic community in Hesse, Germany. Our regional LoRa mesh network is growing – join us!

  • 🌐 Website: www.meshhessen.de
  • πŸ“‘ Network: Growing mesh network in Hesse and surrounding areas – airtime is not all-you-can-eat β†’ Short Slow! ;)
  • 🀝 Contribute: Set up your own node, extend coverage, grow the community

⚠️ Known Limitations

  • No persistent message history (restart = empty UI; logs are preserved, node-loaded messages at startup are preserved)
  • Tested with firmware 2.x
  • T-Deck: channels are not always included in the config sequence (retry workaround active) – The T-Deck is barely keeping up with itself, so everything takes a bit longer there…

πŸ—ΊοΈ Setting Up the Offline Map

Map types: OSM Standard (light), OSM Dark Mode, OpenTopoMap (topographic) – selectable in settings.

⚠️ Important: Please do NOT switch to the official OSM tile server – offline downloads violate their policy. We use our own server that explicitly permits this. You can configure your own tile server in settings.

Downloading tiles:

  1. Open settings β†’ select map source (OSM / OSM Dark / OpenTopo)
  2. Click "Download Tiles"
  3. Enter bounding box and zoom levels – e.g. Hesse: 49.3,7.7,51.7,10.2, Zoom 1-14
  4. Start download
  5. Tiles are saved under maptiles/ and are permanently available offline
  6. Tiles are portable – transferable via USB

Using the map:

  • Open the "πŸ—ΊοΈ Map" tab
  • Right-click on map β†’ set own location
  • Node pins appear automatically once GPS data is received
  • Right-click on a node β†’ set color, send DM, edit note, start traceroute

πŸ—οΈ Technical Overview

Component Technology
UI WPF .NET 8, ModernWPF (Fluent)
Protocol Meshtastic Protobuf over Serial/TCP/BLE
Map Mapsui 4.1 + local OSM tiles
Serialization Google.Protobuf, System.Text.Json
Connection Serial (0x94 0xC3 framing), TCP/WiFi, Bluetooth Low Energy

Connection types:

Type Transport Framing Notes
USB/Serial COM port, 115200 baud 4-byte header (0x94 0xC3 + length) Wake-up sequence, debug text interleaved
TCP/WiFi TCP socket 4-byte header (same as serial) Configurable hostname/IP + port
Bluetooth BLE GATT characteristics Raw protobuf (no framing) Direct FromRadio/ToRadio packets

Connection sequence:

Windows Client β†’ USB/Serial | TCP/WiFi | BLE β†’ Meshtastic Node β†’ LoRa β†’ Mesh
  1. Open connection β†’ send wake-up sequence (Serial/TCP only) β†’ send want_config_id
  2. Receive my_info, node_info (Γ—N), channel (Γ—8), config, config_complete_id
  3. If channels are missing (e.g. T-Deck): retry mechanism up to 3 rounds via GetChannelRequest
  4. Ready for MeshPackets

πŸ”§ Building from Source

Requirements: .NET 8.0 SDK, Windows 10/11 x64

git clone https://github.com/SMLunchen/mh_windowsclient.git
cd mh_windowsclient
dotnet publish MeshhessenClient/MeshhessenClient.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -p:PublishTrimmed=false -o public

The EXE will be at public\MeshhessenClient.exe. Alternatively, run build.bat.

πŸ™ Credits

Made with ❀️ by the Meshhessen Community · www.meshhessen.de


πŸ” Related Search Terms

Meshhessen Client Β· Windows client for Meshtastic devices Β· Meshtastic Windows app Β· Meshtastic PC software Β· Meshtastic desktop app Β· Meshtastic USB Windows Β· Meshtastic serial Windows Β· Meshtastic WPF Β· Meshtastic .NET Β· LoRa mesh Windows Β· Meshtastic offline map Β· Meshtastic telemetry Β· Meshtastic traceroute Β· Meshtastic Germany Β· Meshtastic Hessen Β· LILYGO T-Beam Windows Β· T-Deck Windows Β· RAK4631 Windows Β· Heltec Windows Β· Meshtastic BLE Windows Β· Meshtastic Bluetooth Windows Β· Meshtastic PKI decryption Β· Meshhessen community Β· Meshhessen

About

Meshhessen client - a community driven meshtastic client for windows with full offline capabilities. Map and SOS feature, channel management and logging. With great support of the meshhessen.de community. (the project is not affiliated with the official meshtastic organization.)

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors