# LilyGo T-Dongle-S3 80x160 (ST7735)

## tft_configs/t-dongle-s3/tft_config.py

     1"""LilyGo T-Dongle-S3 80x160 (ST7735)
     2"""
     3
     4from machine import Pin, SPI
     5import st7789py as st7789
     6
     7
     8TFA = 1
     9BFA = 1
    10WIDE = 1
    11TALL = 0
    12SCROLL = 0      # orientation for scroll.py
    13FEATHERS = 1    # orientation for feathers.py
    14
    15def config(rotation=0):
    16    """
    17    Configures and returns an instance of the ST7789 display driver.
    18
    19    Args:
    20        rotation (int): The rotation of the display (default: 0).
    21
    22    Returns:
    23        ST7789: An instance of the ST7789 display driver.
    24    """
    25
    26    init_cmds = (
    27        (b'\xCF', b'\x00\x83\x30', 0),
    28        (b'\xED', b'\x64\x03\x12\x81', 0),
    29        (b'\xE8', b'\x85\x01\x79', 0),
    30        (b'\xCB', b'\x39\x2C\x00\x34\x02', 0),
    31        (b'\xF7', b'\x20', 0),
    32        (b'\xEA', b'\x00\x00', 0),
    33        (b'\xC0', b'\x26', 0),
    34        (b'\xC1', b'\x11', 0),
    35        (b'\xC5', b'\x35\x3E', 0),
    36        (b'\xC7', b'\xBE', 0),
    37        (b'\x3A', b'\x55', 0),
    38        (b'\xB1', b'\x00\x1B', 0),
    39        (b'\xF2', b'\x08', 0),
    40        (b'\x26', b'\x01', 0),
    41        (b'\xE0', b'\x1F\x1A\x18\x0A\x0F\x06\x45\x87\x32\x0A\x07\x02\x07\x05\x00', 0),
    42        (b'\xE1', b'\x00\x25\x27\x05\x10\x09\x3A\x78\x4D\x05\x18\x0D\x38\x3A\x1F', 0),
    43        (b'\x2A', b'\x00\x00\x00\xEF', 0),
    44        (b'\x2B', b'\x00\x00\x01\x3f', 0),
    45        (b'\x2C', None, 0),
    46        (b'\xB7', b'\x07', 0),
    47        (b'\xB6', b'\x0A\x82\x27\x00', 0),
    48        (b'\x21', None, 0),
    49        (b'\x11', None, 100),
    50        (b'\x29', None, 100)
    51    )
    52
    53    custom_rotations = (
    54        (0x00,  80, 160, 26,  1, False),
    55        (0x60, 160,  80,  1, 26, False),
    56        (0xc0,  80, 160, 26,  1, False),
    57        (0xa0, 160,  80,  1, 26, False),
    58    )
    59
    60    return st7789.ST7789(
    61        SPI(1, baudrate=20000000, sck=Pin(5), mosi=Pin(3), miso=None),
    62        80,
    63        160,
    64        reset=Pin(1, Pin.OUT),
    65        cs=Pin(4, Pin.OUT),
    66        dc=Pin(2, Pin.OUT),
    67        backlight=Pin(37, Pin.OUT),
    68        rotation=rotation,
    69        color_order=st7789.BGR,
    70        custom_init=init_cmds,
    71        custom_rotations=custom_rotations,
    72    )

## tft_configs/t-dongle-s3/tft_buttons.py

     1"""esp32 T-Dongle-S3 Buttons
     2"""
     3
     4from machine import Pin
     5
     6
     7class Buttons:
     8    """
     9    Buttons class for examples, modify for your device.
    10
    11    Attributes:
    12        name (str): The name of the device.
    13        left (Pin): The Pin object representing the left button.
    14        right (Pin): The Pin object representing the right button.
    15        fire (Pin): The Pin object representing the fire button.
    16        thrust (Pin): The Pin object representing the thrust button.
    17        hyper (Pin): The Pin object representing the hyper button.
    18    """
    19
    20    def __init__(self):
    21        self.name = "t-dongle-s3"
    22        self.button = Pin(0, Pin.IN)
    23        self.left = self.button
    24        self.right = self.button
    25
    26        # need more buttons for roids.py
    27        self.fire = None
    28        self.thrust = None
    29        self.hyper = None