https://learn.adafruit.com/adafruit-1-44-color-tft-with-micro-sd-socket/python-usage

# disp = st7735.ST7735R(spi, rotation=90,                           # 1.8" ST7735R
# disp = st7735.ST7735R(spi, rotation=270, height=128, x_offset=2, y_offset=3,   # 1.44" ST7735R


# disp = st7735.ST7735R(spi, rotation=90, bgr=True,                 # 0.96" MiniTFT ST7735R
# disp = ssd1351.SSD1351(spi, rotation=180,                         



import machine
import gc
from time import sleep_ms
from drivers.st7735r.st7735r144 import ST7735R as SSD
height = 128
width = 128  # 160

pdc = machine.Pin('Y1', machine.Pin.OUT_PP, value=0)
pcs = machine.Pin('Y2', machine.Pin.OUT_PP, value=1)
prst = machine.Pin('Y3', machine.Pin.OUT_PP, value=1)
spi = machine.SPI(2, baudrate=12_000_000)
gc.collect()  # Precaution before instantiating framebuf
ssd = SSD(spi, pcs, pdc, prst, height, width)  # Create a display instance
ssd.fill(0)
ssd.show()
sleep_ms(1000)
ssd.line(0, 0, width - 1, height - 1, ssd.rgb(0, 255, 0))  # Green diagonal corner-to-corner
ssd.rect(0, 0, 15, 15, ssd.rgb(255, 0, 0))  # Red square at top left
ssd.show()
sleep_ms(2000)
ssd.fill(0)
ssd.show()
ssd.line(0, 0, width - 1, height - 1, ssd.rgb(0, 255, 255))
ssd.rect(0, 0, 40, 40, ssd.rgb(0, 0, 255))
ssd.rect(width - 41, height - 41, 40, 40, ssd.rgb(0, 0, 255))
ssd.show()

Attempt to rotate 1.44" unit fell foul of x and y offsets with 1-2 pixel errors.
Rotation passed to ctor
    def __init__(self, spi, cs, dc, rst, height=128, width=128, init_spi=False, rotation=0):
    ...
        quad, mod = divmod(rotation, 90)  # Get quadrant
        if mod:
            raise ValueError('Rotation should be divisible by 90')
    ...
            
        self._init(quad)

    def _init(self, quad):
    ...
        rval = (b'\x20', b'\x40', b'\xe0', b'\x80')[quad]
        wcd(b'\x36', rval)
