66`adafruit_epd.ssd1681` - Adafruit SSD1681 - ePaper display driver
77====================================================================================
88CircuitPython driver for Adafruit SSD1681 display breakouts
9- * Author(s): Dean Miller, Ladyada
9+ * Author(s): Dean Miller, Ladyada, Melissa LeBlanc-Williams
1010"""
1111
1212import time
6666_SSD1681_SET_RAMYCOUNT = const (0x4F )
6767_SSD1681_NOP = const (0xFF )
6868
69- _LUT_DATA = b'\x02 \x02 \x01 \x11 \x12 \x12 ""fiiYX\x99 \x99 \x88 \x00 \x00 \x00 \x00 \xf8 \xb4 \x13 Q5QQ\x19 \x01 \x00 ' # pylint: disable=line-too-long
70-
7169
7270class Adafruit_SSD1681 (Adafruit_EPD ):
7371 """driver class for Adafruit SSD1681 ePaper display breakouts"""
@@ -85,16 +83,22 @@ def __init__(
8583 self ._height = height
8684
8785 self ._buffer1_size = int (width * height / 8 )
86+ self ._buffer2_size = int (width * height / 8 )
8887
8988 if sramcs_pin :
9089 self ._buffer1 = self .sram .get_view (0 )
90+ self ._buffer2 = self .sram .get_view (self ._buffer1_size )
9191 else :
9292 self ._buffer1 = bytearray ((width * height ) // 8 )
93+ self ._buffer2 = bytearray ((width * height ) // 8 )
9394 self ._framebuf1 = adafruit_framebuf .FrameBuffer (
9495 self ._buffer1 , width , height , buf_format = adafruit_framebuf .MHMSB
9596 )
97+ self ._framebuf2 = adafruit_framebuf .FrameBuffer (
98+ self ._buffer2 , width , height , buf_format = adafruit_framebuf .MHMSB
99+ )
96100 self .set_black_buffer (0 , True )
97- self .set_color_buffer (0 , True )
101+ self .set_color_buffer (1 , False )
98102 # pylint: enable=too-many-arguments
99103
100104 def begin (self , reset = True ):
@@ -158,12 +162,14 @@ def write_ram(self, index):
158162 0 or 1 for tri-color displays."""
159163 if index == 0 :
160164 return self .command (_SSD1681_WRITE_BWRAM , end = False )
161- raise RuntimeError ("RAM index must be 0" )
165+ if index == 1 :
166+ return self .command (_SSD1681_WRITE_REDRAM , end = False )
167+ raise RuntimeError ("RAM index must be 0 or 1" )
162168
163169 def set_ram_address (self , x , y ): # pylint: disable=unused-argument, no-self-use
164170 """Set the RAM address location, not used on this chipset but required by
165171 the superclass"""
166172 # Set RAM X address counter
167173 self .command (_SSD1681_SET_RAMXCOUNT , bytearray ([x ]))
168174 # Set RAM Y address counter
169- self .command (_SSD1681_SET_RAMYCOUNT , bytearray ([y >> 8 , y ]))
175+ self .command (_SSD1681_SET_RAMYCOUNT , bytearray ([y , y >> 8 ]))
0 commit comments