Bicycle Tracking

I am doing a charity ride May 2021 - The Gibb Challenge. I’ve done it 3 times before. It has it’s challenges especially keeping track of your rider(s). This time it will be a team of 2 plus a support vehicle with a driver.

I have just purchased 3 radios - 1 each for the bikes and 1 for the vehicle. The overall goal is to track the distance between the lead vehicle and the current rider (it’s a relay, one rider is resting in the vehicles whilst the other rides). We cover approx 600km in 5 days.

I would like to run a laptop which shows a moving map with all 3 locations plotted in real time. And record the tracks for later playback.

Some problems I need to keep in mind:

  1. It’s dusty. As in extreme dust, limited visiblity and definitely not good for electronics. I need a case that is sealed.
  2. It’s hot. Will the radios cope in a sealed case? Perhaps a case with a dust filter?
  3. The road is corrugated. Significant vibrations for radio’s mounted on the bikes. How and where is the best place for radios to be mounted? Seat post is my current thought.
  4. It might be wet. If not from the sky, perhaps from falling in a creek (the creek beds are often sandy.

Would it help to use a directional antenna on the vehicle as the bike is always in front?

Untitled Diagram

I’m looking forward to having some fun building this. Any hints/advice about getting started would be much appreciated.

ps. My Team


I think a moxon antenna for the vehicle might be a good idea. Also use the python command to setpref the position broadcast rate for the bikes to something more frequent than the default.

1 Like

For updates once 60 seconds, that’s:

meshtastic --setpref position_broadcast_secs 60


Any thoughts on maximum update rate with a mesh of 3 nodes? Would 10 seconds be too fast?

Re #3: The bumpiness is actually a factor for batteries falling out of their holders. Consider zip-tieing batteries in and having all software settings applied automatically if power is lost temporarily.

1 Like

Yes. I think that would be too fast, a position update takes about 5 seconds at the highest range / lowest speed setting. And it might get forwarded three times so I’d assume absolute max would be 30secs. To have margin. But if go for 60 secs.

(But now that I think about it you could probably use a faster / shorter range setting right? I have no idea what distances you need)

Btw the nrf52840 CPUs can talk ANT+ so someday someone could add cadence and power data from Garmin devices.


LOL…I can just hear my support crew - “Get him off the bike…he’s not producing ANY power!!”

Transmission distances up to 4km. For my particular ride, distances at about 1km are most important - “Is my rider in the group just in front of me, or do I need to pass them?”. Passing is sometimes difficult, imagine a group of six riders and six support vehicles kicking up dust.

Also, thanks for your replies.

1 Like

Do you know Magic Geo Is waterprof gel that is “ideal for connection systems (joint shells or enclosures) for power cables”. I think that using a heat sink that is part inside the gel and part outside the gel can solve your problem. The gel will be able to absorb vibration and dust as well and I believe it will be a good solution to the issue of heat dissipation.



How about mounting the device on the helmet? the human body is an excellent shock absorber. :wink:

@Bussemann Thanks, that’s definitely worth thinking about. When I get my radios, I’ll have a better feel for weight and size when enclosed and built up. Currently leaning toward a mount using the seat rails.

I’d strongly consider attaching the battery with soldered flexible wires instead of relying on the spring-clamped battery holder like the TBeams use.

Some other thoughts specifically about TBeams (because that’s what I’m mostly familiar with here) in that application - I’d use ones without the screen (or go to some length to mount the screen better than just via the 4 soldered header pins). I’d also do some range tests and GPS testing with them mounted on the seatpost underneath the rider, you might get better results for both GPS reception and LoRa range mounted off the headstock (or as someone else suggested, on the rider’s helmet). You could probably save weight by using a smaller battery than an 18650 since I’d guess you don’t need 24+ hour battery life - this suggestion is more for mechanical reliability (a 10g battery bouncing around on a bumpy trail is less likely to break off than a 40g one), but I’m sure your riders would appreciate hearing you shaved 30g off the weight (they’ll pay hundreds of dollars to save a few grams here and there in my experience…)


@bigiain Thanks for your thoughts. A smaller battery is a great thought. Very happy to mount the screen and battery separately using wire. Do I need the screen, if I can check the GPS status, etc via Bluetooth?

The main reason for mounting on seat rails or seat post, is because the support vehicle is always behind the rider.

Personally, I don’t like mounting anything on my helmet. It’s primary function is too important. I have 3 significant accidents where I’m convinced the helmet prevented any injury (My wife disagrees :slight_smile: )

no, you don’t need the screen, but you will need to connect the usb to a pc with a serial terminal (or phone with otg cable and a serial app) at 921600 baud to get the initial bluetooth pairing code, as it is randomly generated (for now) at startup.

once the phone is paired though, the cable is not neccesary.

You don’t really need a phone at all, in your case, as the follow vehicle does all the monitoring. Just initial setup and go.

android terminal app

very easy pc terminal
connect the board, initiate BT pairing from the phone and the

*** Enter passkey 446875 on the peer side ***

should pop up in the terminal

1 Like

@Bussemann Thanks. Very helpful.

I’m hoping my T-Beams get here quickly .

How a bout a gopro harness?

I bet you could easily find a case or even use original gopro case to fit a TTgo and a small battery/antenna. cheap knockoffs would also work :wink:

1 Like

@Bussemann Yep. That’s a good idea as well. I think I have one somewhere in my cupboard.

This is exactly what I needed, but the command must have a typo or changed since this post.

So if you’re looking for this the command is:
meshtastic --set position_broadcast_secs 60

$ meshtastic --setpref position_broadcast_secs 60
meshtastic: error: unrecognized arguments: --setpref position_broadcast_secs 60

$ meshtastic --set position_broadcast_secs 60
Connected to radio
Setting position_broadcast_secs to 60
Writing modified preferences to device
1 Like

Yup, it changed between then and now.