Simple test
Ensure your device works with this simple test.
examples/bluefruitspi_simpletest.py
1# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries
2# SPDX-License-Identifier: MIT
3
4# A simple echo test for the Feather M0 Bluefruit
5# Sets the name, then echo's all RX'd data with a reversed packet
6
7import time
8
9import board
10import busio
11from digitalio import DigitalInOut
12
13from adafruit_bluefruitspi import BluefruitSPI
14
15spi_bus = busio.SPI(board.SCK, MOSI=board.MOSI, MISO=board.MISO)
16cs = DigitalInOut(board.D8)
17irq = DigitalInOut(board.D7)
18rst = DigitalInOut(board.D4)
19bluefruit = BluefruitSPI(spi_bus, cs, irq, rst, debug=False)
20
21# Initialize the device and perform a factory reset
22print("Initializing the Bluefruit LE SPI Friend module")
23bluefruit.init()
24bluefruit.command_check_OK(b"AT+FACTORYRESET", delay=1)
25
26# Print the response to 'ATI' (info request) as a string
27print(str(bluefruit.command_check_OK(b"ATI"), "utf-8"))
28
29# Change advertised name
30bluefruit.command_check_OK(b"AT+GAPDEVNAME=BlinkaBLE")
31
32while True:
33 print("Waiting for a connection to Bluefruit LE Connect ...")
34 # Wait for a connection ...
35 dotcount = 0
36 while not bluefruit.connected:
37 print(".", end="")
38 dotcount = (dotcount + 1) % 80
39 if dotcount == 79:
40 print("")
41 time.sleep(0.5)
42
43 # Once connected, check for incoming BLE UART data
44 print("\n *Connected!*")
45 connection_timestamp = time.monotonic()
46 while True:
47 # Check our connection status every 3 seconds
48 if time.monotonic() - connection_timestamp > 3:
49 connection_timestamp = time.monotonic()
50 if not bluefruit.connected:
51 break
52
53 # OK we're still connected, see if we have any data waiting
54 resp = bluefruit.uart_rx()
55 if not resp:
56 continue # nothin'
57 print(f"Read {len(resp)} bytes: {resp}")
58 # Now write it!
59 print("Writing reverse...")
60 send = []
61 for i in range(len(resp), 0, -1):
62 send.append(resp[i - 1])
63 print(bytes(send))
64 bluefruit.uart_tx(bytes(send))
65
66 print("Connection lost.")