P2P horses tracking during races

Hi there!

I’m new to this forum and just diving into the exciting world of Mashtatic. I’ve recently ordered some RAK and Heltec nodes and can’t wait to get started with my experiments.

While I’m eagerly awaiting the hardware delivery, I’ve been pondering whether a peer-to-peer LoRa decentralized network could handle the following use case:

I need to monitor the GPS positions of a group of horses during endurance races. These races typically take place within a few kilometers radius, with the horses following a circuit that isn’t always flat and includes obstacles like hills and trees. My goal is to collect this position data at a central point where the race is managed.

Initially, I considered setting up a LoRa gateway and perhaps a few repeaters along the track. However, this approach seems to overly complicate the solution and requires extensive coverage planning and testing.

So, the idea of a peer-to-peer solution is intriguing. Along the race circuit, I could potentially have 50 or more nodes distributed among the horses, with nodes likely to be in close proximity between one horse and the next/previous one.

Does this concept make sense? Are there any limits to the number of nodes that can join the mesh network?

I’d greatly appreciate any ideas, suggestions, or brainstorming on this matter.


1 Like

The normal Meshtastic network could help. Having said this, the devices you use need to have built in GPS modules to provide the GPS information Using the tracker role may help to get the information to a central node.

A way to test this, would be to get three or four Meshtastic units and using a person for each unit. On a day when the track is not being used, one could place one at the central point with observer. The other people with the units could walk the course and see if there is enough coverage. The walkers could use the messaging function to say where they are located. Just some thoughts for you.

I am not an expert on Meshtastic. But, I do know how to search the Internet. There is another tracker role called Trak_Tracker that may be better for you. It is based on the ATAK software. There is some information in the official documentation. Once again doing some experiments on a real track would greatly help you in deciding what to do. I hope this is a help.

Thanks for the suggestions.

Certainly, I’ll conduct some tests. I’ve ordered devices with built-in GPS from RAK and Heltec. I’m curious if there are any limitations in the mesh architecture, such as the maximum number of nodes or the number of peers each node can connect to.

As a ballpark figure, I need to cover a distance of up to 20 km from the central point with 50-100 horses roaming in the area. Any insights on these limitations would be greatly appreciated

reads like an interesting project !
that should be possible.
if it is really 100 participants, you could split up into two (or more) seperate groups on 2 different channels (2 different frequnecies if possible in your region). that would spread the needed data rate on 2 channels…
also you should not go with Long-fast, but Medium fast (or even short-fast- after testing !) to get a higher data rate, specially if each device should send position more often than every 5 minutes. 20 km -mesh should be possible with medium fast, specially if you set up some good repeaters ( 4-8 km apart) .

for the repeaters, it does not really matter what device ! position and antenna are most important !
and have enough of battery connected for sufficient runtime .
If it is not in the near future, you might want to have a look at the newly release heltec v3 capsule that has not yet been released… but if ( IF !!) that will work well on meshtastic, and have enough runtime, that could be devices to use out of the box…
another device that would work out of the box is t-echo, but a little more expensive, works well as tracker, has enough runtime. but i found these to be a little bit more sensitive to physical damages, when falling on the floor /not waterproof etc…

you could have some of the trackers setup, to also repeat messages (default setting , less battery runtime) und some of the trackers, so “send position only”(tracker role no repating) that would save alot of data rate, and still there would be a good mesh functionality to get the positions-messages trhu, even if repeaters are not rechable for a short time…

Here are few more ideas and points for your project. First thanks for the information on the track size and number of horses. I was thinking much small.

One problem with say 75 horses, the central observer device may become overloaded by the number of messages. I do not have any experience with ATAK software. But, I do know it is being used by people participating in large scale airsoft events. Using different LoRa channels for different groups (like Kilroy suggested) and a device for each group channel at the central observation point, it should be possible to eliminate the message overloading. I would get more information on the ATAK software. It may have this capability already in it.

As Kilroy said, the repeaters can be any of the Meshtastic devices. Here is a thought on them. I know that 8 meter (25 foot) telescoping poles are available. Amateur radio operators use them for Parks On the Air (POTA) events. One could put the repeater on them. Raise the pole and it may be possible to attach the pole to a small tree to support it. This would help to improve the coverage.

You should get a good topographical map with elevations of the track area. The map should be a great help in identifying high points for the repeater.

Good luck with this project. I think LoRa Meshtastic is a good possible solution.

Thanks, @kilroy and @JustGreg , for the detailed responses and suggestions.

Your insights reinforce my initial belief that a distributed and meshed solution to cover the race field could be effective. The basic principle of having numerous “nodes” randomly distributed across the circuit, with a few acting as repeaters in strategic positions, seems promising.

From your posts, I’ve identified several key points:

  • Channel Usage: How should I allocate channels and trackers to optimize density? Are there any limitations or constraints to consider?
  • Modem Pre-set: What’s the best strategy for modem pre-sets considering the proximity of nodes?
  • Maximum Hops: Maximizing the number of hops seems crucial for reaching the collection point efficiently. Are there any guidelines for this?
  • Device Roles: Defining the roles of devices, especially regarding repeaters and routers, is challenging. How should I differentiate between repeaters, routers, and router clients?
  • Hardware Considerations: Should I opt for off-the-shelf solutions like the Heltec V3 capsule or design custom devices to meet specific requirements like ruggedness and waterproofing?
  • ATAK Software: I’m unfamiliar with ATAK software but recognize its potential. Any tips on how to leverage it effectively?

I appreciate any further ideas and suggestions on sizing and configuring the architecture.


channel usage . and modem preset: the faster the datarate, the less range. but the more messages are going thru. the more messages, possible, means more frequent position updates. so, dont use long fast or long slow, go for medium slow or fast… that should have enough range for a 20km mesh,
medium is much higher datarate than long fast…
Hops: , should be 3-4, thats usually enough. if u send messages hop7 in a dense mesh, you are just flooding messages …
if you have 3-4 well places routers, 1-2 hops should be enough.
roles: set the mobile devices as trackers,(disable repeating of messages here to prevent flooding of the mesh,) , the well.placed routers as routers. routers repeat messages more early than other deivces, thus resulting in better routing the signals form better positions…
set 1/10 of the mobile nodes as client and let them repeat messages as well, to help the routers a bit :slight_smile:
if you have time to wait for the heltec , i dont know yet , if that will work fine, but if they do as heltec sais, will be excellent trackers for a good price also !

Can use this to find a high site or 2x to cover the whole area. Potentially …

Thanks for your suggestions and guidance. Everything will indeed need testing and tuning in the field, but I need to set up an initial setup to start experimenting.

There are some points that don’t quite convince me, or perhaps I don’t fully grasp how the mesh works and how messages are routed.

In principle, the basic idea of this application involves having a large number of nodes spread across the coverage area (a ring circuit), resulting in high node density and short distances between nodes. My understanding is that this setup could facilitate routing packets with GPS positions up to a sort of master/central node where data is collected.

Of course, this will increase the overall traffic in the mesh, but on the other hand, it could guarantee delivery to the master node. I’m not entirely clear on what you mean by “flooding” the mesh. Are there any limits I should consider?

With that in mind, I would aim to maximize the number of hops because each horse may need to “see” the one in front/back and so on, up to the end of the chain, to reach the master node.

A basic question: Does the “tracker” node also act as a client and actively participate in the mesh to forward packets to neighboring nodes? If not, I think my idea would be challenging to implement.

As you mentioned, I can designate some nodes as clients (which I would use solely to send GPS data), or I could follow your suggestion and split the nodes, with some acting as pure trackers and others as clients…need to define the ration

Regarding routers, I would prefer to avoid placing them along the circuit due to logistical constraints. I could install one at the base camp, which can be powered and monitored, but setting up hardware around the circuit might not be so simple. I would rather rely on mesh density.

Lastly, I’m still not clear on the difference between router and repeater. I definitely need to conduct some experiments to better understand all of this.

Thanks again for your insights.


1 Like

Very interesting tool thank you

the path profiler is exactly what I need to forecast the line of sight along the circuit ring

I will test with some real race circuit

I have looked at the ATAK application. It would not be a help with this project. One less thing to do. I hope this works out for you.

1 Like

that is a wrong assumption, meshtastic system can only deliver a limited number of messages/minute !
depending on settings ! repeated messages are also messages… faster modem settings= more mesaages/minute , but less range ! slower modem settings= less messages/minute… longer range
if there is too much traffic in meshtastic channel, messages will get lost and wont reach the target…
you only have some limited data rate (depending on modem settings! here: Radio Settings | Meshtastic)

each message sent into the channel/frequency will block this for a certain amount of time (like about 300-400milliseconds in long fast) depending on modem settings ! and other nodes cannot send at this time. if you have 100 nodes sending postions, you can calculate a very hard limit that is set even without any repeating of messages !!

if you are repeating messages, this will increase exponetially with hop-number setting ! and flooding/blocking of channel will be the result.

and then there also is an airtime limit called “duty cycle”! that can be ignored or should not be ignored by settings :slight_smile:

you could do some overall estimation about number of messages and data rate needed. for that you need to know the absoulute minimum of interval, that the nodes need to send positions! every 5 minutes / every 10 minutes/ every 30 seconds !

i would plan by measureing/ estimating the minimum distance the nodes can talk to each other in that area, ( something about 500m -1500m) and then set 3-4 repeater nodes in good positions (longer connections 1-3km should not be a problem) , see, that these can talk to each other, and to main station.

and then set settings of most of tracker nodes that these do not repeat anything, just send the positions…
just a very few of these as repeaters, so that horses that are starting 800m apart in the race are repeaters, to help the mesh.

something like that…
i hope that helps in the planing…
you could try faster modem settings, but need to test if there is enough range with faster settings in the area…
as an example: if i set 4 nodes on long-fast , to send position every 30 seconds, with repeating of all messages, and some additional 1 repeater and 1 base station: this channel is almost blocked. limiting hops to 1 helps a bit.

some more about role definitions here:

Thanks again, @kilroy , for the clarification and the capacity model explanation.

I’ll definitely dive deeper into the online documentation to gain a better understanding of the mesh mechanism and its limitations.

To dimension the system, I’m considering using a wired telephony model where resources are statically allocated. I plan to use calculations such as Erlang B rule or similar to determine the blocking probability for a given number of serving resources with no queuing.

In order to apply this model have a few further clarifications:

  1. Is the 300-400ms time per message that’s crucial in sizing the network constant regardless of the message payload? Since I’ll be sending only GPS coordinates, I’m not sure if this estimation applies to that message type.
  2. Should all calculations be done per “channel”? Does using more channels equate to more delivery capacity, similar to having more wired lines in a phone system?
  3. I’m still unclear about the concept of “channels” in Meshtastic. Are they logical entities at the application level, akin to “chat rooms” or “topics,” or are they something at the radio level, such as frequency/band?
  4. In the channel settings, I noticed the option to define Primary and Secondary channels, each with attributes like encryption, public internet gateway, precision, etc. Would defining more channels (e.g., 8) and splitting the horses across them increase capacity? And how can I configure each node? Do I add just one extra specific channel or add all possible channels?

Thanks, as always, for your support in answering my questions.

Best regards, Davide

PS first attempt is to mange the system without fixed repeater, just using the horses / nodes roaming the race area…in 2nd istance I can evaluate the addition of some repeaters in strategic position

1: the message-airtime is just my estimation from using a sdr device. its about some/10 of a second in long-fast. long slow has much longer message airtime (almost 1 second) short fast has much lesser airtime ! <0,1 seconds. Message airtime varies a litte bit, depending on payload(text koordinates…)…

2+3) a channel in meshtastic is something like an encryptet chatroom . many channels can be on the same frequency ! sharing the airtime of this frequency ! so one channel can block another channel.

but: in some areas like US915, you can choose between 100+ different frequencys , so each channel can have its own frequency if you set it up that way ! that way channels are not blocking other channels RTFM :slight_smile: IN EU868 we only have 1 (!) frequnecy for long fast !! and some 2 or 3 for other modem settings !
so highly dependent where u plan to do the event, and very much limited or almost notlimited by law-regulations…

primary /sec channels are just aditional “chatrooms” on the same device, but all using the same frequency, since 1 device can only use 1 frequency at the same time.

only way to increase capacity: same model devices (no problem) but set to different channelsthat are using different frequencys (avaialble in channels configuration)
other only way to increase capacity: use faster modem settings (read the table linked below!) there can be a speed difference of factor 100x depentding on modem settings !

If you want to find a finished product, contact www.timetronics.be
They have used their product for long distance horse races in middle east.

Thank you @kilroy for clarifing the mashtastic “channel” concept that has nothing to do with “radio channels” and frequency

I check the radio configuration don’t understand how to “set to different channels that are using different frequencys” at least with EU 868Mhz (where the solution should work)

In 868 band there is only one slot / frequency :thinking:


any other way to set “different (radio) channels” in the EU band ?


In the EU region, there is only one formal slot/frequency used for Meshtastic, as the ISM band is relatively narrow.

But if you careful, you can still manually choose frequencies in the allowed range. 862-870Mhz in the UK at least. Have to careful as split into a number of different bands with differnet power and duty cycle restrictions.
For the UK, found this the a good reference

But this one covers the entire EU: Impact of EU duty cycle and transmission power limitations for sub-GHz LPWAN SRDs: an overview and future challenges | EURASIP Journal on Wireless Communications and Networking | Full Text
has a visual diagam
Impact of EU duty cycle and transmission power limitations for sub-GHz LPWAN SRDs: an overview and future challenges | EURASIP Journal on Wireless Communications and Networking | Full Text
Can see where the defauilt 869.525Mhz fits

Of course, also when picking a frequency, remember the bandwidth. The defaylt LongFast preset uses bandwidith of 250khz (or .25Mhz), so beware of overlap with other signals. A chearp SDR dongle, might be useful to ‘scan’ for other uses of ISM in your area to find unused spectrum.

yes, i did not know you were EU868 ( i am too)
since you are in EU868, you are limited to a very tiny part of 868 Band.
in long-fast, you just have 1 ! frequeecy avaialable !

if you were in USA US915 it would be 100+ to choose from :slight_smile:
(beware, not to use 915 in EU, its cellphone band here in EU)

if we only consider default settings:
as i see, only modem settings long slow and long medium have different frequency options in EU868, but these are slower than the default long-fast.
so if you need to use 2 different frequencys you will have to look into the custom frequnecy /modem settings and go with smaller bandwiths (how much of the allowed spectrum you use)…
not very easy.

so i would advice to try to use a faster modem setting (like medium-fast) all on one channel. to get highest possible data rates at cost of range. that way more messages/minute are possible.

to compensate for loss of range, you will need some repeaters in good postions.
if you try to get messages thru by mesh only, you will have too many broadcasts from all the mesh-repeatings blocking the 1 channel you have.