When using ADS1015, ADS1x15.readADCDifferential method ignores signed inputs,
So positive samples make sense, but negative samples are returned as high values. This is especially frustrating in samples that oscillate around 0mV.
The fix is checking the most significant bit (11) and subtract the max value (0xFFF) from the signed sample if necessary, much like the 16 bit version.
Enjoy
When using ADS1015, ADS1x15.readADCDifferential method ignores signed inputs, So positive samples make sense, but negative samples are returned as high values. This is especially frustrating in samples that oscillate around 0mV. The fix is checking the most significant bit (11) and subtract the max value (0xFFF) from the signed sample if necessary, much like the 16 bit version. Enjoy