I2C Scan Test
Here's a simple test to make sure the Yoto Mini is working with CircuitPython. You can run an I2C scan to detect any peripherals connected over I2C. The Yoto Mini has quite a few, so it makes for a good test.
Download the Project Bundle
In the example below, click the Download Project Bundle button to download the necessary Python file in a zip file. Then, extract the contents of the zip file. For this example, no additional libraries are needed.
# SPDX-FileCopyrightText: 2017 Limor Fried for Adafruit Industries
#
# SPDX-License-Identifier: MIT
# pylint: disable=broad-except, eval-used, unused-import
"""CircuitPython I2C Device Address Scan"""
import time
import board
import busio
# List of potential I2C busses
ALL_I2C = ("board.I2C()", "board.STEMMA_I2C()", "busio.I2C(board.GP1, board.GP0)")
# Determine which busses are valid
found_i2c = []
for name in ALL_I2C:
try:
print("Checking {}...".format(name), end="")
bus = eval(name)
bus.unlock()
found_i2c.append((name, bus))
print("ADDED.")
except Exception as e:
print("SKIPPED:", e)
# Scan valid busses
if len(found_i2c):
print("-" * 40)
print("I2C SCAN")
print("-" * 40)
while True:
for bus_info in found_i2c:
name = bus_info[0]
bus = bus_info[1]
while not bus.try_lock():
pass
print(
name,
"addresses found:",
[hex(device_address) for device_address in bus.scan()],
)
bus.unlock()
time.sleep(2)
else:
print("No valid I2C bus found.")
Upload the I2C Scanner Example with Web Workflow
Follow these steps to add the code.py file from the Project Bundle to the Yoto Mini with Web Workflow.Â
Copy and paste the I2C scanner code.py file into the Editor window. Then, click Save + Run to run the code.
Page last edited February 04, 2026
Text editor powered by tinymce.