Skip to content

Commit ac3cf2b

Browse files
authored
Merge pull request #4 from ShawnHymel/master
Updated LED and UART test
2 parents fcc6c41 + 530dc2c commit ac3cf2b

File tree

2 files changed

+32
-35
lines changed

2 files changed

+32
-35
lines changed

adafruit_boardtest/boardtest_led.py

Lines changed: 31 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -51,40 +51,47 @@
5151
# Constants
5252
LED_ON_DELAY_TIME = 0.2 # Seconds
5353
LED_OFF_DELAY_TIME = 0.2 # Seconds
54-
LED_PIN_NAMES = ['L', 'LED', 'RED_LED', 'GREEN_LED', 'BLUE_LED']
54+
LED_PIN_NAMES = ['L', 'LED', 'RED_LED', 'YELLOW_LED', 'GREEN_LED', 'BLUE_LED']
5555

5656
# Test result strings
5757
PASS = "PASS"
5858
FAIL = "FAIL"
5959
NA = "N/A"
6060

61-
# Release pins
62-
def _deinit_pins(gpios):
63-
for g in gpios:
64-
g.deinit()
65-
6661
# Toggle IO pins while waiting for answer
67-
def _toggle_wait(gpios):
68-
62+
def _toggle_wait(led_pins):
6963
timestamp = time.monotonic()
7064
led_state = False
7165
print("Are the pins listed above toggling? [y/n]")
7266
while True:
73-
if led_state:
74-
if time.monotonic() > timestamp + LED_ON_DELAY_TIME:
75-
led_state = False
76-
timestamp = time.monotonic()
77-
else:
78-
if time.monotonic() > timestamp + LED_OFF_DELAY_TIME:
79-
led_state = True
80-
timestamp = time.monotonic()
81-
for gpio in gpios:
82-
gpio.value = led_state
83-
if supervisor.runtime.serial_bytes_available:
84-
answer = input()
85-
if answer == 'y':
86-
return True
87-
return False
67+
68+
# Cycle through each pin in the list
69+
for pin in led_pins:
70+
led = digitalio.DigitalInOut(getattr(board, pin))
71+
led.direction = digitalio.Direction.OUTPUT
72+
blinking = True
73+
74+
# Blink each LED once while looking for input
75+
while blinking:
76+
if led_state:
77+
if time.monotonic() > timestamp + LED_ON_DELAY_TIME:
78+
led_state = False
79+
led.value = led_state
80+
led.deinit()
81+
blinking = False
82+
timestamp = time.monotonic()
83+
else:
84+
if time.monotonic() > timestamp + LED_OFF_DELAY_TIME:
85+
led_state = True
86+
led.value = led_state
87+
timestamp = time.monotonic()
88+
89+
# Look for user input
90+
if supervisor.runtime.serial_bytes_available:
91+
answer = input()
92+
if answer == 'y':
93+
return True
94+
return False
8895

8996
def run_test(pins):
9097

@@ -107,18 +114,8 @@ def run_test(pins):
107114
print(pin, end=' ')
108115
print('\n')
109116

110-
# Create a list of IO objects for us to toggle
111-
leds = [digitalio.DigitalInOut(getattr(board, p)) for p in led_pins]
112-
113-
# Set all LEDs to output
114-
for led in leds:
115-
led.direction = digitalio.Direction.OUTPUT
116-
117117
# Blink LEDs and wait for user to verify test
118-
result = _toggle_wait(leds)
119-
120-
# Release pins
121-
_deinit_pins(leds)
118+
result = _toggle_wait(led_pins)
122119

123120
if result:
124121
return PASS, led_pins

adafruit_boardtest/boardtest_uart.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ def run_test(pins, tx_pin=TX_PIN_NAME, rx_pin=RX_PIN_NAME, baud_rate=BAUD_RATE):
9292
test_str += chr(random.randint(ASCII_MIN, ASCII_MAX))
9393

9494
# Transmit test string
95-
uart.write(test_str)
95+
uart.write(bytearray(test_str))
9696
print("Transmitting:\t" + test_str)
9797

9898
# Wait for received string

0 commit comments

Comments
 (0)