Suspension Force measurement using Strain Gauges | Post manufacturing update

The designed circuit boards have arrived and now begins the assembly and firmware development. The initial plan was to have four separate measurement channels to measure the various forces on the suspension pushrods, however that requirement was changed last minute to two channels with different amplification. With little to no time to re-design the system I decided to use the boards that were designed for the original purpose with two empty channels and working around the new requirements.

Requiring only two channels, the boards could have been made a lot more compact. The manual assembly didn't pose any particular challenges aside from the occasional bridged pins on the QFN packages and neck pain. However during firmware development I noticed that the analog channels on two of the board's ADCs were not working, where the SPI communication and the ADCs digital side worked just fine, but the output would be saturated regardless of the analog voltage on the input. I'm still unsure of the cause, suspecting it was either static discharge or heat induced damage. Replacing one of the boards' ADC with a spare got it working again with still one board out of commission.

With the boards assembled and some basic firmware written to read the ADC values, I could give the first attempt at gluing some strain gauges on the pushrods. Surprisingly it worked out well even with the lack of clean facilities and years out of date strain gauge glue.
Testing the strain gauges on the bench
Quite surprised at the sensitivity of the strain gauges, considering they measure the deformation of the aluminium and I'm just squeezing it by hand! I had designed the measurements to be accurate to around a newton with maximum loads in the 10kN range, however further testing proved there was quite a lot of noise in the signal and around 5 Newton error in the measurement was more realistic. This was observed with unshielded leads and board with no temperature compensations, and it might be possible to improve the readings by implementing those changes.

Trying some calibration tests with a 20kg weight hanging off the rod. Turns out that hard coded calibration values aren't accurate long term and some kind of on-demand calibration has to be done before accurate measurements can be made. This might pose a challenge since at no point during a normal track day is the suspension completely unloaded or loaded with a known force. For now I think the most reasonable way to handle this would be calibrating the conversion function for each board on the bench and just setting the zero value in the beginning of each startup accepting the errors that will accumulate over time and not knowing the exact load on the suspension. This wont give accurate, exact forces on the suspension, but it will help observing the loads during driving relative to the startup conditions.
For now the system successfully outputs measurement values to the CAN bus and can be used for observing the suspension load during driving, however development and problem solving still continues until the competitions to make the system as good as it can be.
I will follow up on how the system held up during testing and competitions as we get there! For now, thanks for reading!