DIY mtb telemetry system

3/16/2021 9:10pm
Looks tidy! I'm all for seeing more development of clean systems like this, I hope bike companies start integrating it in to their bikes from new

I just started dabbling with Arduino last year and already well aware of the limitations on logging a high sample rate so well done for getting to where you are!
1
Primoz
Posts
4606
Joined
8/1/2009
Location
SI
3/16/2021 10:34pm
We're back to the debate we had a while ago, the vast majority of people have no idea what to do with this data. Then we get to the shock wiz where the algorithm is the secret sauce. And then the vast majority of bike brand doesn't have the means to develop something like that.

Or you could be a mondraker and make something just for marketing (that system can't actually work).
1
alek-91
Posts
45
Joined
3/12/2021
Location
IT
3/16/2021 11:37pm
Primoz wrote:
We're back to the debate we had a while ago, the vast majority of people have no idea what to do with this data. Then we...
We're back to the debate we had a while ago, the vast majority of people have no idea what to do with this data. Then we get to the shock wiz where the algorithm is the secret sauce. And then the vast majority of bike brand doesn't have the means to develop something like that.

Or you could be a mondraker and make something just for marketing (that system can't actually work).
no idea what mondraker is doing actually... Hall effect or magnetic sensor are using are the less accurate system for this application, while shockwiz probably could be one of the best in terms of accuracy cause you actually relate to force directly but as you said the script inside can be even a random that gives you indications.


Primoz
Posts
4606
Joined
8/1/2009
Location
SI
3/17/2021 1:09am
As far as they have told it's a Hall effect sensor. Which is a really good idea for rear suspension, where you only rotate the magnet. The only 'issue' is that you need a 3D Hall effect sensor (measures the magnetic field in three planes), but it works well, we used the same principle for some lifetime testing of automotive actuators in our company.

The issue is with the fork where a coworker of mine (magnetics expert) said you'd be picking up shovels and rakes from fields when riding by due to the strength of the magnet, which would be required for the sensor to work over 200 mm that is between the magnet and the Hall sensor.

A time of flight sensor makes much more sense, the only issue with it, for MTB, is that it could get dirty, either the sensor lens (this can easily be solved) or the target (dirt on the target gives you a step change in distance, giving you an offset in travel at a point in time).
alek-91
Posts
45
Joined
3/12/2021
Location
IT
3/18/2021 1:53am


Looking at this video very intersting is the switch on the handlebar to put a trigger on the data whenever you want. i think i will copy it.


Primoz
Posts
4606
Joined
8/1/2009
Location
SI
3/18/2021 2:03am
Makes sense yes.

So, what is the status with the BOM for the hardware and the code? Are you prepared to publish it, do you want to sell kits? I'm still very happy to test things out if possible 🙂
alek-91
Posts
45
Joined
3/12/2021
Location
IT
3/18/2021 9:21am
I wanted to try the other version of arduino board, and see if i can improve more the code. ASAP i will put everything online.



I decided to buy this and use at the handlebar to start and stop the logging, and to put the trigger whenever i want during riding.
1
Primoz
Posts
4606
Joined
8/1/2009
Location
SI
3/18/2021 9:30am
Yeah, no worries, I was just interested in what the plans are, i.e. will you publish it at all or try to make a product out of it and sell it, etc.

Do whatever works for you and makes you feel comfortable, so take your time if you feel it makes sense.
kr4j
Posts
1
Joined
3/18/2021
Location
Hupfdidudl DE
3/18/2021 3:17pm
Hey Alek,

great implementation! I think the use of a LiDar sensor is brilliant, I didn't think of that in my bachelor thesis where I designed a similar system some years ago, also using an Arduino. My design uses a pressure sensor connected to the fork or shock, like the Shockwiz does, but connecting the sensor to the air chamber and precisely converting the pressure changes into movement of the suspension element was quite a pain at first.

Like you, I also store the data on an SD card. After managing to achieve a maximum of about 50 Hz in my first attempts, I was able to reach over 500 Hz with some improvements to the code. If you want, I would be more than happy to help you with this. Just send me a message if you want Smile

This is the "final" version mounted to the bike:



I also did some frequency comparison:



The first prototype was a lot bigger and used a bottle cage mount:



I also developed a tool to automatically analyze the data on a pc (and even made a logo: It's called SusAn Laughing )



Thanks for motivating me to revisit the project. Smile
6
alek-91
Posts
45
Joined
3/12/2021
Location
IT
3/19/2021 5:48am
kr4j wrote:
Hey Alek, great implementation! I think the use of a LiDar sensor is brilliant, I didn't think of that in my bachelor thesis where I designed...
Hey Alek,

great implementation! I think the use of a LiDar sensor is brilliant, I didn't think of that in my bachelor thesis where I designed a similar system some years ago, also using an Arduino. My design uses a pressure sensor connected to the fork or shock, like the Shockwiz does, but connecting the sensor to the air chamber and precisely converting the pressure changes into movement of the suspension element was quite a pain at first.

Like you, I also store the data on an SD card. After managing to achieve a maximum of about 50 Hz in my first attempts, I was able to reach over 500 Hz with some improvements to the code. If you want, I would be more than happy to help you with this. Just send me a message if you want Smile

This is the "final" version mounted to the bike:



I also did some frequency comparison:



The first prototype was a lot bigger and used a bottle cage mount:



I also developed a tool to automatically analyze the data on a pc (and even made a logo: It's called SusAn Laughing )



Thanks for motivating me to revisit the project. Smile
Ohhh... super nice project, and very nice implementation. I'd like to get in touch with you! I think shared improvement can lead to a nice results.
1
alek-91
Posts
45
Joined
3/12/2021
Location
IT
3/26/2021 3:31am
New arrivals today... soon gps and switch will be mounted
4
alek-91
Posts
45
Joined
3/12/2021
Location
IT
4/7/2021 7:50am
Was a quite busy couple of weeks, and also spring means more riding and less programming. Anyway today i was able to get a code able to log together gps an suspension at different frequency and i will try it on the bike soon.



I really like the handlebar button since is very confortable to start and stop the log during riding... gps antenna results slitghtly too long 😂😂
2
groghunter
Posts
90
Joined
5/18/2013
Location
Tucson, AZ US
4/7/2021 9:06am
alek-91 wrote:
Was a quite busy couple of weeks, and also spring means more riding and less programming. Anyway today i was able to get a code able...
Was a quite busy couple of weeks, and also spring means more riding and less programming. Anyway today i was able to get a code able to log together gps an suspension at different frequency and i will try it on the bike soon.



I really like the handlebar button since is very confortable to start and stop the log during riding... gps antenna results slitghtly too long 😂😂
Where is your stem cap? o_0
Snfoilhat
Posts
84
Joined
5/19/2012
Location
Berkeley, CA US
4/7/2021 9:14am Edited Date/Time 4/7/2021 9:34am
When I see the development of data acquisition systems, I wonder what the model of optimal suspension performance is for the different acquisition system designers. What is the target that can be compared to a rider's data in order to make the rider's data more meaningful? The data acquisition itself seems objective at first, but even decisions about which data to gather and how to display them go toward a subjective experience based on what the designer thinks is useful. I think that's cool, but as a rider I feel like there isn't always even a consensus about what exactly the different adjustments on a suspension device do outside a dyno, or what combination of factors make a bike handle better. Without cramming a whole white paper into the comments or giving away your own algorithm secrets, does anyone have examples of what to do with these data once a rider has them?

Edit: I ask because I think people working the problem from y'all's side may ultimately help out riders with their setup more than the traditional bracketing and timed runs approach, even if a rider never uses DA but gets to piggyback off of some similar riders' evidence-based setup
1
Primoz
Posts
4606
Joined
8/1/2009
Location
SI
4/7/2021 9:55am
Data acquisition has nothing to do with setting up the suspension. DAQs just measure what is going on, they look at and store movement data in time.

It's up to the user to read what the suspension is doing and what it should do. Data acquisition is easy. Doing something useful with that data is the hard part. I'd be happy to see some thoughts on this topic from people in the know, but it's usually the competitive advantage. Not having enough people or enough money to pay people like that is the reason so few riders in the world cup (any world cup) use data acquisition while it's the norm in motorsports, where the budgets are much higher.
4/7/2021 1:20pm
Snfoilhat wrote:
When I see the development of data acquisition systems, I wonder what the model of optimal suspension performance is for the different acquisition system designers. What...
When I see the development of data acquisition systems, I wonder what the model of optimal suspension performance is for the different acquisition system designers. What is the target that can be compared to a rider's data in order to make the rider's data more meaningful? The data acquisition itself seems objective at first, but even decisions about which data to gather and how to display them go toward a subjective experience based on what the designer thinks is useful. I think that's cool, but as a rider I feel like there isn't always even a consensus about what exactly the different adjustments on a suspension device do outside a dyno, or what combination of factors make a bike handle better. Without cramming a whole white paper into the comments or giving away your own algorithm secrets, does anyone have examples of what to do with these data once a rider has them?

Edit: I ask because I think people working the problem from y'all's side may ultimately help out riders with their setup more than the traditional bracketing and timed runs approach, even if a rider never uses DA but gets to piggyback off of some similar riders' evidence-based setup
Thats a really good question, in fact I have just started working on a blog post that touches on a lot of those points.
The short answer is there isn't really any consensus on what the "target" is...yet at least. DAQ has taken off over the last couple of years so hopefully most of the people using it are learning as they go rather than thinking they already know what to look for. I definitely see some guys get hung up on looking at certain things in the data which may or may not be relevant, and thats a trap we all have to be mindful of

Knowing which data to gather is a super interesting question, you can get very carried away attaching sensors to everything but then what do you do with that? I currently have or am working on position sensors, accelerometers, temperature, gyro, gps, wheel speed and strain gauges but to be honest a simple suspension position (not even velocities) logger will be hugely insightful. Even a humble speed sensor (not gps) is a powerful tool from a rider perspective and getting faster as you can see exactly what sections you gain or lose speed on very easily.

One key thing we should never lose sight on is how the rider feels - good or bad, simple as that. If I was to decide on certain factors but rider feedback said they weren't comfortable then I need to change those factors. And realistically thats where most of us are at with Data Acquisition, very few have nailed down some good metrics on what a great set up looks like, so the process still involves a bit of trial and error and conversations with the rider. Don't get me wrong though having the data makes the process soooo much more streamlined as you can normally identify which direction a certain variable needs to go (eg spring rate) because suspension set up can be so counterintuitive that literally any adjustment can go in either direction so removing that doubt speeds things up immensely.

For a simple example of how I use it, with suspension data I mostly look at a position histogram that shows how much time you spend in each part of the travel. These are very straightforward to look at - if the graph is quite "flat" and shifted towards the end of the travel then things are too soft and unstable because the bike is wallowing around a range of travel instead of maintaining a particular height. If its a tall, sharp peak close to the top of the stroke then its too stiff. I regularly see people who think the suspension is too harsh but the histogram shows they are spending a lot of time deep in the travel. The instinctive response without data would have been to soften the bike but bump up the pressure and it not only feels better but they actually have more travel available and are still reaching the end when they need it!

And yes a big reason for me using it is so I can get very precise benchmarks of different types of riders, so those settings can be taken to a similar rider and they get to start off on a much more refined baseline than what they would have otherwise.

Another great example of an alternative DAQ to the typical suspension-based design is brakeace - https://www.brakeace.com/ which is very much focused on improving technique. Matt's software uses brake torque sensors to measure how effectively you are using the brakes on track and pinpoints the location so you can alter your technique. It's really cool and the riders who have tried it got a lot of benefit out of it!

And alex-91 - cool to see the new upgrades! Love following this progress
2
alek-91
Posts
45
Joined
3/12/2021
Location
IT
4/7/2021 11:39pm
Snfoilhat wrote:
When I see the development of data acquisition systems, I wonder what the model of optimal suspension performance is for the different acquisition system designers. What...
When I see the development of data acquisition systems, I wonder what the model of optimal suspension performance is for the different acquisition system designers. What is the target that can be compared to a rider's data in order to make the rider's data more meaningful? The data acquisition itself seems objective at first, but even decisions about which data to gather and how to display them go toward a subjective experience based on what the designer thinks is useful. I think that's cool, but as a rider I feel like there isn't always even a consensus about what exactly the different adjustments on a suspension device do outside a dyno, or what combination of factors make a bike handle better. Without cramming a whole white paper into the comments or giving away your own algorithm secrets, does anyone have examples of what to do with these data once a rider has them?

Edit: I ask because I think people working the problem from y'all's side may ultimately help out riders with their setup more than the traditional bracketing and timed runs approach, even if a rider never uses DA but gets to piggyback off of some similar riders' evidence-based setup
I think your question open amny different topic of discussions, and for sure is one of the open point on telemetry data for 2 wheels.
I come from motorcycle motorsport were we are plenty of data and sensor but everything is not 100% understandable just from data yet, cause 2 wheels vehicles are unstable for theri own nature and rider is affecting a lot the dynamic behavior of the bike .

So coming from what i saw, one of the most important thing on a 2 wheels is Center of gravity position, and i am not completely sure that the static sag is always representative of the dynamic behavior on the trail with suspension with such an high travel. This was my first doubt when I move to 170 mm fork and everything starts from there.
Also damping is not just a matter of dampening the bumps (even if on an off road vehicle is one of the most important factor) but also how fast/slow the bike behave to your inputs.

A lot of people just plays with clicks and pressure, but i do not find this method scientific, whitout check how much this will affect the dynamic behavior of the bike on the trail, that's why i think we neeed logging systems even if are not the bible to adjust the setting of a bike. Off road mtb suspension is basically an unknow world, but until you don't start to get some number is impossible to get a direction.
1
4/8/2021 12:04pm
Wheres the button from? And what kind of file size are you ending up with from a typical run?

I've got a few different arduino boards to try including an Adafruit Feather with CAN capability, but it also has a small amount of built in flash and is supposed to be good for logging at quite high sample rates. Looking forward to testing it out!
Primoz
Posts
4606
Joined
8/1/2009
Location
SI
4/8/2021 12:44pm
Re the long SuspensionLab answer, a position sensor for the suspension is plenty, with a high enough acquisition frequency you can easily determine shaft speeds relatively precisely through simple differentiation (v = ds/dt and all)...

Also,
"For a simple example of how I use it, with suspension data I mostly look at a position histogram that shows how much time you spend in each part of the travel. These are very straightforward to look at - if the graph is quite "flat" and shifted towards the end of the travel then things are too soft and unstable because the bike is wallowing around a range of travel instead of maintaining a particular height. If its a tall, sharp peak close to the top of the stroke then its too stiff. I regularly see people who think the suspension is too harsh but the histogram shows they are spending a lot of time deep in the travel. The instinctive response without data would have been to soften the bike but bump up the pressure and it not only feels better but they actually have more travel available and are still reaching the end when they need it!"

I think it was Darren from Push that said in the Inside Line podcast that the go-to solution to a too harsh suspension setup is to make it stiffer. People often spend a lot of time in deeper in the travel, where the (modern, progressive) systems and (air) springs are effectively much stiffer, so that's why a too soft setting gives a harsh feeling. Making it actually stiffer throws you up higher into the travel, where the stiffness is actually lower.

As for the histogram, what are you looking for? Sort of a histogram centered roughly around the sag point or something similar to that?
1
4/8/2021 4:09pm Edited Date/Time 4/8/2021 4:11pm
Primoz wrote:
Re the long SuspensionLab answer, a position sensor for the suspension is plenty, with a high enough acquisition frequency you can easily determine shaft speeds relatively...
Re the long SuspensionLab answer, a position sensor for the suspension is plenty, with a high enough acquisition frequency you can easily determine shaft speeds relatively precisely through simple differentiation (v = ds/dt and all)...

Also,
"For a simple example of how I use it, with suspension data I mostly look at a position histogram that shows how much time you spend in each part of the travel. These are very straightforward to look at - if the graph is quite "flat" and shifted towards the end of the travel then things are too soft and unstable because the bike is wallowing around a range of travel instead of maintaining a particular height. If its a tall, sharp peak close to the top of the stroke then its too stiff. I regularly see people who think the suspension is too harsh but the histogram shows they are spending a lot of time deep in the travel. The instinctive response without data would have been to soften the bike but bump up the pressure and it not only feels better but they actually have more travel available and are still reaching the end when they need it!"

I think it was Darren from Push that said in the Inside Line podcast that the go-to solution to a too harsh suspension setup is to make it stiffer. People often spend a lot of time in deeper in the travel, where the (modern, progressive) systems and (air) springs are effectively much stiffer, so that's why a too soft setting gives a harsh feeling. Making it actually stiffer throws you up higher into the travel, where the stiffness is actually lower.

As for the histogram, what are you looking for? Sort of a histogram centered roughly around the sag point or something similar to that?
Yeah a histogram centred at sag that smoothly tapers away to both ends, getting most of the way in to the stroke without spending too much time down there.

This is a quick example from the last ride I did - run #3 was on a 550 spring and run #4 a 600

The peaks are at roughly 28% and 30% wheel travel but the firmer spring cuts off more suddenly with almost no samples after 110mm stroke but the softer spring reaches 130mm.

Stiffer spring is also at full extension more, which can indicate less grip (but also more air time) but would need further inspection to decide that

150mm travel bike, same trail at relatively cruisy pace


1
Snfoilhat
Posts
84
Joined
5/19/2012
Location
Berkeley, CA US
4/8/2021 5:50pm
Thanks for your replies!
alek-91
Posts
45
Joined
3/12/2021
Location
IT
4/9/2021 12:12am
Wheres the button from? And what kind of file size are you ending up with from a typical run? I've got a few different arduino boards...
Wheres the button from? And what kind of file size are you ending up with from a typical run?

I've got a few different arduino boards to try including an Adafruit Feather with CAN capability, but it also has a small amount of built in flash and is supposed to be good for logging at quite high sample rates. Looking forward to testing it out!
Button comes form amazon (don't know if i can put the link here)

Alamor 22Mm 7/8Inch A 2 Pulsanti Array for 6,95€

I end up with binary file (to speed up he logging) then i just convert the file in a formatted dat file for i2m software.
About CAN capability depend on which sensor you run, or if you have analog to can converter that is another step. For "cheap" application like this i think it starts to be too complicated. Worth then to buy a compelte kit from Aim that is really reliable.
alek-91
Posts
45
Joined
3/12/2021
Location
IT
4/30/2021 11:13am
Small update. I’’m still working on the code but i am pretty happy right now. I can log both suspension and gps at different frequency on a single file.
I updgrade the connectors to waterproof (jst jpwf) that a real pain to crimp, but i was able to manage a nice work. Now the wiring loom can be used with both linear potentiometer and lidar sensor. Long linear potentiometer is coming from china for 45$... let’s see how long it survive. My idea is to check measurement with both sensor (analog and digital) to have a double check.
I also buy a lipo rachargable battery and clean a little bit the overall harness. Almost ready for the summer, hopefully i will do a proper case soon.
2
4/30/2021 8:02pm
alek-91 wrote:
Small update. I’’m still working on the code but i am pretty happy right now. I can log both suspension and gps at different frequency on...
Small update. I’’m still working on the code but i am pretty happy right now. I can log both suspension and gps at different frequency on a single file.
I updgrade the connectors to waterproof (jst jpwf) that a real pain to crimp, but i was able to manage a nice work. Now the wiring loom can be used with both linear potentiometer and lidar sensor. Long linear potentiometer is coming from china for 45$... let’s see how long it survive. My idea is to check measurement with both sensor (analog and digital) to have a double check.
I also buy a lipo rachargable battery and clean a little bit the overall harness. Almost ready for the summer, hopefully i will do a proper case soon.
Where is the kickstarter man? I'd be in on this.
3
alek-91
Posts
45
Joined
3/12/2021
Location
IT
5/11/2021 11:30pm
I got some new data with the new script. Now gps track is available and can be related to the channel. Hopefully next week i will have first prototype of the case.

3
sharpy212
Posts
232
Joined
12/18/2015
Location
GB
5/12/2021 7:49am
SOLD! Take my money!
1
Primoz
Posts
4606
Joined
8/1/2009
Location
SI
5/12/2021 9:02am
Lovely. How hard is it to add a map to the GPS track?
alek-91
Posts
45
Joined
3/12/2021
Location
IT
5/12/2021 12:13pm
Primoz wrote:
Lovely. How hard is it to add a map to the GPS track?
Actually you just need the API key of google maps... i think it costs 99 cent per month. Still have to try anyway
Primoz
Posts
4606
Joined
8/1/2009
Location
SI
5/12/2021 12:26pm
Or use openstreetmaps, OpenTopo, etc.?
alek-91
Posts
45
Joined
3/12/2021
Location
IT
5/13/2021 1:04am
Openstreetmaps would be nice cause the trails are visible, but unfortunately software is not made by me and is thinked to get google static maps api. I think i will not use so much, or maybe just to orient myself at the beginning

Post a reply to: DIY mtb telemetry system

The Latest