code.py
1 # SPDX-FileCopyrightText: 2018 Kattni Rembor for Adafruit Industries 2 # 3 # SPDX-License-Identifier: MIT 4 5 """CircuitPython Essentials I2C possible pin-pair identifying script""" 6 import board 7 import busio 8 from microcontroller import Pin 9 10 11 def is_hardware_I2C(scl, sda): 12 try: 13 p = busio.I2C(scl, sda) 14 p.deinit() 15 return True 16 except ValueError: 17 return False 18 except RuntimeError: 19 return True 20 21 22 def get_unique_pins(): 23 exclude = ['NEOPIXEL', 'APA102_MOSI', 'APA102_SCK'] 24 pins = [pin for pin in [ 25 getattr(board, p) for p in dir(board) if p not in exclude] 26 if isinstance(pin, Pin)] 27 unique = [] 28 for p in pins: 29 if p not in unique: 30 unique.append(p) 31 return unique 32 33 34 for scl_pin in get_unique_pins(): 35 for sda_pin in get_unique_pins(): 36 if scl_pin is sda_pin: 37 continue 38 if is_hardware_I2C(scl_pin, sda_pin): 39 print("SCL pin:", scl_pin, "\t SDA pin:", sda_pin)