Meshtastic

This is how I got into Meshtastic as a European mostly residing in Sweden or Croatia during Q1 of 2024, using a Linux laptop.

Purchase device

I ordered the WiFi LoRa 32 V3 from heltec.org and they arrived within a few weeks. I would suggest you order at least 3 of them to test the mesh capability.

Flashed firmware

I used the CLI method in the official docs.

Install app

Install the Meshtastic app on a smartphone you want to use to test the mesh while on the go.

Testing

At first I just left one device connected to a laptop at home, and went outside with the other device and my smartphone.

I left a simple Python script running at home to provide some sort of response over Meshtastic for a basic test.

#!/usr/bin/env python3

import os
import sys
import logging
from time import sleep
from pubsub import pub

import meshtastic
import meshtastic.serial_interface

logging.basicConfig(stream=sys.stdout, level=logging.INFO)

def onReceive(packet, interface):
    if not 'decoded' in packet.keys():
        return False

    if not 'text' in packet['decoded'].keys():
        return False

    if packet['decoded']['text'] == 'Roger Boxerboi':
        interface.sendText('Pilki01 side-on 📻')
    else:
        logging.debug(packet)

def onConnection(interface, topic=pub.AUTO_TOPIC):
    interface.sendText("{} signed on".format(os.uname()[1]))

pub.subscribe(onReceive, "meshtastic.receive")
pub.subscribe(onConnection, "meshtastic.connection.established")

interface = meshtastic.serial_interface.SerialInterface()
while True:
    sleep(1000)

interface.close()

Then went outside with the other unit, connected it to the phone, used the meshtastic app to send a message to the other device.

This way I measured their range in various situations.

Testing the mesh

Now I just need to add a 3rd device and go outside of range of the first device to test the mesh.