Skip to content

Instantly share code, notes, and snippets.

@todbot
Last active July 31, 2022 21:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save todbot/0913d90ff283784665ef52f69af0a65b to your computer and use it in GitHub Desktop.
Save todbot/0913d90ff283784665ef52f69af0a65b to your computer and use it in GitHub Desktop.
Test how fast doing full screen refresh is on Feather RP2040 and HX8357 480x320 FeatherWing display over SPI
# displayio_hx8357_framerate_test.py
# 31 Jul 2022 - @todbot / Tod Kurt, from DJDevon3 full-screen spritesheet bitmap
import time
import board, digitalio, busio
import displayio, terminalio
import adafruit_hx8357
from adafruit_display_text import label
import adafruit_imageload
sprite_fname = "Clouds_22_Spritesheet256nc_crop-0.bmp" # only half screen, and scaled 50%
sprite_cnt = 23*1
sprite_w,sprite_h = 240,80
# sprite_fname = "Clouds_22_Spritesheet.bmp" # full screen 100%
# sprite_cnt = 23*1
# sprite_w,sprite_h = 480,320
#sprite_sheet,sprite_palette = adafruit_imageload.load(sprite_fname)
sprite_sheet = displayio.OnDiskBitmap(open(sprite_fname, "rb"))
sprite_palette = sprite_sheet.pixel_shader
sprite = displayio.TileGrid(sprite_sheet, pixel_shader=sprite_palette,
width = 1, height = 1, tile_width = sprite_w, tile_height = sprite_h)
displayio.release_displays()
spi = board.SPI()
tft_cs = board.D9
tft_dc = board.D10
display_bus = displayio.FourWire(spi, command=tft_dc, chip_select=tft_cs, baudrate=40_000_000)
display = adafruit_hx8357.HX8357(display_bus, width=480, height=320)
main = displayio.Group()
display.show(main)
spriteg = displayio.Group(scale=2)
spriteg.append(sprite)
main.append(spriteg)
text_area = label.Label( terminalio.FONT, text="hi world", color=0xFFFFFF, x=8, y=25 )
main.append(text_area)
i=0
last_time=time.monotonic()
while True:
print("hi", spi.frequency, time.monotonic() - last_time)
last_time = time.monotonic()
sprite[0] = i
i = (i+1) % sprite_cnt
display.refresh( target_frames_per_second = 30 )
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment