Having troubles managing internal MUX ADS1115


#1

HI, I would report also here the Issue I reported on GitHub, maybe someone also here can help, thank you!
I’m using Node-red on Raspberry3

Hi there! I need again your help!
So as soon I connected a trimmer to every channel to test it I noticed that the module output channel 1 is connected to physical ADC3 input, and it displays about the same result (some time equal, some time it differs from some units) to module output 4. Channels 2 and 3 output the same values, of channel ADC1. Messy.
This may be generated from wrong settings of MUX inside ADS1115, in your module I can configure address of mux and its port on I2C, I don’t know what these datas are useful to, I’ve read in ADS1115 datasheet, the mux can be configured from config register as well as other functions existing in your module such comparator and so on, ADS1115 has not other I2C address. In you dedicated MUX page is possible to choose I2C address as 112 to 119, and port, so I guess, is is an eventually external MUX too? In this case I’ve to ignore it, but by setting “single ended” I suppose to configure the internal mux, and instead I have random effects, for example:
I set all inputs “single end”, I put low voltage on ADC3 (resistor to ground), I see the output at ch4. If I disable the channel 2 I don’t see more low voltage pin, ch1,3,4 have high values as disconnected line.
Can you please help me? Thank you!

In normal situation (all lines “single end”) I have ADC1 who show in output ch2 and ch3 with same value, ADC2 is ignored (I put low voltage and I don’t see any changes in all outputs), ADC3 who affects ch1 and ch4 with slight differences, ADC4 as ADC2 is ignored

Seeing datasheet is not clear if you can set these register only first time and forget about them… it looks before acquire a value they need to be set according the pin to read:
000 : AINP= AIN0 and AINN= AIN1(default)
001 : AINP= AIN0and AINN= AIN3
010 : AINP= AIN1and AINN= AIN3
011 : AINP= AIN2and AINN= AIN3
100 : AINP= AIN0and AINN= GND
101 : AINP= AIN1and AINN= GND
110 : AINP= AIN2and AINN= GND
111 : AINP= AIN3 and AINN= GND

for read pure ADC0 (that I named before ADC1) we need to set mux before to bit 100, for ADC1 101, etc.


#2

Hi,
try this lib

first i will try single ended and check one channel at a time.

Thanks


#3

Thank you a lot for your help! How can I test it? Please I hope you understand, I’m pretty new to Raspberry world and actually I’m using Node Red, I read and write to LCD.
Before abandon it, in past I wrote code with RaspberryArduino and it was working ok, every channel at right place…
I suppose I need to compile this .py and after where can I see ouput? SSH console can be good…
Thank you for help!


#4

Dear friend, may I ask you to please help?
There are no chance you may check for bugs in the module for Node red? Maybe the bug appears i the recent versions of Node red? Thank you.
About test your library is not easy for me, I don’t know if an SSH console to read the output is enough, I don’t know Pyton and I don’t know how to edit it… please help, thank you!
I’ve opened also an issue on github