Skip to content

Add an extended version of st7789_280x240_simpletest.py #42

@CrackXT

Description

@CrackXT

Hello Adafruit team,

I have extended the test code of st7789_280x240_simpletest.py.

Now the backlight setting and the offset correction of the ST7789 display driver at a resolution of 280x240 (1.69", Product ID: 5206) is included.

# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries
# SPDX-License-Identifier: MIT

"""
This test will initialize the display using displayio, set display brighness and draw a solid green
background, a smaller purple rectangle, and some yellow text.
"""

import board
import displayio
import terminalio
from adafruit_display_text import label
from fourwire import FourWire

from adafruit_st7789 import ST7789

# Release any resources currently in use for the displays
displayio.release_displays()

spi = board.SPI()
tft_cs = board.D20
tft_dc = board.D21
backlight = board.D6

display_bus = FourWire(spi, command=tft_dc, chip_select=tft_cs, reset=board.D5)

#display = ST7789(display_bus, width=240, height=280, colstart=0, rowstart=20, rotation=0, backlight_pin=backlight)			# default setting for 1.69" with 0° rotation
display = ST7789(display_bus, width=280, height=240, colstart=0, rowstart=20, rotation=90, backlight_pin=backlight)			# default setting for 1.69" with 90° rotation
#display = ST7789(display_bus, width=240, height=280, colstart=0, rowstart=20, rotation=180, backlight_pin=backlight)		# default setting for 1.69" with 180° rotation
#display = ST7789(display_bus, width=280, height=240, colstart=0, rowstart=20, rotation=270, backlight_pin=backlight)		# default setting for 1.69" with 270° rotation

# set the backlight
# minimum value 0.001 (0.000 would be off), maximum value 1.000
display.brightness = 0.5

# Make the display context
splash = displayio.Group()
display.root_group = splash

#color_bitmap = displayio.Bitmap(240, 280, 1)			# default setting for 1.69" with 0° and 180° rotation
color_bitmap = displayio.Bitmap(280, 240, 1)			# default setting for 1.69" with 90° and 270° rotation
color_palette = displayio.Palette(1)
color_palette[0] = 0x00FF00  # Bright Green

bg_sprite = displayio.TileGrid(color_bitmap, pixel_shader=color_palette, x=0, y=0)
splash.append(bg_sprite)

# Draw a smaller inner rectangle
#inner_bitmap = displayio.Bitmap(200, 240, 1)			# default setting for 1.69" with 0° and 180° rotation
inner_bitmap = displayio.Bitmap(240, 200, 1)			# default setting for 1.69" with 90° and 270° rotation
inner_palette = displayio.Palette(1)
inner_palette[0] = 0xAA0088  # Purple
inner_sprite = displayio.TileGrid(inner_bitmap, pixel_shader=inner_palette, x=20, y=20)
splash.append(inner_sprite)

# Draw a label
#text_group = displayio.Group(scale=2, x=50, y=140)		# default setting for 1.69" with 0° and 180° rotation
text_group = displayio.Group(scale=3, x=37, y=120)		# default setting for 1.69" with 90° and 270° rotation
text = "Hello World!"
text_area = label.Label(terminalio.FONT, text=text, color=0xFFFF00)
text_group.append(text_area)  # Subgroup for text scaling
splash.append(text_group)

while True:
    pass

The code was tested with a Waveshare display (SKU: 27057) and an Unexpected Maker FeatherS2.

PXL_20250426_214142896
PXL_20250426_214215669
PXL_20250426_214125253
PXL_20250426_214229871
PXL_20250426_214303211

Thank you for your work and that of the community!

With kind regards
CrackXT

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions