LilyGo T-Embed-CC1101 Documentation

repository·master·Indexed 17 days ago

https://github.com/xinyuan-lilygo/t-embed-cc1101

Documentation for the T-Embed-CC1101, an ESP32-S3 development board featuring a CC1101 transceiver, PN532 NFC module, and display. Includes guides for Sub-GHz wireless communication, nRF24L01 testing, I2S digital microphone recording, Wi-Fi signal diagnostics, and audio playback using the ESP32-audioI2S library.

Tokens
40.2K
Snippets
183
Records
261
Agent score
65%

What's inside T-Embed-CC1101

  1. Overview of LVGL Graphics Library

    master

    LVGL is a lightweight and versatile graphics library designed for embedded systems. It provides a complete set of tools to create Graphical User Interfaces (GUIs) with beautiful visual effects while maintaining low memory consumption.

    Key Features:

    • Powerful Widgets: Includes buttons, charts, lists, sliders, images, and more.
    • Advanced Graphics Engine: Supports animations, anti-aliasing, opacity, smooth scrolling, and blending modes.
    • Input Device Support: Compatible with touchscreens, mice, keyboards, encoders, and buttons.
    • Customizable Styling: Uses a CSS-inspired styling system and powerful layouts like Flexbox and Grid.
    • Multi-language Support: Handles UTF-8, bidirectional alphabets (Arabic), and CJK (Chinese, Japanese, Korean).
    • Hardware Agnostic: Can be used with any microcontroller or processor (16, 32, or 64-bit) and any display.
  2. Overview of LVGL (Light and Versatile Graphics Library)

    master
    LVGL is an embedded graphics library designed to create GUIs with a low memory footprint. It provides a wide range of graphical elements (widgets), advanced graphics engines (animations, anti-aliasing, blending), and supports various input devices (touchscreen, mouse, keyboard, encoder) and multiple displays. It is hardware-independent and written in C, making it compatible with C++ and Micropython.
  3. Overview of TFT_eSPI capabilities and hardware support

    master

    TFT_eSPI is a high-performance graphics and fonts library optimized for 32-bit processors (RP2040, STM32, ESP8266, and ESP32). It supports various interface types including 4-wire SPI, 8-bit parallel, and 16-bit parallel.

    Interface Support Matrix

    Processor4 wire SPI8-bit parallel16-bit parallelDMA support
    RP2040YesYesYesYes (all)
    ESP32YesYesNoYes (SPI only)
    ESP32 C3YesNoNoNo
    ESP32 S2YesNoNoNo
    ESP32 S3YesYesNoYes (SPI only)
    ESP8266YesNoNoNo
    STM32FxxxYesYesNoYes (SPI only)
    OtherYesNoNoNo

    Key Features

    • DMA Support: Improves rendering performance for SPI interfaces on ESP32, RP2040, and STM32. Parallel DMA is exclusive to RP2040.
    • Sprites: Includes a Sprite class for flicker-free updates of complex graphics.
    • Touch Support: Built-in support for the XPT2046 touch controller on SPI displays.
    • Screen Capture: Ability to read internal TFT RAM to capture the screen (e.g., for documentation).
  4. Overview of the TFT_eSPI library

    master

    TFT_eSPI is a stand-alone library providing both graphics functions and TFT chip driver support. It is designed for high performance on 32-bit processors.

    Supported Processors:

    • ESP8266
    • ESP32
    • STM32
    • RP2040

    Performance Notes:

    • On the supported processors listed above, the library uses performance-optimized code.
    • Other Arduino IDE compatible boards are supported but will use generic functions, resulting in slower performance.
    • The library uses 32-bit variables extensively; while this is optimal for the supported chips, it will negatively impact performance on 8-bit and 16-bit processors.
  5. Hardware Specifications: T-Embed-CC1101

    master

    The T-Embed-CC1101 is an ESP32-S3 based module with Sub-GHz and NFC capabilities.

    Core Components:

    • MCU: ESP32-S3-WROOM-1
    • Memory: 16MB Flash / 8MB PSRAM
    • Sub-GHz: CC1101 transceiver
    • NFC: PN532 (I2C address 0x24)
    • Display: ST7789 (320x170 resolution)
    • Battery: 3.7V-1300mAh (Charging current should not exceed 600mA)
    • Battery Management: BQ25896 (0x6B), BQ27220 (0x55)
    • LED Driver: WS2812

    Antenna Gains:

    • 2.4G External Antenna: 1.5dBi
    • Sub-1G Antenna: -0.57dBi
  6. Hardware Specifications for T-Embed-CC1101

    master

    The T-Embed-CC1101 is an ESP32-S3 based device with integrated Sub-GHz and NFC capabilities.

    Core Hardware:

    • MCU: ESP32-S3-WROOM-1
    • Memory: 16MB Flash / 8MB PSRAM
    • Display: ST7789 (320x170)
    • Battery: 3.7V-1300mAh (Charging current should not exceed 600mA)
    • LED Driver: WS2812

    Wireless Modules:

    • Sub-GHz: CC1101 transceiver
    • NFC: PN532 (Address: 0x24)
    • Expansion Support: NRF24 module can be connected via specific pins.
  7. Use extra LVGL components

    master
    The lib/lvgl/src/extra directory contains optional components for LVGL. These are not part of the core library but provide additional functionality such as complex widgets built from existing widgets, modified widgets with special events/styles/animations, or plugin-like features. Developers can use these components to extend the UI capabilities of their LVGL-based applications.
  8. nRF24 Send / Recv Test Overview

    master

    The nrf24_send_recv_test is a demonstration example for the LilyGo T-Embed PN532 designed to test nRF24L01 wireless communication. It features an on-screen UI to monitor radio parameters and two primary operational modes:

    • RX: Receive mode, where the device listens for incoming packets.
    • TX BURST: Periodic transmit mode, where the device sends data at a set interval.

    Status is visually indicated via WS2812 LEDs:

    • Green: RX mode
    • Blue: TX mode
  9. Use the RotaryEncoder library for Arduino

    master
    The RotaryEncoder library is designed for the Arduino environment to handle rotary encoder inputs. It specifically supports rotary encoders that exhibit a phase change on both input signals during a single notch of rotation. This makes it suitable for high-precision or specific hardware encoder types that require robust state tracking.
  10. Use Flexbox layouts in LVGL

    master

    LVGL supports Flexbox layouts to arrange items in rows or columns. You can control how items wrap, how they grow to fill space, and the spacing between them.

    Key layout capabilities demonstrated in the examples include:

    • Row and Column layouts: Basic arrangement of items.
    • Wrapping: Arranging items in multiple rows/columns when they exceed container bounds.
    • Flex Grow: Allowing items to expand to fill available space.
    • Gap properties: Setting specific spacing (column and row gaps) between items.
    • Directionality: Using RTL (Right-to-Left) base direction to change item order.
  11. Support for XPT2046 Touch Controllers

    master

    The library supports the XPT2046 touch screen controller, but only for SPI-based displays.

    • Wiring: The touch controller shares the SPI bus with the TFT; you only need to provide an additional chip select (CS) line.
    • Features: Includes the Button class from Adafruit_GFX, enhanced to allow button labels to use any font supported by the library.