Simple test
Ensure your device works with this simple test.
examples/ble_magic_light_simpletest.py
1# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries
2# SPDX-License-Identifier: MIT
3
4"""This demo connects to a magic light and has it do a colorwheel."""
5
6import _bleio
7import adafruit_ble
8from adafruit_ble.advertising.standard import ProvideServicesAdvertisement
9from rainbowio import colorwheel
10
11from adafruit_ble_magic_light import MagicLightService
12
13# CircuitPython <6 uses its own ConnectionError type. So, is it if available. Otherwise,
14# the built in ConnectionError is used.
15connection_error = ConnectionError
16if hasattr(_bleio, "ConnectionError"):
17 connection_error = _bleio.ConnectionError
18
19
20def find_connection():
21 for connection in radio.connections:
22 if MagicLightService not in connection:
23 continue
24 return connection, connection[MagicLightService]
25 return None, None
26
27
28# Start advertising before messing with the display so that we can connect immediately.
29radio = adafruit_ble.BLERadio()
30
31active_connection, pixels = find_connection()
32current_notification = None
33app_icon_file = None
34while True:
35 if not active_connection:
36 print("Scanning for Magic Light")
37 for scan in radio.start_scan(ProvideServicesAdvertisement):
38 if MagicLightService in scan.services:
39 active_connection = radio.connect(scan)
40 try:
41 pixels = active_connection[MagicLightService]
42 except connection_error:
43 print("disconnected")
44 continue
45 break
46 radio.stop_scan()
47
48 i = 0
49 while active_connection.connected:
50 pixels[0] = colorwheel(i % 256)
51 i += 1
52
53 active_connection = None