I've successfully setup a NeoKey 1x4 QT I2C, adding mechanical keys and making them light up on key press via CircuitPython, using this example (limiting to one device). Cool! This uses the Quicc connections controlled with a Feather (the newish USB-C pink one!).
I ordered a second NeoKey 1x4 so that I could more closely follow the double NeoKey 1x4 QT I2C example. I soldered the A0 address area (neat design idea!) to give it an address of 0x31. When I plug it in and run the full example, I get an error that the address can't be found.
To troubleshoot, first I tried this handy script that scans for connected devices and delivers I2C addresses:
Code: Select all
# SPDX-FileCopyrightText: 2017 Limor Fried for Adafruit Industries
#
# SPDX-License-Identifier: MIT
"""CircuitPython I2C Device Address Scan"""
# If you run this and it seems to hang, try manually unlocking
# your I2C bus from the REPL with
# >>> import board
# >>> board.I2C().unlock()
import time
import board
# To use default I2C bus (most boards)
i2c = board.I2C()
# To create I2C bus on specific pins
# import busio
# i2c = busio.I2C(board.SCL1, board.SDA1) # QT Py RP2040 STEMMA connector
# i2c = busio.I2C(board.GP1, board.GP0) # Pi Pico RP2040
while not i2c.try_lock():
pass
try:
while True:
print(
"I2C addresses found:",
[hex(device_address) for device_address in i2c.scan()],
)
time.sleep(2)
finally: # unlock the i2c bus when ctrl-c'ing out of the loop
i2c.unlock()
I'm not sure where to go from here. Could it be a hardware thing or a personal knowledge thing (betting on the latter)?