From c87079bc13dba7183d662c354eac74ec92d7e8c5 Mon Sep 17 00:00:00 2001 From: Mike Corrigan Date: Tue, 6 Apr 2021 18:57:29 -0500 Subject: [PATCH 1/2] change timeout to retry count in _wait_spi_char --- adafruit_esp32spi/adafruit_esp32spi.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/adafruit_esp32spi/adafruit_esp32spi.py b/adafruit_esp32spi/adafruit_esp32spi.py index 76193a8..105a6d9 100644 --- a/adafruit_esp32spi/adafruit_esp32spi.py +++ b/adafruit_esp32spi/adafruit_esp32spi.py @@ -260,9 +260,8 @@ def _read_bytes(self, spi, buffer, start=0, end=None): print("\t\tRead:", [hex(i) for i in buffer]) def _wait_spi_char(self, spi, desired): - """Read a byte with a time-out, and if we get it, check that its what we expect""" - times = time.monotonic() - while (time.monotonic() - times) < 0.1: + """Read a byte with a retry loop, and if we get it, check that its what we expect""" + for _ in range(50): r = self._read_byte(spi) if r == _ERR_CMD: raise RuntimeError("Error response to command") From 907de10f9fe700316bac101b2dc888f0707edf2d Mon Sep 17 00:00:00 2001 From: Mike Corrigan Date: Wed, 7 Apr 2021 12:04:01 -0500 Subject: [PATCH 2/2] Updated retry loop to have a time.sleep(0.01) --- adafruit_esp32spi/adafruit_esp32spi.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/adafruit_esp32spi/adafruit_esp32spi.py b/adafruit_esp32spi/adafruit_esp32spi.py index 105a6d9..c827408 100644 --- a/adafruit_esp32spi/adafruit_esp32spi.py +++ b/adafruit_esp32spi/adafruit_esp32spi.py @@ -261,12 +261,13 @@ def _read_bytes(self, spi, buffer, start=0, end=None): def _wait_spi_char(self, spi, desired): """Read a byte with a retry loop, and if we get it, check that its what we expect""" - for _ in range(50): + for _ in range(10): r = self._read_byte(spi) if r == _ERR_CMD: raise RuntimeError("Error response to command") if r == desired: return True + time.sleep(0.01) raise RuntimeError("Timed out waiting for SPI char") def _check_data(self, spi, desired):