MakerLab
ESP32LilyGO TTGO T-Call

LilyGO TTGO T-Call: ESP32 Powerhouse with Cellular Connectivity

A compact development board leveraging the ESP32's Wi-Fi and Bluetooth, enhanced with a SIM800L module for cellular communication.

LilyGO TTGO T-Call

The LilyGO TTGO T-Call is a versatile development board designed for makers and engineers who need to integrate Wi-Fi, Bluetooth, and cellular connectivity into their projects. At its core lies the powerful Espressif ESP32 chip, a dual-core microcontroller renowned for its robust processing capabilities and extensive peripheral set. This board is particularly suited for IoT applications requiring remote data transmission or control, where Wi-Fi might be unavailable or insufficient.

The ESP32 SoC at the heart of the T-Call is a dual-core Tensilica LX6 microprocessor running at up to 240 MHz. It integrates Wi-Fi (802.11 b/g/n) and Bluetooth (v4.2 BR/EDR and BLE) radios, making it a complete solution for wireless communication. The T-Call board builds upon this foundation by adding a SIM800L GSM/GPRS module, which allows the device to connect to cellular networks for making calls, sending SMS messages, and transmitting data over GPRS. This combination makes it ideal for projects that need to operate in remote locations or require a fallback communication channel.

Released around 2019, the TTGO T-Call quickly gained popularity for its integrated cellular modem, which was a significant advantage over many other ESP32 boards that required external modules. This integration simplifies hardware design and reduces the overall footprint of projects. It caters to a wide range of users, from students learning about IoT and embedded systems to experienced engineers developing prototypes for commercial applications. Its ease of use, especially with the Arduino IDE, makes it accessible for beginners, while its extensive features appeal to advanced users.

The board's design prioritizes functionality and ease of use. It typically features a USB-to-serial converter for programming and power, a battery connector for portable applications, and accessible GPIO pins. The inclusion of the SIM800L module means that users can experiment with voice calls, SMS notifications, and even basic mobile internet connectivity directly from their development board. This makes it a compelling choice for projects like remote environmental monitoring, asset tracking, or even a basic mobile-connected alarm system.

Watch

Related video, embedded from YouTube.

Specifications

Microcontroller / SoCESP32-WROOM-32E
ArchitectureDual-core Tensilica LX6 microprocessor
Clock speedUp to 240 MHz
Flash / Storage4MB (typically) onboard SPI flash
RAM / SRAM520 KB SRAM
Operating voltage3.3V
Digital I/O pins~30 (many shared with peripherals)
Analog / ADCUp to 12-bit ADC channels (ESP32 internal)
PWMYes, on most GPIO pins
ConnectivityWi-Fi 802.11 b/g/n, Bluetooth v4.2 BR/EDR & BLE, GSM/GPRS (via SIM800L module)
USBMicro-USB for power and programming (via CP2102 or similar)
Power input5V via Micro-USB, 3.7V LiPo battery connector
DimensionsApprox. 68mm x 29mm

Pinout & pin functions

PinFunction
3V33.3V Power Output
GNDGround
ENEnable Pin (Reset)
IO34Input only GPIO, ADC1_CH6
IO35Input only GPIO, ADC1_CH7
IO32GPIO, ADC1_CH4
IO33GPIO, ADC1_CH2
IO25GPIO, DAC_1, ADC1_CH8
IO26GPIO, DAC_2, ADC1_CH9
IO27GPIO, ADC1_CH10
IO14GPIO, SPI_HD_CS
IO12GPIO, SPI_HD_MOSI, ADC1_CH5
IO13GPIO, SPI_HD_MISO
IO2GPIO, ADC2_CH2
IO15GPIO, ADC2_CH3
IO4GPIO
IO0GPIO, Boot selection
IO21GPIO, I2C SDA
IO19GPIO, I2C SCL
IO22GPIO, I2C SCL
IO17GPIO, UART2 TX
IO16GPIO, UART2 RX
IO5GPIO
IO18GPIO, SPI_VS_SCK
IO19GPIO, SPI_VS_MISO
IO23GPIO, SPI_VS_MOSI
IO24GPIO
IO27GPIO, ADC1_CH10
IO32GPIO, ADC1_CH4
IO33GPIO, ADC1_CH2
SIM_TXDSIM800L TX (connects to ESP32 RX)
SIM_RXDSIM800L RX (connects to ESP32 TX)
SIM_PWRSIM800L Power Control
VBATBattery Input (3.7V LiPo)
5V5V Input (from USB)

Wiring & circuit basics

Powering the TTGO T-Call requires careful attention to voltage levels. The board can be powered via its Micro-USB port, which typically supplies 5V. This 5V is then regulated down to 3.3V for the ESP32 and other components. A dedicated 3.7V LiPo battery can also be connected to the VBAT header, which is managed by an onboard charging circuit. Ensure that any external components you connect operate at 3.3V logic levels, as applying 5V to GPIO pins can damage the ESP32. If you need to interface with 5V devices, use a logic level shifter.

When connecting external components, it's crucial to use the correct pins. For example, to control an LED, connect it via a current-limiting resistor (typically 220-330 ohms) to a digital GPIO pin (like IO2) and to GND. For I2C communication with sensors like the BME280, connect the sensor's SDA pin to IO21 (or IO19 depending on board revision) and its SCL pin to IO22 (or IO19). Remember to also connect the sensor's VCC to 3.3V and GND to the board's GND.

The SIM800L module requires a stable power supply, especially during transmission. It's recommended to power the module directly from the 5V input or a dedicated battery source capable of providing sufficient current (at least 2A peak recommended), rather than relying solely on the 3.3V rail, to avoid brownouts. The SIM_PWR pin can be used to enable/disable the module. The SIM800L's TX and RX pins connect to the ESP32's UART pins (often UART2, typically IO16/IO17). Ensure correct TX-to-RX and RX-to-TX connections.

Programming & getting started

The LilyGO TTGO T-Call can be programmed using several popular toolchains. The most common is the Arduino IDE, which offers a vast library ecosystem and a relatively gentle learning curve. To use it, install the ESP32 Arduino Core via the Board Manager. Alternatively, MicroPython and CircuitPython provide a Python-based programming environment, which can be easier for those familiar with Python. For more advanced control and bare-metal programming, Espressif's official ESP-IDF framework or PlatformIO integrated with VS Code are powerful options.

To upload your first sketch using the Arduino IDE: select the correct ESP32 board (e.g., 'ESP32 Dev Module'), choose the appropriate COM port, and press the upload button. You may need to hold down the BOOT button while the upload starts if the auto-reset circuit doesn't function correctly. A simple 'Blink' sketch or a basic sketch to print 'Hello World' over Serial Monitor is a good starting point to verify your setup.

Project ideas

SMS-Controlled Home AutomationUse the SIM800L to receive SMS commands (e.g., 'TURN ON LIGHT') and control relays connected to GPIO pins, learning about SMS parsing and basic control systems.
Remote Weather Station with GPRS BackupCollect sensor data (temperature, humidity) using I2C and transmit it over Wi-Fi. If Wi-Fi is unavailable, fall back to sending data via GPRS, exploring data logging and conditional communication.
Voice-Activated Assistant (Basic)Use the SIM800L to make or receive voice calls. While complex voice recognition is beyond the scope, you can trigger actions based on call initiation or termination, learning about cellular voice communication.
GPS Tracker with Cellular ReportingConnect a GPS module (e.g., NEO-6M) to a UART port and send location data via GPRS periodically, suitable for asset tracking or emergency beacons, understanding GPS interfacing and data transmission.
IoT Data Logger with Cloud UploadSend sensor readings over Wi-Fi to an MQTT broker or cloud platform. Implement a fallback mechanism to store data locally and upload it later using GPRS if the primary internet connection is lost, learning about data buffering and network resilience.
Cellular-Enabled Smart DoorbellWhen a button is pressed, send an SMS notification and optionally initiate a voice call using the SIM800L, teaching about event-driven notifications and basic cellular telephony.

Buying tips & gotchas

When purchasing the TTGO T-Call, be aware of potential variations in the ESP32 module (e.g., WROOM vs. WROVER) and the USB-to-serial chip (CP2102, CH340). Ensure you have the correct drivers installed for your USB-to-serial chip. The SIM800L module can consume significant current, so use a reliable power source or a charged LiPo battery, especially when transmitting. Avoid connecting 5V logic to the ESP32's GPIO pins, as it operates at 3.3V. Double-check the pinout diagram for your specific board revision, as pin assignments can sometimes vary slightly. Consider purchasing a small external antenna for the SIM800L for better cellular reception.