Skip to content

velijv/LILYGO-T-Watch-S3-ESPHome

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LILYGO® LILYGO T-Watch S3 ESPHome ESPHome

LILYGO® T-Watch S3 full feature implementation for ESPHome

T-Watch S3 ESPHome

Specs

Technical details 🧑‍💻 + datasheets 📚

Espressif Systems ESP32-S3 (revision v0.2) dual-core Tensilica LX7 @ up to 240 MHz with vector instructions for AI acceleration

  • Bluetooth: BLE V5.0
  • Multiprotocol Modules SMD Module, ESP32-S3R8, 3.3V,
  • 8 MB Octal PSRAM Die (OPI)
  • 16 MB Quad SPI Flash, (QIO) Quad I/O 4 pins used for address & data.
  • 512KB SRAM
  • 128-bit data bus and SIMD commands
  • 384 KB ROM
  • 16 KB SRAM in RTC
  • CONNECTOR (OK-22F024-04) - terminal board-to-board connector

Watch

Result

T-Watch S3 T-Watch S3 T-Watch S3

Features

Tip

Use all the devices capabilities that it is supposed to do with factory software.

Microphone

🎙️ (SPM1423HM4H-B PDM) yaml 👇
microphone:
  - platform: i2s_audio
    bits_per_sample: 16bit
    channel: right
    i2s_din_pin: ${BOARD_MIC_DATA}
    adc_type: external
    pdm: true

Speaker

🔊 (MAX98357A) with R0805 speaker yaml 👇
media_player:
  - platform: i2s_audio
    i2s_dout_pin:
      number: ${BOARD_DAC_IIS_DOUT}
      ignore_strapping_warning: true
    dac_type: external
    mode: mono
    i2s_comm_fmt: msb
  • voice_assistant enabled

ST7789V

📺 Display (ST7789V) 240x240 220ppi 16-bit, 1.54" IPS LCD over SPI yaml 👇
display:
  - platform: ili9xxx
    model: ST7789V
    transform:
      mirror_x: true
      mirror_y: true
      swap_xy: false
    dimensions:
      width: ${BOARD_TFT_WIDTH}
      height: ${BOARD_TFT_HEIGHT}
      offset_width: 0
      offset_height: 80
    invert_colors: true
    cs_pin: ${BOARD_TFT_CS}
    dc_pin: ${BOARD_TFT_DC}

FT6336

🫵 Touchscreen (FT63X6/FT6336) Capacitative touch Wide angle TFT LCD Display yaml 👇
touchscreen:
  - platform: ft63x6
    id: ft6336
    i2c_id: touch_bus
    address: 0x38
    interrupt_pin:
      number: ${BOARD_TOUCH_INT}
  • Use interrupt_pin to wake from deep_sleep
  • Custom code to recognise swipe gestures!

PCF8563

🕰️ RTC Clock (PCF8563 + battery) yaml 👇
time:
  - platform: pcf8563
    id: rtc_time
    i2c_id: primary_bus
    address: 0x51
#    interrupt_pin:
#      number: ${BOARD_RTC_INT_PIN}
  • Add interrupt_pin functionality to allow waking from deep_sleep

remote_transmitter

🟣 Infrared (IR) yaml 👇
remote_transmitter:
  pin:
    number: ${BOARD_IR_PIN}
  carrier_duty_percent: 50%
  • dynamic implementation to send any remote_transmitter protocol from one text input
  • ESPHome implementation of tv-b-gone

Custom Components

Battery Charger Touch Grid Sensor Test
custom 🦄 components for

AXP2101

🔋 PMU (Highly Integrated Power Management Unit)
  • manager your own power, set low power warning
  • Access button presses
  • disable/enable power for any integrated component
yaml
  - platform: axp2101
    model: TWATCHS3
    address: 0x34
    interrupt_pin:
      number: ${BOARD_PMU_INT}
    short_press:
      name: Short Press
    long_press:
      name: Long Press
    battery_powercut:
      name: Battery Powercut
      device_class: voltage
    battery_voltage:
      name: Battery Voltage
      device_class: voltage
    battery_level:
      name: Battery Level
      device_class: battery
    battery_charging:
      name: Battery Charging
    connectivity:
      name: USB Plugged
      device_class: plug

BMA423

🧭 Gyroscope/Pedometer (BMA423 3-axis Accelerometer)
  • Step Counter, Interaction recognition
  • Wake the display by tapping on the display
  • Use interrupt_pin to wake from deep_sleep
yaml
bma423:
  address: 0x19
  interrupt_pin:
    number: ${BOARD_BMA423_INT1}
  orientation:
    name: Orientation
  temperature:
    name: Internal Temperature
  steps:
    name: Steps
  acceleration_x:
    name: X
  acceleration_y:
    name: Y
  acceleration_z:
    name: Z
  tilt:
    name: Tilt
  wakeup:
    name: Wakeup
  step_counter:
    name: Step Counter
  activity:
    name: Activity
  no_motion:
    name: No Motion
  any_motion:
    name: Any Motion

DRV2605L

📳 Haptics (Haptic Driver Motor for ERM and LRA with Effect Library and Smart-Loop Architecture)
  • use 127 ready-make vibration effects multiplied by 6 modes
  • Use your microphone or speaker to generate real-time haptic feedback
  • draw waveforms on your display
yaml
drv2605:
  address: 0x5a

SX1262

📻 LoRa (Semtech SX1262)
  • Semtech SX1262 LoRa RF transceiver: 433 MHz, 868 MHz, 915 MHz
  • SX1262 Low Power Transceiver (Support Baud: 433Mhz, 868Mhz, 915Mhz)

Pre-made display pages

Global

graphical_display_menu esp32_improv wifi ap qr_code

Global Header Menu Improv
Home & Global Header Graphical Display Menu Bluetooth / Improv / Access Point

Watch faces

Basic Watch Hands Image as Face Color by time

Navigation

  • 4 + 4 Swipe Gestures (up, down, left, right) + diagonal
  • graphical_display_menu
  • configured touchscreen binary_sensor grids to toggle switch, press button etc.
Menu Grid in use 3x3 Grid 4x4 Grid
Graphical Display Menu Color test Grid test

Screenshot Web Server

Tip

See and share what's on your display. 🦄

  • Like an esp32_camera web_server but for your display. ✨
  • Can be used with any display 🌈
yaml
screen_server:
  - port: 888
    display: lcd
Online image Spotify Cover Art Color Test
online_image Spotify Albym Art Color test

Note

All product names, logos, and brands are property of their respective owners. All company, product and service names used are for identification purposes only. Use of these names, logos, and brands does not imply endorsement.

"Anyway, regardless of your opinion on people getting paid for their work, or holding open source code hostage (depending on your perspective)" 😅

To release the full source, I would like to achieve a sponsorship goal.

uwu Buy Me a Cofffee PayPal About Sponsoring

LILYGO® T-Watch S3 ESPHome © 2024 by Veli-Johan Veromann is licensed under Attribution-NonCommercial-NoDerivatives 4.0 International LILYGO® Espressif ESPHome Home Assistant

GitHub repo file or directory count GitHub repo size GitHub commit activity