Kaynağa Gözat

Add the 4.37inch e-Paper (G) Python program

SSYYL 3 yıl önce
ebeveyn
işleme
77c499d749

+ 5 - 9
RaspberryPi_JetsonNano/python/examples/epd_1in64g_test.py

@@ -18,26 +18,22 @@ logging.basicConfig(level=logging.DEBUG)
 try:
     logging.info("epd1in64g Demo")
 
-    BLACK = 0x00
-    WHITE = 0x55
-    YELLOW = 0xAA
-    RED = 0xFF
     epd = epd1in64g.EPD()   
     logging.info("init and Clear")
     epd.init()
-    epd.Clear(WHITE)
+    epd.Clear()
     font24 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 24)
     font18 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 18)
-    font30 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 40)
+    font40 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 40)
     
     # # The Sunrise X3 PI is a bit problematic to use
     # # Drawing on the image
     # logging.info("1.Drawing on the image...")
-    # Himage = Image.new('RGB', (epd.width, epd.height), 0xffffff)  
+    # Himage = Image.new('RGB', (epd.width, epd.height), epd.WHITE)  
     # draw = ImageDraw.Draw(Himage)
     # draw.text((5, 0), 'hello world', font = font18, fill = epd.RED)
     # draw.text((5, 20), '1.64inch e-Paper', font = font18, fill = epd.YELLOW)
-    # draw.text((5, 40), u'微雪电子', font = font30, fill = epd.BLACK)
+    # draw.text((5, 40), u'微雪电子', font = font40, fill = epd.BLACK)
 
     # draw.line((5, 90, 45, 160), fill = epd.RED)
     # draw.line((45, 90, 5, 160), fill = epd.YELLOW)
@@ -60,7 +56,7 @@ try:
     time.sleep(3)
     
     logging.info("Clear...")
-    epd.Clear(WHITE)
+    epd.Clear()
     
     logging.info("Goto Sleep...")
     epd.sleep()

+ 10 - 16
RaspberryPi_JetsonNano/python/examples/epd_3in0g_test.py

@@ -18,18 +18,13 @@ logging.basicConfig(level=logging.DEBUG)
 try:
     logging.info("epd3in0g Demo")
 
-    BLACK = 0x00
-    WHITE = 0x55
-    YELLOW = 0xAA
-    RED = 0xFF
     epd = epd3in0g.EPD()   
     logging.info("init and Clear")
     epd.init()
-    epd.Clear(WHITE)
+    epd.Clear()
     font24 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 24)
     font18 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 18)
-    font30 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 40)
-    
+    font40 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 40)
     
     # Drawing on the image
     epd.init()
@@ -38,9 +33,9 @@ try:
     draw = ImageDraw.Draw(Himage)
     draw.text((5, 0), 'hello world', font = font18, fill = epd.RED)
     draw.text((5, 20), '3inch e-Paper', font = font24, fill = epd.YELLOW)
-    draw.text((5, 45), u'微雪电子', font = font30, fill = epd.BLACK)
-    draw.text((5, 85), u'微雪电子', font = font30, fill = epd.YELLOW)
-    draw.text((5, 125), u'微雪电子', font = font30, fill = epd.RED)
+    draw.text((5, 45), u'微雪电子', font = font40, fill = epd.BLACK)
+    draw.text((5, 85), u'微雪电子', font = font40, fill = epd.YELLOW)
+    draw.text((5, 125), u'微雪电子', font = font40, fill = epd.RED)
     draw.line((5, 170, 80, 245), fill = epd.RED)
     draw.line((80, 170, 5, 245), fill = epd.YELLOW)
     draw.rectangle((5, 170, 80, 245), outline = epd.BLACK)
@@ -50,17 +45,16 @@ try:
     epd.display(epd.getbuffer(Himage))
     time.sleep(3)
 
-
     # Switch width and height for landscape display
     epd.init()
     logging.info("1.Drawing on the image...")
-    Himage = Image.new('RGB', (epd.height, epd.width), 0xffffff)      
+    Himage = Image.new('RGB', (epd.height, epd.width), epd.WHITE)      
     draw = ImageDraw.Draw(Himage)
     draw.text((5, 0), 'hello world', font = font18, fill = epd.RED)
     draw.text((5, 20), '3inch e-Paper', font = font24, fill = epd.YELLOW)
-    draw.text((5, 45), u'微雪电子', font = font30, fill = epd.BLACK)
-    draw.text((5, 85), u'微雪电子', font = font30, fill = epd.YELLOW)
-    draw.text((5, 125), u'微雪电子', font = font30, fill = epd.RED)
+    draw.text((5, 45), u'微雪电子', font = font40, fill = epd.BLACK)
+    draw.text((5, 85), u'微雪电子', font = font40, fill = epd.YELLOW)
+    draw.text((5, 125), u'微雪电子', font = font40, fill = epd.RED)
     draw.line((205, 5, 295, 65), fill = epd.RED)
     draw.line((295, 5, 205, 65), fill = epd.YELLOW)
     draw.rectangle((205, 5, 295, 65), outline = epd.BLACK)
@@ -91,7 +85,7 @@ try:
 
     epd.init()
     logging.info("Clear...")
-    epd.Clear(WHITE)
+    epd.Clear()
     
     logging.info("Goto Sleep...")
     epd.sleep()

+ 76 - 0
RaspberryPi_JetsonNano/python/examples/epd_4in37g_test.py

@@ -0,0 +1,76 @@
+#!/usr/bin/python
+# -*- coding:utf-8 -*-
+import sys
+import os
+picdir = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'pic')
+libdir = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'lib')
+if os.path.exists(libdir):
+    sys.path.append(libdir)
+
+import logging
+from waveshare_epd import epd4in37g
+import time
+from PIL import Image,ImageDraw,ImageFont
+import traceback
+
+logging.basicConfig(level=logging.DEBUG)
+
+try:
+    logging.info("epd4in37g Demo")
+
+    epd = epd4in37g.EPD()   
+    logging.info("init and Clear")
+    epd.init()
+    epd.Clear()
+    font24 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 24)
+    font18 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 18)
+    font40 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 40)
+    
+    # Drawing on the image
+    logging.info("1.Drawing on the image...")
+    Himage = Image.new('RGB', (epd.width, epd.height), epd.WHITE)  # 255: clear the frame
+    draw = ImageDraw.Draw(Himage)
+    draw.text((5, 0), 'hello world', font = font18, fill = epd.RED)
+    draw.text((5, 20), '7.3inch e-Paper', font = font24, fill = epd.YELLOW)
+    draw.text((5, 45), u'微雪电子', font = font40, fill = epd.BLACK)
+    draw.text((5, 85), u'微雪电子', font = font40, fill = epd.YELLOW)
+    draw.text((5, 125), u'微雪电子', font = font40, fill = epd.RED)
+
+    draw.line((5, 170, 80, 245), fill = epd.RED)
+    draw.line((80, 170, 5, 245), fill = epd.YELLOW)
+    draw.rectangle((5, 170, 80, 245), outline = epd.BLACK)
+    draw.rectangle((90, 170, 165, 245), fill = epd.YELLOW)
+    draw.arc((5, 250, 80, 325), 0, 360, fill = epd.BLACK)
+    draw.chord((90, 250, 165, 325), 0, 360, fill = epd.RED)
+    epd.display(epd.getbuffer(Himage))
+    time.sleep(3)
+    
+    # read bmp file 
+    logging.info("3.read image file")
+    Himage = Image.open(os.path.join(picdir, '4in37g0.jpg'))
+    epd.display(epd.getbuffer(Himage))
+    time.sleep(3)
+
+    logging.info("3.read image file")
+    Himage = Image.open(os.path.join(picdir, '4in37g1.jpg'))
+    epd.display(epd.getbuffer(Himage))
+    time.sleep(3)
+    
+    logging.info("3.read image file")
+    Himage = Image.open(os.path.join(picdir, '4in37g2.jpg'))
+    epd.display(epd.getbuffer(Himage))
+    time.sleep(3)
+
+    logging.info("Clear...")
+    epd.Clear()
+    
+    logging.info("Goto Sleep...")
+    epd.sleep()
+        
+except IOError as e:
+    logging.info(e)
+    
+except KeyboardInterrupt:    
+    logging.info("ctrl + c:")
+    epd4in37g.epdconfig.module_exit()
+    exit()

+ 7 - 12
RaspberryPi_JetsonNano/python/examples/epd_7in3g_test.py

@@ -18,28 +18,23 @@ logging.basicConfig(level=logging.DEBUG)
 try:
     logging.info("epd7in3g Demo")
 
-    BLACK = 0x00
-    WHITE = 0x55
-    YELLOW = 0xAA
-    RED = 0xFF
     epd = epd7in3g.EPD()   
     logging.info("init and Clear")
     epd.init()
-    epd.Clear(WHITE)
+    epd.Clear()
     font24 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 24)
     font18 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 18)
-    font30 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 40)
-    
+    font40 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 40)
     
     # Drawing on the image
     logging.info("1.Drawing on the image...")
-    Himage = Image.new('RGB', (epd.width, epd.height), 0xffffff)  # 255: clear the frame
+    Himage = Image.new('RGB', (epd.width, epd.height), epd.WHITE)  # 255: clear the frame
     draw = ImageDraw.Draw(Himage)
     draw.text((5, 0), 'hello world', font = font18, fill = epd.RED)
     draw.text((5, 20), '7.3inch e-Paper', font = font24, fill = epd.YELLOW)
-    draw.text((5, 45), u'微雪电子', font = font30, fill = epd.BLACK)
-    draw.text((5, 85), u'微雪电子', font = font30, fill = epd.YELLOW)
-    draw.text((5, 125), u'微雪电子', font = font30, fill = epd.RED)
+    draw.text((5, 45), u'微雪电子', font = font40, fill = epd.BLACK)
+    draw.text((5, 85), u'微雪电子', font = font40, fill = epd.YELLOW)
+    draw.text((5, 125), u'微雪电子', font = font40, fill = epd.RED)
 
     draw.line((5, 170, 80, 245), fill = epd.RED)
     draw.line((80, 170, 5, 245), fill = epd.YELLOW)
@@ -67,7 +62,7 @@ try:
     time.sleep(3)
     
     logging.info("Clear...")
-    epd.Clear(WHITE)
+    epd.Clear()
     
     logging.info("Goto Sleep...")
     epd.sleep()

+ 5 - 7
RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd1in64g.py

@@ -54,8 +54,6 @@ class EPD:
         self.YELLOW = 0x00ffff   #   10
         self.RED    = 0x0000ff   #   11
         
-
-        
     # Hardware reset
     def reset(self):
         epdconfig.digital_write(self.reset_pin, 1)
@@ -118,7 +116,6 @@ class EPD:
         self.send_command(0xB0)
         self.send_data(0x03)
 
-
         self.send_command(0x00)
         self.send_data(0x4F)
         self.send_data(0x6B)
@@ -202,9 +199,12 @@ class EPD:
             for i in range(0, Width):
                     self.send_data(image[i + j * Width])
 
+        self.send_command(0x68)
+        self.send_data(0x00)
+
         self.TurnOnDisplay()
         
-    def Clear(self, color):
+    def Clear(self, color=0x55):
         if self.width % 4 == 0 :
             Width = self.width // 4
         else :
@@ -220,9 +220,7 @@ class EPD:
         self.send_command(0x10)
         for j in range(0, Height):
             for i in range(0, Width):
-                for k in range(0, 4):
-                    self.send_data(color)
-
+                self.send_data(color)
 
         self.send_command(0x68)
         self.send_data(0x00)

+ 2 - 17
RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd3in0g.py

@@ -54,8 +54,6 @@ class EPD:
         self.YELLOW = 0x00ffff   #   10
         self.RED    = 0x0000ff   #   11
         
-
-        
     # Hardware reset
     def reset(self):
         epdconfig.digital_write(self.reset_pin, 1)
@@ -124,13 +122,11 @@ class EPD:
         self.send_data(0x4F)
         self.send_data(0x6B)
 
-
         self.send_command(0x06)
         self.send_data(0xD7)
         self.send_data(0xDE)
         self.send_data(0x12)
 
-
         self.send_command(0x61)
         self.send_data(0x00)
         self.send_data(0xA8)
@@ -185,9 +181,6 @@ class EPD:
             Width = self.width // 4 + 1
         Height = self.height
 
-        self.send_command(0x68)
-        self.send_data(0x01)
-
         self.send_command(0x04)
         self.ReadBusyH()
 
@@ -198,28 +191,20 @@ class EPD:
 
         self.TurnOnDisplay()
         
-    def Clear(self, color):
+    def Clear(self, color=0x55):
         if self.width % 4 == 0 :
             Width = self.width // 4
         else :
             Width = self.width // 4 + 1
         Height = self.height
 
-        self.send_command(0x68)
-        self.send_data(0x01)
-
         self.send_command(0x04)
         self.ReadBusyH()
 
         self.send_command(0x10)
         for j in range(0, Height):
             for i in range(0, Width):
-                for k in range(0, 4):
-                    self.send_data(color)
-
-
-        self.send_command(0x68)
-        self.send_data(0x00)
+                self.send_data(color)
 
         self.TurnOnDisplay()
 

+ 242 - 0
RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd4in37g.py

@@ -0,0 +1,242 @@
+# *****************************************************************************
+# * | File        :	  epd4in37g.py
+# * | Author      :   Waveshare team
+# * | Function    :   Electronic paper driver
+# * | Info        :
+# *----------------
+# * | This version:   V1.0
+# * | Date        :   2022-08-15
+# # | 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
+
+import PIL
+from PIL import Image
+import io
+
+# Display resolution
+EPD_WIDTH       = 512
+EPD_HEIGHT      = 368
+
+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
+        self.BLACK  = 0x000000   #   00  BGR
+        self.WHITE  = 0xffffff   #   01
+        self.YELLOW = 0x00ffff   #   10
+        self.RED    = 0x0000ff   #   11
+        
+    # Hardware reset
+    def reset(self):
+        epdconfig.digital_write(self.reset_pin, 1)
+        epdconfig.delay_ms(200) 
+        epdconfig.digital_write(self.reset_pin, 0)         # module reset
+        epdconfig.delay_ms(2)
+        epdconfig.digital_write(self.reset_pin, 1)
+        epdconfig.delay_ms(200)   
+
+    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 ReadBusyH(self):
+        logger.debug("e-Paper busy H")
+        while(epdconfig.digital_read(self.busy_pin) == 0):      # 0: idle, 1: busy
+            epdconfig.delay_ms(5)
+        logger.debug("e-Paper busy H release")
+
+    def ReadBusyL(self):
+        logger.debug("e-Paper busy L")
+        while(epdconfig.digital_read(self.busy_pin) == 1):      # 0: busy, 1: idle
+            epdconfig.delay_ms(5)
+        logger.debug("e-Paper busy L release")
+
+    def TurnOnDisplay(self):
+        self.send_command(0x12) # DISPLAY_REFRESH
+        self.send_data(0x00)
+        self.ReadBusyH()
+
+        self.send_command(0x02) # POWER_OFF
+        self.send_data(0X00)
+        self.ReadBusyH()
+        
+    def init(self):
+        if (epdconfig.module_init() != 0):
+            return -1
+        # EPD hardware init start
+        self.reset()
+        self.ReadBusyH()
+        epdconfig.delay_ms(30)
+
+        self.send_command(0xAA)
+        self.send_data(0x49)
+        self.send_data(0x55)
+        self.send_data(0x20)
+        self.send_data(0x08)
+        self.send_data(0x09)
+        self.send_data(0x18)
+
+        self.send_command(0x01)
+        self.send_data(0x3F)
+
+        self.send_command(0x00)
+        self.send_data(0x4F)
+        self.send_data(0x69)
+
+
+        self.send_command(0x05)
+        self.send_data(0x40)
+        self.send_data(0x1F)
+        self.send_data(0x1F)
+        self.send_data(0x2C)
+
+        self.send_command(0x08)
+        self.send_data(0x6F)
+        self.send_data(0x1F)
+        self.send_data(0x1F)
+        self.send_data(0x22)
+
+        # ===================
+        # 20211212
+        # First setting
+        self.send_command(0x06)
+        self.send_data(0x6F)
+        self.send_data(0x1F)
+        self.send_data(0x17)
+        self.send_data(0x17)
+        # ===================
+
+        self.send_command(0x03)
+        self.send_data(0x00)
+        self.send_data(0x54)
+        self.send_data(0x00)
+        self.send_data(0x44)
+
+        self.send_command(0x60)
+        self.send_data(0x02)
+        self.send_data(0x00)
+        # Please notice that PLL must be set for version 2 IC
+        self.send_command(0x30)
+        self.send_data(0x08)
+
+        self.send_command(0x50)
+        self.send_data(0x3F)
+
+        self.send_command(0x61)
+        self.send_data(0x02)
+        self.send_data(0x00)
+        self.send_data(0x01)
+        self.send_data(0x70)
+
+        self.send_command(0xE3)
+        self.send_data(0x2F)
+
+        self.send_command(0x84)
+        self.send_data(0x01)
+        return 0
+
+    def getbuffer(self, image):
+        # Create a pallette with the 4 colors supported by the panel
+        pal_image = Image.new("P", (1,1))
+        pal_image.putpalette( (0,0,0,  255,255,255,  255,255,0,   255,0,0) + (0,0,0)*252)
+
+        # Check if we need to rotate the image
+        imwidth, imheight = image.size
+        if(imwidth == self.width and imheight == self.height):
+            image_temp = image
+        elif(imwidth == self.height and imheight == self.width):
+            image_temp = image.rotate(90, expand=True)
+        else:
+            logger.warning("Invalid image dimensions: %d x %d, expected %d x %d" % (imwidth, imheight, self.width, self.height))
+
+        # Convert the soruce image to the 4 colors, dithering if needed
+        image_4color = image_temp.convert("RGB").quantize(palette=pal_image)
+        buf_4color = bytearray(image_4color.tobytes('raw'))
+
+        # into a single byte to transfer to the panel
+        buf = [0x00] * int(self.width * self.height / 4)
+        idx = 0
+        for i in range(0, len(buf_4color), 4):
+            buf[idx] = (buf_4color[i] << 6) + (buf_4color[i+1] << 4) + (buf_4color[i+2] << 2) + buf_4color[i+3]
+            idx += 1
+        return buf
+
+    def display(self, image):
+        if self.width % 4 == 0 :
+            Width = self.width // 4
+        else :
+            Width = self.width // 4 + 1
+        Height = self.height
+
+        self.send_command(0x04)
+        self.ReadBusyH()
+
+        self.send_command(0x10)
+        for j in range(0, Height):
+            for i in range(0, Width):
+                    self.send_data(image[i + j * Width])
+        self.TurnOnDisplay()
+        
+    def Clear(self, color=0x55):
+        if self.width % 4 == 0 :
+            Width = self.width // 4
+        else :
+            Width = self.width // 4 + 1
+        Height = self.height
+
+        self.send_command(0x04)
+        self.ReadBusyH()
+
+        self.send_command(0x10)
+        for j in range(0, Height):
+            for i in range(0, Width):
+                self.send_data(color)
+        self.TurnOnDisplay()
+
+    def sleep(self):
+        self.send_command(0x02) # POWER_OFF
+        self.send_data(0x00)
+
+        self.send_command(0x07) # DEEP_SLEEP
+        self.send_data(0XA5)
+        
+        epdconfig.delay_ms(2000)
+        epdconfig.module_exit()
+### END OF FILE ###
+

+ 1 - 22
RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd7in3g.py

@@ -54,8 +54,6 @@ class EPD:
         self.YELLOW = 0x00ffff   #   10
         self.RED    = 0x0000ff   #   11
         
-
-        
     # Hardware reset
     def reset(self):
         epdconfig.digital_write(self.reset_pin, 1)
@@ -102,9 +100,7 @@ class EPD:
         if (epdconfig.module_init() != 0):
             return -1
         # EPD hardware init start
-
         self.reset()
-
         self.ReadBusyH()
         epdconfig.delay_ms(30)
 
@@ -123,7 +119,6 @@ class EPD:
         self.send_data(0x4F)
         self.send_data(0x69)
 
-
         self.send_command(0x05)
         self.send_data(0x40)
         self.send_data(0x1F)
@@ -159,9 +154,6 @@ class EPD:
         self.send_command(0x30)
         self.send_data(0x08)
 
-
-
-
         self.send_command(0x50)
         self.send_data(0x3F)
 
@@ -202,7 +194,6 @@ class EPD:
         for i in range(0, len(buf_4color), 4):
             buf[idx] = (buf_4color[i] << 6) + (buf_4color[i+1] << 4) + (buf_4color[i+2] << 2) + buf_4color[i+3]
             idx += 1
-
         return buf
 
     def display(self, image):
@@ -212,9 +203,6 @@ class EPD:
             Width = self.width // 4 + 1
         Height = self.height
 
-        self.send_command(0x68)
-        self.send_data(0x01)
-
         self.send_command(0x04)
         self.ReadBusyH()
 
@@ -222,32 +210,23 @@ class EPD:
         for j in range(0, Height):
             for i in range(0, Width):
                     self.send_data(image[i + j * Width])
-
         self.TurnOnDisplay()
         
-    def Clear(self, color):
+    def Clear(self, color=0x55):
         if self.width % 4 == 0 :
             Width = self.width // 4
         else :
             Width = self.width // 4 + 1
         Height = self.height
 
-        self.send_command(0x68)
-        self.send_data(0x01)
-
         self.send_command(0x04)
         self.ReadBusyH()
 
         self.send_command(0x10)
         for j in range(0, Height):
             for i in range(0, Width):
-                for k in range(0, 4):
                     self.send_data(color)
 
-
-        self.send_command(0x68)
-        self.send_data(0x00)
-
         self.TurnOnDisplay()
 
     def sleep(self):

BIN
RaspberryPi_JetsonNano/python/pic/4in37g0.jpg


BIN
RaspberryPi_JetsonNano/python/pic/4in37g1.jpg


BIN
RaspberryPi_JetsonNano/python/pic/4in37g2.jpg