LILYGO T-Beam is a board with the ESP32 chip, a LoRa radio, a GPS receiver and an 18650 cell holder on the back. It is popular for Meshtastic and MeshCore and for location trackers. Power for all parts is managed by the AXP2101 chip (AXP192 on V1.1), which also charges the cell.
Two 13-pin headers are broken out; only a few GPIO are free, the rest are taken by LoRa, GPS and the power management chip.
Specifications
- ESP32 (D0WDQ6): 2 cores 240 MHz, 4 MB flash, 8 MB PSRAM
- Wi-Fi, Bluetooth, LoRa SX1262 (868 MHz) or SX1276 / SX1278 (433 MHz)
- NEO-6M GPS with IPEX antenna, backup cell
- AXP2101 power management and charger, 18650 cell holder
- 2 headers of 13 pins: free GPIO13, 14, 25, inputs 36/39, I2C 21/22
- micro USB (CH9102 / CP2104), PWR, IO38 and RST buttons
- 100 × 33 mm
The pinout applies to version V1.2 (AXP2101); V1.1 (AXP192) has the same pin layout but differs in the 5V pin (VSYS instead of USB) and the 3.3 V source on the header. The T-Beam Supreme with ESP32-S3 is a different board.
The LoRa radio and GPS have no power until the firmware turns it on through the AXP2101 power management chip (I2C 0x34). The cell voltage is read from the power management chip, not from the ADC. The “T-Beam” profile in Arduino has the LED and button from the old version 0.7 – the correct LED is on GPIO4 (lights up at logic 0) and the button on GPIO38.
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.
| Name | Direction | UART | I2C | SPI | ADC | DAC | Touch | Note |
|---|---|---|---|---|---|---|---|---|
| GPIO36 | input | ADC1_CH0 | VP – input only, no pull-up. ADC1_CH0. | |||||
| GPIO39 | input | ADC1_CH3 | VN – input only, no pull-up. ADC1_CH3. | |||||
| RST | input | Reset (EN) – logic 0 holds the ESP32 in reset | ||||||
| GPIO15 | input/output | ADC2_CH3 | T3 | Strapping pin – logic 0 at boot suppresses bootloader output | ||||
| GPIO35 | input | ADC1_CH7 | AXP2101 power controller interrupt – input only, in use. | |||||
| GPIO32 | input/output | ADC1_CH4 | T9 | Appears twice on the header: "32" on the left and "LoRa2" on the right (radio DIO2 pin via 22 Ω). On the SX1262 radio this is BUSY – in use. | ||||
| GPIO33 | input/output | ADC1_CH5 | T8 | Appears twice on the header: "33" on the left and "LoRa1" on the right (radio DIO1 pin via 22 Ω). On the SX1262 it is the radio interrupt – in use. | ||||
| GPIO25 | input/output | ADC2_CH8 | DAC1 | |||||
| GPIO14 | input/output | ADC2_CH6 | T6 | JTAG MTMS | ||||
| GPIO13 | input/output | ADC2_CH4 | T4 | JTAG MTCK | ||||
| GPIO2 | input/output | ADC2_CH2 | T2 | Strapping pin – logic 0 or unconnected at boot for download mode | ||||
| GND | – | |||||||
| 5V | input/output | V1.2: VBUS from USB – on battery the pin has no voltage. V1.1: VSYS (also powered from the battery). | ||||||
| GPIO33 | input/output | ADC1_CH5 | T8 | Appears twice on the header: "33" on the left and "LoRa1" on the right (radio DIO1 pin via 22 Ω). On the SX1262 it is the radio interrupt – in use. | ||||
| GPIO32 | input/output | ADC1_CH4 | T9 | Appears twice on the header: "32" on the left and "LoRa2" on the right (radio DIO2 pin via 22 Ω). On the SX1262 radio this is BUSY – in use. | ||||
| 3V3 | output | Both pads 3.3 V. Depending on the V1.2 assembly variant they come from the always-on DC1, or from DC3, which the factory firmware turns off – check your board. On V1.1 from DCDC1 (switched). | ||||||
| GPIO21 | input/output | SDA | I2C SDA – power management IC (0x34) and OLED display (0x3C), 10 kΩ pull-up | |||||
| GPIO22 | input/output | SCL | I2C SCL – power management IC and OLED, 10 kΩ pull-up | |||||
| GND | – | |||||||
| 3V3 | output | Both pads 3.3 V. Depending on the V1.2 assembly variant they come from the always-on DC1, or from DC3, which the factory firmware turns off – check your board. On V1.1 from DCDC1 (switched). | ||||||
| GND | – | |||||||
| GPIO0 | input/output | ADC2_CH1 | T1 | BOOT button. Strapping pin – logic 0 at boot = download mode | ||||
| GPIO4 | input/output | ADC2_CH0 | T0 | Red LED (lit at logic 0) | ||||
| GPIO23 | input/output | LoRa radio reset | ||||||
| GPIO3 | input/output | RX | UART0 RX – USB-UART converter | |||||
| GPIO1 | input/output | TX | UART0 TX – USB-UART converter |
Pins used on the board
These chip pins are used by parts on the board and are not broken out:
| Pin | Function on the board |
|---|---|
| GPIO5, 19, 27, 18 | LoRa SPI – SCK, MISO, MOSI, CS |
| GPIO26 | LoRa DIO0 (SX127x; not connected on SX1262) |
| GPIO34 | GPS – receive (GPS module TX) |
| GPIO12 | GPS – transmit to the module (strapping pin – must be logic 0 at boot) |
| GPIO37 | GPS PPS (also the red PPS LED) |
| GPIO38 | User button IO38 |
| RADIO, GPS | Radio (ALDO2) and GPS (ALDO3) power is enabled by firmware via the AXP2101 power management IC (I2C 0x34) |
What to watch out for
- The GPIO are not 5V tolerant.
- With the SX1262 radio, GPIO32 (BUSY) and GPIO33 (DIO1) are taken – they appear twice on the header (32/LoRa2, 33/LoRa1).
- GPIO0, 2 and 15 are strapping pins; GPIO34–39 are input-only with no pull-up.
- On V1.2, the 5V pin is fed from USB only – there is no voltage on it when running on battery.
- Depending on the assembly, the 3.3 V on the header comes either from the always-on DC1 or from DC3, which the factory firmware turns off.
T-Beam on chiptron.eu/
Projects and guides on chiptron.eu/:
- MeshCore – setup, firmware and a network map of the Czech Republic
More pinouts
See all pinouts on the Pinouts page.