Redeploying LoRa modules

After having ditched Meshtastic, for now at least, I had a fiddle with two of the LoRa modules with a view to repurposing them. And there they are. The first is a LoRa APRS r/o iGate, listening on 439.9125MHz, and the second is a receiver for radiosondes listening around 400MHz.

T-Beam LoRa module set up as a LoRa APRS iGate

Nestled under a 70cm ground plane in the shack is, of course a good way to ensure nothing is ever received unless it is very close! However, it is destined for greater things… although at the end of the day it’s just me fiddling. The LoRa APRS map is at

TTGO device set up as a radiosonde receiver

The radiosonde one stands a better chance of actually receiving something, especially as it is currently connected to the 70cm big wheel antenna in the loft. See

The plan is to connect these two along with the module running TinyGS to a common antenna currently in the loft. They will be connected using a Crosscountry Wireless multicoupler which is due to arrive in a day or so.

Fun while it lasted…

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

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…

QSO logging

Some time ago I wanted a logging program that would do things my way. Although there is absolutely nothing wrong with any of the various offerings they generally try to be everything for everyone and none of them really sat well with me. So I wrote my own in PHP (learning Python is high on my list of things to do, along with Mandarin, Morse, cooking…) which uses the logbook as the backend. Ok then, really I wrote a series of various scripts in PHP that make it all work. The advantage is it does just what I need and nothing more and can easily be modified to add functionality. The downside is I never was a coder (well, ok, I have a certification in COBOL from the 1970’s!) and it is not going anywhere other than my own server. So you can’t have it…

The way I tend to log stuff is via wsjt-x or other software that logs to a local file. I then have a script that takes the ADIF data and populates on a QSO-by-QSO basis. Somehow having to actually do something after each QSO feels like I am actually engaging in the process. But I am not a contester… it would simply not work for any stress situations (but then I could easily make it work if I so desired…)

With being the master a script then populates a local database which does all manner of stuff that I personally need. For example, it holds records of eQSL sent/received, real QSL sent/received, and various tabular data for Worked All Britain (WAB).

Scripts also modify the wsjt-x log file on all my systems such that each has a record of all QSOs. As is globally accessible (not tried from China mind… not that I plan to take any radio gear there anyway) and my main database is on a VPS so is also globally accessible the various scripts work from anywhere.

I do plan to move the database from the VPS to a system at home once we get FTTP broadband and use the VPS as a backup, synchronising between the two. But that will wait.

One plan which is more immediate is LoTW integration because as yet my LoTW logging is via which means an extra step. No biggie, I mean it’s its a few clicks and a password… but it would be nice to integrate it. The same goes for eQSL sends, but as yet I only send on receipt and I have scripts to deal with that anyway.

Current Meshtastic setup

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.

More meshtastic

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.

Pi reduction

I’ve been rationalising hardware, in particular as the PoE HAT on the Pi running the GB7RVB packet mailbox was noticeably noisy and needs replacing. I had originally moved the packet mailbox off of my AMPRnet router Pi as I needed to install a VPN and the networking was becoming a bit too complex for my liking. In the end I had no use for the VPN, so GB7RVB has gone back, removing one Pi.

Linbpq went across just fine – there is an apt for it ( so installation is easy. Just install and copy the config across and the files under /opt/oarc/bpq (there are neater ways but this sledgehammer method works). With the node running I could access via the web interface as expected, but then the axudp route disappeared.

Then I realised that our broadband router had a NAT rule for the UDP port needed for axudp and that was still pushing it to the now switched off Pi. And I’m sure I’ve forgotten this same thing before! So now I have a note as a reminder, assuming I bother to check the note…

Now having removed one Pi with a noisy fan the NTP server Pi is also whining. Grumble.

More meshtastic ideas

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

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

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.



Recent Posts