def init(self): if (epdconfig.module_init() != 0): return -1 self.reset() self.send_command(0x06) # BOOSTER_SOFT_START self.send_data(0x17) self.send_data(0x17) self.send_data(0x17) self.send_command(0x04) # POWER_ON self.ReadBusy() self.send_command(0x00) # PANEL_SETTING self.send_data(0x8F) self.send_command(0x50) # VCOM_AND_DATA_INTERVAL_SETTING self.send_data(0xF0) self.send_command(0x61) # RESOLUTION_SETTING self.send_data(self.width & 0xff) self.send_data(self.height >> 8) self.send_data(self.height & 0xff) return 0
def init(self): if (epdconfig.module_init() != 0): return -1 # EPD hardware init start self.reset() self.send_command(0x01) # POWER_SETTING self.send_data(0x07) self.send_data(0x00) self.send_data(0x08) self.send_data(0x00) self.send_command(0x06) # BOOSTER_SOFT_START self.send_data(0x07) self.send_data(0x07) self.send_data(0x07) self.send_command(0x04) # POWER_ON self.ReadBusy() self.send_command(0X00) # PANEL_SETTING self.send_data(0xCF) self.send_command(0X50) # VCOM_AND_DATA_INTERVAL_SETTING self.send_data(0x17) self.send_command(0x30) # PLL_CONTROL self.send_data(0x39) self.send_command(0x61) # TCON_RESOLUTION set x and y self.send_data(0xC8) self.send_data(0x00) self.send_data(0xC8) self.send_command(0x82) # VCM_DC_SETTING_REGISTER self.send_data(0x0E) self.set_lut_bw() self.set_lut_red() return 0
def init(self): if (epdconfig.module_init() != 0): return -1 # EPD hardware init start self.reset() self.send_command(0x06) # boost soft start self.send_data(0x17) self.send_data(0x17) self.send_data(0x17) self.send_command(0x04) # power on self.ReadBusy() self.send_command(0x00) # panel setting self.send_data(0x0f) # LUT from OTP,160x296 self.send_data(0x0d) # VCOM to 0V fast self.send_command(0x61) # resolution setting self.send_data(0x98) self.send_data(0x00) self.send_data(0x98) self.send_command(0x50) self.send_data(0x77)
def init(self, lut): if (epdconfig.module_init() != 0): return -1 # EPD hardware init start self.reset() self.send_command(0x01) # DRIVER_OUTPUT_CONTROL self.send_data((EPD_HEIGHT - 1) & 0xFF) self.send_data(((EPD_HEIGHT - 1) >> 8) & 0xFF) self.send_data(0x00) # GD = 0 SM = 0 TB = 0 self.send_command(0x0C) # BOOSTER_SOFT_START_CONTROL self.send_data(0xD7) self.send_data(0xD6) self.send_data(0x9D) self.send_command(0x2C) # WRITE_VCOM_REGISTER self.send_data(0xA8) # VCOM 7C self.send_command(0x3A) # SET_DUMMY_LINE_PERIOD self.send_data(0x1A) # 4 dummy lines per gate self.send_command(0x3B) # SET_GATE_TIME self.send_data(0x08) # 2us per line self.send_command(0x11) # DATA_ENTRY_MODE_SETTING self.send_data(0x03) # X increment Y increment # set the look-up table register self.send_command(0x32) for i in range(0, len(lut)): self.send_data(lut[i]) # EPD hardware init end return 0
def Init(self): if (epdconfig.module_init() != 0): return -1 # EPD hardware init start self.reset() self.send_command(0xD2) self.send_data(0x3F) self.send_command(0x00) self.send_data(0x6F) #from outside self.send_command(0x01) #power setting self.send_data(0x03) self.send_data(0x00) self.send_data(0x2b) self.send_data(0x2b) self.send_command(0x06) #Configuring the charge pump self.send_data(0x3f) self.send_command(0x2A) #Setting XON and the options of LUT self.send_data(0x00) self.send_data(0x00) self.send_command(0x30) #Set the clock frequency self.send_data(0x17) #50Hz self.send_command(0x50) #Set VCOM and data output interval self.send_data(0x57) self.send_command( 0x60) #Set The non-overlapping period of Gate and Source. self.send_data(0x22) self.send_command(0x61) #resolution setting self.send_data(0x50) #source 128 self.send_data(0x80) self.send_command(0x82) #sets VCOM_DC value self.send_data(0x12) #-1v self.send_command(0xe3) #Set POWER SAVING self.send_data(0x33) self.SetFulltReg() self.send_command(0x04) #power on self.ReadBusy() # EPD hardware init end return 0
def init(self): if (epdconfig.module_init() != 0): return -1 self.reset() self.send_command(0x01) #POWER SETTING self.send_data(0x07) self.send_data(0x07) #VGH=20V,VGL=-20V self.send_data(0x3f) #VDH=15V self.send_data(0x3f) #VDL=-15V self.send_command(0x04) #POWER ON epdconfig.delay_ms(100) self.ReadBusy() self.send_command(0X00) #PANNEL SETTING self.send_data(0x0F) #KW-3f KWR-2F BWROTP 0f BWOTP 1f self.send_command(0x61) #tres self.send_data(0x03) #source 800 self.send_data(0x20) self.send_data(0x01) #gate 480 self.send_data(0xE0) self.send_command(0X15) self.send_data(0x00) self.send_command(0X50) #VCOM AND DATA INTERVAL SETTING self.send_data(0x11) self.send_data(0x07) self.send_command(0X60) #TCON SETTING self.send_data(0x22) return 0
def init(self): if (epdconfig.module_init() != 0): return -1 # EPD hardware init start self.reset() self.send_command(0x01) # POWER_SETTING self.send_data(0x37) self.send_data(0x00) self.send_command(0x00) # PANEL_SETTING self.send_data(0xCF) self.send_data(0x08) self.send_command(0x06) # BOOSTER_SOFT_START self.send_data(0xc7) self.send_data(0xcc) self.send_data(0x28) self.send_command(0x04) # POWER_ON self.ReadBusy() self.send_command(0x30) # PLL_CONTROL self.send_data(0x3c) self.send_command(0x41) # TEMPERATURE_CALIBRATION self.send_data(0x00) self.send_command(0x50) # VCOM_AND_DATA_INTERVAL_SETTING self.send_data(0x77) self.send_command(0x60) # TCON_SETTING self.send_data(0x22) self.send_command(0x61) # TCON_RESOLUTION self.send_data(EPD_WIDTH >> 8) #source 640 self.send_data(EPD_WIDTH & 0xff) self.send_data(EPD_HEIGHT >> 8) #gate 384 self.send_data(EPD_HEIGHT & 0xff) self.send_command(0x82) # VCM_DC_SETTING self.send_data(0x1E) # decide by LUT file self.send_command(0xe5) # FLASH MODE self.send_data(0x03) # EPD hardware init end return 0
def init(self): if (epdconfig.module_init() != 0): return -1 self.reset() self.send_command(0x06) # BOOSTER_SOFT_START self.send_data(0x17) self.send_data(0x17) self.send_data(0x17) # 07 0f 17 1f 27 2F 37 2f self.send_command(0x04) # POWER_ON self.ReadBusy() self.send_command(0x00) # PANEL_SETTING self.send_data(0x0F) # LUT from OTP return 0
def init(self): if (epdconfig.module_init() != 0): return -1 self.reset() self.send_command(0x01) # POWER_SETTING self.send_data(0x37) self.send_data(0x00) self.send_command(0x00) # PANEL_SETTING self.send_data(0xCF) self.send_data(0x08) self.send_command(0x30) # PLL_CONTROL self.send_data(0x3A) # PLL: 0-15:0x3C, 15+:0x3A self.send_command(0X82) # VCOM VOLTAGE SETTING self.send_data(0x28) # all temperature range self.send_command(0x06) # boost self.send_data(0xc7) self.send_data(0xcc) self.send_data(0x15) self.send_command(0X50) # VCOM AND DATA INTERVAL SETTING self.send_data(0x77) self.send_command(0X60) # TCON SETTING self.send_data(0x22) self.send_command(0X65) # FLASH CONTROL self.send_data(0x00) self.send_command(0x61) # tres self.send_data(0x02) # source 600 self.send_data(0x58) self.send_data(0x01) # gate 448 self.send_data(0xc0) self.send_command(0xe5) # FLASH MODE self.send_data(0x03) self.send_data(0x03) return 0
def init(self): if (epdconfig.module_init() != 0): return -1 self.reset() self.send_command(0x01) # POWER_SETTING self.send_data(0x37) self.send_data(0x00) self.send_command(0x00) # PANEL_SETTING self.send_data(0xCF) self.send_data(0x08) self.send_command(0x30) # PLL_CONTROL self.send_data(0x3A) # PLL: 0-15:0x3C, 15+:0x3A self.send_command(0x82) # VCM_DC_SETTING self.send_data(0x28) #all temperature range self.send_command(0x06) # BOOSTER_SOFT_START self.send_data(0xc7) self.send_data(0xcc) self.send_data(0x15) self.send_command(0x50) # VCOM AND DATA INTERVAL SETTING self.send_data(0x77) self.send_command(0x60) # TCON_SETTING self.send_data(0x22) self.send_command(0x65) # FLASH CONTROL self.send_data(0x00) self.send_command(0x61) # TCON_RESOLUTION self.send_data(self.width >> 8) # source 640 self.send_data(self.width & 0xff) self.send_data(self.height >> 8) # gate 384 self.send_data(self.height & 0xff) self.send_command(0xe5) # FLASH MODE self.send_data(0x03) return 0
def init(self): if (epdconfig.module_init() != 0): return -1 # EPD hardware init start self.reset() self.send_command(0x01) # POWER SETTING self.send_data(0x03) # VDS_EN, VDG_EN self.send_data(0x00) # VCOM_HV, VGHL_LV[1], VGHL_LV[0] self.send_data(0x2b) # VDH self.send_data(0x2b) # VDL self.send_command(0x06) # boost soft start self.send_data(0x17) self.send_data(0x17) self.send_data(0x17) self.send_command(0x04) # POWER_ON self.ReadBusy() self.send_command(0x00) # panel setting self.send_data(0xbf) # KW-BF KWR-AF BWROTP 0f self.send_data(0x0d) self.send_command(0x30) # PLL setting self.send_data(0x3c) # 3A 100HZ 29 150Hz 39 200HZ 31 171HZ self.send_command(0x61) # resolution setting self.send_data(0x01) self.send_data(0x90) # 128 self.send_data(0x01) self.send_data(0x2c) self.send_command(0x82) # vcom_DC setting self.send_data(0x28) self.send_command(0X50) # VCOM AND DATA INTERVAL SETTING self.send_data( 0x97 ) # 97white border 77black border VBDF 17|D7 VBDW 97 VBDB 57 VBDF F7 VBDW 77 VBDB 37 VBDR B7 self.set_lut() # EPD hardware init end return 0
def init(self): if (epdconfig.module_init() != 0): return -1 # EPD hardware init start self.reset() self.send_command(0x01) # POWER SETTING self.send_data(0x03) self.send_data(0x00) self.send_data(0x2b) self.send_data(0x2b) self.send_data(0x03) self.send_command(0x06) # boost soft start self.send_data(0x17) # A self.send_data(0x17) # B self.send_data(0x17) # C self.send_command(0x04) self.ReadBusy() self.send_command(0x00) # panel setting self.send_data(0xbf) # LUT from OTP,128x296 self.send_data(0x0d) # VCOM to 0V fast self.send_command(0x30) # PLL setting self.send_data(0x3a) # 3a 100HZ 29 150Hz 39 200HZ 31 171HZ self.send_command(0x61) # resolution setting self.send_data(self.width) self.send_data((self.height >> 8) & 0xff) self.send_data(self.height& 0xff) self.send_command(0x82) # vcom_DC setting self.send_data(0x28) return 0
def init(self, lut): if (epdconfig.module_init() != 0): return -1 # EPD hardware init start self.reset() self.send_command(0x01) # DRIVER_OUTPUT_CONTROL self.send_data((EPD_HEIGHT - 1) & 0xFF) self.send_data(((EPD_HEIGHT - 1) >> 8) & 0xFF) self.send_data(0x00) # GD = 0 SM = 0 TB = 0 self.send_command(0x0C) # BOOSTER_SOFT_START_CONTROL self.send_data(0xD7) self.send_data(0xD6) self.send_data(0x9D) self.send_command(0x2C) # WRITE_VCOM_REGISTER self.send_data(0xA8) # VCOM 7C self.send_command(0x3A) # SET_DUMMY_LINE_PERIOD self.send_data(0x1A) # 4 dummy lines per gate self.send_command(0x3B) # SET_GATE_TIME self.send_data(0x08) # 2us per line self.send_command(0X3C) # BORDER_WAVEFORM_CONTROL self.send_data(0x03) self.send_command(0X11) # DATA_ENTRY_MODE_SETTING self.send_data(0x03) # X increment; Y increment # WRITE_LUT_REGISTER self.send_command(0x32) for count in range(30): self.send_data(lut[count]) return 0
def Init_4Gray(self): if (epdconfig.module_init() != 0): return -1 self.reset() self.send_command(0x01) #POWER SETTING self.send_data(0x03) self.send_data(0x00) self.send_data(0x2b) self.send_data(0x2b) self.send_command(0x06) #booster soft start self.send_data(0x07) #A self.send_data(0x07) #B self.send_data(0x17) #C self.send_command(0xF8) #boost?? self.send_data(0x60) self.send_data(0xA5) self.send_command(0xF8) #boost?? self.send_data(0x89) self.send_data(0xA5) self.send_command(0xF8) #boost?? self.send_data(0x90) self.send_data(0x00) self.send_command(0xF8) #boost?? self.send_data(0x93) self.send_data(0x2A) self.send_command(0xF8) #boost?? self.send_data(0xa0) self.send_data(0xa5) self.send_command(0xF8) #boost?? self.send_data(0xa1) self.send_data(0x00) self.send_command(0xF8) #boost?? self.send_data(0x73) self.send_data(0x41) self.send_command(0x16) self.send_data(0x00) self.send_command(0x04) self.ReadBusy() self.send_command(0x00) #panel setting self.send_data(0xbf) #KW-BF KWR-AF BWROTP 0f self.send_command(0x30) #PLL setting self.send_data(0x90) #100hz self.send_command(0x61) #resolution setting self.send_data(0x00) #176 self.send_data(0xb0) self.send_data(0x01) #264 self.send_data(0x08) self.send_command(0x82) #vcom_DC setting self.send_data(0x12) self.send_command(0X50) #VCOM AND DATA INTERVAL SETTING self.send_data(0x97)
def init(self): if (epdconfig.module_init() != 0): return -1 # EPD hardware init start self.reset() self.send_command(0x01) # POWER_SETTING self.send_data(0x03) # VDS_EN, VDG_EN self.send_data(0x00) # VCOM_HV, VGHL_LV[1], VGHL_LV[0] self.send_data(0x2b) # VDH self.send_data(0x2b) # VDL self.send_data(0x09) # VDHR self.send_command(0x06) # BOOSTER_SOFT_START self.send_data(0x07) self.send_data(0x07) self.send_data(0x17) # Power optimization self.send_command(0xF8) self.send_data(0x60) self.send_data(0xA5) # Power optimization self.send_command(0xF8) self.send_data(0x89) self.send_data(0xA5) # Power optimization self.send_command(0xF8) self.send_data(0x90) self.send_data(0x00) # Power optimization self.send_command(0xF8) self.send_data(0x93) self.send_data(0x2A) # Power optimization self.send_command(0xF8) self.send_data(0xA0) self.send_data(0xA5) # Power optimization self.send_command(0xF8) self.send_data(0xA1) self.send_data(0x00) # Power optimization self.send_command(0xF8) self.send_data(0x73) self.send_data(0x41) self.send_command(0x16) # PARTIAL_DISPLAY_REFRESH self.send_data(0x00) self.send_command(0x04) # POWER_ON self.ReadBusy() self.send_command(0x00) # PANEL_SETTING self.send_data(0xAF) # KW-BF KWR-AF BWROTP 0f self.send_command(0x30) # PLL_CONTROL self.send_data(0x3A) # 3A 100HZ 29 150Hz 39 200HZ 31 171HZ self.send_command(0x82) # VCM_DC_SETTING_REGISTER self.send_data(0x12) self.set_lut() return 0
def init(self, update): if (epdconfig.module_init() != 0): return -1 # EPD hardware init start self.reset() if (update == self.FULL_UPDATE): self.ReadBusy() self.send_command(0x12) # soft reset self.ReadBusy() self.send_command(0x74) #set analog block control self.send_data(0x54) self.send_command(0x7E) #set digital block control self.send_data(0x3B) self.send_command(0x01) #Driver output control self.send_data(0xF9) self.send_data(0x00) self.send_data(0x00) self.send_command(0x11) #data entry mode self.send_data(0x01) self.send_command(0x44) #set Ram-X address start/end position self.send_data(0x00) self.send_data(0x0F) #0x0C-->(15+1)*8=128 self.send_command(0x45) #set Ram-Y address start/end position self.send_data(0xF9) #0xF9-->(249+1)=250 self.send_data(0x00) self.send_data(0x00) self.send_data(0x00) self.send_command(0x3C) #BorderWavefrom self.send_data(0x03) self.send_command(0x2C) #VCOM Voltage self.send_data(0x55) # self.send_command(0x03) self.send_data(self.lut_full_update[70]) self.send_command(0x04) # self.send_data(self.lut_full_update[71]) self.send_data(self.lut_full_update[72]) self.send_data(self.lut_full_update[73]) self.send_command(0x3A) #Dummy Line self.send_data(self.lut_full_update[74]) self.send_command(0x3B) #Gate time self.send_data(self.lut_full_update[75]) self.send_command(0x32) for count in range(70): self.send_data(self.lut_full_update[count]) self.send_command(0x4E) # set RAM x address count to 0 self.send_data(0x00) self.send_command(0x4F) # set RAM y address count to 0X127 self.send_data(0xF9) self.send_data(0x00) self.ReadBusy() else: self.send_command(0x2C) #VCOM Voltage self.send_data(0x26) self.ReadBusy() self.send_command(0x32) for count in range(70): self.send_data(self.lut_partial_update[count]) self.send_command(0x37) 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_command(0x22) self.send_data(0xC0) self.send_command(0x20) self.ReadBusy() self.send_command(0x3C) #BorderWavefrom self.send_data(0x01) return 0