Beispiel #1
0
    def display(self, imageblack, imagered):
        self.send_command(0x10)
        for i in range(0, int(self.width / 8 * self.height)):
            temp1 = imageblack[i]
            temp2 = imagered[i]
            j = 0
            while (j < 8):
                if ((temp2 & 0x80) == 0x00):
                    temp3 = 0x04  #red
                elif ((temp1 & 0x80) == 0x00):
                    temp3 = 0x00  #black
                else:
                    temp3 = 0x03  #white

                temp3 = (temp3 << 4) & 0xFF
                temp1 = (temp1 << 1) & 0xFF
                temp2 = (temp2 << 1) & 0xFF
                j += 1
                if ((temp2 & 0x80) == 0x00):
                    temp3 |= 0x04  #red
                elif ((temp1 & 0x80) == 0x00):
                    temp3 |= 0x00  #black
                else:
                    temp3 |= 0x03  #white
                temp1 = (temp1 << 1) & 0xFF
                temp2 = (temp2 << 1) & 0xFF
                self.send_data(temp3)
                j += 1

        self.send_command(0x04)  # POWER ON
        self.ReadBusy()
        self.send_command(0x12)  # display refresh
        epdconfig.delay_ms(100)
        self.ReadBusy()
Beispiel #2
0
    def DisplayPartial(self, image):   
        if (Image == None):
            return
            
        self.SetPartReg()
        self.send_command(0x91)
        self.send_command(0x90)
        self.send_data(0)
        self.send_data(self.width - 1)

        self.send_data(0)
        self.send_data(0)
        self.send_data(int(self.height / 256))
        self.send_data(self.height % 256 - 1)
        self.send_data(0x28)
            
        self.send_command(0x10)
        for i in range(0, int(self.width * self.height / 8)):
            self.send_data(image[i])
        epdconfig.delay_ms(10)
        
        self.send_command(0x13)
        for i in range(0, int(self.width * self.height / 8)):
            self.send_data(~image[i])
        epdconfig.delay_ms(10)
          
        self.TurnOnDisplay()
Beispiel #3
0
    def display(self, image):
        self.send_command(0x10)
        for i in range(0, int(self.width / 4 * self.height)):
            temp1 = image[i]
            j = 0
            while (j < 4):
                if ((temp1 & 0xC0) == 0xC0):
                    temp2 = 0x03
                elif ((temp1 & 0xC0) == 0x00):
                    temp2 = 0x00
                else:
                    temp2 = 0x04
                temp2 = (temp2 << 4) & 0xFF
                temp1 = (temp1 << 2) & 0xFF
                j += 1
                if ((temp1 & 0xC0) == 0xC0):
                    temp2 |= 0x03
                elif ((temp1 & 0xC0) == 0x00):
                    temp2 |= 0x00
                else:
                    temp2 |= 0x04
                temp1 = (temp1 << 2) & 0xFF
                self.send_data(temp2)
                j += 1

        self.send_command(0x12)
        epdconfig.delay_ms(100)
        self.ReadBusy()
Beispiel #4
0
 def ReadBusy(self):
     logging.debug("e-Paper busy")
     self.send_command(0x71)
     busy = epdconfig.digital_read(self.busy_pin)
     while (busy == 0):
         self.send_command(0x71)
         busy = epdconfig.digital_read(self.busy_pin)
     epdconfig.delay_ms(200)
Beispiel #5
0
    def display(self, image):
        self.send_command(0x13)
        for i in range(0, int(self.width * self.height / 8)):
            self.send_data(~image[i])

        self.send_command(0x12)
        epdconfig.delay_ms(100)
        self.ReadBusy()
Beispiel #6
0
 def Sleep(self):
     self.send_command(0x50)
     self.send_data(0xf7)
     self.send_command(0x02)
     self.ReadBusy()
     self.send_command(0x07)
     self.send_data(0xA5)
     epdconfig.delay_ms(200)
     epdconfig.module_exit()
Beispiel #7
0
    def sleep(self):
        self.send_command(0x22)  #POWER OFF
        self.send_data(0xC3)
        self.send_command(0x20)

        self.send_command(0x10)  #enter deep sleep
        self.send_data(0x01)
        epdconfig.delay_ms(100)

        epdconfig.module_exit()
Beispiel #8
0
 def ReadBusy(self):
     logging.debug("e-Paper busy")
     self.send_command(0x71)
     busy = epdconfig.digital_read(self.busy_pin)
     busy = not (busy & 0x01)
     while (busy):
         self.send_command(0x71)
         busy = epdconfig.digital_read(self.busy_pin)
         busy = not (busy & 0x01)
     epdconfig.delay_ms(800)
     logging.debug("e-Paper busy release")
Beispiel #9
0
    def Clear(self):
        self.send_command(0x10)
        for i in range(0, int(self.width * self.height / 8)):
            self.send_data(0x00)

        self.send_command(0x13)
        for i in range(0, int(self.width * self.height / 8)):
            self.send_data(0x00)

        self.send_command(0x12)
        epdconfig.delay_ms(100)
        self.ReadBusy()
Beispiel #10
0
    def Clear(self):
        self.send_command(0x10)
        for i in range(0, int(self.width / 8 * self.height)):
            self.send_data(0x33)
            self.send_data(0x33)
            self.send_data(0x33)
            self.send_data(0x33)

        self.send_command(0x04)  # POWER ON
        self.ReadBusy()
        self.send_command(0x12)  # display refresh
        epdconfig.delay_ms(100)
        self.ReadBusy()
Beispiel #11
0
    def display(self, image):
        self.send_command(0x10)
        for i in range(0, int(self.width * self.height / 8)):
            self.send_data(0x00)
        epdconfig.delay_ms(10)

        self.send_command(0x13)
        for i in range(0, int(self.width * self.height / 8)):
            self.send_data(image[i])
        epdconfig.delay_ms(10)

        self.SetFullReg()
        self.TurnOnDisplay()
Beispiel #12
0
 def Clear(self, color):
     self.send_command(0x10)
     for i in range(0, int(self.width * self.height / 8)):
         self.send_data(0x00)
     epdconfig.delay_ms(10)
     
     self.send_command(0x13)
     for i in range(0, int(self.width * self.height / 8)):
         self.send_data(0xFF)
     epdconfig.delay_ms(10)
     
     self.SetFullReg()
     self.TurnOnDisplay()
Beispiel #13
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
Beispiel #14
0
 def reset(self):
     epdconfig.digital_write(self.reset_pin, 1)
     epdconfig.delay_ms(200) 
     epdconfig.digital_write(self.reset_pin, 0)
     epdconfig.delay_ms(10)
     epdconfig.digital_write(self.reset_pin, 1)
     epdconfig.delay_ms(200)   
Beispiel #15
0
 def ReadBusy(self):
     while (epdconfig.digital_read(self.busy_pin) == 1):  # 0: idle, 1: busy
         epdconfig.delay_ms(100)
Beispiel #16
0
 def TurnOnDisplay(self):
     self.send_command(0x12)
     epdconfig.delay_ms(10)
     self.ReadBusy()
Beispiel #17
0
 def ReadBusy(self):
     logging.debug("e-Paper busy")
     while(epdconfig.digital_read(self.busy_pin) == 0):      # 0: idle, 1: busy
         self.send_command(0x71)
         epdconfig.delay_ms(100)  
     logging.debug("e-Paper busy release")
Beispiel #18
0
    def display_4Gray(self, image):
        self.send_command(0x10)
        for i in range(0, 5808):  #5808*4  46464
            temp3 = 0
            for j in range(0, 2):
                temp1 = image[i * 2 + j]
                for k in range(0, 2):
                    temp2 = temp1 & 0xC0
                    if (temp2 == 0xC0):
                        temp3 |= 0x01  #white
                    elif (temp2 == 0x00):
                        temp3 |= 0x00  #black
                    elif (temp2 == 0x80):
                        temp3 |= 0x01  #gray1
                    else:  #0x40
                        temp3 |= 0x00  #gray2
                    temp3 <<= 1

                    temp1 <<= 2
                    temp2 = temp1 & 0xC0
                    if (temp2 == 0xC0):  #white
                        temp3 |= 0x01
                    elif (temp2 == 0x00):  #black
                        temp3 |= 0x00
                    elif (temp2 == 0x80):
                        temp3 |= 0x01  #gray1
                    else:  #0x40
                        temp3 |= 0x00  #gray2
                    if (j != 1 or k != 1):
                        temp3 <<= 1
                    temp1 <<= 2
            self.send_data(temp3)

        self.send_command(0x13)
        for i in range(0, 5808):  #5808*4  46464
            temp3 = 0
            for j in range(0, 2):
                temp1 = image[i * 2 + j]
                for k in range(0, 2):
                    temp2 = temp1 & 0xC0
                    if (temp2 == 0xC0):
                        temp3 |= 0x01  #white
                    elif (temp2 == 0x00):
                        temp3 |= 0x00  #black
                    elif (temp2 == 0x80):
                        temp3 |= 0x00  #gray1
                    else:  #0x40
                        temp3 |= 0x01  #gray2
                    temp3 <<= 1

                    temp1 <<= 2
                    temp2 = temp1 & 0xC0
                    if (temp2 == 0xC0):  #white
                        temp3 |= 0x01
                    elif (temp2 == 0x00):  #black
                        temp3 |= 0x00
                    elif (temp2 == 0x80):
                        temp3 |= 0x00  #gray1
                    else:  #0x40
                        temp3 |= 0x01  #gray2
                    if (j != 1 or k != 1):
                        temp3 <<= 1
                    temp1 <<= 2
            self.send_data(temp3)

        self.gray_SetLut()
        self.send_command(0x12)
        epdconfig.delay_ms(200)
        self.ReadBusy()
Beispiel #19
0
 def ReadBusy(self):
     logging.debug("e-Paper busy")
     while (epdconfig.digital_read(self.busy_pin) == 0):
         epdconfig.delay_ms(100)
     logging.debug("e-Paper busy release")