Simple test

Ensure your device works with this simple test.

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