Last active
October 15, 2021 02:24
-
-
Save mcauser/c84ac7a64ae43d6b8a54d65b3b090380 to your computer and use it in GitHub Desktop.
UM TinyS2+IPS CircuitPython eg
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# UM TinyS2 + RGB IPS Display Shield CircuitPython example | |
# https://unexpectedmaker.com/tinys2 | |
# https://www.tinypico.com/add-ons | |
# https://circuitpython.org/board/unexpectedmaker_tinys2/ | |
# https://github.com/adafruit/Adafruit_CircuitPython_ST7735 | |
# The IPS display has pins labelled for TinyPICO. | |
# These are the matching TinyS2 pins. | |
# Pin TinyPICO TinyS2 | |
# SCK IO5 IO37 | |
# MISO IO19 IO36 | |
# MOSI IO23 IO35 | |
# CS IO5 IO14 | |
# D/C IO15 IO6 | |
# BL IO14 IO5 | |
# ------------------------------ | |
# Example 1: Basic displayio | |
# You should see | |
# +--------------------------+ | |
# |Snake | | |
# | | | |
# | >>> print('Hello') | | |
# | Hello | | |
# | >>> | | |
# +--------------------------+ | |
import board | |
import busio | |
import displayio | |
from digitalio import DigitalInOut, Direction | |
from adafruit_st7735r import ST7735R | |
spi = busio.SPI(clock=board.SCK, MISO=board.MISO, MOSI=board.MOSI) | |
backlight = DigitalInOut(board.IO5) | |
backlight.direction = Direction.OUTPUT | |
backlight.value = True | |
displayio.release_displays() | |
display_bus = displayio.FourWire(spi, command=board.IO6, chip_select=board.IO14, reset=None) | |
# if you set the intial rotation to 0 or 180, set width=80 and height=160 | |
# if you set the intial rotation to 90 or 270, set width=160 and height=80 | |
display = ST7735R(display_bus, width=80, height=160, colstart=26, rowstart=1, rotation=0, bgr=False, invert=True) | |
# display = ST7735R(display_bus, width=160, height=80, colstart=26, rowstart=1, rotation=90, bgr=False, invert=True) | |
# display = ST7735R(display_bus, width=80, height=160, colstart=26, rowstart=1, rotation=180, bgr=False, invert=True) | |
# display = ST7735R(display_bus, width=160, height=80, colstart=26, rowstart=1, rotation=270, bgr=False, invert=True) | |
# after constructing ST7735R, you're free to change it without resetting width/height | |
# display.rotation = 0 | |
display.rotation = 90 | |
# display.rotation = 180 | |
# display.rotation = 270 | |
print('Hello') | |
# ------------------------------ | |
# Example 2: Coloured text | |
# You should see | |
# +--------------------------+ | |
# | Red Cyan | | |
# | Green Magenta | | |
# | Blue Yellow | | |
# | White Black | | |
# +--------------------------+ | |
# Note: if your Red+Blue are swapped, change `bgr=False` to `bgr=True` in the ST7735R constructor | |
import board | |
import busio | |
import displayio | |
import terminalio | |
from digitalio import DigitalInOut, Direction | |
from adafruit_st7735r import ST7735R | |
from adafruit_display_text import label | |
spi = busio.SPI(clock=board.SCK, MISO=board.MISO, MOSI=board.MOSI) | |
backlight = DigitalInOut(board.IO5) | |
backlight.direction = Direction.OUTPUT | |
backlight.value = True | |
displayio.release_displays() | |
display_bus = displayio.FourWire(spi, command=board.IO6, chip_select=board.IO14, reset=None) | |
display = ST7735R(display_bus, width=160, height=80, colstart=26, rowstart=1, rotation=90, bgr=False, invert=True) | |
# some colours | |
red = 0xFF0000 | |
green = 0x00FF00 | |
blue = 0x0000FF | |
white = 0xFFFFFF | |
cyan = 0x00FFFF | |
magenta = 0xFF00FF | |
yellow = 0xFFFF00 | |
black = 0x000000 | |
light_grey = 0x111111 | |
splash = displayio.Group(max_size=10) | |
display.show(splash) | |
# fill the screen with light grey | |
color_bitmap = displayio.Bitmap(160, 80, 1) | |
color_palette = displayio.Palette(1) | |
color_palette[0] = light_grey | |
bg_sprite = displayio.TileGrid(color_bitmap, pixel_shader=color_palette, x=0, y=0) | |
splash.append(bg_sprite) | |
# add some text to the left side | |
text_group_left = displayio.Group(max_size=10, scale=1, x=0, y=6) | |
text_area_red = label.Label(terminalio.FONT, text="RED", color=red) | |
text_area_green = label.Label(terminalio.FONT, text="\nGREEN", color=green) | |
text_area_blue = label.Label(terminalio.FONT, text="\n\nBLUE", color=blue) | |
text_area_white = label.Label(terminalio.FONT, text="\n\n\nWHITE", color=white) | |
text_group_left.append(text_area_red) | |
text_group_left.append(text_area_green) | |
text_group_left.append(text_area_blue) | |
text_group_left.append(text_area_white) | |
splash.append(text_group_left) | |
# add some text to the right side | |
text_group_right = displayio.Group(max_size=10, scale=1, x=80, y=6) | |
text_area_cyan = label.Label(terminalio.FONT, text="CYAN", color=cyan) | |
text_group_right.append(text_area_cyan) | |
text_area_magenta = label.Label(terminalio.FONT, text="\nMAGENTA", color=magenta) | |
text_group_right.append(text_area_magenta) | |
text_area_yellow = label.Label(terminalio.FONT, text="\n\nYELLOW", color=yellow) | |
text_group_right.append(text_area_yellow) | |
text_area_black = label.Label(terminalio.FONT, text="\n\n\nBLACK", color=black) | |
text_group_right.append(text_area_black) | |
splash.append(text_group_right) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment