Skip to content

Commit 98a7d62

Browse files
committed
added sensecap indicator init code
1 parent 2df9373 commit 98a7d62

File tree

3 files changed

+153
-2
lines changed

3 files changed

+153
-2
lines changed
Lines changed: 152 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,152 @@
1+
import time
2+
3+
4+
# Sensecap Indicator
5+
def init(self):
6+
param_buf = bytearray(16)
7+
param_mv = memoryview(param_buf)
8+
9+
param_buf[:5] = bytearray([0x77, 0x01, 0x00, 0x00, 0x10])
10+
self.set_params(0xFF, param_mv[:5])
11+
12+
param_buf[:2] = bytearray([0x3B, 0x00])
13+
self.set_params(0xC0, param_mv[:2])
14+
15+
param_buf[:2] = bytearray([0x0D, 0x02])
16+
self.set_params(0xC1, param_mv[:2])
17+
18+
param_buf[:2] = bytearray([0x31, 0x05])
19+
self.set_params(0xC2, param_mv[:2])
20+
21+
param_buf[:1] = bytearray([0x04])
22+
self.set_params(0xC7, param_mv[:1])
23+
24+
# changed by manufacture
25+
param_buf[0] = 0x08
26+
self.set_params(0xCD, param_mv[:1])
27+
28+
# Positive Voltage Gamma Control
29+
param_buf[:16] = bytearray([
30+
0x00, 0x11, 0x18, 0x0E, 0x11, 0x06, 0x07, 0x08,
31+
0x07, 0x22, 0x04, 0x12, 0x0F, 0xAA, 0x31, 0x18])
32+
self.set_params(0xB0, param_mv[:16])
33+
34+
# Negative Voltage Gamma Control
35+
param_buf[:16] = bytearray([
36+
0x00, 0x11, 0x19, 0x0E, 0x12, 0x07, 0x08, 0x08,
37+
0x08, 0x22, 0x04, 0x11, 0x11, 0xA9, 0x32, 0x18])
38+
self.set_params(0xB1, param_mv[:16])
39+
40+
# PAGE1
41+
param_buf[:5] = bytearray([0x77, 0x01, 0x00, 0x00, 0x11])
42+
self.set_params(0xFF, param_mv[:5])
43+
44+
# Vop=4.7375v
45+
param_buf[0] = 0x60
46+
self.set_params(0xB0, param_mv[:1])
47+
48+
# VCOM=32
49+
param_buf[0] = 0x32
50+
self.set_params(0xB1, param_mv[:1])
51+
52+
# VGH=15v
53+
param_buf[0] = 0x07
54+
self.set_params(0xB2, param_mv[:1])
55+
56+
param_buf[0] = 0x80
57+
self.set_params(0xB3, param_mv[:1])
58+
59+
# VGL=-10.17v
60+
param_buf[0] = 0x49
61+
self.set_params(0xB5, param_mv[:1])
62+
63+
param_buf[0] = 0x85
64+
self.set_params(0xB7, param_mv[:1])
65+
66+
# AVDD=6.6 & AVCL=-4.6
67+
param_buf[0] = 0x21
68+
self.set_params(0xB8, param_mv[:1])
69+
70+
param_buf[0] = 0x78
71+
self.set_params(0xC1, param_mv[:1])
72+
73+
param_buf[0] = 0x78
74+
self.set_params(0xC2, param_mv[:1])
75+
76+
time.sleep_ms(20)
77+
78+
param_buf[:3] = bytearray([0x00, 0x1B, 0x02])
79+
self.set_params(0xE0, param_mv[:3])
80+
81+
param_buf[:11] = bytearray([
82+
0x08, 0xA0, 0x00, 0x00, 0x07, 0xA0,
83+
0x00, 0x00, 0x00, 0x44, 0x44])
84+
self.set_params(0xE1, param_mv[:11])
85+
86+
param_buf[:12] = bytearray([
87+
0x11, 0x11, 0x44, 0x44, 0xED, 0xA0,
88+
0x00, 0x00, 0xEC, 0xA0, 0x00, 0x00])
89+
self.set_params(0xE2, param_mv[:12])
90+
91+
param_buf[:4] = bytearray([0x00, 0x00, 0x11, 0x11])
92+
self.set_params(0xE3, param_mv[:4])
93+
94+
param_buf[:2] = bytearray([0x44, 0x44])
95+
self.set_params(0xE4, param_mv[:2])
96+
97+
param_buf[:16] = bytearray([
98+
0x0A, 0xE9, 0xD8, 0xA0, 0x0C, 0xEB, 0xD8, 0xA0,
99+
0x0E, 0xED, 0xD8, 0xA0, 0x10, 0xEF, 0xD8, 0xA0])
100+
self.set_params(0xE5, param_mv[:16])
101+
102+
param_buf[:4] = bytearray([0x00, 0x00, 0x11, 0x11])
103+
self.set_params(0xE6, param_mv[:4])
104+
105+
param_buf[:2] = bytearray([0x44, 0x44])
106+
self.set_params(0xE7, param_mv[:2])
107+
108+
param_buf[:16] = bytearray([
109+
0x09, 0xE8, 0xD8, 0xA0, 0x0B, 0xEA, 0xD8, 0xA0,
110+
0x0D, 0xEC, 0xD8, 0xA0, 0x0F, 0xEE, 0xD8, 0xA0])
111+
self.set_params(0xE8, param_mv[:16])
112+
113+
param_buf[:7] = bytearray([0x02, 0x00, 0xE4, 0xE4, 0x88, 0x00, 0x40])
114+
self.set_params(0xEB, param_mv[:7])
115+
116+
param_buf[:2] = bytearray([0x3C, 0x00])
117+
self.set_params(0xEC, param_mv[:2])
118+
119+
param_buf[:16] = bytearray([
120+
0xAB, 0x89, 0x76, 0x54, 0x02, 0xFF, 0xFF, 0xFF,
121+
0xFF, 0xFF, 0xFF, 0x20, 0x45, 0x67, 0x98, 0xBA])
122+
self.set_params(0xED, param_mv[:16])
123+
124+
param_buf[:1] = bytearray([0x10])
125+
self.set_params(0x36, param_mv[:1])
126+
127+
# -----------VAP & VAN---------------
128+
param_buf[:5] = bytearray([0x77, 0x01, 0x00, 0x00, 0x13])
129+
self.set_params(0xFF, param_mv[:5])
130+
131+
param_buf[0] = 0xE4
132+
self.set_params(0xE5, param_mv[:1])
133+
134+
param_buf[:5] = bytearray([0x77, 0x01, 0x00, 0x00, 0x00])
135+
self.set_params(0xFF, param_mv[:5])
136+
137+
# 0x70 RGB888, 0x60 RGB666, 0x50 RGB565
138+
param_buf[0] = 0x60
139+
self.set_params(0x3A, param_mv[:1])
140+
141+
# Display Inversion On
142+
self.set_params(0x21)
143+
144+
# Sleep Out
145+
self.set_params(0x11)
146+
147+
time.sleep_ms(120) # NOQA
148+
149+
# Display On
150+
self.set_params(0x29)
151+
152+
time.sleep_ms(120) # NOQA

api_drivers/common_api_drivers/display/st7701/st7701.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ def __init__(
211211
)
212212

213213
def _spi_3wire_init(self, type): # NOQA
214-
if type < 1 or type > 16:
214+
if type < 1 or type > 17:
215215
raise RuntimeError('Invalid display type')
216216

217217
mod_name = f'_st7701_type{type}'

spi3wire.pyi

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ class Spi3Wire:
1212
use_dc_bit: bool = True,
1313
dc_zero_on_data: bool = False,
1414
lsb_first: bool = False,
15-
dc_data_high: bool = True,
1615
cs_high_active: bool = False,
1716
del_keep_cs_inactive: bool = False,
1817
):

0 commit comments

Comments
 (0)