🌟LilyGO T-Wristband and T-Glass🌟

News

  • T-Glass has two versions, the initial preview version and T-GlassV2 version (modified prism reflection method). The difference between the two is only the display method, the hardware is the same
  • T-Wristband and T-Glass have the same hardware, but the viewing area is different due to the casing.
  • LilyGO T-Wristband and T-Glass depends on lvgl v8.4.x version. Currently lvgl has released lvgl v9.0 version. When compilation error occurs, please check whether lvgl belongs to v8.4.x
  • The visual size of T-Wristband and T-Glass is different from the actual screen size. All examples are based on the lvgl graphics framework. Other image frameworks such as TFT_eSPI are not available here.

1️⃣Support Product

Product(PinMap) SOC Flash PSRAM Resolution Visible Area
T-Glass/V2 ESP32-S3 FN4R2 4MB 2MB(QSPI) 294x126 126x126
T-Wristband ESP32-S3 FN4R2 4MB 2MB(QSPI) 294x126 126x250
Current consumption Working current sleep current sleep mode
T-Glass/V2 (240MHz) WiFi On 90~230+ mA about 300uA touch button wakeup
T-Wristband (240MHz) WiFi On 90~230+ mA about 300uA touch button wakeup

2️⃣Examples

./examples/
β”œβ”€β”€ Glass                  # Initial version
β”‚   β”œβ”€β”€ Glass6DoF 
β”‚   β”œβ”€β”€ GlassBatteryVoltage
β”‚   β”œβ”€β”€ GlassDeepSleep
β”‚   β”œβ”€β”€ GlassDisplayRotation
β”‚   β”œβ”€β”€ GlassFactory
β”‚   β”‚   └── src
β”‚   β”œβ”€β”€ GlassHelloWorld
β”‚   β”œβ”€β”€ GlassRtcAlarm
β”‚   β”œβ”€β”€ GlassRtcDateTime
β”‚   β”œβ”€β”€ GlassTouchButton
β”‚   β”œβ”€β”€ GlassTouchButtonEvent
β”‚   └── GlassVoiceActivityDetection
β”œβ”€β”€ GlassV2                # Modify the reflective prism version         
β”‚   β”œβ”€β”€ Glass6DoF
β”‚   β”œβ”€β”€ GlassBatteryVoltage
β”‚   β”œβ”€β”€ GlassDeepSleep
β”‚   β”œβ”€β”€ GlassFactory
β”‚   β”‚   └── src
β”‚   β”œβ”€β”€ GlassHelloWorld
β”‚   β”œβ”€β”€ GlassRtcAlarm
β”‚   β”œβ”€β”€ GlassRtcDateTime
β”‚   β”œβ”€β”€ GlassTouchButton
β”‚   β”œβ”€β”€ GlassTouchButtonEvent
β”‚   └── GlassVoiceActivityDetection
└── Wristband
    β”œβ”€β”€ Wristband6DoF
    β”œβ”€β”€ WristbandBatteryVoltage
    β”œβ”€β”€ WristbandDeepSleep
    β”œβ”€β”€ WristbandDisplayRotation
    β”œβ”€β”€ WristbandDisplayVisualWindow1
    β”œβ”€β”€ WristbandFactory
    β”‚   └── src
    β”œβ”€β”€ WristbandHelloWorld
    β”œβ”€β”€ WristbandLightSleep
    β”œβ”€β”€ WristbandRtcAlarm
    β”œβ”€β”€ WristbandRtcDateTime
    β”œβ”€β”€ WristbandTouchButton
    └── WristbandTouchButtonEvent

3️⃣ PlatformIO Quick Start (Recommended)

  1. Install Visual Studio Code and Python
  2. Search for the PlatformIO plugin in the VisualStudioCode extension and install it.
  3. After the installation is complete, you need to restart VisualStudioCode
  4. After restarting VisualStudioCode, select File in the upper left corner of VisualStudioCode -> Open Folder -> select the LilyGO T-Wristband and T-Glass directory
  5. Wait for the installation of third-party dependent libraries to complete
  6. Click on the platformio.ini file, and in the platformio column
  7. Uncomment one of the lines src_dir = xxxx to make sure only one line works
  8. Click the (βœ”) symbol in the lower left corner to compile
  9. Connect the board to the computer USB
  10. Click (β†’) to upload firmware
  11. Click (plug symbol) to monitor serial output
  12. If it cannot be written, or the USB device keeps flashing, please check the FAQ below

4️⃣ Install from Arduino Library Manager (recommended)

  1. Install Arduino IDE

  2. Install Arduino ESP32 V 2.0.5 or above and below V3.0, Library based on the Stable version, Please make sure the link in Boards Manager is

    https://espressif.github.io/arduino-esp32/package_esp32_index.json
    
  3. Sketch -> Include Library -> Manage Libraries

  4. Library Search -> LilyGO T-Wristband and T-Glass -> Install -> Install ALL

  5. Library Search -> lvgl -> v8.4.0 -> Install

  6. Library Search -> SensorLib -> v0.1.8 -> Install

  7. File -> Examples -> LilyGO T-Wristband and T-Glass -> Select the corresponding example

  8. Tools -> , Make your selection according to the table below

    Arduino IDE Setting Value
    Board ESP32S3 Dev Module
    Port Your port
    USB CDC On Boot Enable
    CPU Frequency 240MHZ(WiFi)
    Core Debug Level None
    USB DFU On Boot Disable
    Erase All Flash Before Sketch Upload Disable
    Events Run On Core1
    Flash Mode QIO 80MHZ
    Flash Size 4MB(32Mb)
    Arduino Runs On Core1
    USB Firmware MSC On Boot Disable
    Partition Scheme Default 4M with spiffs(1.2M APP/1.5MB SPIFFS)
    PSRAM QSPI PSRAM
    Upload Mode UART0/Hardware CDC
    Upload Speed 921600
    USB Mode CDC and JTAG
    • The options in bold are required, others are selected according to actual conditions.
  9. Select Port

  10. Click upload , Wait for compilation and writing to complete

  11. If it cannot be written, or the USB device keeps flashing, please check the FAQ below

5️⃣ Arduino IDE Manual installation (not recommended)

  1. Install Arduino IDE

  2. Install Arduino ESP32 V 2.0.5 or above and below V3.0, Library based on the Stable version, Please make sure the link in Boards Manager is

    https://espressif.github.io/arduino-esp32/package_esp32_index.json
  3. Download LilyGO T-Wristband and T-Glass , move to Arduino library folder (e.g. C:\Users\YourName\Documents\Arduino\libraries)

  4. Copy all folders in libdeps folder to Arduino library folder (e.g. C:\Users\YourName\Documents\Arduino\libraries)

  5. Tools -> , Make your selection according to the table below

    Arduino IDE Setting Value
    Board ESP32S3 Dev Module
    Port Your port
    USB CDC On Boot Enable
    CPU Frequency 240MHZ(WiFi)
    Core Debug Level None
    USB DFU On Boot Disable
    Erase All Flash Before Sketch Upload Disable
    Events Run On Core1
    Flash Mode QIO 80MHZ
    Flash Size 4MB(32Mb)
    Arduino Runs On Core1
    USB Firmware MSC On Boot Disable
    Partition Scheme Default 4M with spiffs(1.2M APP/1.5MB SPIFFS)
    PSRAM QSPI PSRAM
    Upload Mode UART0/Hardware CDC
    Upload Speed 921600
    USB Mode CDC and JTAG
    • The options in bold are required, others are selected according to actual conditions.
  6. File -> Examples -> LilyGO T-Wristband and T-Glass -> Select the corresponding example

  7. Select Port

  8. Click upload , Wait for compilation and writing to complete

  9. If it cannot be written, or the USB device keeps flashing, please check the FAQ below

6️⃣ ESP32 basic examples

7️⃣ FAQ

  1. The board uses USB as the JTAG upload port. When printing serial port information on USB_CDC_ON_BOOT configuration needs to be turned on. If the port cannot be found when uploading the program or the USB has been used for other functions, the port does not appear. Please enter the upload mode manually.

    1. Connect the board via the USB cable
    2. Press and hold the BOOT button , While still pressing the BOOT button, press RST button
    3. Release the RST button
    4. Release the BOOT button
    5. Upload sketch
  2. If the above is invalid, burn the binary file to check whether the hardware is normal

  3. If you use external power supply instead of USB-C, please turn off the USB_CDC_ON_BOOT option. This is because the board will wait for USB access when it starts.

    • For Arduino IDE users, it can be turned off in the options , Please note that turning off USB_CDC_ON_BOOT will turn off Serial redirection to USB-C. At this time, you will not see any Serial message output when opening the port from USB-C, but output from GPIO43 and GPIO44.
    Tools -> USB CDC On Boot -> Disable
    • For Platformio users, you can add the following compilation flags in the ini file
    build_flags =
        ; Enable -DARDUINO_USB_CDC_ON_BOOT will start printing and wait for terminal access during startup
        ; -DARDUINO_USB_CDC_ON_BOOT=1
    
        ; Enable -UARDUINO_USB_CDC_ON_BOOT will turn off printing and will not block when using the battery
        -UARDUINO_USB_CDC_ON_BOOT
  4. The JD9613 display RAM is only 1/2 the screen size and does not support rotation.Directions 0 and 1 can adjust the vertical direction, horizontal 1 and 3 are the same direction.

    // Set the screen orientation to portrait , 0 and 2 are two opposite vertical directions
     amoled.setRotation(0);
     amoled.setRotation(2);
    
    // Set the screen orientation to horizontal. 1 and 3 are all in the same direction and cannot be changed.
     amoled.setRotation(1);
     amoled.setRotation(3);

8️⃣ Resource

Product(PinMap) schematic
T-Glass schematic
T-Wristband schematic
T-Glass & T-Wristband datasheet

8️⃣ Depends on required libraries