Simple test

Ensure your device works with this simple test.

examples/displayio_st7565_simpletest.py
 1# SPDX-FileCopyrightText: 2017 Scott Shawcroft, written for Adafruit Industries
 2# SPDX-FileCopyrightText: Copyright (c) 2024 Mateusz Nowak
 3#
 4# SPDX-License-Identifier: Unlicense
 5
 6"""
 7This test will initialize the display and show boxed "Hello world" message.
 8The pin configuration is known to work with the Raspberry Pi Pico and SPI display.
 9"""
10import board
11import busio
12import displayio
13import terminalio
14
15from adafruit_display_text import label
16import displayio_st7565
17
18# Compatibility with both CircuitPython 8.x.x and 9.x.x.
19# Remove after 8.x.x is no longer a supported release.
20try:
21    from fourwire import FourWire
22except ImportError:
23    from displayio import FourWire
24
25displayio.release_displays()
26
27spi = busio.SPI(board.GP18, board.GP19)
28display_bus = FourWire(
29    spi, command=board.GP20, chip_select=board.GP17, reset=board.GP21, baudrate=1000000
30)
31
32WIDTH = 128
33HEIGHT = 64
34BORDER = 5
35display = displayio_st7565.ST7565(display_bus, width=WIDTH, height=HEIGHT)
36
37# Make the display context
38splash = displayio.Group()
39display.root_group = splash
40
41color_bitmap = displayio.Bitmap(WIDTH, HEIGHT, 1)
42color_palette = displayio.Palette(1)
43color_palette[0] = 0xFFFFFF  # White
44
45bg_sprite = displayio.TileGrid(color_bitmap, pixel_shader=color_palette, x=0, y=0)
46splash.append(bg_sprite)
47
48# Draw a smaller inner rectangle
49inner_bitmap = displayio.Bitmap(WIDTH - BORDER * 2, HEIGHT - BORDER * 2, 1)
50inner_palette = displayio.Palette(1)
51inner_palette[0] = 0x000000  # Black
52inner_sprite = displayio.TileGrid(
53    inner_bitmap, pixel_shader=inner_palette, x=BORDER, y=BORDER
54)
55splash.append(inner_sprite)
56
57# Draw a label
58text = "Hello World!"
59text_area = label.Label(
60    terminalio.FONT, text=text, color=0xFFFFFF, x=28, y=HEIGHT // 2 - 1
61)
62splash.append(text_area)
63
64while True:
65    pass