LilyGo T-Beam

ESP32 board with GPS, LoRa, and battery support - great for long-range tracking and off-grid IoT applications.

Micro-USB
LilyGo T-Beam board
100 × 33 mm
ESP32
MCU
240MHz
clock
4MB
flash
520KB
SRAM
10· 8 ADC
GPIO
BLE 4.2+ WiFi
radio
On this page

Pinout

17 pins · 2.54 mm pitch
View:
LilyGo T-Beam pinout diagram
PinGPIOLabelsStatusCapabilitiesNotes
136VPGPIO36strappingadcLeft header; SENSOR_VP, input-only, ADC1_CH0
239VNGPIO39strappingadcLeft header; SENSOR_VN, input-only, ADC1_CH3
3-RSTENcontrol-Left header; ESP32 EN / reset, active-low
41515GPIO15strappingadc · touch · pwmLeft header; ADC2_CH3, TOUCH3, boot strapping pin
52525DAC1GPIO25safeadc · dac · pwmLeft header; DAC1, ADC2_CH8
61414GPIO14strappingadc · touch · pwmLeft header; ADC2_CH6, TOUCH6
71313GPIO13strappingadc · touch · pwmLeft header; ADC2_CH4, TOUCH4
822GPIO2strappingadc · touch · pwmLeft header; ADC2_CH2, TOUCH2, boot strapping pin
9-GNDground-Left header; ground
10-5Vpower-Left header; 5V / VBUS rail
111TXGPIO1uartuart · pwmRight header; UART0 TX, shared with USB-serial (CH9102F)
123RXGPIO3uartuart · pwmRight header; UART0 RX, shared with USB-serial (CH9102F)
1300GPIO0strappingadc · touch · pwmRight header; boot strapping pin, ADC2_CH1, TOUCH1
14-GNDground-Right header; ground
15-DCDC1power-Right header; AXP192 DCDC1 programmable output rail
16-GNDground-Right header; ground
17-3V3power-Right header; 3.3V rail

Start with these

1 pins with no boot or system involvement
25DAC1

Freely assignable - no strapping, flash, USB or JTAG duties. Ideal first picks for buttons, sensors and LEDs.

Fine - with a little care

sampled at boot or shared with debug/serial
PinLabelWhat to knowRole
VPGPIO36 (SENSOR_VP)Cannot be used as output; only suitable for input (e.g., analog read).Other
VNGPIO39 (SENSOR_VN)Cannot be used as output; only suitable for input.Other
15MTDO (GPIO15)Keep HIGH during boot (internal PU); if LOW on reset, bootloader log is silenced and boot mode may change.Strapping
14MTMS (GPIO14)Used for JTAG debugging (TMS); driving it as GPIO may interfere with JTAG or produce spurious signals at boot.Other
13MTCK (GPIO13)Used for JTAG debugging (TCK); avoid using as GPIO if JTAG is needed.Other
2GPIO2If driven HIGH on reset (while IO0 is LOW), selects an unsupported SDIO boot mode, causing boot failure.Strapping
0GPIO0Must be HIGH during boot for normal startup; if held LOW on reset, forces flash programming mode.Strapping

Only if you know the tricks

wired to flash or USB - expect a fight
PinLabelWhat to knowRole
TXU0TXD (GPIO1)Connected to on-board USB-UART for uploading and logs; drives serial output at boot, so using as GPIO can disrupt programming or console.USB
RXU0RXD (GPIO3)Used for receiving data from USB-UART (programming); also pulled HIGH at boot for console communication, so using as GPIO can disrupt uploads.USB
These are recommendations, not hard rules - with the right pull-ups, timing and boot-state awareness most pins can be made to work. When in doubt, start green.
Pinout notes Across 17 pins (2.54 mm pitch), the LilyGo T-Beam exposes 10 GPIO plus GND , 5V , DCDC1 and 3V3 for power. Peripheral wiring is straightforward: TX / RX on…

Across 17 pins (2.54 mm pitch), the LilyGo T-Beam exposes 10 GPIO plus GND, 5V, DCDC1 and 3V3 for power.

Peripheral wiring is straightforward: TX/RX on GPIO1 and GPIO3 cover serial logging and flashing.

Beyond plain digital I/O you get 8 ADC-capable pins for sensors and battery monitoring, PWM on 8 pins, 5 capacitive-touch inputs and 1 true DAC output.

7 of the exposed pins carry boot-time or system duties on the ESP32 (VP, VN, 15 and 4 more) - check the guidance above before wiring anything to them. 25 is free of any such role - the safest first picks.


The LilyGo T-Beam commits most of its GPIOs on-board - the SX1276 LoRa radio, NEO-6M GPS, AXP192 PMU and SSD1306 OLED between them occupy the ESP32's SPI, UART and I²C buses. What the two side headers actually break out is a handful of free GPIOs plus power.

Usable header pins include GPIO2, GPIO13, GPIO14, GPIO15 and GPIO25 (DAC1), the input-only GPIO36/GPIO39, the UART0 TX/RX (GPIO1/3) and GPIO0 (BOOT). Power is exposed on 5V, 3.3V and the AXP192 DCDC1 rail, alongside GND.

Getting started

flash your first firmware in ~2 minutes
Tool:
1
Connect over USB
Install your USB-serial driver (CH340 / CP210x) if no port appears. Not detected? Hold BOOT while plugging in.
2
Match & flash
Set the Tools options shown, then click Upload.
3
Verify it runs
The onboard LED on GPIO25 blinks - swap the pin if your board's LED differs.
Set these in Tools · leave everything else at default
Arduino IDE 2.x — Tools Copy
Board: "ESP32 Dev Module"
Flash Size: "4MB (32Mb)"
Flash Mode: "DIO"
Partition Scheme: "Default 4MB with spiffs (1.2MB APP / 1.5MB SPIFFS)" (default)
Upload Speed: "921600"
▸ every other Tools option — leave at default
Board: ESP32 Dev Module
Flash Size: 4MB (32Mb)
Flash Mode: DIO
Partition Scheme: Default 4MB with spiffs (1.2MB APP / 1.5MB SPIFFS)
Upload Speed: 921600
Find it: Tools ▸ Board ▸ ESP32 Arduino ▸ ESP32 Dev Module
blink.ino Copy
// blink the onboard LED
void setup() {
  pinMode(25, OUTPUT);
}
void loop() {
  digitalWrite(25, HIGH); delay(500);
  digitalWrite(25, LOW);  delay(500);
}
board to selectesp32dev⧉ copy
platformio.ini Copy
[env:lilygo_t_beam]
platform = espressif32
board = esp32dev
framework = arduino
monitor_speed = 115200
upload_speed = 921600
Find it: PlatformIO Home ▸ Boards, search esp32dev — or type it after board =.
board to selectesp32dev⧉ copy
device.yaml Copy
esp32:
  board: esp32dev
  variant: lilygo_t_beam
  framework:
    type: esp-idf

# blink - GPIO25
output:
  - platform: gpio
    pin: 25
    id: led_out
light:
  - platform: binary
    name: "LED"
    output: led_out
Find it: search ESPHome's board list for esp32dev (same ids as PlatformIO).
esptool doesn't pick board settings — a prebuilt .bin already has them baked in. This is just the raw flash command.
terminal Copy
esptool.py --chip esp32 --port /dev/ttyACM0 \
  --baud 921600 write_flash 0x0 firmware.bin
--port = your /dev/tty* (macOS/Linux) or COMx (Windows).
Build details: sketch space 3145728 B · data 327680 B · DIO

Specifications

ESP32 · 100 × 33 mm
Compute
MCU
ESP32
Clock
240 MHz
SRAM · Flash
520 KB · 4MB
Radio
Wi-Fi
802.11 b/g/n
Bluetooth
4.2 LE
Antenna
PCB
I/O
GPIO · ADC
10 · 8
UART · I²C · SPI
3 · 2 · 4
PWM
16 channels
Power
USB
Micro-USB
Serial
CH9102F
Boot address
0x1000
Display
Screen
OLED · 0.96" · 128x64
Driver
SSD1306
Touch
No
Flashing
Upload · OTA
esptool_py · esp_ota
Flash · Boot mode
DIO · QIO
Sketch · Data
3 MB · 320 KB
33 mm100 mm
100 × 33 mm · pin pitch 2.54 mm
The LilyGo T-Beam uses esptool_py for firmware uploads, esp_ota for over-the-air (OTA) updates. Flash mode is DIO with QIO boot mode. The maximum sketch size is 3 MB with 320 KB available for data.

About this board

Inside sits the ESP32 - a dual-core Xtensa with both Bluetooth Classic and BLE.

At $30.00 it's on the expensive side for an ESP32 board - most land around $20.

Only 10 GPIO are broken out, where most ESP32 boards manage about 24 - worth checking the pinout covers what you need.

Around the module: an OLED 0.96" 128x64 display, LoRa (SX1276), GPS (NEO-6M), battery charging (AXP192) via 18650 holder + JST-GH 2-pin and Power/Reset/User buttons.


The LilyGo T-Beam is a feature-rich ESP32-based development board designed for LoRa and GPS applications. It integrates an ESP32 dual-core processor with WiFi and Bluetooth 5, providing seamless wireless connectivity.

With an onboard LoRa transceiver (SX1262/SX1276), it enables long-range communication at frequencies 433/868/915 MHz. Additionally, the board includes a Ublox NEO-6M GPS module for precise geolocation.

Equipped with 16MB Flash and 8MB PSRAM, along with a 18650 Li-ion battery holder for portable applications, the T-Beam is a powerful tool for IoT and tracking projects.

  • 18650 Li-ion battery holder on the underside (cell not included)
  • V1.2 boards ship the AXP2101 PMU (AXP192 discontinued); V1.0/V1.1 use AXP192
  • LoRa: SX1276 (868/915/923 MHz) or SX1278 (433 MHz) via IPEX/SMA antenna
  • GPS: u-blox NEO-6M (NEO-M8N on some batches) with backup battery
  • 3D WiFi antenna plus separate GPS ceramic antenna and LoRa antenna
  • Earlier revisions shipped a CP2104 USB-serial chip instead of CH9102F

Where to buy

prices are typical street prices
LilyGo T-Beam
LilyGo T-Beam
$30.00per unit, typical
As an Amazon Associate, ESPboards earns from qualifying purchases.

Resources

Similar boards