LILYGO® T-Watch S3 full feature implementation for ESPHome
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
Tip
Use all the devices capabilities that it is supposed to do with factory software.
🎙️ (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
🔊 (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
📺 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}
🫵 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 fromdeep_sleep
- Custom code to recognise swipe gestures!
🕰️ 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 fromdeep_sleep
🟣 Infrared (IR) yaml
👇
remote_transmitter:
pin:
number: ${BOARD_IR_PIN}
carrier_duty_percent: 50%
- dynamic implementation to send any
remote_transmitter
protocol from onetext
input - ESPHome implementation of tv-b-gone
Battery Charger | Touch Grid | Sensor Test |
---|---|---|
custom 🦄 components for
🔋 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
🧭 Gyroscope/Pedometer (BMA423 3-axis Accelerometer)
- Step Counter, Interaction recognition
- Wake the display by tapping on the display
- Use
interrupt_pin
to wake fromdeep_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
📳 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
📻 LoRa (Semtech SX1262)
- Semtech SX1262 LoRa RF transceiver: 433 MHz, 868 MHz, 915 MHz
- SX1262 Low Power Transceiver (Support Baud: 433Mhz, 868Mhz, 915Mhz)
graphical_display_menu
esp32_improv
wifi
ap
qr_code
Global Header | Menu | Improv |
---|---|---|
Basic | Watch Hands | Image as Face | Color by time |
---|---|---|---|
- 4 + 4 Swipe Gestures (up, down, left, right) + diagonal
-
graphical_display_menu
- configured
touchscreen
binary_sensor
grids to toggleswitch
, pressbutton
etc.
Menu | Grid in use | 3x3 Grid | 4x4 Grid |
---|---|---|---|
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 |
---|---|---|
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.