- Auto-select widgets in Launcher and apps with toolbars on devices without touch. - Improved USB HID input reliability, cleanup - Updated PSRAM settings to improve boot stability on supported devices. - Prevented duplicate Wi-Fi event subscriptions during screen rebuilds. - Updated docs - Fixes in WifiManage and WifiConnect - Reduced main task stack size - Moved USB HID stack size to PSRAM when available - app_manager_find_manifest() now returns a copy instead of a pointer
2.1 KiB
Building
Git
The repository uses git submodules. Make sure to use --recurse-submodules on relevant git commands.
Simulator (Linux/macOS, no ESP-IDF needed)
Important
The simulator does NOT build or run on native Windows (Win32/PowerShell/cmd). This is a hard platform limitation, not a missing tool or PATH issue — do not attempt
cmake -B buildsimon Windows, it will not work. WSL is a separate, Linux environment and is fine.
cmake -B buildsim -G Ninja
ninja -C buildsim # build firmware + tests
./buildsim/Firmware/Tactility # run simulator
ESP32 firmware
python device.py <device-id> # generate sdkconfig for device (e.g. lilygo-tdeck)
python device.py <device-id> --dev # dev mode: force 4MB partition table
idf.py build # build firmware
idf.py flash monitor # flash and monitor
Device IDs are the folder names under Devices/ (e.g. lilygo-tdeck, m5stack-cores3, cyd-2432s028r).
Windows: activating the ESP-IDF environment
On native Windows, idf.py is not on PATH by default — it must be activated per-shell first.
The install script places a PowerShell profile activator per IDF version at
%IDF_TOOLS_PATH%\Microsoft.v<version>.PowerShell_profile.ps1 (path controlled by the
IDF_TOOLS_PATH environment variable, set to wherever ESP-IDF's tools were installed, e.g.
C:\Espressif\tools). Source it before running any idf.py command:
. "$env:IDF_TOOLS_PATH\Microsoft.v5.5.2.PowerShell_profile.ps1" # match the installed IDF version
Set-Location "<repo-root>"
idf.py build 2>&1 | Select-Object -Last 250
This is Windows-specific setup (the main dev works on Linux, where idf.py is normally
already on PATH via export.sh/. ./export.sh or a shell profile).
Devicetree
A device implementation has a .dts file.
The parser at Buildscripts/DevicetreeCompiler/ converts DTS into C code.
It's called from the Firmware/ build process.
Tests
Tests use Doctest and run on simulator (POSIX) target only:
cmake -B buildsim -G Ninja
ninja -C buildsim build-tests
cd buildsim && ctest --test-dir Tests