38
38
b"\x50 \x01 \x97 " # CDI setting
39
39
)
40
40
41
+ _GRAYSCALE_START_SEQUENCE = (
42
+ b"\x04 \x80 \xc8 " # Power on
43
+ b"\x00 \x01 \xbf " # Panel setting
44
+ b"\x50 \x01 \x97 " # CDI setting
45
+ # Common voltage
46
+ b"\x20 \x2a "
47
+ b"\x00 \x0A \x00 \x00 \x00 \x01 "
48
+ b"\x60 \x14 \x14 \x00 \x00 \x01 "
49
+ b"\x00 \x14 \x00 \x00 \x00 \x01 "
50
+ b"\x00 \x13 \x0A \x01 \x00 \x01 "
51
+ b"\x00 \x00 \x00 \x00 \x00 \x00 "
52
+ b"\x00 \x00 \x00 \x00 \x00 \x00 "
53
+ b"\x00 \x00 \x00 \x00 \x00 \x00 "
54
+ # White to White
55
+ b"\x21 \x2a "
56
+ b"\x40 \x0A \x00 \x00 \x00 \x01 "
57
+ b"\x90 \x14 \x14 \x00 \x00 \x01 "
58
+ b"\x10 \x14 \x0A \x00 \x00 \x01 "
59
+ b"\xA0 \x13 \x01 \x00 \x00 \x01 "
60
+ b"\x00 \x00 \x00 \x00 \x00 \x00 "
61
+ b"\x00 \x00 \x00 \x00 \x00 \x00 "
62
+ b"\x00 \x00 \x00 \x00 \x00 \x00 "
63
+ # Black to White
64
+ b"\x22 \x2a "
65
+ b"\x40 \x0A \x00 \x00 \x00 \x01 "
66
+ b"\x90 \x14 \x14 \x00 \x00 \x01 "
67
+ b"\x00 \x14 \x0A \x00 \x00 \x01 "
68
+ b"\x99 \x0B \x04 \x04 \x01 \x01 "
69
+ b"\x00 \x00 \x00 \x00 \x00 \x00 "
70
+ b"\x00 \x00 \x00 \x00 \x00 \x00 "
71
+ b"\x00 \x00 \x00 \x00 \x00 \x00 "
72
+ # White to Black
73
+ b"\x23 \x2a "
74
+ b"\x40 \x0A \x00 \x00 \x00 \x01 "
75
+ b"\x90 \x14 \x14 \x00 \x00 \x01 "
76
+ b"\x00 \x14 \x0A \x00 \x00 \x01 "
77
+ b"\x99 \x0C \x01 \x03 \x04 \x01 "
78
+ b"\x00 \x00 \x00 \x00 \x00 \x00 "
79
+ b"\x00 \x00 \x00 \x00 \x00 \x00 "
80
+ b"\x00 \x00 \x00 \x00 \x00 \x00 "
81
+ # Black to Black
82
+ b"\x24 \x2a "
83
+ b"\x80 \x0A \x00 \x00 \x00 \x01 "
84
+ b"\x90 \x14 \x14 \x00 \x00 \x01 "
85
+ b"\x20 \x14 \x0A \x00 \x00 \x01 "
86
+ b"\x50 \x13 \x01 \x00 \x00 \x01 "
87
+ b"\x00 \x00 \x00 \x00 \x00 \x00 "
88
+ b"\x00 \x00 \x00 \x00 \x00 \x00 "
89
+ b"\x00 \x00 \x00 \x00 \x00 \x00 "
90
+ )
91
+
92
+
41
93
_STOP_SEQUENCE = b"\x50 \x01 \xf7 " b"\x07 \x01 \xA5 " # CDI setting # Deep Sleep
42
94
# pylint: disable=too-few-public-methods
43
95
class UC8151D (displayio .EPaperDisplay ):
@@ -57,14 +109,18 @@ class UC8151D(displayio.EPaperDisplay):
57
109
"""
58
110
59
111
def __init__ (self , bus , ** kwargs ):
112
+ if kwargs .get ("grayscale" , False ):
113
+ start_sequence = bytearray (_GRAYSCALE_START_SEQUENCE )
114
+ else :
115
+ start_sequence = bytearray (_START_SEQUENCE )
60
116
width = kwargs ["width" ]
61
117
height = kwargs ["height" ]
62
118
if "rotation" in kwargs and kwargs ["rotation" ] % 180 != 0 :
63
119
width , height = height , width
64
120
65
121
super ().__init__ (
66
122
bus ,
67
- _START_SEQUENCE ,
123
+ start_sequence ,
68
124
_STOP_SEQUENCE ,
69
125
** kwargs ,
70
126
ram_width = 128 ,
0 commit comments