Flashback Dezember 2021: Der Nerd ist im Jungle. Also im wahrsten Sinne des Wortes, hier in Mexiko. Es ist so schön hier, kein covid-Bullshit (Einreise ohne Test, keine Impf QR Codes, jedes menschliche Wesen mit Peso oder Kreditkarte ist in den Lokalen (herzlich!) willkommen, Masken trägt man nur im Supermarkt) und das Wetter und Essen ist auch geiler als in 2G Deutschland. Die Menschen sind herzlich, man gibt sich die Hand und umarmt sich. Corona ist hier einfach ein Bier, und das schmeckt sogar halbwegs. Dem Nerd gefällt das. Hochrisikogebiet my ass. Eins ist eher Bayern, das habe ich glücklicherweise verlassen.
Aber es gibt natürlich viel an Infrastruktur nachzuholen. Das ist mir bewusst und die Nähe zur Natur ist es mir mehr als wert, zu improvisieren.
Wie ich hier schon vor zwei Jahren schrieb, reise ich ja nie ohne Raspis. Neu im Gepäck sind nun Meshtastic Nodes. Die ermöglichen Kommunikation auch über weitere Distanzen. Mein Setup sieht so aus:
Pi3 als Controller
T-beam board basiertes Meshtastic node
Pi zero w als glorifizierte wlan-Karte für den uplink
& 2) doppelt für die remote Station
Los geht's!
Die pi3 waren schon als Accesspoint/Repeater/Router eingerichtet und haben die adb tools installiert, für ein Oculus Go Projekt und zum befreien von alten android phones. Das ist fein, denn die Meshtastic app gibt's nicht mehr im Play Store und muss per sideloading installiert werden.
Dann brauche ich noch tools für meshtastic:
apt install python3-pip
pip3 install --upgrade meshtastic
https://github.com/meshtastic/Meshtastic-device/releases/download/v1.2.45.b674054/firmware-1.2.45.b674054.zip
https://meshtastic.org/docs/getting-started/flashing-esp32
pip3 install --upgrade esptool
Firmware auspacken, mit esptool die connectivity überprüfen, dann flashen
./device-install.sh -f firmware-tbeam-1.2.45.b674054.bin
Dann ist das Ding einsatzbereit, nimmt am public mesh teil und spricht mit dem Raspi via python shell
meshtastic shell
root@augenblicke-demo:~/meshtastic# meshtastic --info
Connected to radio
Owner: Unknown 5784 (?84)
My info: { "myNodeNum": 4064630660, "numBands": 13, "firmwareVersion": "1.2.45.b674054", "rebootCount": 1, "messageTimeoutMsec": 300000, "minAppVersion": 20200, "maxChannels": 8 }
Nodes in mesh: {'num': 4064630660, 'user': {'id': '!f2455784', 'longName': 'Unknown 5784', 'shortName': '?84', 'macaddr': 'CDryRVeE', 'hwModel': 'TBEAM', 'raw': id: "!f2455784" long_name: "Unknown 5784" short_name: "?84" macaddr: "\010:\362EW\204" hw_model: TBEAM }, 'position': {'raw': }, 'lastReceived': {'from': 4064630660, 'to': 4294967295, 'decoded': {'portnum': 'NODEINFO_APP', 'payload': b'\n\t!f2455784\x12\x0cUnknown 5784\x1a\x03?84"\x06\x08:\xf2EW\x840\x04', 'wantResponse': True, 'user': {'id': '!f2455784', 'longName': 'Unknown 5784', 'shortName': '?84', 'macaddr': 'CDryRVeE', 'hwModel': 'TBEAM', 'raw': id: "!f2455784" long_name: "Unknown 5784" short_name: "?84" macaddr: "\010:\362EW\204" hw_model: TBEAM }}, 'id': 2047933770, 'hopLimit': 3, 'priority': 'BACKGROUND', 'raw': from: 4064630660 to: 4294967295 decoded { portnum: NODEINFO_APP payload: "\n\t!f2455784\022\014Unknown 5784\032\003?84\"\006\010:\362EW\2040\004" want_response: true } id: 2047933770 hop_limit: 3 priority: BACKGROUND , 'fromId': '!f2455784', 'toId': '^all'}, 'lastHeard': None, 'snr': None, 'hopLimit': 3}
Preferences: { "phoneTimeoutSecs": 900, "lsSecs": 300 }
Channels:
PRIMARY psk=default { "modemConfig": "Bw125Cr48Sf4096", "psk": "AQ==" }
Primary channel URL: https://www.meshtastic.org/d/#CgUYAyIBAQ
für meine Zwecke lege ich noch einen persönlichen secondary channel und den admin-channel für remote Verwaltung an:
root@augenblicke-demo:~/meshtastic# meshtastic --ch-add schlafhacking
Connected to radio
Writing modified channels to device
meshtastic --ch-add admin
Nun richte ich den zweiten node ein und füge ihn zum mesh und dem erstellten admin Channel hinzu
meshtastic --seturl <url-des-mesh, redacted for security>
Es scheint, dass GPS per default aus ist, das will ich hier aber haben. Also schalte ich es ein.
meshtastic --set location_share LocEnabled
meshtastic --set gps_operation GpsOpMobile
meshtastic --set gps_update_interval 10
Nun können die beiden Pi's miteinander reden bzw. ein Android Phones mit der Meshtastic App.
P.S. Dieser Post lag nun über ein Jahr als Entwurf im Peak Frontend. Der Content ist von Anfang Dezember 2021, aber noch relevant, weil das heute #freenerding darauf basieren wird