❌

Normal view

There are new articles available, click to refresh the page.
Yesterday β€” 6 July 2024Main stream

Meshtastic BBS

By: M0AWS
6 July 2024 at 06:25

Meshtastic devices have really taken off in the UK over the last few months and there is now an established Mesh across a large portion of the UK mainland.

Looking to expand the device capability I stumbled across a really interesting little project that is still in the early stages of development but, is functional and worth trying out.

The TCΒ²-BBS Meshtastic Version is a simple BBS system that runs on a RaspberryPi, Linux PC or virtual machine (VM) and can connect to a Meshtastic device via either serial, USB or TCP/IP. Having my M0AWS-1 Meshtastic node at home connected to Wifi I decided to use a TCP/IP connection to the device from a Linux VM running the Python based TCΒ²-BBS Meshtastic BBS.

Following the instructions on how to deploy the BBS is pretty straight forward and it was up and running in no time at all. With a little editing of the code I soon had the Python based BBS software M0AWS branded and connected to my Meshtastic node-1.

M0AWS Meshtastic BBS Main Menu accessible on M0AWS-1 node.
M0AWS Meshtastic BBS Main Menu accessible on M0AWS-1 node.

The BBS system is very reminiscent of the old packet BBS systems of a bygone era but, it is ideal for the Meshtastic world as the simple menus and user interface are easily transmitted in seconds via the Mesh using minimal bandwidth.

The BBS is accessible by opening a Direct Message session with the M0AWS-1 node. Sending the letter H to the node will get you the initial help screen showing the menu above and then from there onwards it’s just a matter of selecting the menu item and following the BBS prompts to use the BBS.

The BBS also works across MQTT. I tested it with Dave, G4PPN and it worked perfectly via the Meshtastic MQTT server.

This simple but, effective BBS for the Meshtastic network will add a new message store/forward capability to the Mesh and could prove to be very important to the development of the Meshtastic mesh in the UK and the rest of the world.

More soon …

Before yesterdayMain stream

Decoding Meshtastic in Realtime with an RTL-SDR and GNU Radio

By: admin
10 June 2024 at 05:01

Over on his YouTube channel, Aaron, creator of DragonOS and WarDragon has uploaded a video showing how it is possible to decode Meshtastic with an RTL-SDR and GNU Radio project called Meshtastic_SDR.Β 

If you weren't aware of it, Meshtastic is software that enables off-grid mesh network based communications and can run on cheap LoRa hardware. The mesh based nature of the system means that communications can be received over long distances, without any infrastructure, as long as there are sufficient Meshtastic nodes in an area that are able to route the message to the destination node. One example application of Meshtastic is to use it as a mesh-based text messaging system. This might be useful for teams of hikers, pilots, or skiiers who operate in remote areas without cell phone coverage.

In the video, Aaron shows how to install the Meshtastic GNU Radio software on DragonOS (Linux), and how to run the GNU Radio flowgraph and Python decoder script. Later in the video Aaron shows some test text messages being received by the software.

The Meshtastic_SDR project can also be used to transmit Meshtastic messages with an appropriate TX-capable SDR.

YouTube Video

Fun while it lasted…

By: M0RVB
9 April 2024 at 18:02

For me, and this is in no way intended to persuade people not to dabble, Meshtastic was the usual β€˜new shiny’ that I like to fiddle with, but it was just that. A bit of radio fun for little outlay using devices I can redeploy. In our wider area it seems to have snowballed and become rather congested. While I can see the point, I have many other radio bits and bobs to play with and having yet two more antennas in the loft was rather overdoing things.

I had to seriously think exactly what I had used it for and it came down to occasionally saying β€˜good morning’, answering when people ask if anyone is receiving them, and… well, I am struggling to find anything else. Of course I stress that is what I had used it for, not taking away from what others are doing. It is a neat idea.

So both nodes have been switched off.

Meshtastic oddness

By: M0RVB
3 April 2024 at 14:30

Both my 868MHz and 433MHz nodes are being odd today. I had been looking into the data that arrives when β€˜β€“noproto’ is sent to the node and, typically there is a fairly constant stream of data. But today, despite both being power cycled there is no data at all. Odd, because when I ask the 868Mhz node for its nodelist it is being updated. Maybe it’s something in the new firmware but for now I’ve been fiddling enough and it’s time to take a step back. I have not had any successful traceroutes today, I responded to a couple of requests and got no reply. It’s made worse by the fact that, having moved the nodes in the loft they are now out of BLE range. Both are connected to a Raspberry Pi via USB so I can access the nodes that way but for client use I use my mobile node assuming that the node in the loft will relay everything – maybe not. And for 433MHz I only have the one node anyway.

Mind you, it is raining and I suspect that is making a fairly decent shield for 868MHz, and I have yet to see any activity on 433MHz. So maybe it’s just the wrong time…

The other issue, at least around here is the popularity with over 120 nodes in the list, many sending telemetry and position updates all the time.

Getting the antennas outside will help but that will take a while yet unless I mount them low down on the workshop – actually that may not be that daft an idea. If it stops raining…

More 868Mhz Antenna Tests

By: M0AWS
25 March 2024 at 11:57

After initially finding that I couldn’t tune the 868Mhz ground plane antenna with the radials bent down at 45 degrees I decided to experiment to find out why.

Initially I had the radials connected to the 4 corners of the base of the chassis mount N Type socket. This works great if you have the radials completely horizontal and gives an SWR of 1.1:1 but, with the radials bent down at 45 degrees the best SWR is around 2:1.

M0AWS 868Mhz Ground Plane Antenna Close Up
M0AWS 868Mhz Ground Plane Antenna Close Up

Removing the radials from the base of the N Type chassis socket and soldering them to the outer of the N Type plug at the same level as the feed point for the radiating element I found that an almost perfect SWR can be achieved very easily.

M0AWS 686Mhz Antenna with radials soldered to the N Type Plug
M0AWS 868Mhz Antenna with radials soldered to the N Type Plug

It seemed weird to me that such a small change could have such a big effect on the obtainable SWR for the antenna but, as can be seen in the image below with the radials soldered to the N Type plug and bent downwards I immediately got an SWR of 1.07:1 and a much wider SWR curve.

M0AWS 868Mhz Antenna SWR curve with radials soldered to N Type plug.
M0AWS 868Mhz Antenna SWR curve with radials soldered to N Type plug.

By making my own antennas I’m learning a lot about antenna design for the 800-900Mhz frequency range. Minor changes seem to have a much bigger impact than they do at much lower frequencies.

More soon …

Current Meshtastic setup

By: M0RVB
24 March 2024 at 17:38

After a lot of fiddling about writing code to look at mesh traffic I am on other projects (like, sorting the house out!)… so here is my current state of play…

I have an 868MHz node in the loft directly connected to a collinear which is hanging off the rafters. This is powered by USB from one of the Pi systems in the shack. It is set to work over wifi, not BLE as it’s just too far away. Its position coordinates are fixed. But I do not need to access it directly, see below. The useful thing here is I have installed the Python CLI on that Pi and can access the node’s data stream directly.

There is one 868MHz node in the shack with the supplied stubby little antenna. There is no way this can see any other nodes in the local area (I’ve tried) but can access the node in the loft. So this one has hops set to 4 as it uses one just to get upstairs. This node is set to read position data from the iPhone and can thus go mobile. Well, ok, it could go mobile anyway but at least this way it says where it is etc. But it will probably never go mobile. With this powered over USB from the Mac Mini I can also access the data stream via the CLI. One issue with this setup is that the shack node reports all nodes seen as having an excellent signal strength as it only sees data from the loft node. In reality only a couple of local nodes have anything approaching a β€˜good’ signal strength.

Both 868MHz nodes are Lily T3S3 units with no GPS.

And there is a 433MHz node, this time a T-Beam with GPS on board, directly connected to a 2m/70cm collinear which is hanging from the window blinds in the shack with some bungee cord. This is of course temporary. I have yet to see any other nodes on 433MHz and I suspect I will quietly give up with that.

433MHz node under a 2m/70cm collinear hanging from the blinds...

868MHz-wise there is a lot of local activity. Currently the loft node sees 180 other nodes, although not all will be active. They do tend to stick and clearing the node database then starts afresh, slowly building up a list as data is seen.

Meshtastic app map showing the nodes that can be seen within 3 hops of here

And the use? So far, mainly people asking if they can be heard. There are some private channels, no idea what as they are encrypted, pus there are at least two very well sited nodes acting as routers for the area and beyond. One of those is extremely well made.

Meshtastic: Empowering Off-the-Grid Communication

Meshtastic is an open-source project enabling long-range, off-grid communication using inexpensive LoRa radios. It offers encrypted, decentralized messaging with excellent battery life and optional GPS. Utilizing LoRa, it supports up to 100 devices concurrently and provides resilience, privacy, and community building. Meshtastic empowers communication beyond traditional boundaries, ideal for adventurers and those seeking reliable off-grid connectivity.

868Mhz Ground Plane Vertical Antenna

By: M0AWS
18 March 2024 at 13:45

In my quest to improve my Meshtastic signal range using home-brew antennas I’ve finally put together a neat little ground plane vertical antenna for the 868Mhz ISM band.

The design follows the normal ground plane simplicity using 4 radials and a vertical radiating element albeit on a tiny scale. The radiating element is 82mm long and the radials are each 92mm long.

M0AWS 868Mhz Ground Plane Vertical Antenna
M0AWS 868Mhz Ground Plane Vertical Antenna

Initially I modelled the antenna at a height of 3m above the ground with the radials tilted downwards at 45 degrees. I took this approach as this is how I have built ground plane verticals for the 70cm band in the past and so I thought I’d try the same approach on the 868Mhz ISM band. (I later found this to be detrimental to tuning!)

The 3D far field plot for the antenna shows it has a very nice, relatively high gain lobe at just 2 degrees elevation with a number of lower gain lobes higher up.

M0AWS 868Mhz Ground Plane Vertical Antenna 3D Far Field Plot
M0AWS 868Mhz Ground Plane Vertical Antenna 3D Far Field Plot

Looking at the 2D far field plot you can get a better understanding of the radiation pattern and gain figures at various angles. At 2 degrees there is 6.7dBi gain with the next major lobe being at 8 degrees with 4.36dBi gain, far more than I imagined I’d see for such a simple antenna.

M0AWS 868Mhz Ground Plane Vertical Antenna 2D Far Field Plot
M0AWS 868Mhz Ground Plane Vertical Antenna 2D Far Field Plot

Putting the antenna together was easy enough with particular attention being paid to the measurements of both the radials and radiating element. I soldered some lugs to the ends of the 2.5mm diameter solid core wire radials to enable easy attachment to the N Type chassis socket that I decided to use as the base for the antenna. This worked out well and provided a good solid mechanical and electrical connection for the 4 radials.

For the radiating element I used an N Type plug with the vertical 2.5mm solid core wire element soldered to the inner centre pin of the male connector. I also slid a small piece of insulation down the wire to stop it from shorting against the metal outer of the plug and then pushed in a tight rubber plug to stop water ingress.

M0AWS 868Mhz Ground Plane Antenna Close Up
M0AWS 868Mhz Ground Plane Antenna Close Up

Connecting my VNA I found the antenna was mostly resonant at 790Mhz with an SWR of 2.5:1. I knew this would be the case and that the wires would need a little trimming.

Trimming the wires a couple of times in 1mm nibbles I got the point of resonance up to 868Mhz but, the antenna was still exhibiting a lot of reactance that was keeping the SWR above 2:1. Trimming the radials reduced this slightly but, I could not get an SWR much lower than 1.95:1.

Scratching my head I decided to try moving the radials back up so that they were horizontal rather than at 45 degrees downwards, this had the immediate effect of the SWR dropping to 1.1:1.

M0AWS A rather fuzzy photo of the 868Mhz SWR curve for the GP Antenna
M0AWS A rather fuzzy photo of the 868Mhz SWR curve for the GP Antenna

The SWR stays below 1.2:1 from 868Mhz to 871Mhz which is plenty wide enough for the Meshtastic devices. Why there is so much reactance when the radials are bent down at 45 degrees I am not sure, but it was easy enough to resolve.

M0AWS 868Mhz Ground Plane Antenna
M0AWS 868Mhz Ground Plane Antenna

The finished antenna is tiny but, seems to work well. Signals from my other nodes are up by 6-9dB according to the SNR reports in the Meshtastic app. I now need to make a couple more of these for my other nodes and then hope to hear some other nodes locally once they appear on air.

Remodelling the antenna in EzNEC with the radials as shown above the gain at 2 degrees is now 5.5dBi, down 1.2dBi but, the overall radiation pattern is identical to the original.

Total cost of the build is about Β£1 and an hour of my time tinkering with it, bargain!

M0AWS-4 Meshtastic Node 868Mhz Antenna Deployment
M0AWS-4 Meshtastic Node 868Mhz Antenna Deployment

More soon …

More meshtastic

By: M0RVB
16 March 2024 at 11:55

This Meshtastic business seems often very hit and miss. Locally there is an expectation that it will always work and if you can hit one node one day you should always be able to. Or at least that’s what I glean from comments. Of course, just a few mW at 868MHz is not destined for long distance comms, and yet I can get 24 miles provided the path is line of sight. Not bad. But I can’t manage 1.3km to my nearest neighbour who can get out all over the place. There is a hill to consider there, plus many houses, so not surprising really. Oh yes, and there is the small matter of the antenna still being in the loft so it has to punch through wood and concrete, often wet at that, before it gets to air.

For now, at least locally traffic is mostly messages asking if one can be heard.

There is a series side of course. Nodes can be placed in advantageous positions, run off battery and solar recharged, and left as area repeaters (or routers in Meshtastic parlance) forming a mesh with other similarly advantageously placed nodes. We have this locally to some extent. It is very easy then to get into a position where you a reach those nodes, just don’t expect it to work from your basement. Used correctly – and that probably means used as originally proposed – it is certainly neat, potentially ubiquitous, even anonymous. I already have a use for it at β€˜work’ where I need data comms across 3km with no line of sight and with little or no money available…

For now, we’re all playing and having fun or getting frustrated. The worry is people will give up and lack of coordination will make that worse.

Of course, it’s early days, the software is still being developed, the boards are hard to come by but that will change as stock moves. It’s quite interesting to be in this now, relatively early on and as it develops further.

Stray capacitance effects on SWR at 868Mhz

By: M0AWS
8 March 2024 at 12:25

Following on from my last article on improving the Heltec ESP32 v3 antennas I found during the installation of the 90 degree SMA connector that the device was very sensitive to stray capacitance from things around it. After reconnecting my VNA I found the SWR curve would change substantially depending on what the device was near and so I set about rectifying this.

I decided to remove all the insulation from the single radial inside the unit and then added two more radials to increase the ground for the antenna to tune against. I then removed the N type plug with the antenna connected to it and made a new antenna from a piece of 1.5mm solid core insulated mains wire connected directly to the N type socket, without using an N type plug. Tuning to resonance was much easier than before and I soon had the SWR down to 1.2:1. Moving the device around and placing near to other objects the SWR curve was now much more stable than before with only very slight changes in curve shape.

M0AWS Updated 868Mhz Antenna
M0AWS Updated 868Mhz Antenna

Making this change to the 868Mhz antenna has shown an improvement in signal strength from my node-1 device of almost +0.5dB, every dB counts when you only have 100mW to play with!

The Bluetooth antenna update has made a massive improvement to the usability of the device via the iOS Meshtastic app. Being able to have a reliable, solid connection from anywhere in the house is great and I no longer lose messages because I’ve strayed outside the range of the Bluetooth connection.

I now have 2 new Heltec ESP32 v3 devices on the way to me and will be getting those configured and operational outside with external antennas in the hope of hearing some nodes locally to me.

More soon …

Improving the antennas on Heltec ESP32 v3 Devices

By: M0AWS
6 March 2024 at 20:05

The Heltec ESP32 v3 LORA devices have a coil type Bluetooth/Wifi antenna on the PCB from the factory. This antenna doesn’t work particularly well and has very limited range so, I decided to do something about it.

Getting out the calculator a quarter wave at 2400Mhz is 29.7mm. Looking at the coil antenna on the PCB I decided the best way to connect the new antenna would be to solder it to the coil of the existing antenna. This would short out the coil completely whilst creating a solid mount point for the new antenna.

After a little measuring I decided to use a 31mm long piece of 1.5mm hard core mains cable for the new antenna. I stripped back the insulation from one end of the wire so that the exposed copper wire was exactly the length to short across all the windings of the coil antenna on the PCB.

Attaching replacement Bluetooth Antenna to the Heltec ESP32 v3 Device
Attaching replacement Bluetooth Antenna to the Heltec ESP32 v3 Device

Attaching the the wire to the coil was easy enough to do but, it’s worth pointing out that you need to be quick so that the heat doesn’t transfer down onto the PCB desoldering the coil antenna from the device.

Whilst tinkering with the Bluetooth antenna I decided I would also make a neat little quarter wave 868Mhz vertical antenna for this device whilst I had it all apart. This is my Meshtastic node-2 and it’s sole purpose is to allow me to use my iPad to send/receive messages via bluetooth which are then forwarded on to my base node-1 in the house. Node-1 is connected to the house wifi and the Meshtastic MQTT server. This combination allows me to message people on the mesh even though there are no local nodes within RF range.

Running the numbers for the 868Mhz antenna the vertical will need to be around 82.1mm long with a radial of similar length. I had to hand a very nice SMA to N Type chassis mount socket that would be ideal to mount the antenna to the case. I drilled out the holes in the case, measured out the wires and attached it all to the case. Connecting the antenna to the N Type socket I connected my VNA and set about tuning the antenna to resonance.

M0AWS Hidden Radial for the 868Mhz Heltec Antenna
M0AWS Hidden Radial for the 868Mhz Heltec Antenna

Squeezing the radial and SMA connector into the case I realised I really could do with a 90 degree SMA connector so, I quickly ordered one from Amazon which will be delivered tomorrow. Connecting up my VNA, I had to trim the antenna down to get it to resonance. The SWR ended up at 1.2:1 which is ideal. I ended up cutting off more wire than I thought I would to get the antenna to resonance but, this is due to the extra capacitance caused by the insulation on the wire. If I had used bare copper wire then I wouldn’t of had to cut so much off. I eventually ended up with around 72.9mm of wire for both the antenna and radial.

M0AWS Heltec ESP32 v3 Device with replacement Bluetooth and 868Mhz Antennas
M0AWS Heltec ESP32 v3 Device with replacement Bluetooth and 868Mhz Antennas

Putting the device back into the case and connecting the USB battery the device fired up and immediately connected to my node in the house. Checking the signal strength of node-1 in the house I could see a 7dB increase in signal strength compared to the little wire antenna that comes with the device. This is a significant improvement for such a simple antenna and well worth the effort.

Next I had to drill a hole in the front of the Heltec case so that the Bluetooth antenna could poke out the front and be bent up vertically. This worked out really well and improved the Bluetooth range massively.

M0AWS Completed alterations to the Heltec ESP32 v3 antennas
M0AWS Completed alterations to the Heltec ESP32 v3 antennas

Putting the node back in the house and taking my iPad down to the end of the garden some 30m away I could instantly connect to the device via Bluetooth from my iPad, something I’d not been able to do prior to adding the new antennas. I can now use the Heltec device via Bluetooth from anywhere in the house or garden making it much more accessible.

It’s amazing the difference an hour and two little pieces of wire can make to these devices and is well worth the effort.

More soon …

Loading Meshtastic Firmware onto Heltec ESP32 v3 Devices

By: M0AWS
4 March 2024 at 14:26

The loading of the Meshtastic firmware on the Heltec ESP32 v3 devices is really simple if done via a Linux PC/RaspberryPi. There are of course other ways to load the firmware using a web browser that supports USB/Serial devices and this method is preferred by many however, being a Linux command line junkie I far prefer the simplicity of using the Linux command line to do the job.

So, how much experience with the Linux command line do you need?

In all honesty none at all. If you know how to use copy and paste then all you have to do is follow the simple steps I’ve detailed below. In reality it will only take a few minutes to do so, don’t be put off by the long article, I’ve just tried to cover everything and provide screen shots along the way.

To get started fire up your Linux PC/RaspberryPi and get yourself to the desktop. Next you will need to open a Linux command line terminal. This is often just called β€œTerminal” on most Linux desktop installations.

The first thing you need to do is check to see if you have python3 installed. This is done using the following command:

python3 --version

Running the above command you should see a result something like what is shown below.

Python3 command showing installed version
Python3 command showing installed version

Next we need to check if pip3 is installed using the following command:

pip3 --version

If pip3 is installed then you should get a result similar to that shown below.

Pip3 command showing installed version
Pip3 command showing installed version

If your computer doesn’t have Python3 or Pip3 installed they can be easily installed from the command line. To install Python3 enter the following command into your terminal:

sudo apt install python3

You will be asked to enter your login password and then the installation will begin. You should see output in your terminal similar to that shown below.

Installing python3
Installing python3

To install Pip3 enter the following command into your terminal:

sudo apt-get install python3-pip

This will detail a long list of packages that will be installed on your computer, Enter Y to answer Yes and let the packages install.

M0AWS - Installing Pip3
M0AWS – Installing Pip3

You will see many messages scroll up the terminal screen such as getting, selecting, preparing, unpacking and setting up, this is all normal.

Once Pip3 is installed you should be dropped back at the command line with a terminal screen that looks something like the one below.

M0AWS - Pip3 install complete
M0AWS – Pip3 install complete

At this point you will now have Python3 and Pip3 available on your computer.

You are now ready to install the tool we are going to use to check your Meshtastic device is connected to your PC and install the firmware to it. (Do not connect your Meshtastic device to your PC just yet!)

Run the following command in your terminal to install the ESP Tool:

pip3 install --upgrade esptool

You will see an output from the installation process similar to that shown below.

M0AWS - Installing the ESP Tool
M0AWS – Installing the ESP Tool

Now that we have the ESP tool installed plug your Meshtastic device into your USB port on your computer and then run the following command to interrogate the device to find out what kind of device it is.

esptool chip_id

You should see the information about your device that looks similar to that shown below. This information should confirm the device type (ESP32) and which USB port it is connected on (/dev/tty/USB0).

M0AWS - Expected output from the ESPTool command showing device information
M0AWS – Expected output from the ESPTool command showing device information

Once you have this information you will need to download the firmware for your device from Github using the following URL:

https://github.com/meshtastic/firmware/releases

At the time of writing this I downloaded and used the v2.2.22.404d firmware which I have found to be extremely reliable.

In your terminal you now need to change directory (cd) into the Downloads directory where your downloaded firmware should be. (If you downloaded your firmware into another directory then you will need to cd into that directory). Use the following command to change directory into the Downloads directory.

cd ~/Downloads

Now we need to find the filename of the firmware we have just downloaded, we can use the list directory contents command to find the file using the simple command below.

ls -la firm*.zip
M0AWS - List firmware file name from the Linux command line
M0AWS – List firmware file name from the Linux command line

In the screenshot above we can see that the filename is called
firmware-2.2.22.404d0dd.zip.
We now need to unzip the file using the unzip command.

unzip firmware-2.2.22.404d0dd.zip

You’ll see lots of output from the unzip command about inflating files etc, this is normal.

Once the file has been unzipped you are ready to load the firmware onto your Heltec device. First you need to find the .bin file for your Heltec device. Use the following ls command to list the files available.

ls -la firmware-heltec*

This will list out all the firmware file options for the Heltec device as shown below.

M0AWS - List of Heltec firmware files
M0AWS – List of Heltec firmware files

The file you need to use for a new firmware installation on a Heltec v3 device is
firmware-heltec-v3-2.2.22.404d0dd.bin. (If you downloaded a different version then the version number in the file will be different).

Using the filename you found above enter the following command into your terminal.

./device-install.sh -f firmware-heltec-v3-2.2.22.404d0dd.bin

This will now clear down your Heltec device and will load the Meshtastic firmware. This will take a little time especially on slower computers like the RaspberryPi so, just let it run until it finishes. Do not interrupt the process whilst it is running.

Installing the Meshtastic firmware onto my Heltec ESP32 v3 using the Python command line tool
Installing the Meshtastic firmware onto my Heltec ESP32 v3 using the Python command line tool

Once the firmware is loaded the Heltec device will reboot and you will see the Meshtastic banner on the OLED screen. Your device is now ready for configuration.

Now that you have Python3 and Pip3 installed you can load the firmware onto other devices just by downloading the firmware and then running the device-install.sh script file, you won’t need to install Python3 or Pip3 again.

If you want to update your device in the future to a newer version of the firmware then just use the update script and update binary file as shown below.

./device-update.sh -f firmware-heltec-v3-2.2.22.404d0dd-update.bin

That’s it, you are now a Linux Command line junkie!

More soon …

More meshtastic ideas

By: M0RVB
4 March 2024 at 08:40

I had a change of plan. I’ve installed the Python API on one of the radio Pi systems, relocated the node that was hanging in the window up into the loft and connected it to the Pi directly. The node has been set back to using Bluetooth. Now I can get the raw(-ish) data via USB using the meshtastic app and also access the node from the phone. The mobile node – or rather the other node that is intended to be a mobile node when I get a battery etc. – is now disconnected. I will run this off a power bank at some stage and do some range testing but my power bank is currently not even in this continent…

The raw(-ish) data is quite interesting and gives some insight into how the device works, although still at quite a high level. Two examples:

DEBUG | 08:33:54 34116 [RadioIf] Lora RX (id=0x2c340449 fr=0x0c to=0xff, WantAck=0, HopLim=2 Ch=0x8 encrypted rxSNR=-13.75 rxRSSI=-130

INFOΒ  | 08:33:54 34116 [Router] Received DeviceTelemetry from=0xda5c870c, id=0x2c340449, portnum=67, payloadlen=24

I am going to code something to work this data into a useful output, just for fun of course.

In other news, apparently the MacOS app has now been updated to fix the missing messages.

Meshtastic progress

By: M0RVB
3 March 2024 at 10:57

It appears that the web client is not full featured – so I am told anyway – so presumably I should not expect it to work the way I had thought. Never mind, now that the iOS app has been updated it appears to receive messages fine, at least through the second T3S3 device I have.

So, my setup so far (so far? It’s not likely to expand…) is this:

  • One T3S3 (Node A) is directly connected to a collinear and is accessed via wifi. For this, the web app will send messages but not receive them.
  • One T3S3 (Node B) with its supplied tiny antenna is powered by USB and accessed via Bluetooth and the iPhone. The MacOS app does not receive messages but the phone does, so all is well.

There are issues here though. Because Node B is getting all of its information from Node A it shows every node in the area as having a good signal strength which is false as only one or two do. Also, when a message is sent it is (presumably) acknowledged by Node A (I am not sure on that) which is not a good indication that the message is actually going anywhere.

For Node A with its wifi connection I have installed the Python API on my Linux box (and also on the Mac but I’d rather it be on Linux) and have a small Python script which reads all data provided by the node and writes to a file – for now. A program then parses this and produces useful output, for example when nodes advertise or messages are sent. The next step for this is to make a database so that nodes can be recorded along with their positions, signal strength and times etc.

This is all just a bit of fun really as I always liked playing with data and transforming it and such – a fair bit of my work (when I did actually work) was related to this. I’m sure that now the iOS app has been updated I can swap Node A over to use Bluetooth and access it directly but this way I get a record of everything in the area too. It does add a hop to messages going out from my Node B but I can always adjust that setting anyway.

All in all Meshtastic is a fun / serious / useful β€˜thing’ quite literally able to form ad-hoc networks for very little outlay or even experience. Devices can be put in a weatherproof box with a reasonable antenna, plus a battery and maybe a GPS, and perhaps even a solar charger, and positioned in an area to form an ad-hoc network – just like it says on the tin.

Meshtastic issues

By: M0RVB
2 March 2024 at 09:18

There is an issue I cannot put my finger on. I discovered now that I can send messages to the mesh. I know this because I sent a test and the node displayed an answer, but the app did not (neither iOS or MacOS). I just happened to notice the reply on the tiny screen by chance.

After a lot more fiddling and getting nowhere fast I connected the newly flashed node to wifi. This disabled Bluetooth so the iOS and MacOS apps no longer function. The web app does, and this comes directly from the node itself via a browser. The web app can also successfully send messages, but not receive. However, using the Python API I can see all data coming in and the replies are all there. So there is some disconnect between the node and the higher level methods of access, but not the data coming from the node. Odd.

Others have reported similar and the iOS app was updated yesterday so that is another thing to check but the issue above is rather odd. An update to the app does not update the web app, that needs another firmware update.

For now, more fiddling… but at least I can see the data so I can always write something to handle it rather than relying on the inbuilt web app or client apps. So… Python… been meaning to learn it like forever!

Update: running one node via Bluetooth and the phone I can send and receive messages via my other node. Nothing appears in the web app still, but at least I have it working. That leads me to blame the web app itself so I have reported it as an issue.

More Meshtastic (edited)

By: M0RVB
29 February 2024 at 12:08

The 868MHz node has gained a collinear and both nodes are now in the loft powered over a long USB extension that was already routed up there. I was surprised to see numerous peer messages appearing in the web app and after some fiddling these decoded into names etc. and the web app plotted them on the UK map. At present there are 50 nodes, some as far south as Sheffield, one in and two to the east of York, one in Knaresborough, and a cluster nearby and out to the west as far as Hebden Bridge. Some of these are named after callsigns but of course this is not an amateur radio thing so anything goes. The web app recorded a bunch of messages too between people. Sadly, no-one can hear my node so there is work to do yet, not least putting the antenna outside. I have another 868MHz device on order so I can check that the node in the loft is actually transmitting and if so, do some basic range tests.

Another day… I ordered another T3S3 unit which arrived this morning, less than a day since I ordered it! Anyway, on powering it up it immediately saw nodes and messages. It appears that the node in the loft was just passing messages to it, which is after all what these things do. So I have removed the loft node, brought the collinear down and connected to this new node leaving the other powered off. After resetting the Node database it can see nodes but all with β€˜bad’ signals (I did not enable the receive boost). I am using Bluetooth to connect to this, not wifi, so it is a virgin setup. At least this proves as far as I can that it is just this node receiving these others. Perhaps the few local nodes will pipe up later on and I’ll see something other than bad signal strengths. The antenna, with the node directly connected is currently hanging in the window so putting it outside is the next step.

Actually the next step is to re-flash the now-disconnected node and start from scratch because I am convinced I messed something up while fiddling! Then I can use that one for a range test.

Tech Minds: Testing Meshtastic Compatible Lilygo LoRa Devices

By: admin
27 February 2024 at 10:02

In the latest video on the Tech Minds YouTube channel Matt tests out the Meshtastic software running on varius Lilygo LoRa devices. Meshtastic is software that can run on cheap LoRa hardware that enables off-grid mesh network based communications.

Being mesh network based means that there are no central repeaters, and instead each device can extend the range of the network by being a repeater itself.Β Meshtastic can run on various cheap 'Lilygo' branded LoRa devices that come in 433, 868 or 915 MHz license free frequencies depending on your regional band plan.

In his video Matt tests out various models in the Lilygo range, including a ESP32 based wrist watch and he also shows how to install the firmware on each using the online flasher.

YouTube Video

Meshtastic

By: M0RVB
15 February 2024 at 20:16

I just got two Lily LORA modules with Meshtastic firmware loaded, one on 433MHz and one on 868MHz. Both arrived with old firmware but that is no issue as the firmware is readily available, and anyway the documentation seems to recommend that loading the latest firmware is the first thing to do.

There is a Meshtastic app for the iPhone and Mac (others available) with features replicated between them.Β 

However, my thoughts of updating fell at the first hurdle. There are three options, use a web flasher, a CLI version or use a serial adapter. The web flasher requires Chrome or Edge and all my PC kit is in bits because of the leaky pipe. The Mac does not have Chrome nor is Chrome getting anywhere near it! There is a CLI option which requires brew and python3 / pip all of which need installing, leaving me to wonder if I (a) install all that on the Mac or (b) fettle the Windows PC together sufficiently to use it.Β 

So, Windows PC on the floor, monitor resting against it (the monitor lives on a 4x stand so has no feet attached), Edge loaded and the 433MHz unit plugged in… finally found the web flasher which asks which serial port to use. How do I know? Windows seems to imagine devices and change them at will. Ok, unplug the Lily and see what options change. None. Hmmm. Right, get the 868MHz unit… helpfully the flasher info suggests one needs to hold the Boot switch while plugging the unit in, and that indeed made it appear as a known USB / COM combo. All seemed to go well with meaningful messages until it came to downloading the firmware, where it waited… and waited… 10 minutes went by, some confirmation of something happening would be useful…  I gave up after about an hour and decided to go with Plan A and install brew on the Mac.Β 

That went ok after numerous steps including having to figure out where it had put the key piece of Python code. On went the 433MHz unit and the code to update the firmware all worked fine. Lots of settings sent to the device later I thought I had everything set correctly. However, the app now refused to connect. No amount of coercing, dancing, shouting etc worked. So I progressed to the 868MHz unit which, despite the confusion with the Windows PC had actually received the latest firmware. But again, no connection via Bluetooth. Then finally a nugget of information made me remember that as things had changed I needed to β€˜forget’ the devices in the Mac’s bluetooth settings – then both devices connected.

So, two devices, one on 433MHz and one on 868MHz, with the stock teeny antennas are not going to get very far as one would expect. Early days… better antennas needed and I’ll see then if these nodes can find any others nearby. Until then the nodes can be set to report to a central MQTT. They are very able little units and in fact the 868MHz unit is very similar to the one I use for TinyGS.

My writing here is about my own experiences so far. M0AWS has a blog post going into far more detail here https://m0aws.co.uk/?p=2807 and the mothership of information begins at https://meshtastic.org

868MHz Meshtastic module
433MHz Meshtastic module

A venture into the world of Meshtastic

By: M0AWS
15 February 2024 at 15:04

Meshtastic is a relatively new thing in the internet of things (IOT) world and is gaining traction in the U.K. at the moment.

So what is Meshtastic?

Meshtastic is an open source, off-grid, decentralised mesh network built to run on affordable, low-power devices on the 868Mhz industrial, scientific, and medicalΒ (ISM) band. (Some devices can also run on the 433Mhz 70cm HAM band.)

The ISM band is licence free but, has limits on the RF power levels that can be used. The one plus over the HAM bands is that you can legally transfer encrypted messages over the ISM band making it secure.

The best way to think of Meshtastic is a radio version of the online decentralised Matrix chat system but, without the large server requirements and ever growing database!

Heltec ESP32 v3 Wifi, Bluetooth and 868Mhz device for Meshtastic
Heltec ESP32 v3 Wifi, Bluetooth and 868Mhz device for Meshtastic

There are quite a few Meshtastic compatible devices on the market today with many costing around the Β£20 mark whilst others like the LillyGo T-Echo costing over Β£100 in the U.K. even though they are less than half the price in the USA.

Since I’m just starting out on my Meshtastic adventure I thought I’d start with a pair of Heltec ESP32 v3 devices that are normally readily available on Amazon but, due to the current push to build a U.K. wide mesh, they are currently out of stock pretty much everywhere.

Loading the Meshtastic firmware onto the devices is fairly straight forward and can be done using the web installer via either the Edge or Chromium web browsers.
(Note: If using Windows O/S you will need to install some drivers from the Meshtastic website to be able to communicate with the devices)

Having neither of the two browsers and being a Linux command line junkie I decided to use the Python programme to load the firmware onto the two devices. It’s worth noting that you don’t need any drivers to be able to communicate with the devices if you’re using either Debian or one of the many Ubuntu flavours of Linux O/S.

Using the Python command line program sounds like a more complicated approach but, in reality it’s super simple, extremely reliable, quick and if like me you use a Linux PC in the radio shack then you most likely already have most of what you need to get the job done. Just follow the simple steps as laid out on the Meshtastic web site and you’ll have the firmware loaded in no time at all.

Installing the Meshtastic firmware onto my Heltec ESP32 v3 using the Python command line tool
Installing the Meshtastic firmware onto my Heltec ESP32 v3 using the Python command line tool

The firmware takes less than a minute to copy across to the Heltec device and is automatically rebooted ready for configuration once the transfer has completed.

It is possible to configure the device via the command line tool however, since there is a nice GUI app for both Apple iOS and Android devices I decided to install the Meshtastic app on my iPad and connect to the device via Bluetooth to configure it.

Once you’ve got the Meshtastic app installed on your device and have connected via Bluetooth you’ll be ready to start configuring the device to join the mesh. The first thing you want to do is set the region. This is different in each country but, in the UK we use the EU_868 region settings. This will set the device to use the 868Mhz ISM band which is the band being used to build the U.K. wide mesh.

View of the Meshtastic app on iOS showing the configuration options for the Heltec ESP32 v3
View of the Meshtastic app on iOS showing the configuration options for the Heltec ESP32 v3

There is a multitude of configuration options within the app which I will go into in greater detail in a series of articles at a later date.

Heltec ESP32 v3 running Meshtastic Firmware
Heltec ESP32 v3 running Meshtastic Firmware

For those of you that, like me aren’t near any other nodes you can connect the devices to the internet and use the Meshtastic MQTT server to communicate with other nodes. This of course isn’t off-grid but, it will get you started until the mesh grows into your local area at which point your device will automatically start communicating with the other nodes over radio.

Meshtastic MQTT connectivity
Meshtastic MQTT connectivity

Once you are connected to either the MQTT server or other nodes via radio you will see the other node details appear in the Meshtastic app. It’s interesting to look at the information and see signal strengths and traffic levels etc for each node.

View of the Meshtastic app on iOS showing Nodes in the Mesh and Device Metrics for the M0AWS-1 Node
View of the Meshtastic app on iOS showing Nodes in the Mesh and Device Metrics for the M0AWS-1 Node

There are a multitude of cases available for the Heltec v3 devices, especially if you have access to a 3D printer. One of the nicest cases I have seen is the Bender from IKB3D (I know, it’s a strange name!) but, it really is a super little case for the Heltec series of devices.

Bender case for Heltec ESP32 v3 devices
Bender case for Heltec ESP32 v3 devices
Bender case for Heltec ESP32 v3 devices

You can either buy the 3D print files for Β£8.99 and print it yourself or just order a pre-printed and assembled case directly from the website although, due to demand there is a long lead time currently.

More soon …

❌
❌