Its ALIVE! Solar powered Mesh based Super Node inc Map the Mesh

Its ALIVE! Solar powered Mesh based Super Node inc Map the Mesh

Yes the titles a mouth full but still..

If you wan to watch the video on the solar shed go take a look here ( if your too lazy to read like me..

0928 Meshtastic Ultimate Solar with Ecoflow! (youtube.com)

 

The short version is that map the mesh from alan the all encompassing RF map reporting system is alive and kicking in the shed and its all powered by solar! 

If your a man and like real radio this is for you! - MQTT is still the devil andy :)

Link to the public RF node map here:

Public Mesh Map - Map The Mesh

All those ones over on the left are coming from the super node here near Blackpool and have last been seen a maximum of a day ago!

Next part of this is to get one installed at our Blackpool Airport location and i can start building our mesh constructively using science!

This is super exciting for us and if you want to get involved join our discord for more info! 

Link here:

https://discord.gg/TeyKvPkhdq

 

Stolen from Alans Blog here his story on setup and putting up with my sh.. izzle.

 

 

Where this all started, and building Mark a reporting node for his "Mpowered247.com Super Node (XMSN)" 🎉


⚠️ Disclaimer! ⚠️

First and foremost, you the reader (yes you...), please take note that I am not a writer, I am a developer. So there may be grammatical issues etc. in this post.


😬 Where to start?

Now, with that out of the way! Where to begin? I suppose with most things, the best place to start is exactly there, at the start....

MapTheMesh was an idea I started back before the latest MQTT changes, where they have really restricted what can be seen etc. And back when you could listen on the root topic and gather all the topics available!

😈 MQTT is the Devil?

After spending a few days working with, and writing my own MQTT Server in PHP, I decided that I didn't like the idea of requiring users to send all of their data to my MQTT server. And before I go any further, yes I did write a functional MQTT server in PHP, but it was for sending data only. I may one day open source it, but it was build for a rather niche reason, to forward the wanted MQTT packets to a webhook. Another reason why I chose not to continue down the MQTT route was a simple one. Users may already be using MQTT for their own reasons, such as HomeAssistant, other Map reporting sites, or simply to use the official MQTT service offered.

😧 So what to do?

Now I was past the idea of using MQTT I was really left wondering what to do next? Whilst looking into the possibilities that were emerging from the community, I came across the following site by EthZero. Their site is a simple one, and its build so that they can keep track of the various nodes they have configured. The good thing was, whilst looking at the site, they chose to make the script powering it open source on GitHub.

💡 Taking insperation from others

Now that the source code for ethzero's script was open source, it became painfully obvious how they were doing it! It was also something I had been doing myself, but just hadn't put two and two together. They were simply using the Meshtastic Python CLI to run the meshtastic --nodes command, and then pushing that to their website.

Seeing that sparked an idea! What if, instead of just having a table and showing that on the website (tables are rather boring). Why not parse this data out, and push it onto a map! The code for a map I had already written whilst writing this, a simple site to aggregate a few different MQTT maps and show its data in one place. It was also done to show Mark (XrayMark of MPowered247) that you can do certain things on a map etc. As well as being written in about 3 hours, start to finish!

💭 The birth of MapTheMesh

So, with the idea in mind, I set out to write the code for MapTheMesh. I started by writing a simple script that would run the meshtastic --info command, and then parse the data out. The reason I chose to use meshtastic --info was simple, it provided the info I wanted in a format that was easier to parse out, as a bonus it also provided more information than meshtastic --nodes did.

I originally wrote this script as a combination of a bash script and a python script, but after a few days of working on it, I decided to remove the additional Python script. The job of this was to parse the raw output from the meshtastic --info command, and then push it to a JSON file. Just having the raw data would mean that I can change the way I want to parse data, and not have to worry about users updating their scripts etc. if the format of the data changes.

👨‍💻 So you have the data, now what?

Now that I had the data, I needed to figure out how to get it onto a map. As I said, I had already written a simple map script, but it was written in a way that it was working with other users node data. So I needed to store this data (once parsed) into a database for my own data source. But I also had other data coming in, so what to do with that? For now I decided to just ignore it, and focus on getting the node data onto the map, and then I can look at the other data later.

⛔️ Real World Data

Ideas are fun and all, but they are nothing without real world data. Something I was really lacking since the launch of the 2.4.0 Meshtastic firmware! Prior to this I had a somewhat health mesh of about 30+ nodes that I was able to see. But after this update, I was left with only my own nodes I had for testing and getting into the hobby. Even with my limited data I chose to launch the site, and create a forum type thread on the MPowered247 Discord see if anyone would be interested in having their node data shown on the map. I wrote a simple "what is this" post, and clicked submit! I was surprised to see that a few people were interested, and I was able to get some real world data to work with.

🧱 Building Mark a reporting node

Now for those of you who are on the Discord, you will know Mark! And you will know his enthusiasm for the hobby. You will also know that before he built the business and RAK Partnership he has now, he was building up his own fleet of nodes in and around the Blackpool area. You may also know that, apart from breaking most everything he gets his hands on, he is also super enthusiastic when he is excited about something.

Mark was one of the first people to reach out to me wanting to know how he could get involved, and have his data shown to him on a map that wasn't MQTT or self reported, but instead real RF data direct from the node itself! So a quick chat later, and I had a DM asking me for my address and if I would build him a Raspberry Pi to not only run the script on, but also to display the data on a screen. I was a little taken back by this, but I agreed, and set out to build him a reporting node. He purchased the parts, sent them to me, and I set out to build up the setup you have now no likely seen on the Discord and YouTube Video.

🧩 Putting it all together!

Onto the build itself. Due to Mark wanting to use a complete overkill 500GB M.2 SSD, I was left with only a few viable options! After a quick discussion (it was Mark's personal money after all), we settled on the following parts:

🤞 The best laid plans...

The initial build for this was a simple one! Prepare the Raspberry Pi with the latest Raspberry Pi OS, install Python and the Meshtastic Python CLI software, and then setup the script to run via cron.

But as with most things, the best laid plans never go as expected! The first issue I ran into was the fact that I couldn't get cron to reliably read the environment variables I had set. Something that I had already run into with the docker container that was written for the client. I also didn't want to connect up any of my personal nodes to Mark's Raspberry Pi. So I had to make a lot of educated guess work for Mark's setup. I was also still working on the script for the client, so I wasn't giving this my full attention (sorry Mark!). This was also only getting done in the evenings, as I was still working my day job.

Now thankfully 90% of this worked out of the gate! The WiFi configuration needed re-doing, but that was no big deal. And I needed to manually connect the node via Bluetooth to the Raspberry Pi, but again, no big deal. The biggest issue was something I had just straight up not thought about! Remote access! I had no way to access the Raspberry Pi remotely. But why do I need remote access? Simple, Mark may be computer-literate, but he is not a Linux user, and the command line is not something he is comfortable with! Thankfully, Jeff Geerling had recently created a YouTube video, and Blog Post, about the new Raspberry Pi Connect Software. And let me tell you, this was an absolute lifesaver! After talking with Mark over Discord, and 720p screen sharing, we were able to get it installed and configured to his account! This was a huge relief, as it meant that I could now remotely access the Raspberry Pi, and help Mark with any issues he may have. The only problem was we were sharing his password, so he used a temporary one for me to connect, and then changed it after the fact! (We don't want him getting hacked again!!)

🎉 The final result

There aren't many pictures of the final result, but I can tell you that it was a success! Mark was able to get the Raspberry Pi setup in his solar shed (after some WiFi and Power issues), and running the script. And I was able to get the data from his node, and show it on the map. Mark's client is now reporting the "Mpowered247.com Super Node (XMSN)", and displaying its data on the screen in Kiosk mode. He can also check in on it from work, and see what the node is seeing and check progress on the mesh. Now to get more built, and reporting for his fleet of nodes! Next time will be smoother, I promise Mark! we also will be using a Raspberry Pi Zero 2 W, as it is more than capable of running the script, and is a lot cheaper than the Raspberry Pi 5!

If anyone is interested in knowing more about the Kiosk setup, or how to build a reporting node, please let me know! I am more than happy to help where I can.

 

 

Right i have the next big order to sort out!

 

Happy meshing folks!

Mark

aka xraymark

 

 

 

Back to blog

Leave a comment

Please note, comments need to be approved before they are published.