diff --git a/examples/ttgo_tdisplay_rp2040/feathers.py b/examples/ttgo_tdisplay_rp2040/feathers.py new file mode 100644 index 0000000..3386380 --- /dev/null +++ b/examples/ttgo_tdisplay_rp2040/feathers.py @@ -0,0 +1,120 @@ +""" +feathers.py + + Smoothly scroll mirrored rainbow colored random curves across the display. + +""" + +import random +import math +import utime +from machine import Pin, SoftSPI +import st7789py as st7789 + + +def between(left, right, along): + """returns a point along the curve from left to right""" + dist = (1 - math.cos(along * math.pi)) / 2 + return left * (1 - dist) + right * dist + + +def color_wheel(position): + """returns a 565 color from the given position of the color wheel""" + position = (255 - position) % 255 + + if position < 85: + return st7789.color565(255 - position * 3, 0, position * 3) + + if position < 170: + position -= 85 + return st7789.color565(0, position * 3, 255 - position * 3) + + position -= 170 + return st7789.color565(position * 3, 255 - position * 3, 0) + + +def main(): + ''' + The big show! + ''' + # enable display and clear screen + + Pin(22, Pin.OUT, value=1) + + spi = SoftSPI( + baudrate=20000000, + polarity=1, + phase=0, + sck=Pin(2), + mosi=Pin(3), + miso=Pin(13)) + + tft = st7789.ST7789( + spi, + 135, + 240, + reset=Pin(0, Pin.OUT), + cs=Pin(5, Pin.OUT), + dc=Pin(1, Pin.OUT), + backlight=Pin(4, Pin.OUT), + rotation=1) + + tft.fill(st7789.BLACK) # clear screen + + height = tft.height # height of display in pixels + width = tft.width # width if display in pixels + + tfa = 40 # top free area when scrolling + bfa = 40 # bottom free area when scrolling + + scroll = 0 # scroll position + wheel = 0 # color wheel position + + tft.vscrdef(tfa, width, bfa) # set scroll area + tft.vscsad(scroll + tfa) # set scroll position + tft.fill(st7789.BLACK) # clear screen + + half = (height >> 1) - 1 # half the height of the dislay + interval = 0 # steps between new points + increment = 0 # increment per step + counter = 1 # step counter, overflow to start + current_y = 0 # current_y value (right point) + last_y = 0 # last_y value (left point) + + # segment offsets + x_offsets = [x * (width // 8) - 1 for x in range(2, 9)] + + while True: + # when the counter exceeds the interval, save current_y to last_y, + # choose a new random value for current_y between 0 and 1/2 the + # height of the display, choose a new random interval then reset + # the counter to 0 + + if counter > interval: + last_y = current_y + current_y = random.randint(0, half) + counter = 0 + interval = random.randint(10, 100) + increment = 1/interval # increment per step + + # clear the first column of the display and scroll it + tft.vline(scroll, 0, height, st7789.BLACK) + tft.vscsad(scroll + tfa) + + # get the next point between last_y and current_y + tween = int(between(last_y, current_y, counter * increment)) + + # draw mirrored pixels across the display at the offsets using the color_wheel effect + for i, x_offset in enumerate(x_offsets): + tft.pixel((scroll + x_offset) % width, half + + tween, color_wheel(wheel+(i << 2))) + tft.pixel((scroll + x_offset) % width, half - + tween, color_wheel(wheel+(i << 2))) + + # increment scroll, counter, and wheel + scroll = (scroll + 1) % width + wheel = (wheel + 1) % 256 + counter += 1 + + +main() diff --git a/examples/ttgo_tdisplay_rp2040/fonts.py b/examples/ttgo_tdisplay_rp2040/fonts.py new file mode 100644 index 0000000..e6e6c98 --- /dev/null +++ b/examples/ttgo_tdisplay_rp2040/fonts.py @@ -0,0 +1,74 @@ +""" +fonts.py + + Pages through all characters of four fonts on the LILYGO® TTGO T-Display. + + https://www.youtube.com/watch?v=2cnAhEucPD4 + +""" +import utime +from machine import Pin, SoftSPI +import st7789py as st7789 + +# Choose fonts + +# from romfonts import vga1_8x8 as font +from romfonts import vga2_8x8 as font1 +# from romfonts import vga1_8x16 as font +from romfonts import vga2_8x16 as font2 +# from romfonts import vga1_16x16 as font +# from romfonts import vga1_bold_16x16 as font +# from romfonts import vga2_16x16 as font +from romfonts import vga2_bold_16x16 as font3 +# from romfonts import vga1_16x32 as font +# from romfonts import vga1_bold_16x32 as font +# from romfonts import vga2_16x32 as font +from romfonts import vga2_bold_16x32 as font4 + + +def main(): + Pin(22, Pin.OUT, value=1) + + spi = SoftSPI( + baudrate=20000000, + polarity=1, + phase=0, + sck=Pin(2), + mosi=Pin(3), + miso=Pin(13)) + + tft = st7789.ST7789( + spi, + 135, + 240, + reset=Pin(0, Pin.OUT), + cs=Pin(5, Pin.OUT), + dc=Pin(1, Pin.OUT), + backlight=Pin(4, Pin.OUT), + rotation=0) + + tft.vscrdef(40, 240, 40) + + while True: + for font in (font1, font2, font3, font4): + tft.fill(st7789.BLUE) + line = 0 + col = 0 + + for char in range(font.FIRST, font.LAST): + tft.text(font, chr(char), col, line, st7789.WHITE, st7789.BLUE) + col += font.WIDTH + if col > tft.width - font.WIDTH: + col = 0 + line += font.HEIGHT + + if line > tft.height-font.HEIGHT: + utime.sleep(3) + tft.fill(st7789.BLUE) + line = 0 + col = 0 + + utime.sleep(3) + + +main() diff --git a/examples/ttgo_tdisplay_rp2040/hello.py b/examples/ttgo_tdisplay_rp2040/hello.py new file mode 100644 index 0000000..673a0bf --- /dev/null +++ b/examples/ttgo_tdisplay_rp2040/hello.py @@ -0,0 +1,75 @@ +""" +hello.py + + Writes "Hello!" in random colors at random locations on a + LILYGO® TTGO T-Display. + + https://www.youtube.com/watch?v=atBa0BYPAAc + +""" +import random +from machine import Pin, SoftSPI +import st7789py as st7789 + +# Choose a font + +# from romfonts import vga1_8x8 as font +# from romfonts import vga2_8x8 as font +# from romfonts import vga1_8x16 as font +# from romfonts import vga2_8x16 as font +# from romfonts import vga1_16x16 as font +# from romfonts import vga1_bold_16x16 as font +# from romfonts import vga2_16x16 as font +# from romfonts import vga2_bold_16x16 as font +# from romfonts import vga1_16x32 as font +# from romfonts import vga1_bold_16x32 as font +# from romfonts import vga2_16x32 as font +from romfonts import vga2_bold_16x32 as font + + +def main(): + Pin(22, Pin.OUT, value=1) + + spi = SoftSPI( + baudrate=20000000, + polarity=1, + phase=0, + sck=Pin(2), + mosi=Pin(3), + miso=Pin(13)) + + tft = st7789.ST7789( + spi, + 135, + 240, + reset=Pin(0, Pin.OUT), + cs=Pin(5, Pin.OUT), + dc=Pin(1, Pin.OUT), + backlight=Pin(4, Pin.OUT), + rotation=1) + + while True: + for rotation in range(4): + tft.rotation(rotation) + tft.fill(0) + col_max = tft.width - font.WIDTH*6 + row_max = tft.height - font.HEIGHT + + for _ in range(100): + tft.text( + font, + "Hello!", + random.randint(0, col_max), + random.randint(0, row_max), + st7789.color565( + random.getrandbits(8), + random.getrandbits(8), + random.getrandbits(8)), + st7789.color565( + random.getrandbits(8), + random.getrandbits(8), + random.getrandbits(8)) + ) + + +main() diff --git a/examples/ttgo_tdisplay_rp2040/lines.py b/examples/ttgo_tdisplay_rp2040/lines.py new file mode 100644 index 0000000..d5e3c75 --- /dev/null +++ b/examples/ttgo_tdisplay_rp2040/lines.py @@ -0,0 +1,66 @@ +""" +lines.py + + Draws lines and rectangles in random colors at random locations on the + display. + +""" +import random +from machine import Pin, SoftSPI +import st7789py as st7789 + + +def main(): + Pin(22, Pin.OUT, value=1) + + spi = SoftSPI( + baudrate=20000000, + polarity=1, + phase=0, + sck=Pin(2), + mosi=Pin(3), + miso=Pin(13)) + + tft = st7789.ST7789( + spi, + 135, + 240, + reset=Pin(0, Pin.OUT), + cs=Pin(5, Pin.OUT), + dc=Pin(1, Pin.OUT), + backlight=Pin(4, Pin.OUT), + rotation=0) + + tft.fill(st7789.BLACK) + + while True: + tft.line( + random.randint(0, tft.width), + random.randint(0, tft.height), + random.randint(0, tft.width), + random.randint(0, tft.height), + st7789.color565( + random.getrandbits(8), + random.getrandbits(8), + random.getrandbits(8) + ) + ) + + width = random.randint(0, tft.width // 2) + height = random.randint(0, tft.height // 2) + col = random.randint(0, tft.width - width) + row = random.randint(0, tft.height - height) + tft.fill_rect( + col, + row, + width, + height, + st7789.color565( + random.getrandbits(8), + random.getrandbits(8), + random.getrandbits(8) + ) + ) + + +main() diff --git a/examples/ttgo_tdisplay_rp2040/scroll.py b/examples/ttgo_tdisplay_rp2040/scroll.py new file mode 100644 index 0000000..3395ef1 --- /dev/null +++ b/examples/ttgo_tdisplay_rp2040/scroll.py @@ -0,0 +1,78 @@ +""" +scroll.py + + Smoothly scrolls all font characters up the screen on the LILYGO® TTGO + T-Display. Only works with fonts with heights that are even multiples of + the screen height, (i.e. 8 or 16 pixels high) + +""" +import utime +import random +from machine import Pin, SoftSPI +import st7789py as st7789 + +# choose a font + +# from romfonts import vga1_8x8 as font +# from romfonts import vga2_8x8 as font +# from romfonts import vga1_8x16 as font +# from romfonts import vga2_8x16 as font +# from romfonts import vga1_16x16 as font +# from romfonts import vga1_bold_16x16 as font +# from romfonts import vga2_16x16 as font +from romfonts import vga2_bold_16x16 as font + + +def main(): + Pin(22, Pin.OUT, value=1) + + spi = SoftSPI( + baudrate=20000000, + polarity=1, + phase=0, + sck=Pin(2), + mosi=Pin(3), + miso=Pin(13)) + + tft = st7789.ST7789( + spi, + 135, + 240, + reset=Pin(0, Pin.OUT), + cs=Pin(5, Pin.OUT), + dc=Pin(1, Pin.OUT), + backlight=Pin(4, Pin.OUT), + rotation=0) + + last_line = tft.height - font.HEIGHT + tfa = 40 + tfb = 40 + tft.vscrdef(tfa, 240, tfb) + + tft.fill(st7789.BLUE) + scroll = 0 + character = 0 + while True: + tft.fill_rect(0, scroll, tft.width, 1, st7789.BLUE) + + if scroll % font.HEIGHT == 0: + tft.text( + font, + '\\x{:02x}= {:s} '.format(character, chr(character)), + 0, + (scroll + last_line) % tft.height, + st7789.WHITE, + st7789.BLUE) + + character = character + 1 if character < 256 else 0 + + tft.vscsad(scroll + tfa) + scroll += 1 + + if scroll == tft.height: + scroll = 0 + + utime.sleep(0.01) + + +main() diff --git a/examples/ttgo_tdisplay_rp2040/toasters/t1.py b/examples/ttgo_tdisplay_rp2040/toasters/t1.py new file mode 100644 index 0000000..b87e0fa --- /dev/null +++ b/examples/ttgo_tdisplay_rp2040/toasters/t1.py @@ -0,0 +1,104 @@ +HEIGHT = 64 +WIDTH = 64 +COLORS = 8 +BITS = 12288 +BPP = 3 +PALETTE = [0x0000,0xffff,0xb6b5,0x00b0,0x6d6b,0x4082,0x494a,0x2000] +_bitmap =\ +b'\x00\x00\x00\x00\x00\x00\x00\x02\x49\x24\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02'\ +b'\x49\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x24\x92\x40\x00\x90\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x92'\ +b'\x40\x00\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x09\x24\x90\x00\x24\x90\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x09\x24\x90'\ +b'\x00\x24\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x02\x49\x00\x92\x49\x00\x02\x40\x49\x24\x92\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x49\x00\x92'\ +b'\x49\x00\x02\x40\x49\x24\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x92\x49\x24\x92\x40\x01\x24\x92\x49\x24\x92\x49'\ +b'\x24\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x92\x49\x24\x92'\ +b'\x40\x01\x24\x92\x49\x24\x92\x49\x24\x80\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x92\x49\x24\x04\x92\x49\x20\x00\x01\xb6\xdb\x6d'\ +b'\x24\x92\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x92\x49\x24\x04'\ +b'\x92\x49\x20\x00\x01\xb6\xdb\x6d\x24\x92\x48\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x24\x92\x49\x49\x24\x80\x00\x06\xdb\x6d\x24\x92\x49'\ +b'\x24\x92\x49\x24\x80\x00\x00\x00\x00\x00\x00\x24\x92\x49\x49\x24'\ +b'\x80\x00\x06\xdb\x6d\x24\x92\x49\x24\x92\x49\x24\x80\x00\x00\x00'\ +b'\x00\x00\x00\x24\x94\x92\x48\x00\x00\x6d\xb4\x92\x49\x20\x00\x01'\ +b'\xb6\xdb\x6d\x24\xa4\x00\x00\x00\x00\x00\x00\x24\x94\x92\x48\x00'\ +b'\x00\x6d\xb4\x92\x49\x20\x00\x01\xb6\xdb\x6d\x24\xa4\x00\x00\x00'\ +b'\x00\x00\x09\x49\x24\x80\x00\x06\xdb\x49\x24\x80\x00\x06\xdb\x6d'\ +b'\x24\x92\x00\x00\x00\x90\x00\x00\x00\x00\x09\x49\x24\x80\x00\x06'\ +b'\xdb\x49\x24\x80\x00\x06\xdb\x6d\x24\x92\x00\x00\x00\x90\x00\x00'\ +b'\x00\x00\x12\x48\x00\x00\x6d\xb4\x92\x48\x00\x00\x6d\xb4\x92\x48'\ +b'\x00\x00\x24\x92\x49\x24\x92\x49\x00\x00\x12\x48\x00\x00\x6d\xb4'\ +b'\x92\x48\x00\x00\x6d\xb4\x92\x48\x00\x00\x24\x92\x49\x24\x92\x49'\ +b'\x00\x04\x92\x00\x00\x1b\x49\x24\x80\x00\x06\xdb\x49\x24\xa4\x00'\ +b'\x92\x49\x24\x90\x09\x00\x90\x00\x00\x04\x92\x00\x00\x1b\x49\x24'\ +b'\x80\x00\x06\xdb\x49\x24\xa4\x00\x92\x49\x24\x90\x09\x00\x90\x00'\ +b'\x01\x24\x80\x00\x06\xd2\x48\x00\x00\x6d\xb4\x92\x4a\x49\x00\x24'\ +b'\x92\x40\x24\x92\x49\x24\x92\x49\x01\x24\x80\x00\x06\xd2\x48\x00'\ +b'\x00\x6d\xb4\x92\x4a\x49\x00\x24\x92\x40\x24\x92\x49\x24\x92\x49'\ +b'\x01\x24\x92\x49\xb4\x92\x00\x00\x1b\x49\x24\xa4\x92\x40\x09\x24'\ +b'\x92\x49\x24\x02\x40\x24\x00\x00\x01\x24\x92\x49\xb4\x92\x00\x00'\ +b'\x1b\x49\x24\xa4\x92\x40\x09\x24\x92\x49\x24\x02\x40\x24\x00\x00'\ +b'\x92\xdb\x52\x49\x24\x80\x00\x06\xd2\x4b\x69\x24\x92\x40\x09\x24'\ +b'\x90\x09\x24\x92\x49\x24\x92\x40\x92\xdb\x52\x49\x24\x80\x00\x06'\ +b'\xd2\x4b\x69\x24\x92\x40\x09\x24\x90\x09\x24\x92\x49\x24\x92\x40'\ +b'\x92\xdb\x6d\xb5\x24\x92\x49\xb4\x92\xda\x49\x24\x90\x02\x49\x24'\ +b'\x92\x49\x00\x90\x09\x00\x00\x00\x92\xdb\x6d\xb5\x24\x92\x49\xb4'\ +b'\x92\xda\x49\x24\x90\x02\x49\x24\x92\x49\x00\x90\x09\x00\x00\x00'\ +b'\x92\xd4\x92\xb6\xdb\x52\x49\x24\xb6\x92\x49\x24\x90\x02\x49\x24'\ +b'\x02\x49\x24\x92\x49\x24\x00\x00\x92\xd4\x92\xb6\xdb\x52\x49\x24'\ +b'\xb6\x92\x49\x24\x90\x02\x49\x24\x02\x49\x24\x92\x49\x24\x00\x00'\ +b'\x92\xd4\xb6\x49\x2b\x6d\xb6\x49\x36\x92\x49\x24\x00\x92\x49\x24'\ +b'\x92\x40\x00\x00\x00\x00\x00\x00\x92\xd4\xb6\x49\x2b\x6d\xb6\x49'\ +b'\x36\x92\x49\x24\x00\x92\x49\x24\x92\x40\x00\x00\x00\x00\x00\x00'\ +b'\x92\xd4\xb6\xdb\x64\x92\xb6\x4b\x64\x92\x49\x24\x00\x92\x40\x24'\ +b'\x92\x49\x24\x09\x2d\xb4\x00\x00\x92\xd4\xb6\xdb\x64\x92\xb6\x4b'\ +b'\x64\x92\x49\x24\x00\x92\x40\x24\x92\x49\x24\x09\x2d\xb4\x00\x00'\ +b'\x92\xdb\x6d\xb7\x64\x92\xb6\x4b\x64\x92\x49\x00\x24\x92\x49\x24'\ +b'\x00\x00\x02\x49\x2d\x90\x00\x00\x92\xdb\x6d\xb7\x64\x92\xb6\x4b'\ +b'\x64\x92\x49\x00\x24\x92\x49\x24\x00\x00\x02\x49\x2d\x90\x00\x00'\ +b'\x92\xdb\x6d\x4a\xd4\x92\xb6\x4b\x64\x92\x49\x00\x24\x90\x09\x24'\ +b'\x92\x40\x92\x4b\x6d\xb4\x00\x00\x92\xdb\x6d\x4a\xd4\x92\xb6\x4b'\ +b'\x64\x92\x49\x00\x24\x90\x09\x24\x92\x40\x92\x4b\x6d\xb4\x00\x00'\ +b'\x92\xdb\x6d\xb6\xdb\x6d\xb6\x4b\x6d\x90\x09\x00\x24\x92\x49\x00'\ +b'\x00\x24\x92\x4b\x6d\x90\x00\x00\x92\xdb\x6d\xb6\xdb\x6d\xb6\x4b'\ +b'\x6d\x90\x09\x00\x24\x92\x49\x00\x00\x24\x92\x4b\x6d\x90\x00\x00'\ +b'\x92\xdb\x6d\x4a\xdb\x6d\xb6\x4b\x6d\x92\x49\x24\x00\x92\x40\x92'\ +b'\x49\x24\x92\xdb\x6d\xb4\x00\x00\x92\xdb\x6d\x4a\xdb\x6d\xb6\x4b'\ +b'\x6d\x92\x49\x24\x00\x92\x40\x92\x49\x24\x92\xdb\x6d\xb4\x00\x00'\ +b'\x92\xdb\x6d\xb6\xdb\x6d\xb6\x4b\x6d\x90\x09\x24\x90\x00\x24\x92'\ +b'\x49\x24\xb6\xdb\x6d\x90\x00\x00\x92\xdb\x6d\xb6\xdb\x6d\xb6\x4b'\ +b'\x6d\x90\x09\x24\x90\x00\x24\x92\x49\x24\xb6\xdb\x6d\x90\x00\x00'\ +b'\x92\xdb\x6d\x4a\xdb\x6d\xb6\x4b\x6d\xb6\x40\x00\x92\x49\x24\x92'\ +b'\x4b\x6d\xb6\xdb\x64\x00\x00\x00\x92\xdb\x6d\x4a\xdb\x6d\xb6\x4b'\ +b'\x6d\xb6\x40\x00\x92\x49\x24\x92\x4b\x6d\xb6\xdb\x64\x00\x00\x00'\ +b'\x92\xdb\x6d\xb6\xdb\x6d\xb6\x4b\x6d\xb6\xd9\x24\x92\x49\x24\xb6'\ +b'\xdb\x6d\xb6\xd9\x00\x00\x00\x00\x92\xdb\x6d\xb6\xdb\x6d\xb6\x4b'\ +b'\x6d\xb6\xd9\x24\x92\x49\x24\xb6\xdb\x6d\xb6\xd9\x00\x00\x00\x00'\ +b'\x92\xdb\x6d\x4a\xdb\x6d\xb6\x4b\x6d\xb6\xdb\x6d\xb6\xdb\x6d\xb6'\ +b'\xdb\x6d\x92\x40\x00\x00\x00\x00\x92\xdb\x6d\x4a\xdb\x6d\xb6\x4b'\ +b'\x6d\xb6\xdb\x6d\xb6\xdb\x6d\xb6\xdb\x6d\x92\x40\x00\x00\x00\x00'\ +b'\x92\xdb\x6d\xb6\xdb\x6d\xb6\x4b\x6d\xb6\xdb\x6d\xb6\xdb\x6d\xb6'\ +b'\xd9\x24\x00\x00\x00\x00\x00\x00\x92\xdb\x6d\xb6\xdb\x6d\xb6\x4b'\ +b'\x6d\xb6\xdb\x6d\xb6\xdb\x6d\xb6\xd9\x24\x00\x00\x00\x00\x00\x00'\ +b'\x02\x4b\x6d\xb6\xdb\x6d\xb6\x4b\x6d\xb6\xdb\x6d\xb6\xdb\x6d\x92'\ +b'\x40\x00\x00\x00\x00\x00\x00\x00\x02\x4b\x6d\xb6\xdb\x6d\xb6\x4b'\ +b'\x6d\xb6\xdb\x6d\xb6\xdb\x6d\x92\x40\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x09\x2d\xb6\xdb\x6d\xb6\x4b\x6d\xb6\xdb\x6d\xb6\xd9\x24\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x09\x2d\xb6\xdb\x6d\xb6\x4b'\ +b'\x6d\xb6\xdb\x6d\xb6\xd9\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x24\x92\xdb\x6d\xb6\x4b\x6d\xb6\xdb\x64\x92\x40\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x92\xdb\x6d\xb6\x4b'\ +b'\x6d\xb6\xdb\x64\x92\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x02\x49\x2d\xb6\x4b\x6d\x92\x49\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x49\x2d\xb6\x4b'\ +b'\x6d\x92\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x24\x92\x49\x24\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x92\x49'\ +b'\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +BITMAP = memoryview(_bitmap) diff --git a/examples/ttgo_tdisplay_rp2040/toasters/t2.py b/examples/ttgo_tdisplay_rp2040/toasters/t2.py new file mode 100644 index 0000000..a1ad9da --- /dev/null +++ b/examples/ttgo_tdisplay_rp2040/toasters/t2.py @@ -0,0 +1,104 @@ +HEIGHT = 64 +WIDTH = 64 +COLORS = 8 +BITS = 12288 +BPP = 3 +PALETTE = [0x0000,0xffff,0xb6b5,0x00b0,0x6d6b,0x4082,0x494a,0x2000] +_bitmap =\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x02\x49\x00\x00\x00\x49\x24\x92\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02'\ +b'\x49\x00\x00\x00\x49\x24\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x24\x92\x49\x01\x24\x92\x49\x24\x92\x49'\ +b'\x24\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x92'\ +b'\x49\x01\x24\x92\x49\x24\x92\x49\x24\x80\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x09\x24\x04\x92\x49\x20\x00\x01\xb6\xdb\x6d'\ +b'\x24\x92\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x09\x24\x04'\ +b'\x92\x49\x20\x00\x01\xb6\xdb\x6d\x24\x92\x48\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x02\x49\x49\x24\x80\x00\x06\xdb\x6d\x24\x92\x49'\ +b'\x24\x92\x49\x24\x80\x00\x00\x00\x00\x00\x00\x00\x02\x49\x49\x24'\ +b'\x80\x00\x06\xdb\x6d\x24\x92\x49\x24\x92\x49\x24\x80\x00\x00\x00'\ +b'\x00\x00\x00\x00\x94\x92\x48\x00\x00\x6d\xb4\x92\x49\x20\x00\x01'\ +b'\xb6\xdb\x6d\x24\xa4\x00\x00\x00\x00\x00\x00\x00\x94\x92\x48\x00'\ +b'\x00\x6d\xb4\x92\x49\x20\x00\x01\xb6\xdb\x6d\x24\xa4\x00\x00\x00'\ +b'\x00\x00\x00\x49\x24\x80\x00\x06\xdb\x49\x24\x80\x00\x06\xdb\x6d'\ +b'\x24\x92\x49\x24\xa4\x90\x00\x00\x00\x00\x00\x49\x24\x80\x00\x06'\ +b'\xdb\x49\x24\x80\x00\x06\xdb\x6d\x24\x92\x49\x24\xa4\x90\x00\x00'\ +b'\x00\x00\x12\x48\x00\x00\x6d\xb4\x92\x48\x00\x00\x6d\xb4\x92\x49'\ +b'\x24\x80\x00\x00\x24\x90\x00\x00\x00\x00\x12\x48\x00\x00\x6d\xb4'\ +b'\x92\x48\x00\x00\x6d\xb4\x92\x49\x24\x80\x00\x00\x24\x90\x00\x00'\ +b'\x00\x04\x92\x00\x00\x1b\x49\x24\x80\x00\x06\xdb\x49\x24\xa4\x90'\ +b'\x00\x24\x92\x49\x00\x90\x00\x00\x00\x04\x92\x00\x00\x1b\x49\x24'\ +b'\x80\x00\x06\xdb\x49\x24\xa4\x90\x00\x24\x92\x49\x00\x90\x00\x00'\ +b'\x01\x24\x80\x00\x06\xd2\x48\x00\x00\x6d\xb4\x92\x4a\x49\x24\x92'\ +b'\x49\x24\x92\x49\x24\x90\x00\x00\x01\x24\x80\x00\x06\xd2\x48\x00'\ +b'\x00\x6d\xb4\x92\x4a\x49\x24\x92\x49\x24\x92\x49\x24\x90\x00\x00'\ +b'\x01\x24\x92\x49\xb4\x92\x00\x00\x1b\x49\x24\xa4\x92\x49\x24\x90'\ +b'\x00\x00\x00\x00\x00\x90\x00\x00\x01\x24\x92\x49\xb4\x92\x00\x00'\ +b'\x1b\x49\x24\xa4\x92\x49\x24\x90\x00\x00\x00\x00\x00\x90\x00\x00'\ +b'\x92\xdb\x52\x49\x24\x80\x00\x06\xd2\x4b\x69\x24\x92\x49\x00\x00'\ +b'\x92\x49\x24\x92\x49\x00\x00\x00\x92\xdb\x52\x49\x24\x80\x00\x06'\ +b'\xd2\x4b\x69\x24\x92\x49\x00\x00\x92\x49\x24\x92\x49\x00\x00\x00'\ +b'\x92\xdb\x6d\xb5\x24\x92\x49\xb4\x92\xda\x49\x24\x92\x40\x09\x24'\ +b'\x92\x49\x00\x92\x49\x24\x92\x49\x92\xdb\x6d\xb5\x24\x92\x49\xb4'\ +b'\x92\xda\x49\x24\x92\x40\x09\x24\x92\x49\x00\x92\x49\x24\x92\x49'\ +b'\x92\xd4\x92\xb6\xdb\x52\x49\x24\xb6\x92\x49\x24\x90\x02\x49\x24'\ +b'\x92\x49\x24\x90\x09\x00\x90\x00\x92\xd4\x92\xb6\xdb\x52\x49\x24'\ +b'\xb6\x92\x49\x24\x90\x02\x49\x24\x92\x49\x24\x90\x09\x00\x90\x00'\ +b'\x92\xd4\xb6\x49\x2b\x6d\xb6\x49\x36\x92\x49\x24\x00\x92\x49\x24'\ +b'\x92\x40\x24\x92\x49\x24\x92\x49\x92\xd4\xb6\x49\x2b\x6d\xb6\x49'\ +b'\x36\x92\x49\x24\x00\x92\x49\x24\x92\x40\x24\x92\x49\x24\x92\x49'\ +b'\x92\xd4\xb6\xdb\x64\x92\xb6\x4b\x64\x92\x49\x24\x00\x92\x49\x24'\ +b'\x92\x49\x24\x02\x40\x00\x92\x40\x92\xd4\xb6\xdb\x64\x92\xb6\x4b'\ +b'\x64\x92\x49\x24\x00\x92\x49\x24\x92\x49\x24\x02\x40\x00\x92\x40'\ +b'\x92\xdb\x6d\xb7\x64\x92\xb6\x4b\x64\x92\x49\x00\x24\x92\x49\x24'\ +b'\x90\x09\x24\x92\x49\x24\x00\x00\x92\xdb\x6d\xb7\x64\x92\xb6\x4b'\ +b'\x64\x92\x49\x00\x24\x92\x49\x24\x90\x09\x24\x92\x49\x24\x00\x00'\ +b'\x92\xdb\x6d\x4a\xd4\x92\xb6\x4b\x64\x92\x49\x00\x24\x90\x09\x00'\ +b'\x92\x49\x24\x90\x2d\xb4\x00\x00\x92\xdb\x6d\x4a\xd4\x92\xb6\x4b'\ +b'\x64\x92\x49\x00\x24\x90\x09\x00\x92\x49\x24\x90\x2d\xb4\x00\x00'\ +b'\x92\xdb\x6d\xb6\xdb\x6d\xb6\x4b\x6d\x90\x09\x00\x24\x92\x49\x00'\ +b'\x00\x00\x00\x00\x2d\x90\x00\x00\x92\xdb\x6d\xb6\xdb\x6d\xb6\x4b'\ +b'\x6d\x90\x09\x00\x24\x92\x49\x00\x00\x00\x00\x00\x2d\x90\x00\x00'\ +b'\x92\xdb\x6d\x4a\xdb\x6d\xb6\x4b\x6d\x92\x49\x24\x00\x92\x40\x92'\ +b'\x49\x24\x92\xdb\x6d\xb4\x00\x00\x92\xdb\x6d\x4a\xdb\x6d\xb6\x4b'\ +b'\x6d\x92\x49\x24\x00\x92\x40\x92\x49\x24\x92\xdb\x6d\xb4\x00\x00'\ +b'\x92\xdb\x6d\xb6\xdb\x6d\xb6\x4b\x6d\x90\x09\x24\x90\x00\x24\x92'\ +b'\x49\x24\xb6\xdb\x6d\x90\x00\x00\x92\xdb\x6d\xb6\xdb\x6d\xb6\x4b'\ +b'\x6d\x90\x09\x24\x90\x00\x24\x92\x49\x24\xb6\xdb\x6d\x90\x00\x00'\ +b'\x92\xdb\x6d\x4a\xdb\x6d\xb6\x4b\x6d\xb6\x40\x00\x92\x49\x24\x92'\ +b'\x4b\x6d\xb6\xdb\x64\x00\x00\x00\x92\xdb\x6d\x4a\xdb\x6d\xb6\x4b'\ +b'\x6d\xb6\x40\x00\x92\x49\x24\x92\x4b\x6d\xb6\xdb\x64\x00\x00\x00'\ +b'\x92\xdb\x6d\xb6\xdb\x6d\xb6\x4b\x6d\xb6\xd9\x24\x92\x49\x24\xb6'\ +b'\xdb\x6d\xb6\xd9\x00\x00\x00\x00\x92\xdb\x6d\xb6\xdb\x6d\xb6\x4b'\ +b'\x6d\xb6\xd9\x24\x92\x49\x24\xb6\xdb\x6d\xb6\xd9\x00\x00\x00\x00'\ +b'\x92\xdb\x6d\x4a\xdb\x6d\xb6\x4b\x6d\xb6\xdb\x6d\xb6\xdb\x6d\xb6'\ +b'\xdb\x6d\x92\x40\x00\x00\x00\x00\x92\xdb\x6d\x4a\xdb\x6d\xb6\x4b'\ +b'\x6d\xb6\xdb\x6d\xb6\xdb\x6d\xb6\xdb\x6d\x92\x40\x00\x00\x00\x00'\ +b'\x92\xdb\x6d\xb6\xdb\x6d\xb6\x4b\x6d\xb6\xdb\x6d\xb6\xdb\x6d\xb6'\ +b'\xd9\x24\x00\x00\x00\x00\x00\x00\x92\xdb\x6d\xb6\xdb\x6d\xb6\x4b'\ +b'\x6d\xb6\xdb\x6d\xb6\xdb\x6d\xb6\xd9\x24\x00\x00\x00\x00\x00\x00'\ +b'\x02\x4b\x6d\xb6\xdb\x6d\xb6\x4b\x6d\xb6\xdb\x6d\xb6\xdb\x6d\x92'\ +b'\x40\x00\x00\x00\x00\x00\x00\x00\x02\x4b\x6d\xb6\xdb\x6d\xb6\x4b'\ +b'\x6d\xb6\xdb\x6d\xb6\xdb\x6d\x92\x40\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x09\x2d\xb6\xdb\x6d\xb6\x4b\x6d\xb6\xdb\x6d\xb6\xd9\x24\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x09\x2d\xb6\xdb\x6d\xb6\x4b'\ +b'\x6d\xb6\xdb\x6d\xb6\xd9\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x24\x92\xdb\x6d\xb6\x4b\x6d\xb6\xdb\x64\x92\x40\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x92\xdb\x6d\xb6\x4b'\ +b'\x6d\xb6\xdb\x64\x92\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x02\x49\x2d\xb6\x4b\x6d\x92\x49\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x49\x2d\xb6\x4b'\ +b'\x6d\x92\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x24\x92\x49\x24\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x92\x49'\ +b'\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +BITMAP = memoryview(_bitmap) diff --git a/examples/ttgo_tdisplay_rp2040/toasters/t3.py b/examples/ttgo_tdisplay_rp2040/toasters/t3.py new file mode 100644 index 0000000..da29441 --- /dev/null +++ b/examples/ttgo_tdisplay_rp2040/toasters/t3.py @@ -0,0 +1,104 @@ +HEIGHT = 64 +WIDTH = 64 +COLORS = 8 +BITS = 12288 +BPP = 3 +PALETTE = [0x0000,0xb6b5,0x00b0,0x6d6b,0x4082,0x494a,0xffff,0x2000] +_bitmap =\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x92\x49\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x24\x92\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x92\x49\x24\x92\x49\x24'\ +b'\x92\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x92\x49\x24\x92\x49\x24\x92\x40\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x02\x49\x24\x90\x00\x01\x24\x92\x48'\ +b'\x92\x49\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02'\ +b'\x49\x24\x90\x00\x01\x24\x92\x48\x92\x49\x24\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x24\x92\x40\x00\x04\x92\x48\x92\x49\x24'\ +b'\x92\x49\x24\x92\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x92'\ +b'\x40\x00\x04\x92\x48\x92\x49\x24\x92\x49\x24\x92\x40\x00\x00\x00'\ +b'\x00\x00\x00\x00\x02\x49\x24\x00\x00\x49\x22\x49\x24\x90\x00\x01'\ +b'\x24\x92\x48\x92\x5b\x00\x00\x00\x00\x00\x00\x00\x02\x49\x24\x00'\ +b'\x00\x49\x22\x49\x24\x90\x00\x01\x24\x92\x48\x92\x5b\x00\x00\x00'\ +b'\x00\x00\x00\x24\x92\x40\x00\x04\x92\x24\x92\x40\x00\x04\x92\x48'\ +b'\x92\x49\x24\x92\x5b\x6c\x00\x00\x00\x00\x00\x24\x92\x40\x00\x04'\ +b'\x92\x24\x92\x40\x00\x04\x92\x48\x92\x49\x24\x92\x5b\x6c\x00\x00'\ +b'\x00\x00\x09\x24\x00\x00\x49\x22\x49\x24\x00\x00\x49\x22\x49\x24'\ +b'\x96\xc0\x00\x00\x1b\x6c\x00\x00\x00\x00\x09\x24\x00\x00\x49\x22'\ +b'\x49\x24\x00\x00\x49\x22\x49\x24\x96\xc0\x00\x00\x1b\x6c\x00\x00'\ +b'\x00\x02\x49\x00\x00\x12\x24\x92\x40\x00\x04\x92\x24\x92\x5b\x6c'\ +b'\x00\x1b\x6d\xb6\xc0\x6c\x00\x00\x00\x02\x49\x00\x00\x12\x24\x92'\ +b'\x40\x00\x04\x92\x24\x92\x5b\x6c\x00\x1b\x6d\xb6\xc0\x6c\x00\x00'\ +b'\x00\x92\x40\x00\x04\x89\x24\x00\x00\x49\x22\x49\x25\xb6\xdb\x6d'\ +b'\xb6\xdb\x6d\xb6\xdb\x6c\x00\x00\x00\x92\x40\x00\x04\x89\x24\x00'\ +b'\x00\x49\x22\x49\x25\xb6\xdb\x6d\xb6\xdb\x6d\xb6\xdb\x6c\x00\x00'\ +b'\x00\x92\x49\x25\x22\x49\x00\x00\x12\x24\x92\x5b\x6d\xb6\xdb\x6d'\ +b'\xb6\xdb\x6d\xb6\xdb\x6c\x00\x00\x00\x92\x49\x25\x22\x49\x00\x00'\ +b'\x12\x24\x92\x5b\x6d\xb6\xdb\x6d\xb6\xdb\x6d\xb6\xdb\x6c\x00\x00'\ +b'\x6e\x49\x09\x24\x92\x40\x00\x04\x89\x26\xd6\xdb\x6d\xb6\xdb\x6d'\ +b'\xb6\xdb\x6d\xb6\xdb\x00\x00\x00\x6e\x49\x09\x24\x92\x40\x00\x04'\ +b'\x89\x26\xd6\xdb\x6d\xb6\xdb\x6d\xb6\xdb\x6d\xb6\xdb\x00\x00\x00'\ +b'\x6e\x49\x24\x90\x92\x49\x25\x22\x49\xb5\xb6\xdb\x6d\xb6\xdb\x6d'\ +b'\xb6\xdb\x6d\xb6\xc0\x6c\x00\x00\x6e\x49\x24\x90\x92\x49\x25\x22'\ +b'\x49\xb5\xb6\xdb\x6d\xb6\xdb\x6d\xb6\xdb\x6d\xb6\xc0\x6c\x00\x00'\ +b'\x6e\x42\x49\x92\x49\x09\x24\x92\x6d\x6d\xb6\xdb\x6d\xb6\xdb\x6d'\ +b'\xb6\xdb\x6d\xb6\xc0\x00\x00\x00\x6e\x42\x49\x92\x49\x09\x24\x92'\ +b'\x6d\x6d\xb6\xdb\x6d\xb6\xdb\x6d\xb6\xdb\x6d\xb6\xc0\x00\x00\x00'\ +b'\x6e\x42\x6d\x24\x99\x24\x91\xb6\xed\x6d\xb6\xdb\x6c\x00\x1b\x6d'\ +b'\xb6\xdb\x6c\x00\x00\x6c\x00\x00\x6e\x42\x6d\x24\x99\x24\x91\xb6'\ +b'\xed\x6d\xb6\xdb\x6c\x00\x1b\x6d\xb6\xdb\x6c\x00\x00\x6c\x00\x00'\ +b'\x6e\x42\x6d\xb6\xd2\x49\x91\xb9\x1b\x6d\xb6\xdb\x03\x6d\x80\x00'\ +b'\x00\x00\x00\x0d\xb6\x03\x6d\x80\x6e\x42\x6d\xb6\xd2\x49\x91\xb9'\ +b'\x1b\x6d\xb6\xdb\x03\x6d\x80\x00\x00\x00\x00\x0d\xb6\x03\x6d\x80'\ +b'\x6e\x49\x24\x92\xd2\x49\x91\xb9\x1b\x6d\xb6\xc0\xdb\x6d\xb6\xd8'\ +b'\x0d\xb6\x03\x6d\x80\xdb\x60\x36\x6e\x49\x24\x92\xd2\x49\x91\xb9'\ +b'\x1b\x6d\xb6\xc0\xdb\x6d\xb6\xd8\x0d\xb6\x03\x6d\x80\xdb\x60\x36'\ +b'\x6e\x49\x24\x26\x42\x49\x91\xb9\x1b\x6d\xb6\xc0\xdb\x6d\xb6\x03'\ +b'\x6d\x80\xdb\x60\x36\xd8\x0d\xb6\x6e\x49\x24\x26\x42\x49\x91\xb9'\ +b'\x1b\x6d\xb6\xc0\xdb\x6d\xb6\x03\x6d\x80\xdb\x60\x36\xd8\x0d\xb6'\ +b'\x6e\x49\x24\x92\x49\x24\x91\xb9\x24\x6c\x06\xc0\xdb\x6d\xb6\xdb'\ +b'\x60\x36\xd8\x0d\xb6\x03\x6d\x80\x6e\x49\x24\x92\x49\x24\x91\xb9'\ +b'\x24\x6c\x06\xc0\xdb\x6d\xb6\xdb\x60\x36\xd8\x0d\xb6\x03\x6d\x80'\ +b'\x6e\x49\x24\x26\x49\x24\x91\xb9\x24\x6d\xb6\xdb\x03\x6d\xb6\xdb'\ +b'\x6d\xb6\xdb\x6d\x80\xdb\x6d\x80\x6e\x49\x24\x26\x49\x24\x91\xb9'\ +b'\x24\x6d\xb6\xdb\x03\x6d\xb6\xdb\x6d\xb6\xdb\x6d\x80\xdb\x6d\x80'\ +b'\x6e\x49\x24\x92\x49\x24\x91\xb9\x24\x6c\x06\xdb\x6c\x0d\xb6\xdb'\ +b'\x6d\x80\xdb\x6d\xb6\xdb\x60\x00\x6e\x49\x24\x92\x49\x24\x91\xb9'\ +b'\x24\x6c\x06\xdb\x6c\x0d\xb6\xdb\x6d\x80\xdb\x6d\xb6\xdb\x60\x00'\ +b'\x6e\x49\x24\x26\x49\x24\x91\xb9\x24\x91\xb0\x00\x6d\xb0\x36\xdb'\ +b'\x6d\xb6\xd8\x0d\xb6\xdb\x60\x00\x6e\x49\x24\x26\x49\x24\x91\xb9'\ +b'\x24\x91\xb0\x00\x6d\xb0\x36\xdb\x6d\xb6\xd8\x0d\xb6\xdb\x60\x00'\ +b'\x6e\x49\x24\x92\x49\x24\x91\xb9\x24\x92\x46\xdb\x6d\xb6\xc0\xdb'\ +b'\x6d\xb6\xdb\x6d\xb6\xd8\x00\x00\x6e\x49\x24\x92\x49\x24\x91\xb9'\ +b'\x24\x92\x46\xdb\x6d\xb6\xc0\xdb\x6d\xb6\xdb\x6d\xb6\xd8\x00\x00'\ +b'\x6e\x49\x24\x26\x49\x24\x91\xb9\x24\x92\x49\x24\x92\x49\x24\x03'\ +b'\x6d\xb6\xdb\x6d\xb6\x00\x00\x00\x6e\x49\x24\x26\x49\x24\x91\xb9'\ +b'\x24\x92\x49\x24\x92\x49\x24\x03\x6d\xb6\xdb\x6d\xb6\x00\x00\x00'\ +b'\x6e\x49\x24\x92\x49\x24\x91\xb9\x24\x92\x49\x24\x92\x49\x24\x90'\ +b'\x0d\xb6\xdb\x6d\x80\x00\x00\x00\x6e\x49\x24\x92\x49\x24\x91\xb9'\ +b'\x24\x92\x49\x24\x92\x49\x24\x90\x0d\xb6\xdb\x6d\x80\x00\x00\x00'\ +b'\x01\xb9\x24\x92\x49\x24\x91\xb9\x24\x92\x49\x24\x92\x49\x24\x6d'\ +b'\xb0\x00\xdb\x60\x00\x00\x00\x00\x01\xb9\x24\x92\x49\x24\x91\xb9'\ +b'\x24\x92\x49\x24\x92\x49\x24\x6d\xb0\x00\xdb\x60\x00\x00\x00\x00'\ +b'\x00\x06\xe4\x92\x49\x24\x91\xb9\x24\x92\x49\x24\x92\x46\xdb\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\xe4\x92\x49\x24\x91\xb9'\ +b'\x24\x92\x49\x24\x92\x46\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x1b\x6e\x49\x24\x91\xb9\x24\x92\x49\x1b\x6d\xb0\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x6e\x49\x24\x91\xb9'\ +b'\x24\x92\x49\x1b\x6d\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x01\xb6\xe4\x91\xb9\x24\x6d\xb6\xc0\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\xb6\xe4\x91\xb9'\ +b'\x24\x6d\xb6\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x1b\x6d\xb6\xdb\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x6d\xb6'\ +b'\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +BITMAP = memoryview(_bitmap) diff --git a/examples/ttgo_tdisplay_rp2040/toasters/t4.py b/examples/ttgo_tdisplay_rp2040/toasters/t4.py new file mode 100644 index 0000000..7de9c6d --- /dev/null +++ b/examples/ttgo_tdisplay_rp2040/toasters/t4.py @@ -0,0 +1,104 @@ +HEIGHT = 64 +WIDTH = 64 +COLORS = 8 +BITS = 12288 +BPP = 3 +PALETTE = [0x0000,0xffff,0xb6b5,0x00b0,0x6d6b,0x4082,0x494a,0x2000] +_bitmap =\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x02\x49\x00\x00\x00\x49\x24\x92\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02'\ +b'\x49\x00\x00\x00\x49\x24\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x24\x92\x49\x01\x24\x92\x49\x24\x92\x49'\ +b'\x24\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x92'\ +b'\x49\x01\x24\x92\x49\x24\x92\x49\x24\x80\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x09\x24\x04\x92\x49\x20\x00\x01\xb6\xdb\x6d'\ +b'\x24\x92\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x09\x24\x04'\ +b'\x92\x49\x20\x00\x01\xb6\xdb\x6d\x24\x92\x48\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x02\x49\x49\x24\x80\x00\x06\xdb\x6d\x24\x92\x49'\ +b'\x24\x92\x49\x24\x80\x00\x00\x00\x00\x00\x00\x00\x02\x49\x49\x24'\ +b'\x80\x00\x06\xdb\x6d\x24\x92\x49\x24\x92\x49\x24\x80\x00\x00\x00'\ +b'\x00\x00\x00\x00\x94\x92\x48\x00\x00\x6d\xb4\x92\x49\x20\x00\x01'\ +b'\xb6\xdb\x6d\x24\xa4\x00\x00\x00\x00\x00\x00\x00\x94\x92\x48\x00'\ +b'\x00\x6d\xb4\x92\x49\x20\x00\x01\xb6\xdb\x6d\x24\xa4\x00\x00\x00'\ +b'\x00\x00\x00\x49\x24\x80\x00\x06\xdb\x49\x24\x80\x00\x06\xdb\x6d'\ +b'\x24\x92\x49\x24\xa4\x90\x00\x00\x00\x00\x00\x49\x24\x80\x00\x06'\ +b'\xdb\x49\x24\x80\x00\x06\xdb\x6d\x24\x92\x49\x24\xa4\x90\x00\x00'\ +b'\x00\x00\x12\x48\x00\x00\x6d\xb4\x92\x48\x00\x00\x6d\xb4\x92\x49'\ +b'\x29\x00\x00\x00\x24\x90\x00\x00\x00\x00\x12\x48\x00\x00\x6d\xb4'\ +b'\x92\x48\x00\x00\x6d\xb4\x92\x49\x29\x00\x00\x00\x24\x90\x00\x00'\ +b'\x00\x04\x92\x00\x00\x1b\x49\x24\x80\x00\x06\xdb\x49\x24\xa4\x90'\ +b'\x00\x24\x92\x49\x00\x90\x00\x00\x00\x04\x92\x00\x00\x1b\x49\x24'\ +b'\x80\x00\x06\xdb\x49\x24\xa4\x90\x00\x24\x92\x49\x00\x90\x00\x00'\ +b'\x01\x24\x80\x00\x06\xd2\x48\x00\x00\x6d\xb4\x92\x4a\x49\x24\x92'\ +b'\x49\x24\x92\x49\x24\x90\x00\x00\x01\x24\x80\x00\x06\xd2\x48\x00'\ +b'\x00\x6d\xb4\x92\x4a\x49\x24\x92\x49\x24\x92\x49\x24\x90\x00\x00'\ +b'\x01\x24\x92\x49\xb4\x92\x00\x00\x1b\x49\x24\xa4\x92\x49\x24\x90'\ +b'\x00\x00\x00\x00\x00\x90\x00\x00\x01\x24\x92\x49\xb4\x92\x00\x00'\ +b'\x1b\x49\x24\xa4\x92\x49\x24\x90\x00\x00\x00\x00\x00\x90\x00\x00'\ +b'\x92\xdb\x52\x49\x24\x80\x00\x06\xd2\x4b\x69\x24\x92\x49\x00\x00'\ +b'\x92\x49\x24\x92\x49\x00\x00\x00\x92\xdb\x52\x49\x24\x80\x00\x06'\ +b'\xd2\x4b\x69\x24\x92\x49\x00\x00\x92\x49\x24\x92\x49\x00\x00\x00'\ +b'\x92\xdb\x6d\xb5\x24\x92\x49\xb4\x92\xda\x49\x24\x92\x40\x09\x24'\ +b'\x92\x49\x00\x92\x49\x24\x92\x49\x92\xdb\x6d\xb5\x24\x92\x49\xb4'\ +b'\x92\xda\x49\x24\x92\x40\x09\x24\x92\x49\x00\x92\x49\x24\x92\x49'\ +b'\x92\xd4\x92\xb6\xdb\x52\x49\x24\xb6\x92\x49\x24\x90\x02\x49\x24'\ +b'\x92\x49\x24\x90\x09\x00\x90\x00\x92\xd4\x92\xb6\xdb\x52\x49\x24'\ +b'\xb6\x92\x49\x24\x90\x02\x49\x24\x92\x49\x24\x90\x09\x00\x90\x00'\ +b'\x92\xd4\xb6\x49\x2b\x6d\xb6\x49\x36\x92\x49\x24\x00\x92\x49\x24'\ +b'\x92\x40\x24\x92\x49\x24\x92\x49\x92\xd4\xb6\x49\x2b\x6d\xb6\x49'\ +b'\x36\x92\x49\x24\x00\x92\x49\x24\x92\x40\x24\x92\x49\x24\x92\x49'\ +b'\x92\xd4\xb6\xdb\x64\x92\xb6\x4b\x64\x92\x49\x24\x00\x92\x49\x24'\ +b'\x92\x49\x24\x02\x40\x00\x92\x40\x92\xd4\xb6\xdb\x64\x92\xb6\x4b'\ +b'\x64\x92\x49\x24\x00\x92\x49\x24\x92\x49\x24\x02\x40\x00\x92\x40'\ +b'\x92\xdb\x6d\xb7\x64\x92\xb6\x4b\x64\x92\x49\x00\x24\x92\x49\x24'\ +b'\x90\x09\x24\x92\x49\x24\x00\x00\x92\xdb\x6d\xb7\x64\x92\xb6\x4b'\ +b'\x64\x92\x49\x00\x24\x92\x49\x24\x90\x09\x24\x92\x49\x24\x00\x00'\ +b'\x92\xdb\x6d\x4a\xd4\x92\xb6\x4b\x64\x92\x49\x00\x24\x90\x09\x00'\ +b'\x92\x49\x00\x90\x2d\xb4\x00\x00\x92\xdb\x6d\x4a\xd4\x92\xb6\x4b'\ +b'\x64\x92\x49\x00\x24\x90\x09\x00\x92\x49\x00\x90\x2d\xb4\x00\x00'\ +b'\x92\xdb\x6d\xb6\xdb\x6d\xb6\x4b\x6d\x90\x09\x00\x24\x92\x49\x00'\ +b'\x00\x00\x00\x00\x2d\x90\x00\x00\x92\xdb\x6d\xb6\xdb\x6d\xb6\x4b'\ +b'\x6d\x90\x09\x00\x24\x92\x49\x00\x00\x00\x00\x00\x2d\x90\x00\x00'\ +b'\x92\xdb\x6d\x4a\xdb\x6d\xb6\x4b\x6d\x92\x49\x24\x00\x92\x40\x92'\ +b'\x49\x24\x92\xdb\x6d\xb4\x00\x00\x92\xdb\x6d\x4a\xdb\x6d\xb6\x4b'\ +b'\x6d\x92\x49\x24\x00\x92\x40\x92\x49\x24\x92\xdb\x6d\xb4\x00\x00'\ +b'\x92\xdb\x6d\xb6\xdb\x6d\xb6\x4b\x6d\x90\x09\x24\x90\x00\x24\x92'\ +b'\x49\x24\xb6\xdb\x6d\x90\x00\x00\x92\xdb\x6d\xb6\xdb\x6d\xb6\x4b'\ +b'\x6d\x90\x09\x24\x90\x00\x24\x92\x49\x24\xb6\xdb\x6d\x90\x00\x00'\ +b'\x92\xdb\x6d\x4a\xdb\x6d\xb6\x4b\x6d\xb6\x40\x00\x92\x49\x24\x92'\ +b'\x4b\x6d\xb6\xdb\x64\x00\x00\x00\x92\xdb\x6d\x4a\xdb\x6d\xb6\x4b'\ +b'\x6d\xb6\x40\x00\x92\x49\x24\x92\x4b\x6d\xb6\xdb\x64\x00\x00\x00'\ +b'\x92\xdb\x6d\xb6\xdb\x6d\xb6\x4b\x6d\xb6\xd9\x24\x92\x49\x24\xb6'\ +b'\xdb\x6d\xb6\xd9\x00\x00\x00\x00\x92\xdb\x6d\xb6\xdb\x6d\xb6\x4b'\ +b'\x6d\xb6\xd9\x24\x92\x49\x24\xb6\xdb\x6d\xb6\xd9\x00\x00\x00\x00'\ +b'\x92\xdb\x6d\x4a\xdb\x6d\xb6\x4b\x6d\xb6\xdb\x6d\xb6\xdb\x6d\xb6'\ +b'\xdb\x6d\x92\x40\x00\x00\x00\x00\x92\xdb\x6d\x4a\xdb\x6d\xb6\x4b'\ +b'\x6d\xb6\xdb\x6d\xb6\xdb\x6d\xb6\xdb\x6d\x92\x40\x00\x00\x00\x00'\ +b'\x92\xdb\x6d\xb6\xdb\x6d\xb6\x4b\x6d\xb6\xdb\x6d\xb6\xdb\x6d\xb6'\ +b'\xd9\x24\x00\x00\x00\x00\x00\x00\x92\xdb\x6d\xb6\xdb\x6d\xb6\x4b'\ +b'\x6d\xb6\xdb\x6d\xb6\xdb\x6d\xb6\xd9\x24\x00\x00\x00\x00\x00\x00'\ +b'\x02\x4b\x6d\xb6\xdb\x6d\xb6\x4b\x6d\xb6\xdb\x6d\xb6\xdb\x6d\x92'\ +b'\x40\x00\x00\x00\x00\x00\x00\x00\x02\x4b\x6d\xb6\xdb\x6d\xb6\x4b'\ +b'\x6d\xb6\xdb\x6d\xb6\xdb\x6d\x92\x40\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x09\x2d\xb6\xdb\x6d\xb6\x4b\x6d\xb6\xdb\x6d\xb6\xd9\x24\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x09\x2d\xb6\xdb\x6d\xb6\x4b'\ +b'\x6d\xb6\xdb\x6d\xb6\xd9\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x24\x92\xdb\x6d\xb6\x4b\x6d\xb6\xdb\x64\x92\x40\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x92\xdb\x6d\xb6\x4b'\ +b'\x6d\xb6\xdb\x64\x92\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x02\x49\x2d\xb6\x4b\x6d\x92\x49\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x49\x2d\xb6\x4b'\ +b'\x6d\x92\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x24\x92\x49\x24\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x92\x49'\ +b'\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +BITMAP = memoryview(_bitmap) diff --git a/examples/ttgo_tdisplay_rp2040/toasters/t5.py b/examples/ttgo_tdisplay_rp2040/toasters/t5.py new file mode 100644 index 0000000..e0aa244 --- /dev/null +++ b/examples/ttgo_tdisplay_rp2040/toasters/t5.py @@ -0,0 +1,104 @@ +HEIGHT = 64 +WIDTH = 64 +COLORS = 8 +BITS = 12288 +BPP = 3 +PALETTE = [0x0000,0x4049,0x609b,0x4082,0xe0ff,0xffff,0x2000,0x2000] +_bitmap =\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x49\x24\x92\x40\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x02\x49\x24\x92\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x94\x92\x49\x24\x89\x24'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x24\x94\x92\x49\x24\x89\x24\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x02\x49\x49\x24\x92\x49\x24\x9b\x48'\ +b'\x92\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02'\ +b'\x49\x49\x24\x92\x49\x24\x9b\x48\x92\x40\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x24\x94\x92\x49\x24\x9b\x49\x24\x92\x49'\ +b'\x24\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x94'\ +b'\x92\x49\x24\x9b\x49\x24\x92\x49\x24\x89\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x02\x49\x49\x24\x92\x6d\x24\x92\x49\x24\x92\x6d'\ +b'\x24\x92\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x49\x49\x24'\ +b'\x92\x6d\x24\x92\x49\x24\x92\x6d\x24\x92\x24\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x24\x94\x92\x49\x24\x9b\x49\x24\x92\x49\x26\xd2\x49'\ +b'\x24\x92\x48\x92\x40\x00\x00\x00\x00\x00\x00\x24\x94\x92\x49\x24'\ +b'\x9b\x49\x24\x92\x49\x26\xd2\x49\x24\x92\x48\x92\x40\x00\x00\x00'\ +b'\x00\x02\x49\x49\x24\x92\x49\x26\xdb\x49\x24\x9b\x4a\x44\x9b\x91'\ +b'\x24\x92\x49\x24\x89\x00\x00\x00\x00\x02\x49\x49\x24\x92\x49\x26'\ +b'\xdb\x49\x24\x9b\x4a\x44\x9b\x91\x24\x92\x49\x24\x89\x00\x00\x00'\ +b'\x00\x94\x92\x49\x24\x92\x49\x29\x12\x91\x29\x1b\x49\x24\x92\x6d'\ +b'\x24\x92\x49\x24\x92\x24\x00\x00\x00\x94\x92\x49\x24\x92\x49\x29'\ +b'\x12\x91\x29\x1b\x49\x24\x92\x6d\x24\x92\x49\x24\x92\x24\x00\x00'\ +b'\x6c\x94\x9b\x49\x26\xd2\x49\x24\x92\x49\xb4\xa4\x49\xb4\x92\x49'\ +b'\xb4\x92\x49\x24\x92\x48\x90\x00\x6c\x94\x9b\x49\x26\xd2\x49\x24'\ +b'\x92\x49\xb4\xa4\x49\xb4\x92\x49\xb4\x92\x49\x24\x92\x48\x90\x00'\ +b'\x6d\xb2\x52\x49\x24\x92\x49\xb4\x92\x49\x24\x9b\x49\xb4\x92\x49'\ +b'\xb4\x92\x49\x24\x92\x49\x22\x40\x6d\xb2\x52\x49\x24\x92\x49\xb4'\ +b'\x92\x49\x24\x9b\x49\xb4\x92\x49\xb4\x92\x49\x24\x92\x49\x22\x40'\ +b'\x6d\xb6\xc9\x25\x24\x92\x6d\x26\xd2\x49\x24\x9b\x6d\x24\x92\x49'\ +b'\xb6\xd2\x49\x24\x92\x49\x22\x49\x6d\xb6\xc9\x25\x24\x92\x6d\x26'\ +b'\xd2\x49\x24\x9b\x6d\x24\x92\x49\xb6\xd2\x49\x24\x92\x49\x22\x49'\ +b'\x6d\xb6\xdb\x6c\x96\xd2\x49\x24\x92\x49\x29\x12\x6d\xb4\xa4\x49'\ +b'\x24\x92\x49\xb4\x92\x24\x96\xdb\x6d\xb6\xdb\x6c\x96\xd2\x49\x24'\ +b'\x92\x49\x29\x12\x6d\xb4\xa4\x49\x24\x92\x49\xb4\x92\x24\x96\xdb'\ +b'\x01\xb6\xdb\x6d\xb6\xc9\x25\x24\x92\x49\x24\x92\x49\xb4\x92\x49'\ +b'\x24\x92\x49\x24\x89\x6d\xb6\xdb\x01\xb6\xdb\x6d\xb6\xc9\x25\x24'\ +b'\x92\x49\x24\x92\x49\xb4\x92\x49\x24\x92\x49\x24\x89\x6d\xb6\xdb'\ +b'\x00\x06\xdb\x6d\xb6\xdb\x6c\x92\x52\x49\x24\x92\x49\x24\x92\x49'\ +b'\x24\x92\x24\x92\x5b\x6d\xb6\xdb\x00\x06\xdb\x6d\xb6\xdb\x6c\x92'\ +b'\x52\x49\x24\x92\x49\x24\x92\x49\x24\x92\x24\x92\x5b\x6d\xb6\xdb'\ +b'\x00\x00\x1b\x6d\xb6\xdb\x6d\xb6\xc9\x25\x26\xd2\x49\x24\x92\x49'\ +b'\xb2\x49\x6d\xb6\xdb\x6d\xb6\xdb\x00\x00\x1b\x6d\xb6\xdb\x6d\xb6'\ +b'\xc9\x25\x26\xd2\x49\x24\x92\x49\xb2\x49\x6d\xb6\xdb\x6d\xb6\xdb'\ +b'\x00\x00\x00\x01\xb6\xdb\x6d\xb6\xdb\x6c\x94\x92\x49\x24\x89\x24'\ +b'\x96\xdb\x6d\xb6\xdb\x6d\xb0\x00\x00\x00\x00\x01\xb6\xdb\x6d\xb6'\ +b'\xdb\x6c\x94\x92\x49\x24\x89\x24\x96\xdb\x6d\xb6\xdb\x6d\xb0\x00'\ +b'\x00\x00\x00\x00\x00\x1b\x6d\xb6\xdb\x6d\xb2\x49\x24\x92\x5b\x6d'\ +b'\xb6\xdb\x6d\xb6\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x6d\xb6'\ +b'\xdb\x6d\xb2\x49\x24\x92\x5b\x6d\xb6\xdb\x6d\xb6\xdb\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x01\xb6\xdb\x6d\xb6\xdb\x6d\xb6\xdb\x6d'\ +b'\xb6\xdb\x6d\xb6\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\xb6'\ +b'\xdb\x6d\xb6\xdb\x6d\xb6\xdb\x6d\xb6\xdb\x6d\xb6\xc0\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x6d\xb6\xdb\x6d\xb6\xdb\x6d'\ +b'\xb6\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x1b\x6d\xb6\xdb\x6d\xb6\xdb\x6d\xb6\xdb\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\xb6\xdb\x6d\xb6\xdb\x6d'\ +b'\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x6d\xb6\xdb\x6d\xb6\xdb\x6d\xb0\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\xdb\x6d\xb6\xc0\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x06\xdb\x6d\xb6\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'\ +b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +BITMAP = memoryview(_bitmap) diff --git a/examples/ttgo_tdisplay_rp2040/toasters/toasters.py b/examples/ttgo_tdisplay_rp2040/toasters/toasters.py new file mode 100644 index 0000000..fad5394 --- /dev/null +++ b/examples/ttgo_tdisplay_rp2040/toasters/toasters.py @@ -0,0 +1,96 @@ +""" +toasters.py + + An example using bitmap to draw sprites on the display. + + Spritesheet from CircuitPython_Flying_Toasters + https://learn.adafruit.com/circuitpython-sprite-animation-pendant-mario-clouds-flying-toasters + +""" + +import random +from machine import Pin, SoftSPI +import st7789py as st7789 +import t1, t2, t3, t4, t5 + +TOASTERS = [t1, t2, t3, t4] +TOAST = [t5] + + +class toast(): + ''' + toast class to keep track of a sprites locaton and step + ''' + def __init__(self, sprites, x, y): + self.sprites = sprites + self.steps = len(sprites) + self.x = x + self.y = y + self.step = random.randint(0, self.steps-1) + self.speed = random.randint(2, 5) + + def move(self): + if self.x <= 0: + self.speed = random.randint(2, 5) + self.x = 135 - 64 + + self.step += 1 + self.step %= self.steps + self.x -= self.speed + + +def main(): + """ + Initialize the display and draw flying toasters and toast + """ + spi = SoftSPI( + baudrate=20000000, + polarity=1, + phase=0, + sck=Pin(18), + mosi=Pin(19), + miso=Pin(13)) + + tft = st7789.ST7789( + spi, + 135, + 240, + reset=Pin(23, Pin.OUT), + cs=Pin(5, Pin.OUT), + dc=Pin(16, Pin.OUT), + backlight=Pin(4, Pin.OUT), + rotation=0) + + tft.fill(st7789.BLACK) + # create toast spites in random positions + sprites = [ + toast(TOASTERS, 135-64, 0), + toast(TOAST, 135-64*2, 80), + toast(TOASTERS, 135-64*4, 160) + ] + + # move and draw sprites + while True: + for man in sprites: + bitmap = man.sprites[man.step] + tft.fill_rect( + man.x+bitmap.WIDTH-man.speed, + man.y, + man.speed, + bitmap.HEIGHT, + st7789.BLACK) + + man.move() + + if man.x > 0: + tft.bitmap(bitmap, man.x, man.y) + else: + tft.fill_rect( + 0, + man.y, + bitmap.WIDTH, + bitmap.HEIGHT, + st7789.BLACK) + + +main() diff --git a/examples/ttgo_tdisplay_rp2040/truetype/chango.py b/examples/ttgo_tdisplay_rp2040/truetype/chango.py new file mode 100644 index 0000000..f87c222 --- /dev/null +++ b/examples/ttgo_tdisplay_rp2040/truetype/chango.py @@ -0,0 +1,51 @@ +""" +chango.py + + Test for font2bitmap converter for the driver. + See the font2bitmap program in the utils directory. +""" + +from machine import Pin, SoftSPI +import st7789py as st7789 +import gc +from truetype import chango_16 as font_16 +from truetype import chango_32 as font_32 +from truetype import chango_64 as font_64 + +gc.collect() + + +def main(): + # enable display and clear screen + spi = SoftSPI( + baudrate=20000000, + polarity=1, + phase=0, + sck=Pin(18), + mosi=Pin(19), + miso=Pin(13)) + + tft = st7789.ST7789( + spi, + 135, + 240, + reset=Pin(23, Pin.OUT), + cs=Pin(5, Pin.OUT), + dc=Pin(16, Pin.OUT), + backlight=Pin(4, Pin.OUT), + rotation=1) + + tft.fill(st7789.BLACK) + + row = 0 + tft.write(font_16, "abcdefghijklmnopqrst", 0, row, st7789.RED) + row += font_16.HEIGHT + + tft.write(font_32, "abcdefghij", 0, row, st7789.GREEN) + row += font_32.HEIGHT + + tft.write(font_64, "abcd", 0, row, st7789.BLUE) + row += font_64.HEIGHT + + +main() diff --git a/examples/ttgo_tdisplay_rp2040/truetype/noto_fonts.py b/examples/ttgo_tdisplay_rp2040/truetype/noto_fonts.py new file mode 100644 index 0000000..602a4a0 --- /dev/null +++ b/examples/ttgo_tdisplay_rp2040/truetype/noto_fonts.py @@ -0,0 +1,69 @@ +""" +noto_fonts Writes the names of three Noto fonts centered on the display + using the font. The fonts were converted from True Type fonts using + the font2bitmap utility. +""" + +from machine import SoftSPI, Pin +import st7789py as st7789 + +from truetype import NotoSans_32 as noto_sans +from truetype import NotoSerif_32 as noto_serif +from truetype import NotoSansMono_32 as noto_mono + + +def main(): + + def center(font, string, row, color=st7789.WHITE): + screen = tft.width # get screen width + width = tft.write_width(font, string) # get the width of the string + if width and width < screen: # if the string < display + col = tft.width // 2 - width // 2 # find the column to center + else: # otherwise + col = 0 # left justify + + tft.write(font, string, col, row, color) # and write the string + + try: + spi = SoftSPI( + baudrate=20000000, + polarity=1, + phase=0, + sck=Pin(18), + mosi=Pin(19), + miso=Pin(13)) + + tft = st7789.ST7789( + spi, + 135, + 240, + reset=Pin(23, Pin.OUT), + cs=Pin(5, Pin.OUT), + dc=Pin(16, Pin.OUT), + backlight=Pin(4, Pin.OUT), + rotation=1) + + # enable display and clear screen + tft.fill(st7789.BLACK) + + row = 16 + + # center the name of the first font, using the font + center(noto_sans, "NotoSans", row, st7789.RED) + row += noto_sans.HEIGHT + + # center the name of the second font, using the font + center(noto_serif, "NotoSerif", row, st7789.GREEN) + row += noto_serif.HEIGHT + + # center the name of the third font, using the font + center(noto_mono, "NotoSansMono", row, st7789.BLUE) + row += noto_mono.HEIGHT + + finally: + # shutdown spi + if 'spi' in locals(): + spi.deinit() + + +main()