New Plugin - RangeTestPlugin

Looks great, and the plugin is an awesome example it made me want to make a local to device route recorder plugin like my AllTrails app has, I might have to dig into the code more later.

1 Like

Hi mc-hamster, very interesting plugin! I am testing it on my 2xttgo-lora32-v1 with firmware firmware-tlora-v1-EU865-1.1.48.bin , plugin built on 27/2. I set both of them with range_test_plugin_enabled 1 range_test_plugin_save 1 , range_test_plugin_sender 60. Both ./static free space is > 300Kb , both nodes have been set with fixed_position_ true and were given the same GPS position. Let’s call them vinloren1 and vinloren2. What happens is that I can see the seq x messages they exchange each other on their screens and if I watch at (vinloren1) I actually see the log records where the gps coords of vinloren2 (tx lat, lon) are shown as well as the seq x received but the coords of rx (vinloren1) are 000,000. Even if I connect the App to vinloren1 still the rx coords are stuck to 000,000. If I connect the App to vinloren2 I can see the coords of tx change in rangetest.csv on vinloren1 correctly.

I checked also what happens on the other node at (vinloren2) but no rangetest.csv file is there at all even though the messages from vinloren1 appear on its screen correctly What might be causing this unexpected behaviour?

1 Like

I tried to tweak the node not showing the rangetest.csv file so I rebuild the code from source 1.1.33 then I updated it to 1.1.50 using esptool. Now the rangetest.csv file is there and this node now works exactly as the other one. Still the rx coordinates are stuck to 000,000 also on this device the same as on the other one.

Great work @mc-hamster my base unit without GPS is now logging position and distance is working as well.

It really works well to have a base station be the sender and the unit you carry be the receiver when using the plugin, it has really helped me understand lora range better, thanks!


I finally got my radios, and was able to test the Range Plugin out. I used the settings mentioned in the docs

# Sender 
meshtastic --set range_test_plugin_enabled 1
meshtastic --set range_test_plugin_sender 60

# Receiver
meshtastic --set range_test_plugin_enabled 1
meshtastic --set range_test_plugin_save 1

I was impressed with the range the default tbeam antennas had. One cool thing i did I hadn’t seen mentioned was load the resulting CSV into Google Earth to plot the points. I had zero packet loss in a fairly dense suburban neighborhood up to 1.3km. Excited to see how far I can stretch it. I would have gone further but my sender placement wasn’t ideal and I hadn’t attached screens (and I have iOS, which isn’t pairing well to the alpha build at the moment) so I had no idea if the two radios were still talking or not.


Oh rad! Didn’t know you could do that! Could you share a screen shot of your Google earth results?

How’d you do the import?

I’ll add your instructions to the range test documents.

For sure, let me pull one together! I’ll tweak some things to “pretty-ify” it.

1 Like

I need to make this a feature for meshtastic-pygui so we can make a DB to track settings and ranges

1 Like

  • Download (link) and open Google Earth

  • Select File > Import

  • Select CSV

  • Select Delimited, Comma

  • Make sure the button that states “This dataset does not contain latitude/longitude information, but street addresses” is unchecked

  • Select “rx lat” & “rx long” for the appropriate lat/lng fields

  • Click finish

  • When it prompts you to create a style template, click yes.

  • set the name field to whichever column you want to be displayed on the map (don’t worry about this too much, when you click on an icon, all the relavant data appears)

  • select a color, icon, etc. and hit ok.

  • Your data will load onto the map, make sure to click the checkbox next to your dataset in the sidebar to view it.
    Screen Shot 2021-03-17 at 3.58.26 PM


Awesome beans! I’ll updated my local copy of the range test instructions. It’ll be merged into the main one some time over the weekend.

Cheers! This is awesome!

1 Like

So with some looking around, I found that google maps might work even easier (no necessary download). You can use It takes CSVs and the whole interface is much easier to work with.

Google has instructions on how to do that here
You can style the ranges differently based on the values, so you can have the pins be darker the if the SNR or RSSI (if that gets added) is higher. In this example, I had the distance in meters change the color of the pins.

These maps are also sharable.


That is what I had been using, but thank you for reminding me of the great google earth desktop app, it struggled way less with some big imports from alltrails I have been trying to wrangle and the path drawing and measurement tools are great.


I updated the docs with that information too. It’ll be published in a few days.


are messages still relayed? For example I have my solar node on a Mast not in rang test mode, and running a a receiving node on the ground. than i want to take the sender around… I assume yes… if we don’t know yet than ill update later.

The range test plug-in doesn’t do anything on the network layer. It just sends periodic messages and then saves those messages, after applying some math.

Everything will continue to work as before.

1 Like

this si super cool, I just tested today!


Ahh, OK really excited, going to attach one to the mavic 2 tomorrow and fly around in different areas lol. thanks Mc!


When you Disable Range Test meshtastic --set range_test_plugin_enabled 0
Does it automatically shut of range_test_plugin_sender And range_test_plugin_save?

If enabled is 0, then none of the code for the other features can run. So, the other configurations are not reset but it doesn’t actually matter since it’s as if they don’t exist.

Hey there,

I am now ready to do some serious range testing in the next days (probably weekend). I want to share my plan in case there are any suggestions on how I could improve.

This is the hardware I got:


  • City (53.561271, 9.939157, Hamburg, Germany)
  • Access to a rooftop 25,5m above ground / 45m above sea level
  • My building and the ones around it are very new and build with reinforced concrete

My plan:

  • I want to put some different board setups on top on the roof as receivers
    • One T-Beam with original antenna
    • One T-Beam with external antenna
    • One LORA32 v2.1 with external antenna
    • One LORA32 v1.3 with original antenna
  • I will circle around my neighbourhood with some sender boards
    • One T-Beam with original antenna
    • One T-Beam with external antenna
    • One LORA32 v1.3 with original antenna


  • Does it make sense to test different sender/receiver at the same time, or would every message be delivered through the mesh if any constellation has a connection
  • I noticed the LORA32 boards (without GPS) found their correct location on the apps map - do they get it from the smartphones location or is it magic?

If the range tests delivers good results, I want to put the board with the best reception on the roof as a relay and add a solar cell to have it charged when the weather is good.

Any thoughts or suggestions? :slight_smile: