From 509b3680c4dd6939fdd648d5c528fd39098715cc Mon Sep 17 00:00:00 2001 From: LeifKlasson Date: Wed, 20 May 2026 14:17:12 +0200 Subject: [PATCH 1/3] Fix ADS1015/ADS1115 P0-P3 pin constants for newer adafruit_ads1x15 library --- openplotterI2c/openplotterI2cRead.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/openplotterI2c/openplotterI2cRead.py b/openplotterI2c/openplotterI2cRead.py index 258bdc7..6096b0a 100644 --- a/openplotterI2c/openplotterI2cRead.py +++ b/openplotterI2c/openplotterI2cRead.py @@ -248,10 +248,10 @@ def main(): else: if i2c_sensors[i]['address']: instances.append({'name':i,'type':'ADS1115','tick':[now,now,now,now],'sensor':i2c_sensors[i],'object':ADS11.ADS1115(muxInstances[i2c_sensors[i]['address']][i2c_sensors[i]['channel']-1])}) - if instances[-1]['sensor']['data'][0]['SKkey']: instances[-1]['sensor']['data'][0]['object'] = AnalogIn(instances[-1]['object'], ADS11.P0) - if instances[-1]['sensor']['data'][1]['SKkey']: instances[-1]['sensor']['data'][1]['object'] = AnalogIn(instances[-1]['object'], ADS11.P1) - if instances[-1]['sensor']['data'][2]['SKkey']: instances[-1]['sensor']['data'][2]['object'] = AnalogIn(instances[-1]['object'], ADS11.P2) - if instances[-1]['sensor']['data'][3]['SKkey']: instances[-1]['sensor']['data'][3]['object'] = AnalogIn(instances[-1]['object'], ADS11.P3) + if instances[-1]['sensor']['data'][0]['SKkey']: instances[-1]['sensor']['data'][0]['object'] = AnalogIn(instances[-1]['object'], ADS11.ADS1115.P0) + if instances[-1]['sensor']['data'][1]['SKkey']: instances[-1]['sensor']['data'][1]['object'] = AnalogIn(instances[-1]['object'], ADS11.ADS1115.P1) + if instances[-1]['sensor']['data'][2]['SKkey']: instances[-1]['sensor']['data'][2]['object'] = AnalogIn(instances[-1]['object'], ADS11.ADS1115.P2) + if instances[-1]['sensor']['data'][3]['SKkey']: instances[-1]['sensor']['data'][3]['object'] = AnalogIn(instances[-1]['object'], ADS11.ADS1115.P3) elif i2c_sensors[i]['type'] == 'ADS1015': import adafruit_ads1x15.ads1015 as ADS10 @@ -261,10 +261,10 @@ def main(): else: if i2c_sensors[i]['address']: instances.append({'name':i,'type':'ADS1015','tick':[now,now,now,now],'sensor':i2c_sensors[i],'object':ADS10.ADS1015(muxInstances[i2c_sensors[i]['address']][i2c_sensors[i]['channel']-1])}) - if instances[-1]['sensor']['data'][0]['SKkey']: instances[-1]['sensor']['data'][0]['object'] = AnalogIn(instances[-1]['object'], ADS10.P0) - if instances[-1]['sensor']['data'][1]['SKkey']: instances[-1]['sensor']['data'][1]['object'] = AnalogIn(instances[-1]['object'], ADS10.P1) - if instances[-1]['sensor']['data'][2]['SKkey']: instances[-1]['sensor']['data'][2]['object'] = AnalogIn(instances[-1]['object'], ADS10.P2) - if instances[-1]['sensor']['data'][3]['SKkey']: instances[-1]['sensor']['data'][3]['object'] = AnalogIn(instances[-1]['object'], ADS10.P3) + if instances[-1]['sensor']['data'][0]['SKkey']: instances[-1]['sensor']['data'][0]['object'] = AnalogIn(instances[-1]['object'], ADS10.ADS1015.P0) + if instances[-1]['sensor']['data'][1]['SKkey']: instances[-1]['sensor']['data'][1]['object'] = AnalogIn(instances[-1]['object'], ADS10.ADS1015.P1) + if instances[-1]['sensor']['data'][2]['SKkey']: instances[-1]['sensor']['data'][2]['object'] = AnalogIn(instances[-1]['object'], ADS10.ADS1015.P2) + if instances[-1]['sensor']['data'][3]['SKkey']: instances[-1]['sensor']['data'][3]['object'] = AnalogIn(instances[-1]['object'], ADS10.ADS1015.P3) gain = 1 if 'sensorSettings' in instances[-1]['sensor']: From 41816ea72a770dd5be9b9593bb965209729c3ee6 Mon Sep 17 00:00:00 2001 From: LeifKlasson Date: Wed, 20 May 2026 14:30:32 +0200 Subject: [PATCH 2/3] Updated --- .claude/settings.local.json | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 .claude/settings.local.json diff --git a/.claude/settings.local.json b/.claude/settings.local.json new file mode 100644 index 0000000..ed7d23f --- /dev/null +++ b/.claude/settings.local.json @@ -0,0 +1,8 @@ +{ + "permissions": { + "allow": [ + "Bash(gh repo *)", + "Bash(gh api *)" + ] + } +} From 0b0133397c697b3946956cb6457732078bc932dd Mon Sep 17 00:00:00 2001 From: LeifKlasson Date: Fri, 22 May 2026 15:23:59 +0200 Subject: [PATCH 3/3] Updates to ADS1115 to get it to work again. --- openplotterI2c/openplotterI2cRead.py | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/openplotterI2c/openplotterI2cRead.py b/openplotterI2c/openplotterI2cRead.py index 6096b0a..10abc4e 100644 --- a/openplotterI2c/openplotterI2cRead.py +++ b/openplotterI2c/openplotterI2cRead.py @@ -240,6 +240,7 @@ def main(): elif i2c_sensors[i]['type'] == 'ADS1115' or i2c_sensors[i]['type'] == 'ADS1015': from adafruit_ads1x15.analog_in import AnalogIn + from adafruit_ads1x15.ads1x15 import Pin as ADS_Pin if i2c_sensors[i]['type'] == 'ADS1115': import adafruit_ads1x15.ads1115 as ADS11 if i2c_sensors[i]['channel'] == 0: @@ -248,10 +249,10 @@ def main(): else: if i2c_sensors[i]['address']: instances.append({'name':i,'type':'ADS1115','tick':[now,now,now,now],'sensor':i2c_sensors[i],'object':ADS11.ADS1115(muxInstances[i2c_sensors[i]['address']][i2c_sensors[i]['channel']-1])}) - if instances[-1]['sensor']['data'][0]['SKkey']: instances[-1]['sensor']['data'][0]['object'] = AnalogIn(instances[-1]['object'], ADS11.ADS1115.P0) - if instances[-1]['sensor']['data'][1]['SKkey']: instances[-1]['sensor']['data'][1]['object'] = AnalogIn(instances[-1]['object'], ADS11.ADS1115.P1) - if instances[-1]['sensor']['data'][2]['SKkey']: instances[-1]['sensor']['data'][2]['object'] = AnalogIn(instances[-1]['object'], ADS11.ADS1115.P2) - if instances[-1]['sensor']['data'][3]['SKkey']: instances[-1]['sensor']['data'][3]['object'] = AnalogIn(instances[-1]['object'], ADS11.ADS1115.P3) + if instances[-1]['sensor']['data'][0]['SKkey']: instances[-1]['sensor']['data'][0]['object'] = AnalogIn(instances[-1]['object'], ADS_Pin.A0) + if instances[-1]['sensor']['data'][1]['SKkey']: instances[-1]['sensor']['data'][1]['object'] = AnalogIn(instances[-1]['object'], ADS_Pin.A1) + if instances[-1]['sensor']['data'][2]['SKkey']: instances[-1]['sensor']['data'][2]['object'] = AnalogIn(instances[-1]['object'], ADS_Pin.A2) + if instances[-1]['sensor']['data'][3]['SKkey']: instances[-1]['sensor']['data'][3]['object'] = AnalogIn(instances[-1]['object'], ADS_Pin.A3) elif i2c_sensors[i]['type'] == 'ADS1015': import adafruit_ads1x15.ads1015 as ADS10 @@ -261,10 +262,10 @@ def main(): else: if i2c_sensors[i]['address']: instances.append({'name':i,'type':'ADS1015','tick':[now,now,now,now],'sensor':i2c_sensors[i],'object':ADS10.ADS1015(muxInstances[i2c_sensors[i]['address']][i2c_sensors[i]['channel']-1])}) - if instances[-1]['sensor']['data'][0]['SKkey']: instances[-1]['sensor']['data'][0]['object'] = AnalogIn(instances[-1]['object'], ADS10.ADS1015.P0) - if instances[-1]['sensor']['data'][1]['SKkey']: instances[-1]['sensor']['data'][1]['object'] = AnalogIn(instances[-1]['object'], ADS10.ADS1015.P1) - if instances[-1]['sensor']['data'][2]['SKkey']: instances[-1]['sensor']['data'][2]['object'] = AnalogIn(instances[-1]['object'], ADS10.ADS1015.P2) - if instances[-1]['sensor']['data'][3]['SKkey']: instances[-1]['sensor']['data'][3]['object'] = AnalogIn(instances[-1]['object'], ADS10.ADS1015.P3) + if instances[-1]['sensor']['data'][0]['SKkey']: instances[-1]['sensor']['data'][0]['object'] = AnalogIn(instances[-1]['object'], ADS_Pin.A0) + if instances[-1]['sensor']['data'][1]['SKkey']: instances[-1]['sensor']['data'][1]['object'] = AnalogIn(instances[-1]['object'], ADS_Pin.A1) + if instances[-1]['sensor']['data'][2]['SKkey']: instances[-1]['sensor']['data'][2]['object'] = AnalogIn(instances[-1]['object'], ADS_Pin.A2) + if instances[-1]['sensor']['data'][3]['SKkey']: instances[-1]['sensor']['data'][3]['object'] = AnalogIn(instances[-1]['object'], ADS_Pin.A3) gain = 1 if 'sensorSettings' in instances[-1]['sensor']: @@ -294,7 +295,12 @@ def main(): sys.stdout.flush() else: i2c_sensors[i]['error'] = '' - conf2.set('I2C', 'sensors', str(i2c_sensors)) + i2c_sensors_save = {} + for _n, _s in i2c_sensors.items(): + _sc = {k: v for k, v in _s.items() if k != 'data'} + _sc['data'] = [{k: v for k, v in d.items() if k not in ('object', 'ranges')} for d in _s['data']] + i2c_sensors_save[_n] = _sc + conf2.set('I2C', 'sensors', str(i2c_sensors_save)) #read sensors if not instances: @@ -751,4 +757,4 @@ def main(): if __name__ == '__main__': main() - \ No newline at end of file +