Mostly, this reads very reliably and accurately. However, intermittently the ADC reading will stick at a seemingly arbitrary range of values (ie. not a power of 2) that would normally represent a very high weight (but not a max reading with respect to the ADC's range). I can't consistently get the circuit into this state. It seems almost random - say every 20th power cycle?
During this failure mode, I can completely unplug the load cell from the system and the ADC will still be floating in this high range.
Under normal circumstances, running the ADC without a load cell returns just the expected unweighted value bouncing around in the noise floor.
Is there a reason that a differential amplifier, like this, might get stuck in a high range intermittently?