sparkfun/OpenScale

[Feature Request] Consistent weight measurements across a range of temperatures

Closed this issue · 4 comments

I notice in a days sample of recordings that weight is a function of temperature W(t). Has anyone taken a look at modeling this relationship such that the OpenScale can be configured to output consistent weight measurements across a range of temperatures (0 - 40C)? What is the major contributing factor? Is it the temperature drift of the ADC? Or a property of the materials used in the strain gauge? If it's the former it might be worth correcting in the OpenScale firmware. The latter may require scale-specific calibrations.

woft

In the photos above are you weighing something constant? A 10 degree change in 2 minutes is definitely going to place mechanical stress on the load cell to cause problems. A one pound change over 10 minutes does seem excessive though.

This is actually common and expensive problem for a couple of reasons. The HX711 load cell amplifier has an input offset of +/- 6nV/C. This offset can drift further with temperature. Another reason is load hysteresis, which is a mechanical property of the load cell itself. Since each load cell has it's own range for the drift- if you are using 4 strain gauges the readings could be much more off. Keeping the temperature stable in your system is the best way to deal with this but it will still drift some. But will be mostly creep if you can get your system to be more temp independent. creep causes issues with the hysteresis as well. Creep fatigue happens within the first few moments of a weight reading, then there's a "bounce back" or creep recovery effect as the gauge gets used to deformation.

NIST actually did a study on creep and found there is a great variety in the magnitude, direction and complexity of the creep between 11 identical strain gauges. To compensate for this I'd recommend placing a known weight on the scale for 10 minutes or so and calculate the change in weight with time. This test will work best if the temperature is stable. Most creep will occur in the first few moments and should taper off. I'd repeat this test with several weights since you can't assume the creep in constant between different sets of known weights.

https://www.nist.gov/sites/default/files/documents/calibrations/vdi-312.pdf

We haven't performed the test you spoke of but that's because it's a known problem and is load cell dependent. I have heard that 6-wire beam style load cells work best but that also assumes you know what your max weight will be so you load cell limit is only slightly above your maximum. This way you don't waste any range on the ADC.

Also how stable is your power supply? have you tried measuring the excitation voltage (E+/E-)? Any variation in voltage here goes through an amplifier which can cause variation in the weight readings as well.

Thank you for the feedback @ADataDate. The weight is a constant 20lbs. The 10 degree C change happens over ~1h. I do not think that I am observing creep. The same weight has been on the scale, in constant operation, for 24 hours and counting.

I am using the same 4-strain gauge, 400lbs max, postal scale from the Internet of Bees write up. I agree that one issue may be that I am not in the full range of the ADC. I am powering the scale from a Beaglebone Black, this may also be an issue.

I will try adding more weight and introducing an external power supply. I will also run the ADC temperature drift calculation to see what the expected change is based on the +/- 6nV/C spec.

Hi @kevinjos - This issue is getting pretty old so I'm going to close it. If you have any news to report, please feel free to re-open.

I don't plan to add temperature compensation on-board to OpenScale. Rather, we exposed the onboard temp and an option external temp sensor so that users could post-process their readings depending on their load-cell drift due to temperature.