I am having a hard time to find out what would be the practical resolution when I will collect data from 20 g load cell?
I have attached the connection diagram to show how they are connected together.
The Arduino pictured is 8 bit, but that is irrelevant.
In practice the resolution of the HX-711 will be limited by circuit noise, ambient (environmental) noise, nonlinearity of the strain gauge sensor, temperature changes, etc.
You would probably have quite a hard time getting accurate +/-1 milligram resolution for the 0-20 g scale with a DIY project. Let us know how it goes.
You probably won't know the accuracy until you build it...
Low level signals and high amplification are always a "challenge" because noise/instability.
You did say "practical" but don't confuse resolution with accuracy. The resolution is 1 bit, whatever that converts to in milligrams or micrograms. One bit out of 24 is about 1 out of 16 million.
The main problem of cheep load cells is not a resolution, but a stability. You won't succeed stable results without some kind of thermostatical precautions. The cell and HX711 board must be at a constant temperature with power switched on for an hour or more before measurement .
Most of the problem is probably noise, as others have pointed out.
A smaller part of the problem is your load cell has 1 mV / V sensitivity, which is rather low, so you're only using one quarter of the available resolution.
^^^^^^
The above from the fact that the HX711 regulator outputs about 4.3 v, so with 128 gain, the available input range is +/- 0.5 x 4.3 v / 128 = 16.8 mV, but the load cell can output at most 1 mV / V x 4.3 v = 4.3 mV, or about one quarter of the available 16.8 mV range.
PS: I would have guessed you could get about +/- 5 mg.
I didn't. Someone who is familiar with these scales and their capabilities understands why the price for a commercial milligram to microgram scale goes up very rapidly with resolution and accuracy, which is a good indicator of how difficult the problem is.
Then factor in typical hobbyist skills, characteristics of strain gauge sensors on the hobby market, possible poor design and construction, etc. As others have said, you should probably be happy to get +/- 10 mg resolution.
You must start with the sensitivity of the load cell. Normally stated as output of the bridge at full scale in units of millivolts/volt.
Where millivolts the the bridge output when you have "volt" powering it.
For my loadcell the Numbers are:
Notes on YZC-133 5kg
Rated Output: 1.0 ± 0.150 mV/V
if Vexcitation = 4.07V (measured on my HX711)
5kg = 1mv * 4.07 = 4.07mv
@gain = 128 then we are using only 1/5 of the HX711 range
8,388,607 * 4.07 / 20 = ± 1,780,000
Your denominator of 20 is, presumably, from page 1 of the HX711 datasheet which says that at 128 gain, the available input range is +/- 20 mV with AVDD of 5 V.
According to page 3 of the datasheet, the available input range is +/- 0.5 x AVDD / gain.
If AVDD is 5.0 V, then the available input range is 19.5 mV, close to 20mV. But AVDD is usually around 4.3 V, and in your case, it is 4.07 V.
So, your denominator should be 0.5 x 4.07 / 128 = 15.9 mV, not 20 mV.
Thus, you are using about 1/4 of the available range, not 1/5. Woo hoo.
As also explained in post #6 (the OP's sensitivity is also 1 mV / V).