From 3009ef94c36373866dca9ccd4313b4d1339be075 Mon Sep 17 00:00:00 2001 From: Phil Howard Date: Fri, 3 Jan 2020 17:48:54 +0000 Subject: [PATCH] Hopeful fix for spidev segfault issue #6 From continued testing up to 1.8 million simulated display updates it appears that either updating to spidev==3.4 or using xfer3 fixes the issue with a segfault after ~167000 updates. --- library/ST7735/__init__.py | 5 +---- library/setup.py | 3 ++- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/library/ST7735/__init__.py b/library/ST7735/__init__.py index 3bb19a5..b35ab3c 100644 --- a/library/ST7735/__init__.py +++ b/library/ST7735/__init__.py @@ -206,10 +206,7 @@ class ST7735(object): # Convert scalar argument to list so either can be passed as parameter. if isinstance(data, numbers.Number): data = [data & 0xFF] - # Write data a chunk at a time. - for start in range(0, len(data), chunk_size): - end = min(start + chunk_size, len(data)) - self._spi.xfer(data[start:end]) + self._spi.xfer3(data) def set_backlight(self, value): """Set the backlight on/off.""" diff --git a/library/setup.py b/library/setup.py index b88f220..22c4453 100644 --- a/library/setup.py +++ b/library/setup.py @@ -19,4 +19,5 @@ setup(name='ST7735', author_email='phil@pimoroni.com', classifiers=classifiers, url='https://github.com/pimoroni/st7735-160x80-python/', - packages=find_packages()) + packages=find_packages(), + install_requires=['spidev>=3.4'])