From d17f1179af9458380dd84a3e76f26219946a967b Mon Sep 17 00:00:00 2001 From: Georg Nagel Date: Tue, 14 May 2019 13:52:32 +0200 Subject: [PATCH] try to import bitbangio if busio SPI is not available --- adafruit_dotstar.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/adafruit_dotstar.py b/adafruit_dotstar.py index 6e1109a..e1b37ac 100755 --- a/adafruit_dotstar.py +++ b/adafruit_dotstar.py @@ -85,17 +85,23 @@ def __init__(self, clock, data, n, *, brightness=1.0, auto_write=True, pixel_order=BGR, baudrate=4000000): self._spi = None try: - self._spi = busio.SPI(clock, MOSI=data) + try: + self._spi = busio.SPI(clock, MOSI=data) + except (NotImplementedError, ValueError): + import bitbangio + self._spi = bitbangio.SPI(clock, MOSI=data) + while not self._spi.try_lock(): pass self._spi.configure(baudrate=baudrate) - except (NotImplementedError, ValueError): + except (NotImplementedError, ValueError, ImportError): self.dpin = digitalio.DigitalInOut(data) self.cpin = digitalio.DigitalInOut(clock) self.dpin.direction = digitalio.Direction.OUTPUT self.cpin.direction = digitalio.Direction.OUTPUT self.cpin.value = False + self._n = n # Supply one extra clock cycle for each two pixels in the strip. self.end_header_size = n // 16