Skip to content

Minimal MicroPython programming example for the Lilygo T-WATCH S3

License

Notifications You must be signed in to change notification settings

brucekissinger/t-watch-s3-micropython

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MicroPython programming of Lilygo T-WATCH S3.

This repositry contains the minimal stuff needed to program the T-WATCH S3 in MicroPython. For now there is code to:

  1. Setup the AX2101 power manager chip in order to give current to the different subsystems, enable the TFT display backlight, setup charging, and so forth.
  2. Configure SPI correctly in order to use a MicroPython ST7789 display driver that was already available here.

DISCLAIMER: I wrote this code based on the available information and the C implementation of Lilygo. However this code is not well tested and may ruin your device. Use it at your own risk.

Installing MicroPython

WARNING: after installing MicroPython you will no longer be able to flash the device with esptools if you don't press the boot button inside the device, accessible under the battery, as explained here.

I just used the generic MicroPython release for the S3 device. The file name is ESP32_GENERIC_S3-20231005-v1.21.0.bin.

esptool.py --chip esp32s3 --port /dev/tty.usbmodem* erase_flash
esptool.py --chip esp32s3 --port /dev/tty.usbmodem* write_flash -z 0 ESP32_GENERIC_S3-20231005-v1.21.0.bin

Transferring the example files on the device

Use talk32 to transfer the .py files to the device:

talk32 /dev/tty.your.usb.serial.device put *.py

Then enter the device in REPL mode:

talk32 /dev/tty.your.usb.serial.device repl

Hit Ctrl+D to reset the device and you should see a demo usign the TFT screen. The screen should change color every 2 seconds.

Work in progress

This is a work in progress, my goal is to just gain enough access to the device in order to port FreakWAN into this device. My plans if I find some time is to write an SX126x driver similar to the one I wrote for the SX127x LoRa chip (part of FreakWAN), implement the terminal-style display code for the watch and not much than this.

The problem is that there are no guarantees this device will be produced in the future, so since I own two of these, I'll try to make them working, but likely most of the future developments will focus more on the T-BEAM and T3 devices that are sold for many years.

About

Minimal MicroPython programming example for the Lilygo T-WATCH S3

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%