Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kamranaghlami/t-display-s3
A boilerplate project for LILYGO's T-Display-S3 using the PlatfomIO IDE, Arduino framework and LVGL.
https://github.com/kamranaghlami/t-display-s3
arduino esp32s3 lvgl platformio t-display-s3
Last synced: 3 months ago
JSON representation
A boilerplate project for LILYGO's T-Display-S3 using the PlatfomIO IDE, Arduino framework and LVGL.
- Host: GitHub
- URL: https://github.com/kamranaghlami/t-display-s3
- Owner: KamranAghlami
- License: mit
- Created: 2022-12-16T21:07:19.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-09-05T04:25:16.000Z (4 months ago)
- Last Synced: 2024-10-10T13:24:19.916Z (3 months ago)
- Topics: arduino, esp32s3, lvgl, platformio, t-display-s3
- Language: C
- Homepage:
- Size: 13.6 MB
- Stars: 33
- Watchers: 3
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# T-Display-S3
A boilerplate project for getting started with LILYGO's [T-Display-S3](https://www.lilygo.cc/products/t-display-s3) using the [PlatformIO](https://platformio.org) IDE, [Arduino](https://www.arduino.cc/) framework, and [LVGL](https://lvgl.io/) graphics library.**Features**:
- Takes care of initializing the hardware.
- Uses the local RAM for a twin framebuffer setup with DMA, and Espressif's LCD driver APIs for the highest display throughput.
- Initializes the external PSRAM where it allocates LVGL's working memory.
- Mounts the internal flash as a storage medium and makes it available to LVLG as the "F:" drive.
- Maps hardware keys to an LVGL keypad input device with "Up", "Down" and "Enter" key events.
- Provides battery voltage readings in millivolts with an API call.
- Uses the latest version of LVGL. (v9.1.0)
**Partition Table**:The 16MB flash is partitioned as follows, there are 20KBs of space allocated as `nvs` key-value storage, an `otadata` partition, and two `app` partitions defined, 2.93MBs each so that OTA updates can be supported as well. Finally, 10.92MBs of space is allocated to the `storage` partition available to the user to work with.
| Name | Type | SubType | Offset | Size |
|----------|------|---------|----------|----------|
| nvs | data | nvs | 0x9000 | 0x5000 |
| otadata | data | ota | 0xe000 | 0x2000 |
| app0 | app | ota_0 | 0x10000 | 0x2f0000 |
| app1 | app | ota_1 | 0x300000 | 0x2f0000 |
| storage | data | spiffs | 0x5f0000 | 0xa10000 |## Getting Started
It is as easy as inheriting from the `application` class and overriding `on_create` and `on_update` methods.Check out the [example.cpp](src/example/example.cpp) file, It's a simple physics simulation application provided to help as a starting point and as an artificial load for testing.
![docs/example.gif](docs/example.gif?raw=true)
**Note:** As mentioned, this example utilizes Espressif's [Storage API](https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/api-reference/storage/index.html), so if you're building from source don't forget to build and upload the filesystem image as well before the first use.
## Try it out
Got your board at hand? Download the latest [release](https://github.com/KamranAghlami/T-Display-S3/releases/latest) and flash online via [ESP Tool](https://espressif.github.io/esptool-js). Use the provided `offsets.json` file to specify which address to flash each bin file to.