Getting Started with Meshtastic: A 5-Minute Guide to Off-Grid Comms and the NEPAMesh Network

I have been spending a lot of time with Meshtastic lately. An unreasonable amount of time, if we’re being honest. The kind of time that makes your spouse ask “are you building another one?” with a tone that suggests the correct answer is no, but we both know the answer is yes. So, in the interest of dragging others into this hobby with me, here’s everything you need to know to get up and running — and how to connect to the NEPAMesh network here in Northeastern Pennsylvania without making enemies in the process.

What Is Meshtastic and Why Should You Care?

Meshtastic is open-source firmware that turns cheap LoRa radio modules into a mesh network. Text messaging, GPS location sharing, and sensor data — all without cell towers, without internet, and without a monthly bill. Messages hop from node to node across the mesh, with a documented range record of over 206 miles on a single hop. You’re not going to hit 206 miles with a stock antenna on your kitchen table, but the point is that the technology is absurdly capable for what it costs.

Think of it as if walkie-talkies and text messaging had a baby, and that baby was raised by ham radio operators and open-source developers. It’s a beautiful, nerdy thing.

The best part? No registration, no license, no account. You buy a radio, flash the firmware, and you’re on the mesh. Nodes automatically discover each other using default modem presets and encryption keys. It’s the lowest barrier to entry in radio communications I’ve ever seen, and I say that as someone who studied for an amateur radio license.

Hardware: What to Buy

You need a LoRa radio module. That’s it. There are several options depending on your budget and what you want out of it. Here are the ones I’d recommend for getting started:

Heltec LoRa32 V3 (~$20-25)

Heltec LoRa32 V3

This is the one I tell people to start with. It’s cheap, it’s small, it has a built-in OLED display, and it runs on an ESP32-S3. No built-in GPS, but your phone handles location data over Bluetooth just fine. At this price point, you can afford to buy two — one for home, one for your bag — and still spend less than a nice dinner. It’s the gateway drug of Meshtastic hardware.

LILYGO T-Beam Supreme (~$43)

LILYGO T-Beam Supreme

The step up. ESP32-S3 with built-in GPS, Wi-Fi, and Bluetooth. Accepts an 18650 battery, which means you can run it portable without fussing with USB power banks. You may need to solder an antenna connector depending on the variant you get, but if you’re reading a blog called thinkleet.net, I’m going to assume you own a soldering iron. This is the one I use for my mobile nodes.

RAK WisBlock Starter Kit (~$25-37)

RAK WisBlock Starter Kit

The nRF52840-based option. The battery efficiency on this thing is genuinely impressive — we’re talking days to weeks on a single charge, depending on configuration. The modular design means you can snap on GPS, sensors, and other accessories. This is the platform of choice for solar-powered installations, and if you’ve read my previous post, you know I have a thing for building solar nodes and putting them on mountaintops.

LILYGO T-Deck (~$50-60)

LILYGO T-Deck

The standalone option. Built-in screen, built-in keyboard, no phone required. It’s the closest thing Meshtastic has to a “finished product” and it’s great for field use or demonstrations. Also, it looks cool, and looking cool while doing nerdy things is an underappreciated skill.

There are other options — the Seeed Card Tracker T1000-E, B&Q Nano G2 Ultra, Heltec Mesh Node T114, XIAO bundles — but the four above cover the most common use cases. Pick one and move forward. The hardware rabbit hole is deep and you can explore it later.

First Boot: Don’t Skip This Part

Before you plug anything in, there is one rule that is absolutely non-negotiable:

Attach the antenna before you power it on.

I cannot stress this enough. LoRa radios transmit whether or not an antenna is connected. Transmitting without an antenna reflects the signal energy back into the radio module. At best, this degrades performance. At worst, it damages the radio. At absolute worst, you’ve just turned your $25 investment into a very small, very useless paperweight. Antenna first. Always.

With that out of the way, here’s the setup process:

  1. Connect via USB — Use a USB data cable. Not a charge-only cable. I know you have seventeen USB cables in a drawer and exactly one of them is a data cable. Find that one. If characters don’t appear when you plug it in and open a terminal, it’s the wrong cable. I’ve wasted more time on this than I care to admit.
  2. Flash the firmware — Open Chrome or Edge (sorry Firefox users, WebSerial isn’t there yet) and go to flasher.meshtastic.org. Select your hardware, click flash, and wait. The web flasher handles everything. It’s almost disappointingly easy for those of us who remember compiling firmware from source.
  3. Install the app — Meshtastic is available for Android, iOS, and there’s a web client. Download it, pair via Bluetooth, and you’ll see your node.
  4. Configure your node — At minimum, set your node name (short name and long name) and confirm the region is set to US (assuming you’re in the US — using the wrong region setting can violate radio regulations, and nobody wants that kind of hobby).

That’s it. You’re on the mesh. If there are other nodes within range, you’ll see them. If there aren’t, well, that’s why you bought two, right?

What to Expect: Range

Range depends on terrain, antenna quality, height, and the whims of physics. Some rough expectations:

  • Ground level, stock antenna: 1-2 miles in most conditions. Don’t be disappointed by this — it’s the starting point, not the ceiling.
  • Elevated with clear line of sight: 6-20+ miles. Put a node on your roof or up a hill and the range increases dramatically.
  • Serious height advantage: 30+ miles. A solar node on a mountaintop or a tall building can cover an absurd area. This is where the solar builds really shine (pun intended).

The mesh aspect means your message doesn’t have to reach the destination directly. It hops. Node to node to node, up to 3 hops by default (configurable up to 7). Every node in range is a potential relay. The more nodes in your area, the more resilient and far-reaching the network becomes. It’s networking in the most literal sense.

Connecting to NEPAMesh: MQTT Setup

NEPAMesh Logo

This is where it gets specific to our local network. NEPAMesh is a community of Meshtastic enthusiasts in the Wyoming Valley area of Northeastern Pennsylvania. We’ve been building out a local mesh network since early 2024, and part of that infrastructure includes an MQTT server that aggregates node data, populates our network map at map.nepamesh.com, and lets you see who’s out there.

Connecting your node to the NEPAMesh MQTT server gets your node on the map and contributes your traffic data to the network. Here’s how to set it up.

MQTT Module Settings

In the Meshtastic app, navigate to the MQTT module settings and configure the following:

Setting Value
MQTT Server mqtt.nepamesh.com
Username meshdev
Password large4cats
Encryption ON (default)
TLS OFF
Root Topic msh/nepa
Proxy to Client ON (phone-connected) / OFF (Wi-Fi connected)
Map Reporting ON
Map Publish Interval 3600 seconds (1 hour)
Approximate Location 14 (default)

The root topic msh/nepa is case-sensitive and has no trailing slash. This keeps our traffic separate from the public Meshtastic MQTT server which uses msh/US. Get this wrong and your data goes to the wrong place.

LoRa Settings

This one is critical: under your LoRa settings, make sure “OK to MQTT” is set to ON. Without this, your entire MQTT configuration is ignored. The node just silently does nothing with MQTT. No error, no warning, just… nothing. Ask me how I know.

Channel Settings (Primary Channel – LongFast)

Setting Value Why
Uplink Enabled ON Sends your node’s packets to the MQTT server
Downlink Enabled OFF Read below — this matters
Position Enabled ON Required for map visibility
Precise Location OFF Adds ~1 mile of coordinate fuzz for privacy

Why Downlink Stays OFF and Why Hops Matter

This is the part where I get on a soapbox for a minute. Downlink is the reverse of uplink — instead of sending your local mesh traffic up to the MQTT server, it pulls MQTT traffic back down and rebroadcasts it over radio. If you turn it on, every packet that hits the MQTT server from every connected node gets rebroadcast by your radio into the local mesh. That eats airtime, congests the network, and makes everyone else’s experience worse. Don’t be that node.

Now, here’s the part that’s worth understanding even if you leave downlink off: the NEPAMesh MQTT server is configured to set the remaining hops to 0 on any packets it sends back out. This is a server-side safeguard, not something you configure on your node. A remaining hop count of 0 means that when a packet comes down from MQTT and a gateway node broadcasts it over radio, no other node will retransmit it. It’s a one-hop local broadcast only. The packet reaches anyone in direct radio range of the gateway and dies there.

Without this, you get a nasty feedback loop: mesh traffic goes up to MQTT, comes back down through a gateway, gets picked up by neighboring nodes, and gets re-relayed right back across the mesh — duplicating packets that were already on the mesh in the first place. The result is wasted airtime, duplicated messages, and a network that performs worse for everyone. By setting remaining hops to 0 at the server level, the NEPAMesh MQTT infrastructure prevents this leakage regardless of how individual gateway nodes are configured. It’s a belt-and-suspenders approach — downlink should still be off for most users, but even if someone turns it on, the server-side hop limit keeps the damage contained.

Recommended Node Settings (Don’t Be That Node)

Your Meshtastic node talks a lot more than you think it does. I wrote a whole article about this on NEPAMesh, but here’s the short version: of nearly 20,000 packets observed in a 24-hour period on the NEPAMesh network, only 22 were actual text messages. The rest were position broadcasts, telemetry, and NodeInfo packets. Your node is chatty, and every unnecessary packet eats shared airtime.

Here are the settings I recommend to be a good mesh citizen:

Setting Value Notes
NodeInfo Broadcast 14400 sec (4 hours) No one needs to know about your node every 15 minutes
Position Broadcast 14400 sec (4 hours) For fixed/home nodes. 3600 (1 hour) is fine for mobile handhelds
Smart Position OFF For stationary nodes — you’re not moving, stop saying you are
GPS Polling 1800 sec (30 min) Saves power, reduces unnecessary updates
Telemetry Intervals 7200 sec (2 hours) All telemetry types — device, environment, power
Neighbor Info Module OFF Creates packets with no real benefit. Just turn it off.
Ignore MQTT ON Prevents MQTT-originated traffic from saturating your node
Number of Hops 3-5 Higher isn’t better — it’s just louder

The general principle is simple: transmit only what’s needed, at intervals that make sense, with hop counts that don’t blast your packets into neighboring states. A well-configured mesh is a usable mesh.

Where to Go From Here

Once you’re on the mesh and connected to the NEPAMesh MQTT server, check out map.nepamesh.com to see your node on the network map. It may take up to an hour for your node to appear depending on your map publish interval. If it doesn’t show up, double-check that “OK to MQTT” is on, your root topic is exactly msh/nepa, and your node has a position (either from GPS, your phone, or manually set fixed coordinates).

You should also check out propagation.nepamesh.com — this is the NEPAMesh RF propagation monitor, and it’s one of the more useful tools we’ve built. Among other things, it has an RF shadow map that shows you where coverage gaps exist in the network. If you’re not familiar with the term, an RF shadow is an area where radio signals can’t reach — typically caused by terrain features like hills, ridges, or valleys that physically block the signal path between nodes. Think of it like a literal shadow: if a mountain is between your node and the rest of the mesh, the area behind that mountain is in the RF shadow. No amount of power or antenna gain fixes a mountain in the way. You either go around it, over it, or put a relay node on top of it.

The shadow map on propagation.nepamesh.com is built from real observed traffic on the mesh, not theoretical models. It analyzes actual node positions and link data to show where signals are getting through and where they aren’t. This matters because theoretical propagation models are optimistic liars — they don’t account for the tree line, the building your neighbor put up, or the fact that the terrain data they’re using hasn’t been updated since before the highway was repaved — and let’s be honest, this is NEPA, so probably since before the highway was built.

The part I find most useful is the placement suggestions feature. It looks at the current network — where nodes exist, where coverage gaps are, where RF shadows fall — and suggests locations where a new node would have the most impact on closing those gaps. If you’re thinking about deploying a node (especially a solar relay on a high point), the placement suggestions tell you where it would actually do the most good instead of just guessing. It takes the “I wonder if this hilltop would be a good spot” out of the equation and replaces it with data. It’s the difference between throwing darts blindfolded and actually looking at the board first.

For more detailed guides, head over to NEPAMesh where we’ve got articles on MQTT configuration, recommended settings, and network analytics. We also have an active Discord community where you can ask questions, share your setup, and argue about antenna theory with people who are equally unqualified to do so.

If you’re in the NEPA area, get a node and get on the mesh. If you’re not in the NEPA area, get a node anyway and start your own local mesh. The hardware is cheap, the software is free, and the community is welcoming. Worst case scenario, you’ve spent $20 on a small blinking radio that you can show off at your local hackerspace. I’ve wasted money on far worse things.

Seven Years, One Heart Attack, and a Whole Lot of Solder

Well, it has been a while. Seven years of silence on a blog is probably enough to have most people assume the author has either died, found religion, or gotten a real job. In my case, it was almost all three, but I’ll get to that.

If you’re reading this, congratulations on your patience, your morbid curiosity, or your inability to clean out your RSS reader. Regardless of why you’re here, welcome back. I have some catching up to do, and I promise to be as disorganized about it as you’d expect from someone who once spent a weekend trying to turn a travel router into an SDR server.

The Part Where I Almost Died (Casually)

So, 2023 was an interesting year. I had a heart attack. I know, I know — you’d think someone who spends most of their time sitting in front of screens and soldering irons would be the picture of cardiovascular health. Turns out, your heart doesn’t care how many Linux boxes you’ve configured. It was one of those life-altering moments that makes you reconsider your priorities, eat a salad occasionally, and then immediately go back to doing exactly what you were doing before because you’re fundamentally incapable of change. I’m fine now, mostly. The doctors say I need to take it easy. I interpret “take it easy” as “continue doing everything but feel slightly guilty about it.”

The Part Where I Got Married

In 2018, I got married. Yes, someone willingly signed up for a lifetime of me explaining mesh networking at dinner and impulse-buying microcontrollers. She is a saint, or possibly just hard of hearing — either way, it works. The wedding was lovely, and I only had to be asked twice to stop checking my phone for satellite pass notifications during the ceremony.

Career: From Auto Parts to Actual IT

For those who remember, I spent a good chunk of my career in the auto parts world. I have since transitioned away from the counter and into an IT role for the shops themselves. Same industry, completely different headaches. Instead of looking up brake rotors and arguing about core charges, I’m now the guy migrating a scattered mess of standalone systems into something more centralized and, dare I say, manageable. The goal is to make it easier for the shops to actually access and use the tools they’re already paying for — a concept that apparently qualifies as revolutionary in an industry that still has fax machines in active service.

It’s been a journey of consolidation, automation, and explaining to people why “it worked fine before” is not a valid argument against progress. I do come home smelling like desperation after fighting Group Policy for eight hours, but at least I no longer have brake cleaner stains on my shirts. Trade-offs.

Travel: Apparently I Leave the House Now

One of the more surprising developments of the last several years is that I have become someone who travels. If you knew me in the early blog days, you’d know that my idea of adventure was running an experimental firmware on a device I couldn’t afford to replace. Times have changed.

Here’s the damage report:

  • Italy (2017) — My first real international trip. Turns out the world is bigger than Northeastern Pennsylvania. Who knew? The food was incredible, the history was humbling, and I only tried to find open Wi-Fi networks at historical landmarks twice. Maybe three times.
  • Ireland (2018) — Green. So incredibly green. Also, Guinness does taste better there, and I will die on that hill (hopefully not of another heart attack).
  • UK (2019) — London, among other places. I spent an unreasonable amount of time in museums and an even more unreasonable amount of time trying to figure out how the tube system works. I am an IT professional who builds mesh networks, and the Oyster card nearly defeated me.
  • Dominican Republic (Multiple Trips) — This has become something of a recurring destination. At this point, I think I qualify for some sort of frequent visitor status. The resort staff have started to recognize me, which is either flattering or a sign that I need to diversify my vacation portfolio.
  • Poland (2024) — Absolutely beautiful country. The history, the architecture, the food — all of it was fantastic. I went in with minimal expectations and came out wondering why it took me this long to visit.
  • Ireland (2025) — Yes, again. I told you, it’s really green. Second time around and I still wasn’t over it. At this rate I’m going to end up retiring there and becoming the weird American who builds Meshtastic nodes on the Cliffs of Moher.
  • Poland (2026) — Back again already. If I keep this up, I’m going to need to learn more Polish than “dziękuję” and “piwo proszę.” Though honestly, those two words have gotten me surprisingly far.

Community: I Found My People

One of the best things to come out of the last few years is getting involved with some local groups that cater directly to my particular brand of nerdery.

NEPAMesh (nepamesh.com)

I’ve been working with NEPAMesh, a local group of Meshtastic enthusiasts here in Northeast Pennsylvania’s Wyoming Valley. For the uninitiated, Meshtastic is an open-source project that enables long-range, off-grid communication using affordable LoRa radio hardware — no cell towers, no internet, no monthly fees. It’s the kind of thing that makes my inner radio nerd absolutely giddy. The group has been building out a local mesh network since early 2024, and I’ve been contributing nodes, including some solar-powered ones because apparently I now build things that live outdoors. The irony of an indoor person building outdoor infrastructure is not lost on me.

HackWorks (hackworks.us)

I also joined HackWorks, a local makerspace. They offer access to tools, equipment, 3D printers, classes, and most importantly, a community of people who don’t look at you funny when you explain what you’re building. Having access to a proper workspace has been a game-changer, and it’s nice to be around fellow makers who understand that “I just need one more component” is both a lie and a lifestyle.

DCG570

I’ve also been attending DCG570, the local DEF CON group. For those unfamiliar, DEF CON groups (DCGs) are local community meetups affiliated with the DEF CON hacking conference. It’s a fantastic group of security-minded individuals, and attending has been a great way to keep my skills sharp, learn new things, and remind myself that no matter how much I think I know, there’s always someone who knows more. Humbling, educational, and occasionally terrifying — my three favorite adjectives.

Hardware Hacking: Because Software Wasn’t Enough

The tinkering hasn’t stopped — if anything, it’s gotten worse. Between hardware modifications, building solar-powered Meshtastic nodes, and whatever the makerspace enables me to get my hands on, I’ve been busier than ever. The solar nodes have been a particularly fun project; there’s something deeply satisfying about building a communications device that powers itself and just sits on a mountaintop doing its job without any intervention. It’s everything I aspire to be: self-sufficient, solar-powered, and silently useful. I am none of these things, but the nodes are, and I built them, so I’m claiming it by association.

What’s Next

More posts are coming. I know, I know — you’ve heard that before. But this time I mean it, in the same way that I “meant it” in 2019 when I said I’d post more regularly and then went radio silent for seven years. The difference now is that I have more projects, more communities, and more things to talk about than ever before. Plus, I nearly died, so I’ve got that whole “life is short, document your nonsense” motivation going for me.

Stay tuned. Or don’t. I’ll be here either way, building things that don’t need to exist and writing about them far too late.