def send_command(self, command): epdconfig.digital_write(self.dc_pin, GPIO.LOW) epdconfig.spi_writebyte([command])
def send_command(self, command): epdconfig.digital_write(self.dc_pin, 0) epdconfig.digital_write(self.cs_pin, 0) epdconfig.spi_writebyte([command]) epdconfig.digital_write(self.cs_pin, 1)
def send_data(self, data): epdconfig.digital_write(self.dc_pin, 1) epdconfig.digital_write(self.cs_pin, 0) epdconfig.spi_writebyte([data]) epdconfig.digital_write(self.cs_pin, 1)
def Init(self): print("EPD init...") epdconfig.module_init() epdconfig.digital_write(self.EPD_M1_CS_PIN, 1) epdconfig.digital_write(self.EPD_S1_CS_PIN, 1) epdconfig.digital_write(self.EPD_M2_CS_PIN, 1) epdconfig.digital_write(self.EPD_S2_CS_PIN, 1) self.Reset() #panel setting self.M1_SendCommand(0x00) self.M1_SendData(0x1f) #KW-3f KWR-2F BWROTP 0f BWOTP 1f self.S1_SendCommand(0x00) self.S1_SendData(0x1f) self.M2_SendCommand(0x00) self.M2_SendData(0x13) self.S2_SendCommand(0x00) self.S2_SendData(0x13) # booster soft start self.M1_SendCommand(0x06) self.M1_SendData(0x17) #A self.M1_SendData(0x17) #B self.M1_SendData(0x39) #C self.M1_SendData(0x17) self.M2_SendCommand(0x06) self.M2_SendData(0x17) self.M2_SendData(0x17) self.M2_SendData(0x39) self.M2_SendData(0x17) #resolution setting self.M1_SendCommand(0x61) self.M1_SendData(0x02) self.M1_SendData(0x88) #source 648 self.M1_SendData(0x01) #gate 492 self.M1_SendData(0xEC) self.S1_SendCommand(0x61) self.S1_SendData(0x02) self.S1_SendData(0x90) #source 656 self.S1_SendData(0x01) #gate 492 self.S1_SendData(0xEC) self.M2_SendCommand(0x61) self.M2_SendData(0x02) self.M2_SendData(0x90) #source 656 self.M2_SendData(0x01) #gate 492 self.M2_SendData(0xEC) self.S2_SendCommand(0x61) self.S2_SendData(0x02) self.S2_SendData(0x88) #source 648 self.S2_SendData(0x01) #gate 492 self.S2_SendData(0xEC) self.M1S1M2S2_SendCommand(0x15) #DUSPI self.M1S1M2S2_SendData(0x20) self.M1S1M2S2_SendCommand(0x50) #Vcom and data interval setting self.M1S1M2S2_SendData(0x21) #Border KW self.M1S1M2S2_SendData(0x07) self.M1S1M2S2_SendCommand(0x60) #TCON self.M1S1M2S2_SendData(0x22) self.M1S1M2S2_SendCommand(0xE3) self.M1S1M2S2_SendData(0x00) #temperature temp = self.M1_ReadTemperature() self.M1S1M2S2_SendCommand(0xe0) #Cascade setting self.M1S1M2S2_SendData(0x03) self.M1S1M2S2_SendCommand(0xe5) #Force temperature self.M1S1M2S2_SendData(temp)
def send_data(self, data): epdconfig.digital_write(self.cs_pin, GPIO.LOW) epdconfig.digital_write(self.dc_pin, GPIO.HIGH) epdconfig.spi_writebyte([data]) epdconfig.digital_write(self.cs_pin, GPIO.HIGH)
def Reset(self): epdconfig.digital_write(self.EPD_M1S1_RST_PIN, 1) epdconfig.digital_write(self.EPD_M2S2_RST_PIN, 1) time.sleep(0.2) epdconfig.digital_write(self.EPD_M1S1_RST_PIN, 0) epdconfig.digital_write(self.EPD_M2S2_RST_PIN, 0) time.sleep(0.01) epdconfig.digital_write(self.EPD_M1S1_RST_PIN, 1) epdconfig.digital_write(self.EPD_M2S2_RST_PIN, 1) time.sleep(0.2)
def M1_ReadTemperature(self): self.M1_SendCommand(0x40) self.M1_ReadBusy() time.sleep(0.3) epdconfig.digital_write(self.EPD_M1_CS_PIN, 0) epdconfig.digital_write(self.EPD_S1_CS_PIN, 1) epdconfig.digital_write(self.EPD_M2_CS_PIN, 1) epdconfig.digital_write(self.EPD_S2_CS_PIN, 1) epdconfig.digital_write(self.EPD_M1S1_DC_PIN, 1) time.sleep(0.01) # temp = epdconfig.spi_readbyte(0x00) temp = 25 print("Read Temperature Reg:%d" % temp) epdconfig.digital_write(self.EPD_M1_CS_PIN, 1) # temp =0x29 return temp
def M1_SendData(self, val): epdconfig.digital_write(self.EPD_M1S1_DC_PIN, 1) epdconfig.digital_write(self.EPD_M1_CS_PIN, 0) epdconfig.spi_writebyte(val) epdconfig.digital_write(self.EPD_M1_CS_PIN, 1)
def M1_SendCommand(self, cmd): epdconfig.digital_write(self.EPD_M1S1_DC_PIN, 0) epdconfig.digital_write(self.EPD_M1_CS_PIN, 0) epdconfig.spi_writebyte(cmd) epdconfig.digital_write(self.EPD_M1_CS_PIN, 1)
def S2_SendData(self, val): epdconfig.digital_write(self.EPD_M2S2_DC_PIN, 1) epdconfig.digital_write(self.EPD_S2_CS_PIN, 0) epdconfig.spi_writebyte(val) epdconfig.digital_write(self.EPD_S2_CS_PIN, 1)
def S2_SendCommand(self, cmd): epdconfig.digital_write(self.EPD_M2S2_DC_PIN, 0) epdconfig.digital_write(self.EPD_S2_CS_PIN, 0) epdconfig.spi_writebyte(cmd) epdconfig.digital_write(self.EPD_S2_CS_PIN, 1)
def Init(self): print("EPD init...") epdconfig.module_init() epdconfig.digital_write(self.EPD_M1_CS_PIN, 1) epdconfig.digital_write(self.EPD_S1_CS_PIN, 1) epdconfig.digital_write(self.EPD_M2_CS_PIN, 1) epdconfig.digital_write(self.EPD_S2_CS_PIN, 1) self.Reset() #panel setting self.M1_SendCommand(0x00) self.M1_SendData(0x2f) #KW-3f KWR-2F BWROTP 0f BWOTP 1f self.S1_SendCommand(0x00) self.S1_SendData(0x2f) self.M2_SendCommand(0x00) self.M2_SendData(0x23) self.S2_SendCommand(0x00) self.S2_SendData(0x23) # POWER SETTING self.M1_SendCommand(0x01) self.M1_SendData(0x07) self.M1_SendData(0x17) # VGH=20V,VGL=-20V self.M1_SendData(0x3F) # VDH=15V self.M1_SendData(0x3F) # VDL=-15V self.M1_SendData(0x0d) self.M2_SendCommand(0x01) self.M2_SendData(0x07) self.M2_SendData(0x17) # VGH=20V,VGL=-20V self.M2_SendData(0x3F) # VDH=15V self.M2_SendData(0x3F) # VDL=-15V self.M2_SendData(0x0d) # booster soft start self.M1_SendCommand(0x06) self.M1_SendData(0x17) #A self.M1_SendData(0x17) #B self.M1_SendData(0x39) #C self.M1_SendData(0x17) self.M2_SendCommand(0x06) self.M2_SendData(0x17) self.M2_SendData(0x17) self.M2_SendData(0x39) self.M2_SendData(0x17) #resolution setting self.M1_SendCommand(0x61) self.M1_SendData(0x02) self.M1_SendData(0x88) #source 648 self.M1_SendData(0x01) #gate 492 self.M1_SendData(0xEC) self.S1_SendCommand(0x61) self.S1_SendData(0x02) self.S1_SendData(0x90) #source 656 self.S1_SendData(0x01) #gate 492 self.S1_SendData(0xEC) self.M2_SendCommand(0x61) self.M2_SendData(0x02) self.M2_SendData(0x90) #source 656 self.M2_SendData(0x01) #gate 492 self.M2_SendData(0xEC) self.S2_SendCommand(0x61) self.S2_SendData(0x02) self.S2_SendData(0x88) #source 648 self.S2_SendData(0x01) #gate 492 self.S2_SendData(0xEC) self.M1S1M2S2_SendCommand(0x15) #DUSPI self.M1S1M2S2_SendData(0x20) self.M1S1M2S2_SendCommand(0x30) # PLL self.M1S1M2S2_SendData(0x08) self.M1S1M2S2_SendCommand(0x50) #Vcom and data interval setting self.M1S1M2S2_SendData(0x31) self.M1S1M2S2_SendData(0x07) self.M1S1M2S2_SendCommand(0x60) #TCON self.M1S1M2S2_SendData(0x22) self.M1_SendCommand(0xE0) #POWER SETTING self.M1_SendData(0x01) self.M2_SendCommand(0xE0) #POWER SETTING self.M2_SendData(0x01) self.M1S1M2S2_SendCommand(0xE3) self.M1S1M2S2_SendData(0x00) self.M1_SendCommand(0x82) self.M1_SendData(0x1c) self.M2_SendCommand(0x82) self.M2_SendData(0x1c) self.SetLut()