In this project i built a, let´s call it „precision“, scale.
Resolution 0.001 Gramms, Accuracy 0.01 Gramms, 2 Hz output Data Rate
The Hardware:
Arduino Nano
Pmod Ad5
LT 3042
OLED Display
The Libary:
https://github.com/annem/AD7193 thanks Anne m
A very handy tool to manipulate specific bits and instant get hexadecimal / decimal values:
http://calc.50x.eu/index.html
Ratiometric Measurement
The ADC is hooked up in a ratiometric setup, which means that the Vref of the ADC is tied to the reference voltage of the load cell. This decreases the noise of the measurement since the ADC is comparing the „noisy“ Ain agains the same „noisy“ Vref. As you can see the noise cancels out.

Source: Transducer/Sensor Excitation and Measurement Techniques
https://www.analog.com/en/analog-dialogue/articles/transducer-sensor-excitation-and-measurement-techniques.html
Accuracy Issues AD7193
At the beginning of the project i had quite a hard time figuring out why my noise values are far off what is shown in the datasheet. To measure the noise i tied A1&A2 together, put the device in differential measuring mode and plotted my ADC Counts. Settings: Gain = 1, Chop Disabled, Sinc4 Filter supplyvoltage of 4.7 volts. (please dont ask why i am using 4.7 volts … =))

What finally resolved my accuracy issue was modifing the Git Libary.
Original Part:
registerMap[1] &= 0x1FFFFF; //keep all bit values except Channel bits
registerMap[1] |= 0x800000; // internal zero scale calibration
Modified Part:
registerMap[1] |= 0x801000; // internal zero scale calibration
Working Registers:

seems like you may have to specify the used channel (a1,a2 in my case) to calibrate the ADC correctly.
After changing the libary my counts were much better – just slightly off the values in the Datasheet. (Next time you´ll get a better looking Gaußian – stopped the sampling to early ..)

I will update this entry if i have some spare time and provide you the code.
Looking forward to reading more. Great blog post. Much thanks again. Fantastic. Cicily Peterus Maurreen