-
Weigh Scale Error Analysis
08/20/2014 at 01:34 • 0 commentsIn any implementation of an ADC, there's going to be some error to the measurement. In many cases, the error is primarily due to the resolution of the ADC so it's safe to assume that the error in the measurement is plus or minus half the ADC resolution. However, in this project, I'm hoping to get the highest possible resolution from the system, so a more careful analysis of sources of error is appropriate.
Here's the specifications of my large 200kg load cells from aliexpress.
This suggests that I'll get about 6mV of signal with an excitation voltage of 3.0V. The HX711 spec sheet doesn't mention a noise floor, but assuming there's no noise on the board, the 6mV signal at maximum load corresponds to a useful 15 bits of resolution. This suggests a resolution of roughly 0.01 kg! However, in reality, there IS noise on the circuit, and there are other, much more significant sources of error! The HX711 ADC chip does include 128x amplification of the signal, but as this will amplify noise as well, and I know most 22-24 bit ADCs are noise limited around 20-21 bits, I doubt the amplification is helping with resolution (although it may be helping to keep chip cost low).
I don't have a good specification for noise on this circuit, but a quick test suggested that the repeatability of the system is only around +/- 0.5 kg. I'm hoping this will improve when I have all the connections properly soldered instead of connected with probes and alligator clips, but I'm also exciting the load cells with 5V right now, so the decrease to 3V will make any electrical noise more significant. +/- 0.5 kg is only about 8.5 bits of useful resolution, and I'm honestly disappointed with this result (my stretch goal is 0.1 kg resolution) but between the ADC board sourced on Ebay and the low-cost postal scale load cells, I won't be surprised if I can't improve much on this. While it's disappointing, 0.5 kg resolution is plenty for the primary goal of measuring nectar flows even if it doesn't reliably show more subtle effects like foraging bees leaving in the morning and returning at night!
There are two other sources of error that I'm concerned about and won't be able to measure until the system is completed. First, the above specification claims a 0.025% of full scale change in both zero and output per 10 degrees Celsius. That's actually really significant, as I expect to see roughly 100 degrees of temperature change over a year! Now a typical summer day day will see more like 20 degrees of change, but temperature could potentiall shift the reading by 0.1 kg per 10 degrees. Further, I know amplification circuits can be quite temperature sensitive, so I expect a similar, if not greater error introduced by the amplification on the HX711 chip.
I should be able to remove some of the temperature error by calibrating the scale (assuming the temperature sensitivity does not drift) but an even worse source of error may be in long-term drift of the load cells. The specification above claims around 0.05 kg of drift over 30 minutes, but the error will continue to accumulate after that 30 minutes. I'm honestly not sure to expect, although I am fairly confident that the error will stabilize after a few days and won't significantly impact measurement of nectar collection that could be a kilogram per day or more.
There's a lot of unknowns, but my first rough test of repeatability shows that the system will work for my main goal of tracking nectar flows (even if it doesn't have the higher resolution I'd hoped for) and I'll be able to work on future designs to try to reduce the error further.
-
Project Video
08/20/2014 at 00:50 • 0 commentsI've done a quick overview of the project on Youtube:
-
ADC Working
08/17/2014 at 20:25 • 0 commentsI've got the HX711 ADC board working with an Arduino Uno! The ADC sends out data at regular intervals, and the Arduino (or Apitronics Bee) just has to read the data over SPI and (probably) process the data by setting calibration offset and gain factors as well as compensating for temperature.
I'll still need to replace at least one resistor on the HX711 ADC board to get the energizing voltage down to around 2.9V from the current 5V, but that's just a simple calculation: VAVDD=VBG*(R1+R2)/ R1 where VAVDD is the input power (3.3V on the Apitronics Bee), VBG is the stable energizing voltage and R1 and R2 are resistors on the HX711 board.
Here's a picture of my rough test platform
And here's a close-up of the HX711 board (actually an implementation of the HX711 chip with a transistor and a collection of passives). The two resistors labeled R12 and R13 at the top of the board are the ones that need to be replaced to adjust the energizing voltage.
-
Locally Streaming Data from Weatherstation
07/19/2014 at 21:47 • 0 commentsI ran into a software bug that slowed down my progress a bit, but I"ve now got reliable, streaming data from the weatherstation showing temperature, relative humidity, windspeed and direction, rainfall and barometric pressure as well as battery voltage!
Here's a graph of the temperature over the last few days showing typical temperature swings for sunny, summer days:Now that I've got the weatherstation reliably working, I'm moving to start experiments with reading load cells directly with an ADC!
-
Weatherstation Installed
07/09/2014 at 13:28 • 0 commentsYesterday, I put together the weather station, and put it up on a pole on my back deck. Clearly, this isn't a good spot for measuring wind speed and direction, but I'm more concerned with temperature, humidity and rainfall, and it will let me verify that the system is working before I move everything over to the apiary.
I wasn't getting a signal with the receiving Apitronics Hive at the opposite corner of the house, so I've moved the Hive closer (near the bottom left window in the picture below) and tonight I'll verify that the data is getting logged properly.