EJ Workspace for LVGL performance benchmarking and testing. This workspace uses the EJ framework to run automated performance benchmarks on real embedded hardware as part of LVGL's continuous integration pipeline.
This workspace contains everything needed to build, deploy, and run LVGL performance tests across multiple embedded platforms. It leverages EJ's distributed testing architecture to automatically measure LVGL performance on real hardware and report results back to the CI system.
ejlv_builder/- Custom EJ builder application that handles building and running LVGL benchmarks for different target platformsconfig.toml- EJ configuration defining available boards and their build/run configurations- Board-specific directories - Contains platform-specific build configurations, source code, and scripts
lvgl/- LVGL library submodule used for benchmarkingservice/- Systemd service configuration for running the EJ builder as a daemon
- Rust toolchain (latest stable)
- Target hardware properly configured and accessible
- SSH access to target boards (where applicable)
- Platform-specific build tools (CMake, ESP-IDF, etc.)
- Clone this repository with submodules:
git clone --recursive <repository-url>- Install
ejbandejlv_builder:
cargo install ejb
cargo install --path ejlv_builder- Setup EJB
Modify the paths to match your local setup. You will have to modify the paths inside config.toml to point to your local LVGL repository and the specific board results files.
- Configure the EJ builder by editing
service/ejb.env:
EJB_ID=your-builder-id
EJB_TOKEN=your-auth-token
EJB_CONFIG_PATH=/path/to/config.toml
EJB_SERVER=https://ci.lvgl.ioModify the WorkingDirectory and ExecStart paths in service/ejb.service to point to your local paths.
We recommend using the logs directory as the working directory for EJB.
- Install and start the EJ builder service:
sudo cp service/ejb.service /etc/systemd/system/
sudo cp service/ejb.env /etc/ejb/
sudo systemctl enable ejb
sudo systemctl start ejbYou can check the status and logs of the service with:
sudo systemctl status ejb
journalctl -u ejb -fTo add support for a new board or configuration:
- Add the board configuration to
config.toml - Create the platform-specific build directory and files
- Implement build and run logic in
ejlv_builder/src/main.rs - Test the configuration locally before deploying
This workspace is part of the LVGL ecosystem. For questions or contributions:
- LVGL Issues: LVGL GitHub Repository
- EJ Framework: EJ Documentation
This project follows the same licensing as LVGL. See individual components for specific license information.