Range test and war driving

I’ll summarise what I’ve come to believe or assume about Range tests.

My use case is mostly ‘wardriving’: finding other users while I’m out, and simultaneously testing if I can still reach my base node.

  • When range test is on and interval is > 0, a sequential test message is sent your primary channel to everyone within RF-distance.
  • A test message does not contain the node name. So if you only receive two messages ('seq 41", “seq 45”) you’d only see the node ID but not their node name.
  • With each test message, the receiver is prompted to pong a reply with their position
  • the message is not propagated through the mesh (hop = 0) and not sent through MQTT
  • there are two distinct data files:
    • The ‘export Rangetest.csv’ option in Android and iOS exports all traffic the app receives once the app has been opened; not only range test messages but every payload like: <TELEMETRY_APP>, <NODEINFO_APP>, etc. Only the contents of text messages are stored, not the contents of other payloads. Also messages received over MQTT are stored. I’m not sure if the store gets reset or combined if you connect to others. I’m not sure if this function works even if range test is disabled in the node’s settings.
    • The rangetest.csv that can be stored on esp32-devices only containts the real range test messages. It gets removed if the device reboots?
  • rangetest.csv (at least from the app) also contains messages that are received from a second node and received by a third. ie: I see communication between two neighbours
  • the easiest way to visualise is using Google Earth Pro (desktop)
    • this lacks a way to show the links (node graphs) between devices
    • this lacks a way to visualise a radius if we do receive a nodes’ signal but no position info (eg: from point X, I received a message from node Y with strength Y) so we can’t triangulate/approximate those positions
  • if a node receives position from mobile app and is disconnected, it will stop relaying the last known position and will not give the current position at all?

Please correct me or append if needed and I’ll try to create a small tutorial

1 Like

I confirmed the app-Rangetest contains all messages, including MQTT, and the date.
The rangetest.csv stored in ESP32 has time as first column, lacks the date.

I’m creating a Python script that exports to KML to show ALL communication between ANY nodes with position:

Issues:

  1. doesn’t create folders
  2. tries to filter MQTT-messages based on sender name “(MQTT)” but sometimes that isn’t added by the app/firmware. Filtering on distance could be a work-around.
  3. should not filter messages with empty sender name, but currently still does
  4. colour scale for signal strength (red-green) is not good to distinguish and assumes -18 to 18 SNR bound.
  5. assumes date column
2 Likes

Just found this thread. As it happens I’ve been looking at visualizing rangetest.csv better too!

built a basic web app - as a web app hope to make it interactive, rather than just static view.

A few points related to what you say…

I’ve not used the range module yet, jsut been looking at the main rangetest.csv file
… it seems to have been recording since the app installed. Its definitly stored on the android device. In that time I have totally reflashed the lora device (heltec v3 in my case) with non-meshtastic firmware - still experiementing!
(docs, does say can reset it by clearing debug data - havent tried that yet!)

Its recording all messages received, as say havnt got the module enabled myself. But looking now, do see a few messages with ‘seq’ - so clearly someone else has the module enabled.

Can’t confirm anything with MQTT - not seen any messages via that yet.