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.")