LILYGO T-Embed CC1101

  • ESP32-S3
  • CC1101
  • LoRa
  • NFC
  • TFT
  • Sub-GHz

T-Embed-CC1101

Switch to T-Embed-SI4732 version here

Version History

Version Update Date Update Description
T-Embed-CC1101_V1.0 2024-07-29 Hardware
T-Embed-CC1101_V1.1 2025-01-09 Software
Product SOC FLASH PSRAM Link
T-Embed CC1101 ESP32-S3 16MB 8MB LILYGO Store

Table of Contents

Description

LILYGO T-Embed CC1101 is a highly integrated IoT development board based on the ESP32-S3 dual-core LX7 processor, specifically designed for multi-protocol communication and smart hardware development. It features onboard CC1101 Sub-GHz module, LoRa, PN532 NFC, infrared remote control, Wi-Fi 6 and Bluetooth 5.0, supporting complex scenarios such as remote sensing, smart home control, and industrial monitoring. Equipped with a 1.9-inch TFT screen, rotary encoder, 8 programmable RGB LEDs, microphone and speaker module, and supporting TF card expansion storage, it provides developers with an out-of-the-box, multi-scenario adaptable efficient hardware platform.

Preview

Physical Image

T-Embed-CC1101

Pinout Diagram

summary

Modules

MCU

  • Chip: ESP32-S3FN16R8
  • PSRAM: 8MB (Octal SPI)
  • FLASH: 16MB
  • Wireless: 2.4 GHz Wi-Fi & Bluetooth 5 (LE)

Display

  • Size: 1.9-inch IPS TFT screen
  • Resolution: 320ร—170px
  • Display Type: IPS
  • Driver IC: ST7789V
  • Compatible Libraries: TFT_eSPI, LVGL
  • Bus Communication Protocol: SPI

Communication Modules

  • Sub-GHz: CC1101
  • NFC: PN532
  • GPS: MIA-M10Q (optional)

Audio System

  • Audio Chip: ES7210
  • Function: Microphone input and speaker output

Power Management

  • Charging Chip: BQ25896
  • Battery Monitoring: BQ27220
  • Battery: 3.7V 1300mAh lithium polymer battery

Overview

Component Description
MCU ESP32-S3FN16R8 Dual-core LX7 microprocessor
FLASH 16MB
PSRAM 8MB
Display 1.9-inch ST7789V IPS TFT
Sub-GHz CC1101
NFC PN532
Audio ES7210 Microphone and Speaker
Charging Chip BQ25896
Battery Monitoring BQ27220
RGB LED 8 ร— WS2812 Programmable LEDs
Storage TF Card
Wireless 2.4 GHz Wi-Fi & Bluetooth 5 (LE)
USB 1 ร— USB Port (TYPE-C Interface)
Control Rotary Encoder
Buttons 1 x RESET Button + 1 x BOOT Button
Dimensions 97.5 ร— 39 ร— 31 mm

Quick Start

Example Support

- โœ… bq25896_test : Battery management test, prints battery status in serial.
- โœ… cc1101_recv_irq : Wireless reception test, displays received messages in serial.
- โœ… cc1101_send_irq : Wireless transmission test, displays sent messages in serial.
- โœ… display_test : Screen display test;
- โœ… encode_test : Encoder test.
- โœ… infrared_recv_test: Infrared reception
- โœ… infrared_send_test: Infrared transmission
- โœ… lvgl_test : LVGL benchmark and stress test;
- โœ… pn532_test : NFC test, displays IC card information in serial.
- โœ… tf_card_test : SD card test, displays read file names in serial.
- โœ… record_test : Record 15 seconds of audio and save to SD card.
- โœ… voice_test : Speaker test, read audio from SD card.
- โœ… ws2812_test : LED light test;

PlatformIO

  1. Install VisualStudioCode, choose the version for your system.
  2. Open the "Extensions" in the sidebar of Visual Studio Code (or use Ctrl+Shift+X), search for the "PlatformIO IDE" extension and install it.
  3. While the extension is installing, you can go to GitHub to download the program. You can download the main branch code by clicking the green "<> Code" button, or download the "Releases" version from the sidebar.
  4. After the extension is installed, open the sidebar's Explorer (or use Ctrl+Shift+E), click "Open Folder", find the project code you just downloaded (the entire folder), click "Add", and the project files will be added to your workspace.
  5. Open the "platformio.ini" file in the project folder (PlatformIO will automatically open the "platformio.ini" of the corresponding folder after adding it). Under the "[platformio]" section, uncomment to select the example program you want to upload (marked by "default_envs = xxx"). Then click the "โˆš" at the bottom left to compile. If the compilation is successful, connect the microcontroller to your computer and click "โ†’" at the bottom left to upload.

Arduino

  1. Install Arduino IDE, choose the version for your system.
  2. Open the "example" directory in the project folder, select the example project folder, and open the file ending with ".ino" to open the Arduino IDE project workspace.
  3. Open the "Tools" menu in the top bar -> Select "Board" -> "Boards Manager", find or search for "esp32", and install the board files by "Espressif Systems". Then return to the "Board" menu and select the board type under "ESP32 Arduino". The board type to select is determined by the "board = xxx" header under the [env] section in the "platformio.ini" file. If the corresponding board is not available, you need to manually add the board from the "board" directory in the project folder.
  4. Open the menu bar "File" -> "Preferences", find the "Sketchbook location" field, and copy all the library files along with their folders from the "libraries" folder in the project directory to the "libraries" folder in this location.
  5. Select the correct settings in the "Tools" menu as shown in the table below.

ESP32-S3

Setting Value
Board ESP32S3 Dev Module
Upload Speed 921600
USB Mode Hardware CDC and JTAG
USB CDC On Boot Enabled
USB Firmware MSC On Boot Disabled
USB DFU On Boot Disabled
CPU Frequency 240MHz (WiFi)
Flash Mode QIO 80MHz
Flash Size 16MB (128Mb)
Core Debug Level None
Partition Scheme 16M Flash (3MB APP/9.9MB FATFS)
PSRAM OPI PSRAM
Arduino Runs On Core 1
Events Run On Core 1
  1. Select the correct port.
  2. Click the "โˆš" in the top right corner to compile. If the compilation is successful, connect the microcontroller to your computer and click "โ†’" in the top right corner to upload.

Development Platforms

  1. Micropython
  2. Arduino IDE
  3. Platform IO

Pin Overview

#define BOARD_USER_KEY 6
#define BOARD_PWR_EN   15

// WS2812
#define WS2812_NUM_LEDS 8
#define WS2812_DATA_PIN 14

// IR
#define BOARD_IR_EN 2
#define BOARD_IR_RX 1

// MIC
#define BOARD_MIC_DATA 42
#define BOARD_MIC_CLK  39

// VOICE
#define BOARD_VOICE_BCLK  46
#define BOARD_VOICE_LRCLK 40
#define BOARD_VOICE_DIN   7

// --------- DISPLAY ---------
// About LCD definition in the file: lib/TFT_eSPI/User_Setups/Setup214_LilyGo_T_Embed_PN532.h
#define DISPLAY_WIDTH  170
#define DISPLAY_HEIGHT 320

#define DISPLAY_BL   21 
#define DISPLAY_CS   41
#define DISPLAY_MISO -1
#define DISPLAY_MOSI  9
#define DISPLAY_SCLK 11
#define DISPLAY_DC   16
#define DISPLAY_RST  40

// --------- ENCODER ---------
#define ENCODER_INA 4
#define ENCODER_INB 5
#define ENCODER_KEY 0

// --------- IIC ---------
#define BOARD_I2C_SDA  8
#define BOARD_I2C_SCL  18

// IIC addr
#define BOARD_I2C_ADDR_1 0x24  // PN532
#define BOARD_I2C_ADDR_2 0x55  // BQ27220
#define BOARD_I2C_ADDR_3 0x6b  // BQ25896

// NFC
#define BOARD_PN532_SCL     BOARD_I2C_SCL
#define BOARD_PN532_SDA     BOARD_I2C_SDA
#define BOARD_PN532_RF_REST 45
#define BOARD_PN532_IRQ     17

// --------- SPI ---------
#define BOARD_SPI_SCK  11
#define BOARD_SPI_MOSI 9
#define BOARD_SPI_MISO 10

// TF card
#define BOARD_SD_CS   13
#define BOARD_SD_SCK  BOARD_SPI_SCK
#define BOARD_SD_MOSI BOARD_SPI_MOSI
#define BOARD_SD_MISO BOARD_SPI_MISO

// LORA
#define BOARD_LORA_CS   12
#define BOARD_LORA_SCK  BOARD_SPI_SCK
#define BOARD_LORA_MOSI BOARD_SPI_MOSI
#define BOARD_LORA_MISO BOARD_SPI_MISO
#define BOARD_LORA_IO2  38
#define BOARD_LORA_IO0  3
#define BOARD_LORA_SW1  47
#define BOARD_LORA_SW0  48

FAQ

  • Q. I still don't know how to set up the programming environment after reading the above tutorial. What should I do?
    A. If you still don't understand how to set up the environment after reading the above tutorial, you can refer to the LilyGo-Document documentation for setup instructions.

  • Q. Cannot detect SD card?
    A. We successfully tested SD cards up to 32GB with SanDisk; however, some other cards didn't work for unknown reasons. Therefore, if the SD card is not detected, it is recommended to replace it with a SanDisk card no larger than 32GB;
    alt text

  • Q. Why does my board keep failing to program?
    A. Please hold the "BOOT" button while pressing the "RST" button, then release the "RST" button to enter download mode and try downloading the program again.

  • Q. What is the communication range of the CC1101 module?
    A. The communication range of CC1101 is affected by many factors, including antenna design, environmental interference, data rate, etc. Under ideal conditions, it can reach several hundred meters.

Problem Link
How do I enter download mode? docs
How to download the program? docs
How do I turn on the device after I shut it down? Issues #5
How do I configure Wifi with EspTouch? Issues #4
Why won't the battery charge๏ผŸ Issues #9

Projects

Resources

Dependent Libraries