Simple test¶
Ensure your device works with this simple test.
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