* refactor modules * moved esp_lvgl_port to libs/ * added missing file * fix for sim build * various sim/pc fixes * lvgl improvements * added missing cmake files
Overview
Tactility is a front-end application platform for ESP32. It is mainly intended for touchscreen devices. It provides an application framework that is based on code from the Flipper Zero project.
Tactility provides:
- A hardware abstraction layer
- UI capabilities (via LVGL)
- An application platform that can run apps and services
Requirements:
- ESP32 (any?)
- esp-idf 5.1.2 or a newer v5.1.x
- a display (connected via SPI or I2C)
Status: Alpha
Technologies
UI is created with lvgl via esp_lvgl_port.
LCD and input drivers are based on esp_lcd and esp_lcd_touch.
Supported Hardware
Devices
Predefined configurations are available for:
- Yellow Board: 2.4" with capacitive touch (2432S024C) (see AliExpress 1, 2)
- LilyGo T-Deck (see lilygo.cc, AliExpress)
- (more will follow)
Other configurations can be supported, but they require you to set up the drivers yourself:
- Display drivers: esp-bsp and Espressif Registry.
- Touch drivers: Espressif Registry.
Guide
Build environment setup
Ensure you have esp-idf 5.1.2 installed, then select the correct device:
Copy the sdkconfig.board.YOUR_BOARD into sdkconfig. Use sdkconfig.defaults if you are setting up a custom board.
Building firmware
You can run idf.py flash monitor, but there are some helpers available too:
./build.sh - build the ESP-IDF or the PC version of Tactility (*)
./build.sh -p /dev/ttyACM0 - optional: you can pass on extra parameters for esp-idf builds
./run.sh - Does flash and monitor for ESP-IDF and simply builds and starts it for PC
The build scripts will detect if ESP-IDF is available. They will adapter if you ran ${IDF_PATH}/export.sh.
Development
Until there is proper documentation, here are some pointers:
- Sample application: bootstrap and app
- Tactility: The main platform with default services and apps.
- Tactility Core: The core platform code.