# M5STACK AtomS3 128x128 (GC9107)

https://docs.m5stack.com/en/core/AtomS3

## tft_configs/atom_s3/tft_config.py

     1"""M5STACK AtomS3 128x128 (GC9107)
     2
     3https://docs.m5stack.com/en/core/AtomS3
     4
     5"""
     6
     7from machine import Pin, SPI
     8import st7789py as st7789
     9
    10TFA = 1
    11BFA = 3
    12WIDE = 1
    13TALL = 0
    14SCROLL = 0      # orientation for scroll.py
    15FEATHERS = 1    # orientation for feathers.py
    16
    17def config(rotation=0):
    18    """
    19    Configures and returns an instance of the ST7789 display driver.
    20
    21    Args:
    22        rotation (int): The rotation of the display (default: 0).
    23
    24    Returns:
    25        ST7789: An instance of the ST7789 display driver.
    26    """
    27
    28    return st7789.ST7789(
    29        SPI(2, baudrate=40000000, sck=Pin(17), mosi=Pin(21), miso=None),
    30        128,
    31        128,
    32        reset=Pin(34, Pin.OUT),
    33        cs=Pin(15, Pin.OUT),
    34        dc=Pin(33, Pin.OUT),
    35        backlight=Pin(16, Pin.OUT),
    36        rotation=rotation,
    37        color_order=st7789.BGR,
    38    )

## tft_configs/atom_s3/tft_buttons.py

M5STACK AtomS3 buttons

     1"""
     2M5STACK AtomS3 buttons
     3"""
     4
     5from machine import Pin
     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 = "AtomS3"
    22        self.left = None
    23        self.right = None
    24        self.fire = None
    25        self.thrust = None
    26        self.hyper = None