code.py
1 # SPDX-FileCopyrightText: 2018 Kattni Rembor for Adafruit Industries 2 # 3 # SPDX-License-Identifier: MIT 4 5 import board 6 import audiobusio 7 from microcontroller import Pin 8 9 10 def is_hardware_i2s(bit_clock, word_select, data): 11 try: 12 p = audiobusio.I2SOut(bit_clock, word_select, data) 13 p.deinit() 14 return True 15 except ValueError: 16 return False 17 18 19 def get_unique_pins(): 20 exclude = ['NEOPIXEL', 'APA102_MOSI', 'APA102_SCK'] 21 pins = [pin for pin in [ 22 getattr(board, p) for p in dir(board) if p not in exclude] 23 if isinstance(pin, Pin)] 24 unique = [] 25 for p in pins: 26 if p not in unique: 27 unique.append(p) 28 return unique 29 30 31 for bit_clock_pin in get_unique_pins(): 32 for word_select_pin in get_unique_pins(): 33 for data_pin in get_unique_pins(): 34 if bit_clock_pin is word_select_pin or bit_clock_pin is data_pin or word_select_pin\ 35 is data_pin: 36 continue 37 if is_hardware_i2s(bit_clock_pin, word_select_pin, data_pin): 38 print("Bit clock pin:", bit_clock_pin, "\t Word select pin:", word_select_pin, 39 "\t Data pin:", data_pin) 40 else: 41 pass