ssd1327_gamma.py
1 import time 2 import board 3 import busio 4 import displayio 5 import adafruit_ssd1327 6 7 displayio.release_displays() 8 9 # This pinout works on a Metro and may need to be altered for other boards. 10 spi = busio.SPI(board.SCL, board.SDA) 11 tft_cs = board.D6 12 tft_dc = board.D9 13 tft_reset = board.D5 14 15 display_bus = displayio.FourWire( 16 spi, command=tft_dc, chip_select=tft_cs, reset=tft_reset, baudrate=1000000 17 ) 18 time.sleep(1) 19 display = adafruit_ssd1327.SSD1327(display_bus, width=128, height=128) 20 21 g = displayio.Group() 22 dimension = min(display.width, display.height) 23 color_count = 16 24 gamma_pattern = displayio.Bitmap(dimension, dimension, color_count) 25 gamma_palette = displayio.Palette(color_count) 26 t = displayio.TileGrid(gamma_pattern, pixel_shader=gamma_palette) 27 28 pixels_per_step = dimension // color_count 29 30 for i in range(dimension): 31 if i % pixels_per_step == 0: 32 continue 33 gamma_pattern[i, i] = i // pixels_per_step 34 35 for i in range(color_count): 36 component = i * 255 // (color_count - 1) 37 print(component) 38 gamma_palette[i] = component << 16 | component << 8 | component 39 40 g.append(t) 41 42 display.show(g) 43 44 time.sleep(10)