fix 2.9_V2 & 4.01f
This commit is contained in:
parent
49260094e6
commit
7c368a22af
65 changed files with 4803 additions and 335 deletions
|
@ -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)):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue