fix 2.9_V2 & 4.01f

This commit is contained in:
SSYYL 2021-01-26 14:35:45 +08:00
parent 49260094e6
commit 7c368a22af
65 changed files with 4803 additions and 335 deletions

View file

@ -43,6 +43,28 @@ class EPD:
self.width = EPD_WIDTH
self.height = EPD_HEIGHT
WF_PARTIAL_2IN9 = [
0x0,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x80,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x40,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0A,0x0,0x0,0x0,0x0,0x0,0x2,
0x1,0x0,0x0,0x0,0x0,0x0,0x0,
0x1,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x22,0x22,0x22,0x22,0x22,0x22,0x0,0x0,0x0,
0x22,0x17,0x41,0xB0,0x32,0x36,
]
# Hardware reset
def reset(self):
epdconfig.digital_write(self.reset_pin, 1)
@ -78,10 +100,16 @@ class EPD:
def TurnOnDisplay_Partial(self):
self.send_command(0x22) # DISPLAY_UPDATE_CONTROL_2
self.send_data(0xFF)
self.send_data(0x0F)
self.send_command(0x20) # MASTER_ACTIVATION
self.ReadBusy()
def SendLut(self):
self.send_command(0x32)
for i in range(0, 153):
self.send_data(self.WF_PARTIAL_2IN9[i])
self.ReadBusy()
def SetWindow(self, x_start, y_start, x_end, y_end):
self.send_command(0x44) # SET_RAM_X_ADDRESS_START_END_POSITION
# x point must be the multiple of 8 or the last 3 bits will be ignored
@ -106,9 +134,9 @@ class EPD:
def init(self):
if (epdconfig.module_init() != 0):
return -1
# EPD hardware init start
# EPD hardware init start
self.reset()
self.ReadBusy();
self.send_command(0x12); #SWRESET
self.ReadBusy();
@ -117,22 +145,16 @@ class EPD:
self.send_data(0x27);
self.send_data(0x01);
self.send_data(0x00);
self.send_command(0x11); #data entry mode
self.send_data(0x03);
self.SetWindow(0, 0, self.width-1, self.height-1);
self.send_command(0x3C); #BorderWavefrom
self.send_data(0x05);
self.send_command(0x21); # Display update control
self.send_data(0x00);
self.send_data(0x80);
self.send_command(0x18); #Read built-in temperature sensor
self.send_data(0x00);
self.send_data(0x80);
self.SetCursor(0, 0);
self.ReadBusy();
# EPD hardware init end
@ -195,12 +217,31 @@ class EPD:
epdconfig.delay_ms(5)
epdconfig.digital_write(self.reset_pin, 1)
epdconfig.delay_ms(10)
self.SendLut();
self.send_command(0x37);
self.send_data(0x00);
self.send_data(0x00);
self.send_data(0x00);
self.send_data(0x00);
self.send_data(0x00);
self.send_data(0x40);
self.send_data(0x00);
self.send_data(0x00);
self.send_data(0x00);
self.send_data(0x00);
self.send_command(0x3C); #BorderWavefrom
self.send_data(0x80);
self.send_command(0x22);
self.send_data(0xC0);
self.send_command(0x20);
self.ReadBusy();
self.SetWindow(0, 0, self.width - 1, self.height - 1)
self.SetCursor(0, 0)
self.send_command(0x24) # WRITE_RAM
for j in range(0, self.height):
for i in range(0, int(self.width / 8)):