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)