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
 8import adafruit_ssd1327
 9
10displayio.release_displays()
11
12# Use for I2C
13i2c = board.I2C()  # uses board.SCL and board.SDA
14# i2c = board.STEMMA_I2C()  # For using the built-in STEMMA QT connector on a microcontroller
15display_bus = displayio.I2CDisplay(i2c, device_address=0x3D)
16
17# Use for SPI
18# spi = board.SPI()
19# oled_cs = board.D5
20# oled_dc = board.D6
21# display_bus = displayio.FourWire(
22#    spi, command=oled_dc, chip_select=oled_cs, baudrate=1000000, reset=board.D9
23# )
24
25WIDTH = 128
26HEIGHT = 128
27BORDER = 8
28FONTSCALE = 1
29
30display = adafruit_ssd1327.SSD1327(display_bus, width=WIDTH, height=HEIGHT)
31
32# Make the display context
33splash = displayio.Group()
34display.root_group = splash
35
36# Draw a background rectangle, but not the full display size
37color_bitmap = displayio.Bitmap(
38    display.width - BORDER * 2, display.height - BORDER * 2, 1
39)
40color_palette = displayio.Palette(1)
41color_palette[0] = 0xFFFFFF  # White
42bg_sprite = displayio.TileGrid(
43    color_bitmap, pixel_shader=color_palette, x=BORDER, y=BORDER
44)
45splash.append(bg_sprite)
46
47# Draw a smaller inner rectangle
48inner_bitmap = displayio.Bitmap(
49    display.width - BORDER * 4, display.height - BORDER * 4, 1
50)
51inner_palette = displayio.Palette(1)
52inner_palette[0] = 0x888888  # Gray
53inner_sprite = displayio.TileGrid(
54    inner_bitmap, pixel_shader=inner_palette, x=BORDER * 2, y=BORDER * 2
55)
56splash.append(inner_sprite)
57
58# Draw a label
59text = "Hello World!"
60text_area = label.Label(terminalio.FONT, text=text, color=0xFFFFFF)
61text_width = text_area.bounding_box[2] * FONTSCALE
62text_group = displayio.Group(
63    scale=FONTSCALE,
64    x=display.width // 2 - text_width // 2,
65    y=display.height // 2,
66)
67text_group.append(text_area)  # Subgroup for text scaling
68splash.append(text_group)
69
70while True:
71    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
 5import board
 6import displayio
 7import adafruit_ssd1327
 8
 9displayio.release_displays()
10
11# Use for I2C
12i2c = board.I2C()  # uses board.SCL and board.SDA
13# i2c = board.STEMMA_I2C()  # For using the built-in STEMMA QT connector on a microcontroller
14display_bus = displayio.I2CDisplay(i2c, device_address=0x3D)
15
16# Use for SPI
17# spi = board.SPI()
18# oled_cs = board.D5
19# oled_dc = board.D6
20# display_bus = displayio.FourWire(
21#    spi, command=oled_dc, chip_select=oled_cs, baudrate=1000000, reset=board.D9
22# )
23
24
25time.sleep(1)
26display = adafruit_ssd1327.SSD1327(display_bus, width=128, height=128)
27
28g = displayio.Group()
29dimension = min(display.width, display.height)
30color_count = 16
31gamma_pattern = displayio.Bitmap(dimension, dimension, color_count)
32gamma_palette = displayio.Palette(color_count)
33t = displayio.TileGrid(gamma_pattern, pixel_shader=gamma_palette)
34
35pixels_per_step = dimension // color_count
36
37for i in range(dimension):
38    if i % pixels_per_step == 0:
39        continue
40    gamma_pattern[i, i] = i // pixels_per_step
41
42for i in range(color_count):
43    component = i * 255 // (color_count - 1)
44    print(component)
45    gamma_palette[i] = component << 16 | component << 8 | component
46
47g.append(t)
48
49display.root_group = g
50
51time.sleep(10)