Prototype App for viewing rangetest.csv

Haven’t managed to find a viewer for visualizing rangetest.csv (other than opening in Google Earth or similar, but typically just plots the nodes as points with no further visualization)

… so starting building my own.

It takes a rangetest.csv file (only tested with the one from the Android App!), and plots all nodes on a zoomable OSM map; both your own (incase mobile!) - Red and remote notes - Blue, as well as drawing a line between them when messages.

Its just the “Export rangetest.csv” in the main menu. Haven’t looked at the one from the Range Test module yet.

All data is processed in browser, never uploaded. Can press Ctrl-U to view code.

Definitely just at the prototype at the moment, lots of features to add!

  1. Date Range Filtering. Only see data from certain dates
  2. Click on a Node to only see contacts from that node (or if clicking a red only contacts received at that point)
  3. blue lines are currently just sized by hop-limit. Thinner lines imply they came further (as hop limit lower!). Could be sized/coloured by SNR (no RSSI alas!), and/or number of messages.
  4. Show node names (alas rangetest.csv only contains the long names - not the short name)
  5. rangetest.csv only includes names of senders currently in your node list. Should be able to upload older files to get the mapping of ids->name (at the time that file was made).
  6. Way to visualize nodes, when dont know location. (eg could show them as a ‘cloud’ around the receiving node)
  7. Search for a node (eg by name)
  8. could show the actual message payload(s) in the popup when click.

No idea if going to be possible, but seems like might be make a guess at when messages are multi-hop. Kinda like the traceroute attempts to do. Will be fun to try, as a ‘stretch goal’.

Any interest in further developing this? Feature requests/bug reports welcome


Really nice work, thank you for sharing with the community!

I typically load it into QGIS and analyze to my heart’s content, but it’s true the learning curve is quite steep (the tradeoff is very powerful geographical/db analysis and python automation). Thanks for sharing, this could be an easier way to go for less experienced users.

I have been looking for something like this for some time. Trying to get enthusiasm and use cases for the LoRa geeks in Singapore. 4G M2M SIMs are dirt cheap, and we do not anticipate the Zombie Apocalypse, so interest quickly drops off.

I would be very happy to provide resources for your development (I used to be a Linux guy, so unless you can give me bash and vi and awk on the ESP, I am no use in development).

What I would like is to take a device (with built-in GPS), put in my car, and drive around town for a week. Then postprocess rangetest.csv, so that for each node seen, I join the points where I saw it. Hopefully (we are a dense urban environment) I will start seeing curves.

If it works, I can then ask others to drive around with it, or take it on a daily commute, etc.

My target device is a Nano G2 Expolorer (has GPS, nice robust case). If it would help development, please let me know, I can reimburse you for one (or whatever other device would aid development).

New to Discourse, so please do email me at .

If anyone else would like a device to help barryhunter develop and polish this, please also email me.

Thank you for your work, and remember, no one expects the Zombie Apocalypse!

wRFs, Are you plotting both the sender and rx node, and some sort of line connecting them or just ‘points’ in QGIS?
… interesting if so, although I hope this can make interactive visualization with extra tweaks.

ghane, that is definitly what I was kinda thinking with the showing the nodes without a position as floating nodes connected to my node. If get connections from multiple locations would pin the location down a bit.
… not getting into accurate positioning with exact timings or anything, but definitly could see being able to get rough positions.

Dont need resources as such, other than testing, and discussion on ideas (to keep me interested!)
… as it happens I did another trip over the weekend with the device, so have more data to play with.

I like your tool Barry, much quicker than creating a Google Mymap, which is what I have been doing.

The display gets a bit messy when your range test route crosses back over itself, but I appreciate your work. I’ll keep checking back to see if you have made any improvements.


Very nice, thank you for building and sharing!

I finallytested with rangetest.csv exported from an ESP32-module. It works fine!
One big caveat:
For some reason I sometimes have range test messages lat & long from either sender or rx with coordinates 0, 0. Thus, the amount of lines to the west-african coast is pretty high.

A feature request if I may: some way to give a distinct colour (or form?) to each node.

Thanks. Sounds like it just exports the data with lat/long of 0,0 then. The andorid app leaves those columns blank when no data. Easy enough to add exception for 0,0.

Have updated the version, to ignore 0,0. Easy fix.

The larger changes discussed will have to wait until find more time to dedicate to it!

@barryhunter really wanted to say thanks again for this excellent tool. I’ve started to run my rangetest.csv files through your tool about once a week. I really recommend others try it, I’m finding contacts in places I never imaged I would. Often times just position updates or telemetry broadcasts, so nothing that would have otherwise shown up on my node list.

Just tonight, I found one of my most interesting contacts. At just over 60 miles away, with a ground speed of 416mph based on it moving 50 miles in just over 7 minutes. I’d thought maybe it was on approach to the Harrisburg International (MDT), but it wasn’t descending at all, so who knows(* see edit later in post).

Anyway, just wanted to share…and say thanks again for this excellent tool. This is just one of many interesting contacts I wouldn’t have discovered without it! Everyone should make a habit of running their rangetests through it…never know what you might find!

Edit: It’s flight G42919, ORD → MDT

I love this! It would be great to get the code published somewhere that we can contribute.

That said, it already does most of what I want it to do. The exceptions being coloring the nodes with the latest SNR and splitting out the javascript into a separate file to make it easier to work with

I’ve updated the app to add a basic filtering (have some huge rangetest.csv files these days!), same link

Can filter by Day, Packet Type, and/or Sender.

Can select multiple days to view at once. Note that if select a filter the other filters dont update (eg if select a day the senders option still show all senders)

Still only allows one file at once. Still hope to allow uploading multiple, because the when export it only includes names of nodes in the current nodelist. Whereas might have the name in a previous file.

Also have uploaded to github

… can submit issue reports, feature requests and/or pull requests there.

(for now I like it being one file, makes it easier to edit, and more portable - everything self contained)


Thats great!

One of the reasons I wanted a viewer, is there is lots of interesting contacts buried in the data (haven’t seen anything as cool as a airplane in flight yet!). that can easily be missed just looking at the live node-list + map in the App.

Really enjoying the updated mapping tool! I continue to find lots of interesting contacts that didn’t otherwise appear on the node list. “buried in the data” is truth!

Wishful thinking, but would be great to see something similar make its way into the official App. The data is in there, after all, all it would take is some correlation. I say that without knowing anything about mobile app development, of course, but a guy can dream :slight_smile:

Thanks again for the continued development, and thanks doubly for making it all public!

Regards from Blue Knob, PA, USA!

1 Like

Well conceptually at least, I could perhaps see about updating the map function in the ‘web’ client. It could even be a lot better in the real client, as the rangetest.csv export has some limitations (eg no acess to the short name, proper node names, rssi, telemetry, and even the new ‘hops away’ metric, and the contents of traceroute packets)
… on the flip side I think rangetest.csv actully relies on the list of messages saved in the app itself (so only records messages while connected to a device) - dont know but guess less people leave the web client connected long term. Even the web client running on a movile phone probably cant receive messages while scren off? (not confirmed!)

I’m not personally upto updating the map in Andorid or iPhone devices.

But should probably develop it indepently first, the new filtering stuff while mostly functional could be made a lot neater. Some sort of ‘collapseable’ sidebar might be better, particully for small phone screens. Also to add alternative colouring of the lines.

Would also like to add filtering like ‘last 10mins’, last hour, last 6 hours, etc. (just that in the offical map function in the app would be amazing)

Also think there should be a way to specifically find mobile senders (ie ones moving) and/or ones you’ve observed from lmultiple locations.

1 Like