LILYGO-T-Watch-S3-ESPHome

@LILYGO® T-Watch S3 feature implementation for @ESPHome

Stars
12
Committers
1

LILYGO T-Watch S3 ESPHome

LILYGO T-Watch S3 full feature implementation for ESPHome

T-Watch S3 ESPHome

Specs

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

Result

Features

[!TIP] Use all the devices capabilities that it is supposed to do with factory software.

Microphone

microphone:
  - platform: i2s_audio
    bits_per_sample: 16bit
    channel: right
    i2s_din_pin: ${BOARD_MIC_DATA}
    adc_type: external
    pdm: true

Speaker

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:
  - 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:
  - 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

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

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

AXP2101

  • manager your own power, set low power warning
  • Access button presses
  • disable/enable power for any integrated component
  - 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

  • Step Counter, Interaction recognition
  • Wake the display by tapping on the display
  • Use interrupt_pin to wake from deep_sleep
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

  • 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
drv2605:
  address: 0x5a

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

Watch faces

Navigation

  • 4 + 4 Swipe Gestures (up, down, left, right) + diagonal
  • graphical_display_menu
  • configured touchscreen binary_sensor grids to toggle switch, press button etc.

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
screen_server:
  - port: 888
    display: lcd

[!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.

Badges
Extracted from project README
Build and Publish ESPHome firmware and website pages-build-deployment 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
Related Projects