Skip to content

Commit f6f741c

Browse files
committed
easier retries
1 parent e021014 commit f6f741c

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

adafruit_esp32spi/adafruit_esp32spi.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,12 @@ def __init__(self, spi, cs_pin, ready_pin, reset_pin, gpio0_pin, *, debug=False)
8181
self._cs.direction = Direction.OUTPUT
8282
self._ready.direction = Direction.INPUT
8383
self._reset.direction = Direction.OUTPUT
84-
self._gpio0.direction = Direction.OUTPUT
84+
self._gpio0.direction = Direction.INPUT
85+
86+
self.reset()
8587

88+
def reset(self):
89+
self._gpio0.direction = Direction.OUTPUT
8690
if self._debug:
8791
print("Reset ESP32")
8892
self._gpio0.value = True # not bootload mode
@@ -100,9 +104,12 @@ def spi_slave_select(self):
100104
self._spi.configure(baudrate=100000) # start slow
101105
self._cs.value = False # the actual select
102106
times = time.monotonic()
103-
while (time.monotonic() - times) < 0.1: # wait up to 100ms
107+
while (time.monotonic() - times) < 1: # wait up to 1000ms
104108
if self._ready.value:
105109
return
110+
# some failure
111+
self._cs.value = True
112+
self._spi.unlock()
106113
raise RuntimeError("ESP32 timed out on SPI select")
107114

108115
def slave_deselect(self):

0 commit comments

Comments
 (0)