Simple test

Ensure your device works with this simple test.

examples/ssd1327_simpletest.py
 1# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries
 2# SPDX-License-Identifier: MIT
 3
 4import board
 5import displayio
 6import terminalio
 7from adafruit_display_text import label
 8from fourwire import FourWire
 9from i2cdisplaybus import I2CDisplayBus
10
11import adafruit_ssd1327
12
13displayio.release_displays()
14
15# Use for I2C
16i2c = board.I2C()  # uses board.SCL and board.SDA
17# i2c = board.STEMMA_I2C()  # For using the built-in STEMMA QT connector on a microcontroller
18display_bus = I2CDisplayBus(i2c, device_address=0x3D)
19
20# Use for SPI
21# spi = board.SPI()
22# oled_cs = board.D5
23# oled_dc = board.D6
24# display_bus = FourWire(
25#    spi, command=oled_dc, chip_select=oled_cs, baudrate=1000000, reset=board.D9
26# )
27
28WIDTH = 128
29HEIGHT = 128
30BORDER = 8
31FONTSCALE = 1
32
33display = adafruit_ssd1327.SSD1327(display_bus, width=WIDTH, height=HEIGHT)
34
35# Make the display context
36splash = displayio.Group()
37display.root_group = splash
38
39# Draw a background rectangle, but not the full display size
40color_bitmap = displayio.Bitmap(display.width - BORDER * 2, display.height - BORDER * 2, 1)
41color_palette = displayio.Palette(1)
42color_palette[0] = 0xFFFFFF  # White
43bg_sprite = displayio.TileGrid(color_bitmap, pixel_shader=color_palette, x=BORDER, y=BORDER)
44splash.append(bg_sprite)
45
46# Draw a smaller inner rectangle
47inner_bitmap = displayio.Bitmap(display.width - BORDER * 4, display.height - BORDER * 4, 1)
48inner_palette = displayio.Palette(1)
49inner_palette[0] = 0x888888  # Gray
50inner_sprite = displayio.TileGrid(
51    inner_bitmap, pixel_shader=inner_palette, x=BORDER * 2, y=BORDER * 2
52)
53splash.append(inner_sprite)
54
55# Draw a label
56text = "Hello World!"
57text_area = label.Label(terminalio.FONT, text=text, color=0xFFFFFF)
58text_width = text_area.bounding_box[2] * FONTSCALE
59text_group = displayio.Group(
60    scale=FONTSCALE,
61    x=display.width // 2 - text_width // 2,
62    y=display.height // 2,
63)
64text_group.append(text_area)  # Subgroup for text scaling
65splash.append(text_group)
66
67while True:
68    pass

Gamma test

Ensure your device works with this simple test.

examples/ssd1327_gamma.py
 1# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries
 2# SPDX-License-Identifier: MIT
 3
 4import time
 5
 6import board
 7import displayio
 8from fourwire import FourWire
 9from i2cdisplaybus import I2CDisplayBus
10
11import adafruit_ssd1327
12
13displayio.release_displays()
14
15# Use for I2C
16i2c = board.I2C()  # uses board.SCL and board.SDA
17# i2c = board.STEMMA_I2C()  # For using the built-in STEMMA QT connector on a microcontroller
18display_bus = I2CDisplayBus(i2c, device_address=0x3D)
19
20# Use for SPI
21# spi = board.SPI()
22# oled_cs = board.D5
23# oled_dc = board.D6
24# display_bus = FourWire(
25#    spi, command=oled_dc, chip_select=oled_cs, baudrate=1000000, reset=board.D9
26# )
27
28
29time.sleep(1)
30display = adafruit_ssd1327.SSD1327(display_bus, width=128, height=128)
31
32g = displayio.Group()
33dimension = min(display.width, display.height)
34color_count = 16
35gamma_pattern = displayio.Bitmap(dimension, dimension, color_count)
36gamma_palette = displayio.Palette(color_count)
37t = displayio.TileGrid(gamma_pattern, pixel_shader=gamma_palette)
38
39pixels_per_step = dimension // color_count
40
41for i in range(dimension):
42    if i % pixels_per_step == 0:
43        continue
44    gamma_pattern[i, i] = i // pixels_per_step
45
46for i in range(color_count):
47    component = i * 255 // (color_count - 1)
48    print(component)
49    gamma_palette[i] = component << 16 | component << 8 | component
50
51g.append(t)
52
53display.root_group = g
54
55time.sleep(10)