import spidev
import time
import digitalio
import board
import adafruit_rgb_display.st7789 as st7789
from PIL import Image, ImageDraw, ImageFont

# Define SPI bus and pins
spi = spidev.SpiDev()
dc_pin = digitalio.DigitalInOut(board.D25)
cs_pin = digitalio.DigitalInOut(board.CE0)
reset_pin = digitalio.DigitalInOut(board.D24)

# Setup display
disp = st7789.ST7789(
    spi,
    height=240,
    width=320,
    cs=cs_pin,
    dc=dc_pin,
    rst=reset_pin,
    baudrate=64000000,
)

# Clear the display
disp.fill(0)

# Create an image to draw on
image = Image.new("RGB", (disp.width, disp.height), "black")
draw = ImageDraw.Draw(image)
font = ImageFont.load_default()

draw.text((50, 100), "LCD Test Successful!", font=font, fill="white")
disp.image(image)

time.sleep(5)
disp.fill(0)  # Clear the screen when done