LilyGo T-Deck Development Board

Code name: LILYGO_T_DECK

LilyGo T-Deck development board is based on esp32s3 microcontroller and uses xtensa architecture. This board has a maximum CPU frequency of 240 MHz and a flash size of 16MB.

About LilyGo T-Deck

πŸš€ The LilyGo T-Deck is a versatile development device featuring an ESP32-S3FN16R8 dual-core processor with integrated Wi-Fi and Bluetooth 5 (LE). It boasts a 2.8-inch IPS LCD (320x240) touch screen, a mini keyboard, and a trackball, making it ideal for portable applications. ⚑

πŸ“‘ With support for LoRa transceiver (SX1262) at various frequencies (433/868/915 MHz), it enables long-range communication for IoT projects. The device comes with 16MB Flash and 8MB PSRAM, providing ample memory for complex applications.

πŸ’Ύ Additional features include a microphone, speaker, and optional GPS module, enhancing its functionality for diverse use cases.

Where to Buy LilyGo T-Deck

LilyGo T-Deck

Starting from

$60 per unit

Amazon de
Amazon.de Ships to EU
View Price
Aliexpress
AliExpress Best value
View Price

Prices are subject to change. We earn from qualifying purchases as an Amazon Associate.

LilyGo T-Deck Technical Specifications

πŸ–₯️ Display

Type IPS LCD
Size 2.8"
Resolution 320x240
Driver ST7789

πŸ›°οΈ Connectivity

WiFi 802.11 b/g/n (2.4 GHz)
Bluetooth 5.0
BLE 5.0
Zigbee Yes

🧠 Microcontroller

Model esp32s3
Clock Speed 240 MHz
Flash Size 16MB
PSRAM Size 8MB
Architecture xtensa

✨ Features

  • 48 digital IO pins
  • 46 external interrupt pins
  • 20 analog input pins
  • 27 PWM pins

LilyGo T-Deck Pinout

The LilyGo T-Deck pinout offers multiple GPIOs with various functionalities:

IO1 to IO3: GPIO, Touch, ADC

IO10 to IO13: SPI interface (CS, D, CLK, Q)

IO16: ADC

IO17 and IO18: UART (TX, RX)

IO38 to IO48: LCD data lines and control signals

Additionally, power pins like 3V3, 5V, and GND are available for peripheral connections.

βœ… Safe Pins to Use

For general GPIO usage, these are the safest and most flexible choices:

πŸ”Ή IO1
πŸ”Ή IO2
πŸ”Ή IO16
πŸ”Ή IO17
πŸ”Ή IO18
πŸ”Ή IO21
πŸ”Ή IO5
πŸ”Ή IO6
πŸ”Ή IO7
πŸ”Ή IO8
πŸ”Ή IO15
πŸ”Ή IO4
πŸ”Ή IO22
πŸ”Ή IO23
πŸ”Ή IO24
πŸ”Ή IO25
πŸ”Ή IO26
πŸ”Ή IO27
πŸ”Ή IO28
πŸ”Ή IO29
πŸ”Ή IO30
πŸ”Ή IO31
πŸ”Ή IO32

Why Are These Pins Safe?

  • Not involved in bootstrapping β†’ No impact on device boot mode or system startup
  • Not linked to flash memory or PSRAM β†’ Won't interfere with storage or memory access
  • Not dedicated to USB or JTAG β†’ Free for general use without affecting debugging
  • No special hardware connections β†’ Freely assignable without internal conflicts

⚠️ Pins to Avoid or Use with Caution

Some pins are reserved for critical functions like bootstrapping, JTAG debugging, USB communication, and flash memory operations. Misusing these pins may lead to boot failures, programming issues, USB conflicts, or disruptions in flash storage.

Critical Pin Categories:

  • πŸ› οΈ Strapping Pins: Control boot behavior and flash voltage selection
  • πŸ”— JTAG Debugging Pins: Required for low-level debugging
  • πŸ”Œ USB Communication Pins: Used for USB Serial/JTAG communication
  • ⚑ Flash Memory & SPI Pins: Connected to SPI flash memory and PSRAM
  • πŸ“‘ UART Serial Communication Pins: Used for debugging and firmware uploads
PINLabelReasonFunction
IO3GPIO3Sampled at reset to select JTAG interface (USB Serial/JTAG controller vs. external pins). Improper use can disable external JTAG or alter debug interface.πŸ› οΈ Strapping
IO10FSPICS0Used to select the external flash chip. It is required for flash access and cannot be repurposed without losing flash connectivity⚑ Flash
IO11FSPIDUsed as a data line for flash (and in-package PSRAM). It should not be used as GPIO when the flash/PSRAM is in use.⚑ Flash
IO12FSPICLKDrives the flash (and PSRAM) clock. This critical signal must be reserved for memory and not used as general GPIO.⚑ Flash
IO13FSPIQUsed as a data line for flash/PSRAM transfers. Not available for other uses when flash/PSRAM is connected.⚑ Flash

LilyGo T-Deck Pin Mappings

This development board provides 48 digital IO pins, out of which 46 can be used as external interrupt pins , 20 as analog input pins and 27 pins have Pulse-Width Modulation (PWM) .

PinFunctionESP PinInput/OutputDescription
13V33.3VPOWER OUTPUT3.3V power output
2GNDGNDPOWER GROUNDGround connection
35V5VPOWER INPUT5V power input for the board
4IO1GPIO1BIDIRECTIONALGPIO, Touch, ADC
5IO2GPIO2BIDIRECTIONALGPIO, Touch, ADC
6IO3GPIO3BIDIRECTIONALGPIO, Touch, ADC
7IO10SPI_CSBIDIRECTIONALGPIO, SPI Chip Select
8IO11SPI_DBIDIRECTIONALGPIO, SPI Data
9IO12SPI_CLKBIDIRECTIONALGPIO, SPI Clock
10IO13SPI_QBIDIRECTIONALGPIO, SPI Q
11IO16ADC2_CH5BIDIRECTIONALGPIO, ADC
12IO17U1_TXDBIDIRECTIONALGPIO, UART TX
13IO18U1_RXDBIDIRECTIONALGPIO, UART RX
14IO21GPIO21BIDIRECTIONALGPIO
15IO38LCD_BLOUTPUTGPIO, LCD Backlight
16IO39LCD_D0OUTPUTGPIO, LCD Data 0
17IO40LCD_D1OUTPUTGPIO, LCD Data 1
18IO41LCD_D2OUTPUTGPIO, LCD Data 2
19IO42LCD_D3OUTPUTGPIO, LCD Data 3
20IO45LCD_D4OUTPUTGPIO, LCD Data 4
21IO46LCD_D5OUTPUTGPIO, LCD Data 5
22IO47LCD_D6OUTPUTGPIO, LCD Data 6
23IO48LCD_D7OUTPUTGPIO, LCD Data 7
24IO5LCD_RESOUTPUTGPIO, LCD Reset
25IO6LCD_CSOUTPUTGPIO, LCD Chip Select
26IO7LCD_DCOUTPUTGPIO, LCD Data/Command
27IO8LCD_WROUTPUTGPIO, LCD Write
28IO9LCD_RDOUTPUTGPIO, LCD Read
29IO15LCD_POWER_ONOUTPUTGPIO, LCD Power Enable
30IO4LCD_BAT_VOLTINPUTGPIO, Battery Voltage Sense
31IO14BUTTONINPUTUser Button
32IO20MICINPUTMicrophone Input
33IO22SPEAKEROUTPUTSpeaker Output
34IO23LOADEROUTPUTFlash Loader
35IO24KEYBOARDINPUTKeyboard Input
36IO25TRACKBALLINPUTTrackball Sensor
37IO26GPS_RXINPUTGPS Module RX
38IO27GPS_TXOUTPUTGPS Module TX
39IO28LORA_CSOUTPUTLoRa Chip Select
40IO29LORA_RSTOUTPUTLoRa Reset
41IO30LORA_IRQINPUTLoRa Interrupt Request
42IO31EXPANSIONBIDIRECTIONALExpansion GPIO
43IO32EXTRABIDIRECTIONALExtra GPIO
Function Pin Function
ESP Pin Pin on ESP32
I/O Input/Output Pin
Description Pin Description

LilyGo T-Deck Pins Mapping Arduino IDE

Below you can find the LilyGo T-Deck pinout. This development board provides 48 digital IO pins, out of which 46 can be used as external interrupt pins, 20 as analog input pins and 27 pins have Pulse-Width Modulation (PWM).

PinAnalogTouchPWMOther
0BUTTON_1
1A0T1PWM
2A1T2PWM
3A2T3PWM
4PWMBAT_VOLT
10A9T10PWMSS
11A10T11PWMMOSI
12A11T12PWMSCK
13A12T13PWMMISO
17A16PWMSCL
18A17PWMSDA
43PWMTX
44PWMRX
Analog Analog input pins
Touch Touch pins
Function Function pins
RX / TX Receive/Transmit
LED_BUILTIN Built-in LED
PWM Pulse-Width Modulation

Default Tools for LilyGo T-Deck

Bootloader toolesptool_py
Uploader toolesptool_py
Network uploader toolesp_ota
Bootloader address0x0
Flash modedio
Boot modeqio
PSRAM typeopi
Maximum upload size
3072 Kb
(3145728 B)
Maximum data size
320 Kb
(327680 B)

The LilyGo T-Deck development board by default uses esptool_py uploader tool, esp_ota network uploader tool for Over-the-air (OTA) uploads and esptool_py bootloader tool. The bootloader starts at address "0x0". Flash mode and boot mode for LilyGo T-Deck development board by default is dio and qio respectively. The board uses opi PSRAM type. When using Arduino IDE, the maximum sketch upload size is 3072 Kb (3145728 B) and maximum data size for variables is 320 Kb (327680 B).