Ejemplo n.º 1
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)

        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
Ejemplo n.º 2
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
Ejemplo n.º 3
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)
Ejemplo n.º 4
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(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
Ejemplo n.º 5
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
Ejemplo n.º 6
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
Ejemplo n.º 7
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
Ejemplo n.º 8
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
Ejemplo n.º 9
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
Ejemplo n.º 10
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
Ejemplo n.º 11
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
Ejemplo n.º 12
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
Ejemplo n.º 13
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
Ejemplo n.º 14
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)
Ejemplo n.º 15
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_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
Ejemplo n.º 16
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