Selaa lähdekoodia

Fixed some python3 runtime error issues

shhds 1 vuosi sitten
vanhempi
sitoutus
166c012cde

BIN
RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13g.cpython-37.pyc


+ 9 - 9
RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd1in02.py

@@ -263,11 +263,11 @@ class EPD:
     def display(self, image):
         if (image == None):
             return
-        # Width = (self.width % 8 == 0)? (self.width / 8 ): (self.width / 8 + 1)
+        # Width = (self.width % 8 == 0)? (self.width // 8 ): (self.width // 8 + 1)
         if(self.width % 8 == 0):
-            Width = self.width / 8
+            Width = self.width // 8
         else:
-            Width = self.width / 8 + 1
+            Width = self.width // 8 + 1
             
         self.send_command(0x10)
         for j in range(0, self.height):
@@ -281,11 +281,11 @@ class EPD:
         self.TurnOnDisplay()
         
     def Clear(self):
-        # Width = (self.width % 8 == 0)? (self.width / 8 ): (self.width / 8 + 1)
+        # Width = (self.width % 8 == 0)? (self.width // 8 ): (self.width // 8 + 1)
         if(self.width % 8 == 0):
-            Width = self.width / 8
+            Width = self.width // 8
         else:
-            Width = self.width / 8 + 1
+            Width = self.width // 8 + 1
             
         Height = self.height
         
@@ -312,11 +312,11 @@ class EPD:
         self.send_data(127)  #y-end
         self.send_data(0x00)
        
-        # Width = (self.width % 8 == 0)? (self.width / 8 ): (self.width / 8 + 1)
+        # Width = (self.width % 8 == 0)? (self.width // 8 ): (self.width // 8 + 1)
         if(self.width % 8 == 0):
-            Width = self.width / 8
+            Width = self.width // 8
         else:
-            Width = self.width / 8 + 1
+            Width = self.width // 8 + 1
             
         Height = self.height
         # send data

+ 2 - 2
RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in13g.py

@@ -91,9 +91,9 @@ class EPD:
     def SetWindow(self):
         self.send_command(0x61) # SET_RAM_X_ADDRESS_START_END_POSITION
         # x point must be the multiple of 8 or the last 3 bits will be ignored
-        self.send_data(self.Source_BITS/256)
+        self.send_data(int(self.Source_BITS/256))
         self.send_data(self.Source_BITS%256)
-        self.send_data(self.Gate_BITS/256)
+        self.send_data(int(self.Gate_BITS/256))
         self.send_data(self.Gate_BITS%256)
 
     def TurnOnDisplay(self):

BIN
RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in13g.pyc


BIN
RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in9_V2.pyc


+ 1 - 1
RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in9b_V4.py

@@ -185,7 +185,7 @@ class EPD:
 
         self.send_command(0x01) #Driver output control      
         self.send_data((self.height-1)%256)    
-        self.send_data((self.height-1)/256)
+        self.send_data((self.height-1)//256)
         self.send_data(0x00)
 
         self.send_command(0x11) #data entry mode       

+ 42 - 42
RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd7in5_HD.py

@@ -86,46 +86,46 @@ class EPD:
         # EPD hardware init start
         self.reset()
         
-        self.ReadBusy();
-        self.send_command(0x12);  #SWRESET
-        self.ReadBusy();
-
-        self.send_command(0x46);  # Auto Write Red RAM
-        self.send_data(0xf7);
-        self.ReadBusy();
-        self.send_command(0x47);  # Auto Write  B/W RAM
-        self.send_data(0xf7);
-        self.ReadBusy();
-
-        self.send_command(0x0C);  # Soft start setting
+        self.ReadBusy()
+        self.send_command(0x12)  #SWRESET
+        self.ReadBusy()
+
+        self.send_command(0x46)  # Auto Write Red RAM
+        self.send_data(0xf7)
+        self.ReadBusy()
+        self.send_command(0x47)  # Auto Write  B/W RAM
+        self.send_data(0xf7)
+        self.ReadBusy()
+
+        self.send_command(0x0C)  # Soft start setting
         self.send_data2([0xAE, 0xC7, 0xC3, 0xC0, 0x40])
 
-        self.send_command(0x01);  # Set MUX as 527
+        self.send_command(0x01)  # Set MUX as 527
         self.send_data2([0xAF, 0x02, 0x01])
 
-        self.send_command(0x11);  # Data entry mode      
-        self.send_data(0x01);
+        self.send_command(0x11)  # Data entry mode      
+        self.send_data(0x01)
 
-        self.send_command(0x44); 
+        self.send_command(0x44) 
         self.send_data2([0x00, 0x00, 0x6F, 0x03]) # RAM x address start at 0
-        self.send_command(0x45); 
+        self.send_command(0x45) 
         self.send_data2([0xAF, 0x02, 0x00, 0x00])
 
-        self.send_command(0x3C); # VBD
-        self.send_data(0x05); # LUT1, for white
+        self.send_command(0x3C) # VBD
+        self.send_data(0x05) # LUT1, for white
 
-        self.send_command(0x18);
-        self.send_data(0X80);
+        self.send_command(0x18)
+        self.send_data(0X80)
 
 
-        self.send_command(0x22);
-        self.send_data(0XB1); #Load Temperature and waveform setting.
-        self.send_command(0x20);
-        self.ReadBusy();
+        self.send_command(0x22)
+        self.send_data(0XB1) #Load Temperature and waveform setting.
+        self.send_command(0x20)
+        self.ReadBusy()
 
-        self.send_command(0x4E); # set RAM x address count to 0;
+        self.send_command(0x4E) # set RAM x address count to 0
         self.send_data2([0x00, 0x00])
-        self.send_command(0x4F); 
+        self.send_command(0x4F) 
         self.send_data2([0x00, 0x00])
         # EPD hardware init end
         return 0
@@ -146,19 +146,19 @@ class EPD:
         return buf
         
     def display(self, image):
-        self.send_command(0x4F); 
+        self.send_command(0x4F) 
         self.send_data2([0x00, 0x00])
-        self.send_command(0x24);
+        self.send_command(0x24)
         self.send_data2(image)
-        self.send_command(0x22);
-        self.send_data(0xF7);#Load LUT from MCU(0x32)
-        self.send_command(0x20);
-        epdconfig.delay_ms(10);
-        self.ReadBusy();
+        self.send_command(0x22)
+        self.send_data(0xF7)#Load LUT from MCU(0x32)
+        self.send_command(0x20)
+        epdconfig.delay_ms(10)
+        self.ReadBusy()
         
     def Clear(self):
         buf = [0xff] * int(self.width * self.height / 8)
-        self.send_command(0x4F); 
+        self.send_command(0x4F) 
         self.send_data2([0x00, 0x00])
         self.send_command(0x24)
         self.send_data2(buf)
@@ -166,15 +166,15 @@ class EPD:
         self.send_command(0x26)
         self.send_data2(buf)
                 
-        self.send_command(0x22);
-        self.send_data(0xF7);#Load LUT from MCU(0x32)
-        self.send_command(0x20);
-        epdconfig.delay_ms(10);
-        self.ReadBusy();
+        self.send_command(0x22)
+        self.send_data(0xF7)#Load LUT from MCU(0x32)
+        self.send_command(0x20)
+        epdconfig.delay_ms(10)
+        self.ReadBusy()
 
     def sleep(self):
-        self.send_command(0x10);
-        self.send_data(0x01);
+        self.send_command(0x10)
+        self.send_data(0x01)
         
         epdconfig.delay_ms(2000)
         epdconfig.module_exit()

+ 1 - 1
RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd7in5_V2.py

@@ -241,7 +241,7 @@ class EPD:
             else:
                 Xend = Xend // 8 * 8 + 1
                 
-        Width = (Xend - Xstart) / 8
+        Width = (Xend - Xstart) // 8
         Height = Yend - Ystart
 	
         self.send_command(0x50)

+ 0 - 278
RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd7in5_V2_fast.py

@@ -1,278 +0,0 @@
-# *****************************************************************************
-# * | File        :	  epd7in5.py
-# * | Author      :   Waveshare team
-# * | Function    :   Electronic paper driver
-# * | Info        :
-# *----------------
-# * | This version:   V4.0
-# * | Date        :   2019-06-20
-# # | Info        :   python demo
-# -----------------------------------------------------------------------------
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documnetation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to  whom the Software is
-# furished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS OR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-# THE SOFTWARE.
-#
-
-
-import logging
-from . import epdconfig
-
-# Display resolution
-EPD_WIDTH       = 800
-EPD_HEIGHT      = 480
-
-logger = logging.getLogger(__name__)
-
-class EPD:
-    def __init__(self):
-        self.reset_pin = epdconfig.RST_PIN
-        self.dc_pin = epdconfig.DC_PIN
-        self.busy_pin = epdconfig.BUSY_PIN
-        self.cs_pin = epdconfig.CS_PIN
-        self.width = EPD_WIDTH
-        self.height = EPD_HEIGHT
-    
-    Voltage_Frame_7IN5_V2 = [
-	0x6, 0x3F, 0x3F, 0x11, 0x24, 0x7, 0x17,
-    ]
-
-    LUT_VCOM_7IN5_V2 = [	
-        0x0,	0xF,	0xF,	0x0,	0x0,	0x1,	
-        0x0,	0xF,	0x1,	0xF,	0x1,	0x2,	
-        0x0,	0xF,	0xF,	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,	
-    ]	
-
-    LUT_WW_7IN5_V2 = [
-        0x10,	0xF,	0xF,	0x0,	0x0,	0x1,	
-        0x84,	0xF,	0x1,	0xF,	0x1,	0x2,	
-        0x20,	0xF,	0xF,	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,	
-    ]
-
-    LUT_BW_7IN5_V2 = [	
-        0x10,	0xF,	0xF,	0x0,	0x0,	0x1,	
-        0x84,	0xF,	0x1,	0xF,	0x1,	0x2,	
-        0x20,	0xF,	0xF,	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,	
-    ]
-
-    LUT_WB_7IN5_V2 = [
-        0x80,	0xF,	0xF,	0x0,	0x0,	0x1,	
-        0x84,	0xF,	0x1,	0xF,	0x1,	0x2,	
-        0x40,	0xF,	0xF,	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,	
-    ]
-
-    LUT_BB_7IN5_V2 = [
-        0x80,	0xF,	0xF,	0x0,	0x0,	0x1,	
-        0x84,	0xF,	0x1,	0xF,	0x1,	0x2,	
-        0x40,	0xF,	0xF,	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,	
-    ]
-
-    # Hardware reset
-    def reset(self):
-        epdconfig.digital_write(self.reset_pin, 1)
-        epdconfig.delay_ms(20) 
-        epdconfig.digital_write(self.reset_pin, 0)
-        epdconfig.delay_ms(2)
-        epdconfig.digital_write(self.reset_pin, 1)
-        epdconfig.delay_ms(20)   
-
-    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 send_data2(self, data):
-        epdconfig.digital_write(self.dc_pin, 1)
-        epdconfig.digital_write(self.cs_pin, 0)
-        epdconfig.spi_writebyte2(data)
-        epdconfig.digital_write(self.cs_pin, 1)
-
-    def ReadBusy(self):
-        logger.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(20)
-        logger.debug("e-Paper busy release")
-        
-    def SetLut(self, lut_vcom, lut_ww, lut_bw, lut_wb, lut_bb):
-        self.send_command(0x20)
-        for count in range(0, 42):
-            self.send_data(lut_vcom[count])
-
-        self.send_command(0x21)
-        for count in range(0, 42):
-            self.send_data(lut_ww[count])
-
-        self.send_command(0x22)
-        for count in range(0, 42):
-            self.send_data(lut_bw[count])
-
-        self.send_command(0x23)
-        for count in range(0, 42):
-            self.send_data(lut_wb[count])
-
-        self.send_command(0x24)
-        for count in range(0, 42):
-            self.send_data(lut_bb[count])
-
-    def init(self):
-        if (epdconfig.module_init() != 0):
-            return -1
-        # EPD hardware init start
-        self.reset()
-        
-        # self.send_command(0x06)     # btst
-        # self.send_data(0x17)
-        # self.send_data(0x17)
-        # self.send_data(0x28)        # If an exception is displayed, try using 0x38
-        # self.send_data(0x17)
-        
-        # 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(0x01)     # power setting
-        self.send_data(0x17)        # 1-0=11: internal power
-        self.send_data(self.Voltage_Frame_7IN5_V2[6])   # VGH&VGL
-        self.send_data(self.Voltage_Frame_7IN5_V2[1])   # VSH
-        self.send_data(self.Voltage_Frame_7IN5_V2[2])   # VSL
-        self.send_data(self.Voltage_Frame_7IN5_V2[3])   # VSHR
-        
-        self.send_command(0x82)     # VCOM DC Setting
-        self.send_data(self.Voltage_Frame_7IN5_V2[4])   # VCOM
-
-        self.send_command(0x06)     # Booster Setting
-        self.send_data(0x27)
-        self.send_data(0x27)
-        self.send_data(0x2F)
-        self.send_data(0x17)
-        
-        self.send_command(0x30)     # OSC Setting
-        self.send_data(self.Voltage_Frame_7IN5_V2[0])   # 3C=50Hz, 3A=100HZ
-
-        self.send_command(0x04)     # POWER ON
-        epdconfig.delay_ms(100)
-        self.ReadBusy()
-
-        self.send_command(0X00)     # PANNEL SETTING
-        self.send_data(0x3F)        # 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(0x10)
-        self.send_data(0x07)
-
-        self.send_command(0X60)     # TCON SETTING
-        self.send_data(0x22)
-
-        self.send_command(0x65)     # Resolution setting
-        self.send_data(0x00)
-        self.send_data(0x00)        # 800*480
-        self.send_data(0x00)
-        self.send_data(0x00)
-
-        self.SetLut(self.LUT_VCOM_7IN5_V2, self.LUT_WW_7IN5_V2, self.LUT_BW_7IN5_V2, self.LUT_WB_7IN5_V2, self.LUT_BB_7IN5_V2)
-        # EPD hardware init end
-        return 0
-
-    def getbuffer(self, image):
-        img = image
-        imwidth, imheight = img.size
-        if(imwidth == self.width and imheight == self.height):
-            img = img.convert('1')
-        elif(imwidth == self.height and imheight == self.width):
-            # image has correct dimensions, but needs to be rotated
-            img = img.rotate(90, expand=True).convert('1')
-        else:
-            logger.warning("Wrong image dimensions: must be " + str(self.width) + "x" + str(self.height))
-            # return a blank buffer
-            return [0x00] * (int(self.width/8) * self.height)
-
-        buf = bytearray(img.tobytes('raw'))
-        # The bytes need to be inverted, because in the PIL world 0=black and 1=white, but
-        # in the e-paper world 0=white and 1=black.
-        for i in range(len(buf)):
-            buf[i] ^= 0xFF
-        return buf
-
-    def display(self, image):
-        self.send_command(0x13)
-        self.send_data2(image)
-
-        self.send_command(0x12)
-        epdconfig.delay_ms(100)
-        self.ReadBusy()
-
-    def Clear(self):
-        buf = [0x00] * (int(self.width/8) * self.height)
-        self.send_command(0x10)
-        self.send_data2(buf)
-        self.send_command(0x13)
-        self.send_data2(buf)
-        self.send_command(0x12)
-        epdconfig.delay_ms(100)
-        self.ReadBusy()
-
-    def sleep(self):
-        self.send_command(0x02) # POWER_OFF
-        self.ReadBusy()
-        
-        self.send_command(0x07) # DEEP_SLEEP
-        self.send_data(0XA5)
-        
-        epdconfig.delay_ms(2000)
-        epdconfig.module_exit()
-### END OF FILE ###

+ 1 - 1
RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd7in5_V2_old.py

@@ -484,7 +484,7 @@ class EPD:
             else:
                 Xend = Xend // 8 * 8 + 1
                 
-        Width = (Xend - Xstart) / 8
+        Width = (Xend - Xstart) // 8
         Height = Yend - Ystart
 	
         self.send_command(0x50)

+ 73 - 73
RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd7in5b_HD.py

@@ -80,59 +80,59 @@ class EPD:
             
         self.reset()
         
-        self.send_command(0x12); 		  #SWRESET
-        self.ReadBusy();        #waiting for the electronic paper IC to release the idle signal
-
-        self.send_command(0x46);  # Auto Write RAM
-        self.send_data(0xF7);
-        self.ReadBusy();        #waiting for the electronic paper IC to release the idle signal
-
-        self.send_command(0x47);  # Auto Write RAM
-        self.send_data(0xF7);
-        self.ReadBusy();        #waiting for the electronic paper IC to release the idle signal
-
-        self.send_command(0x0C);  # Soft start setting
-        self.send_data(0xAE);
-        self.send_data(0xC7);
-        self.send_data(0xC3);
-        self.send_data(0xC0);
-        self.send_data(0x40);   
-
-        self.send_command(0x01);  # Set MUX as 527
-        self.send_data(0xAF);
-        self.send_data(0x02);
-        self.send_data(0x01);
-
-        self.send_command(0x11);  # Data entry mode
-        self.send_data(0x01);
-
-        self.send_command(0x44);
-        self.send_data(0x00); # RAM x address start at 0
-        self.send_data(0x00);
-        self.send_data(0x6F); # RAM x address end at 36Fh -> 879
-        self.send_data(0x03);
-        self.send_command(0x45);
-        self.send_data(0xAF); # RAM y address start at 20Fh;
-        self.send_data(0x02);
-        self.send_data(0x00); # RAM y address end at 00h;
-        self.send_data(0x00);
-
-        self.send_command(0x3C); # VBD
-        self.send_data(0x01); # LUT1, for white
-
-        self.send_command(0x18);
-        self.send_data(0X80);
-        self.send_command(0x22);
-        self.send_data(0XB1);	#Load Temperature and waveform setting.
-        self.send_command(0x20);
-        self.ReadBusy();        #waiting for the electronic paper IC to release the idle signal
-
-        self.send_command(0x4E); 
-        self.send_data(0x00);
-        self.send_data(0x00);
-        self.send_command(0x4F); 
-        self.send_data(0xAF);
-        self.send_data(0x02);
+        self.send_command(0x12) 		  #SWRESET
+        self.ReadBusy()        #waiting for the electronic paper IC to release the idle signal
+
+        self.send_command(0x46)  # Auto Write RAM
+        self.send_data(0xF7)
+        self.ReadBusy()        #waiting for the electronic paper IC to release the idle signal
+
+        self.send_command(0x47)  # Auto Write RAM
+        self.send_data(0xF7)
+        self.ReadBusy()        #waiting for the electronic paper IC to release the idle signal
+
+        self.send_command(0x0C)  # Soft start setting
+        self.send_data(0xAE)
+        self.send_data(0xC7)
+        self.send_data(0xC3)
+        self.send_data(0xC0)
+        self.send_data(0x40)   
+
+        self.send_command(0x01)  # Set MUX as 527
+        self.send_data(0xAF)
+        self.send_data(0x02)
+        self.send_data(0x01)
+
+        self.send_command(0x11)  # Data entry mode
+        self.send_data(0x01)
+
+        self.send_command(0x44)
+        self.send_data(0x00) # RAM x address start at 0
+        self.send_data(0x00)
+        self.send_data(0x6F) # RAM x address end at 36Fh -> 879
+        self.send_data(0x03)
+        self.send_command(0x45)
+        self.send_data(0xAF) # RAM y address start at 20Fh
+        self.send_data(0x02)
+        self.send_data(0x00) # RAM y address end at 00h
+        self.send_data(0x00)
+
+        self.send_command(0x3C) # VBD
+        self.send_data(0x01) # LUT1, for white
+
+        self.send_command(0x18)
+        self.send_data(0X80)
+        self.send_command(0x22)
+        self.send_data(0XB1)	#Load Temperature and waveform setting.
+        self.send_command(0x20)
+        self.ReadBusy()        #waiting for the electronic paper IC to release the idle signal
+
+        self.send_command(0x4E) 
+        self.send_data(0x00)
+        self.send_data(0x00)
+        self.send_command(0x4F) 
+        self.send_data(0xAF)
+        self.send_data(0x02)
         
         return 0
 
@@ -161,46 +161,46 @@ class EPD:
         return buf
 
     def display(self, imageblack, imagered):
-        self.send_command(0x4F); 
-        self.send_data(0xAf);
+        self.send_command(0x4F) 
+        self.send_data(0xAf)
         
         self.send_command(0x24)
         for i in range(0, int(self.width * self.height / 8)):
-            self.send_data(imageblack[i]);
+            self.send_data(imageblack[i])
         
         
         self.send_command(0x26)
         for i in range(0, int(self.width * self.height / 8)):
-            self.send_data(~imagered[i]);
+            self.send_data(~imagered[i])
         
-        self.send_command(0x22);
-        self.send_data(0xC7);    #Load LUT from MCU(0x32)
-        self.send_command(0x20);
-        epdconfig.delay_ms(200);      #!!!The delay here is necessary, 200uS at least!!!     
-        self.ReadBusy();
+        self.send_command(0x22)
+        self.send_data(0xC7)    #Load LUT from MCU(0x32)
+        self.send_command(0x20)
+        epdconfig.delay_ms(200)      #!!!The delay here is necessary, 200uS at least!!!     
+        self.ReadBusy()
         
     def Clear(self):
-        self.send_command(0x4F); 
-        self.send_data(0xAf);
+        self.send_command(0x4F) 
+        self.send_data(0xAf)
         
         self.send_command(0x24)
         for i in range(0, int(self.width * self.height / 8)):
-            self.send_data(0xff);
+            self.send_data(0xff)
         
         
         self.send_command(0x26)
         for i in range(0, int(self.width * self.height / 8)):
-            self.send_data(0x00);
+            self.send_data(0x00)
         
-        self.send_command(0x22);
-        self.send_data(0xC7);    #Load LUT from MCU(0x32)
-        self.send_command(0x20);
-        epdconfig.delay_ms(200);      #!!!The delay here is necessary, 200uS at least!!!     
-        self.ReadBusy();
+        self.send_command(0x22)
+        self.send_data(0xC7)    #Load LUT from MCU(0x32)
+        self.send_command(0x20)
+        epdconfig.delay_ms(200)      #!!!The delay here is necessary, 200uS at least!!!     
+        self.ReadBusy()
 
     def sleep(self):
-        self.send_command(0x10);  	#deep sleep
-        self.send_data(0x01);
+        self.send_command(0x10)  	#deep sleep
+        self.send_data(0x01)
         
         epdconfig.delay_ms(2000)
         epdconfig.module_exit()

BIN
RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd7in5b_V2.pyc