A boilerplate project for getting started with LILYGO's T-Display-S3 using the PlatformIO IDE, Arduino framework, and LVGL 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 |
It is as easy as inheriting from the application
class and overriding on_create
and on_update
methods.
Check out the example.cpp file, It's a simple physics simulation application provided to help as a starting point and as an artificial load for testing.
Note: As mentioned, this example utilizes Espressif's Storage API, so if you're building from source don't forget to build and upload the filesystem image as well before the first use.
Got your board at hand? Download the latest release and flash online via ESP Tool. Use the provided offsets.json
file to specify which address to flash each bin file to.