Measuring the strain on a bike frame

Hi, new to the forum and don't have any experience using an arduino. I'm looking to measure the strain on a bike frame whilst it's being ridden.

The frame is going to need between 8-10 strain gauges (resistive) connected to it. I know that i'm going to need an amplifier circuit after this connected to an adc before the data can be read. I've been looking at using the Arduino Mega 2560 Rev3.

so my questions are:

Will the multiple inputs need to be multiplexed before being read?
Will the arduino be able to store the recorded data? (need to take a reading around every (0.05s)
And is there any tips or advice you can offer for this kind of project?


  1. Inputs

No, you dont need to mux them, you have 16 analogue inputs on the 2560. You may want to use an external adc though if you want more rapid sampling.

  1. storage.

Is this for lab testing, or field testing?

assuming 1 byte per gauge with 10 gauges, you're generating 120,000 bytes per minute (7,200,000 per hour).

If its lab based, you could throw it over a connection to a database (wifi/bluetooth etc).

If its for field testing, you're into the realms of chucking it at some external storage (eg SD card, or maybe SPI based fram).

  1. Tips.

Tedious but write your spec out in detail. eg where is testing happening, how long will each run take, how will you post process it, how much latency can you tolerate between sensor 1 and the last sensor.

Everything else drops out of this :slight_smile:

ps. interesting idea, i wonder how much physical flex you actually get.... is it going on a bouncy bike, or?

Okay I'll have to have a look at sampling rates and see what would work best for this project, some have suggested sampling every 0.01s but was going to start at around 0.05s see how the results look and work from there.

This project will be field tested as the aim is too see how the frame reacts under normal riding conditions. Will have a look into attaching an external storage device, was thinking of using an sd card.

Normally runs take about 4 minutes, but was thinking of splitting the runs into sections of around a minutes. As I plan to take readings quite regularly the latency shouldn't matter too much, but the closer the readings are to the same time the better.

And I definitely need to get the project plan more organised as it's currently all over the place.

It's going to be a hardtail mountain bike (gt chucker) as it's an old bike I have that I don't mind gluing the sensors to

You will need to consider a good low pass anti-aliasing filter placed before the ADC. Strain gages can have frequency response over 10KHz (depending on material and gage length). If you have no anti-aliasing filter any frequencies above half the sample rate will fold back into your data and contaminate the data. There is no way to recover aliased data.

If you're doing runs down real trails, it might be worth bolting a gps module onto the side, so you can equate points of stress to particular trail features (bends, hard pedalling to climb, sudden shocks/jumps)?

Sounds interesting though :slight_smile:

Yeah I was going to record the run with a camera mounted to the handlebars, so I could match it up and see where it was on the trail

All the parts are now ordered :slight_smile: