Opens in a new tab

LILYGO T-Deck Pinout

LILYGO T-Deck is a pocket device with the ESP32-S3 chip, a BlackBerry-style keyboard, a 2.8″ display, a trackball and a LoRa SX1262 radio. It is used mainly for Meshtastic and MeshCore – messaging without cellular coverage.

Only a Grove connector with UART is exposed. Most pins are taken by the display, keyboard, LoRa and audio – they are listed in the table below.

Specifications

  • ESP32-S3: 2 cores up to 240 MHz, 16 MB flash, 8 MB PSRAM
  • Wi-Fi, Bluetooth LE, LoRa SX1262 (868 MHz)
  • 2.8″ 320 × 240 ST7789 display (SPI), GT911 touch (depending on the unit)
  • keyboard with its own ESP32-C3 (I2C 0x55), trackball
  • ES7210 microphone, speaker (MAX98357A), microSD slot
  • Grove connector (UART0), USB-C (native USB), battery connector
  • 100 × 68 × 11 mm

The diagram shows the back of the board. The T-Deck Plus additionally has built-in GPS on the same pins as the Grove connector, so Grove is not free on it.

The peripherals (LoRa, SD card, keyboard, trackball, microphone, backlight) are powered by a rail switched on by GPIO10 – set it to logic 1 right at the start of your program. The Grove connector is powered from the always-on 3.3 V.

Trackball directions according to the LILYGO and Meshtastic examples: up GPIO3, down GPIO15, left GPIO1, right GPIO2 (the image on the LILYGO wiki shows them differently).

Pinout and pin table

Hover over a pin in the diagram or a table row; use the filter to highlight a bus. You can download the pinout as PNG or SVG.

Pin names:
LILYGO T-Deck – pinout (back side)LILYGO T-Deck – pinout (back side)chiptron.eu · CC BY 4.0microSDRSTJ1POWER GPIO44 RX GPIO43 TX 3V3 → 3.3 V – always on (independent of GPIO10) GND 6 C3_TX UART0 TX of the keyboard controller (C3 GPIO21) 5 C3_RX UART0 RX of the keyboard controller (C3 GPIO20) 4 C3_IO9 ESP32-C3 GPIO9 – keyboard backlight and strapping (logic 0 = download mode) 3 C3_RST ESP32-C3 keyboard controller reset 2 GND 1 V3V → Switched 3.3 V rail (enabled by GPIO10) Grove (UART)J1 – keyboard (ESP32-C3) GPIO UART Power Ground (GND) Control / reset
Download:PNGSVG
Pin table – LILYGO T-Deck
PinNameDirectionUARTI2CSPIADCNote
Grove (UART) 1GND–
Grove (UART) 23V3outputPowered from the VDD3V3 rail, which is always on – unlike the peripherals on the V3V rail (switched by GPIO10).
Grove (UART) 3GPIO43input/outputTXUART0 TX. After reset the bootloader prints its log here (115200 Bd); with USB CDC On Boot disabled, Arduino Serial goes here too. On the T-Deck Plus the connector is taken by the built-in GPS.
Grove (UART) 4GPIO44input/outputRXUART0 RX. Used by the GPS on the T-Deck Plus.
J1 – keyboard (ESP32-C3) 1V3VoutputSwitched 3.3 V rail (enabled by GPIO10)
J1 – keyboard (ESP32-C3) 2GND–
J1 – keyboard (ESP32-C3) 3C3_RST–ESP32-C3 keyboard controller reset
J1 – keyboard (ESP32-C3) 4C3_IO9–Connector J1 is used to flash firmware to the ESP32-C3 keyboard controller (I2C 0x55): connect C3_IO9 to ground, reset (C3_RST) and upload via C3_RX/C3_TX with a 3.3 V USB-UART converter. These pins are not directly connected to the ESP32-S3.
J1 – keyboard (ESP32-C3) 5C3_RX–UART0 RX of the keyboard controller (C3 GPIO20)
J1 – keyboard (ESP32-C3) 6C3_TX–UART0 TX of the keyboard controller (C3 GPIO21)

Pins used on the board

These chip pins are used by parts on the board and are not broken out:

PinFunction on the board
GPIO10POWER_ON – switches power to the V3V peripherals (LoRa, SD, trackball, keyboard, microphone, backlight); must be logic 1
GPIO0Trackball click and BOOT button (strapping pin)
GPIO1, 2, 3, 15Trackball – left, right, up, down (Hall sensors)
GPIO4Battery voltage via 100k/100k divider (×2)
GPIO18, 8I2C SDA, SCL – GT911 touch (0x5D), ESP32-C3 keyboard (0x55), ES7210 microphone (0x40)
GPIO46Keyboard interrupt (C3_INT) – strapping pin; a pull-up on the C3 side can block download mode
GPIO16GT911 touch interrupt
GPIO40, 41, 38SPI SCK, MOSI, MISO – displej, karta SD a LoRa
GPIO12, 11Displej ST7789 – CS, DC
GPIO42Display backlight (AW9364, 16 steps set by pulse count, not PWM)
GPIO39Karta microSD – CS
GPIO9, 13, 17, 45LoRa SX1262 – CS, BUSY, RESET, DIO1
GPIO5, 7, 6Reproduktor MAX98357A (I2S) – WS, BCK, DOUT
GPIO14, 21, 47, 48Mikrofon ES7210 (I2S) – DOUT, LRCK, SCLK, MCLK
GPIO19, 20USB D− and D+ (native USB, USB-C)
GPIO35–37Octal PSRAM modulu

What to watch out for

  • The GPIO are not 5V tolerant.
  • Without GPIO10 at logic 1, LoRa, the SD card and the keyboard don’t work.
  • The bootloader log is output through the Grove connector (GPIO43) after every reset.
  • GPIO46 (keyboard interrupt) can block download mode – holding the trackball (GPIO0) and pressing RST helps, or disconnect the pull-up as described in issue #62.
  • SPI is shared by the display, the SD card and LoRa – keep unused CS lines at logic 1.

T-Deck on chiptron.eu/

Projects and guides on chiptron.eu/:

  • MeshCore – setup, firmware and a network map of the Czech Republic (T-Deck among the supported hardware)

More pinouts

See all pinouts on the Pinouts page.

Related Articles