# lv_m5_emulator
**Repository Path**: freenuts/lv_m5_emulator
## Basic Information
- **Project Name**: lv_m5_emulator
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-06-14
- **Last Updated**: 2025-06-14
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Running the M5Stack LVGL device emulator via PlatformIO
Now it is more convenient to design [LVGL](https://github.com/lvgl/lvgl) UI on PC,
which can reduce the time wasted in flash the firmware.
Using [M5GFX](https://github.com/m5stack/M5GFX), we can ensure that the display
effect on the PC side is consistent with that of the device.
Now we have also added a picture of the device shell as the border background,
which can better simulate the display effect on the device side.
## How to install & use demo
### Install Visual Studio Code
https://code.visualstudio.com/ - follow instructions there, if you don't have
vscode yet.
### Install SDL drivers
**Linux (Ubuntu, Debian, ...)**
Use one of options below:
```sh
# 64 bits
sudo apt-get install libsdl2-dev
```
```sh
# 32 bits
sudo apt-get install gcc-multilib g++-multilib libsdl2-dev:i386
```
Note:
- Use 32-bits build for more correct memory stat info.
- If you have conflicts on `libsdl2-dev:i386` install, remove 64-bits version
and dependencies first.
**MacOS**
Use [Homebrew](https://brew.sh/):
```sh
brew install sdl2 pkg-config
```
Note:
On MacOS you need to include (uncomment in provided example [platformio.ini](./platformio.ini) file) these lines in your platformio.ini file to import the drivers:
```
; SDL2 includes
!pkg-config --cflags SDL2
!pkg-config --libs SDL2
```
**Windows**
Use [MSYS2](https://www.msys2.org/)
```sh
pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-SDL2
```
Add the path to your Mingw-w64 `bin` folder to the Windows PATH environment
variable (usually `C:\msys64\mingw64\bin`). See [instruction, 4](https://code.visualstudio.com/docs/cpp/config-mingw#_prerequisites).
### Install flasher drivers (optional)
If you plan to upload firmware & debug hardware, read notes in PlatformIO
[install docs](http://docs.platformio.org/en/latest/installation.html#troubleshooting).
### Choose LVGL version(V8 or V9)
If you want build with lvgl v8, this was default option, you don't need change any files!
But if you want try the lvgl latest version v9, you need to modify the version control macro definition in [platformio.ini](./platformio.ini) file as:
```
-D LVGL_USE_V8=0 ; lvgl v8
-D LVGL_USE_V9=1 ; lvgl v9
```
And don't forget to modify the links of the dependent libs to this:
```
; lvgl=https://github.com/lvgl/lvgl/archive/refs/tags/v8.3.0.zip ; lvgl v8
lvgl=https://github.com/lvgl/lvgl#master ; lvgl v9
```
### Build/Run
1. Clone this repository or download as zip.
2. In vscode, open folder via `File` -> `Open Folder...` menu.
- If you do it first time - agree, when it suggests to install PlatformIO
plugin, and wait when PlatformIO then install build tools and package
dependencies.
To build/execute, on PlafomIO tab expand desired env and click target:
Note, for emulator env `upload` also executes compiled binary.
### Zoom and rotate the window at runtime
The emulator support zoom and rotate the window at runtime. So you can easily zoom and rotate the window to view UI details.
1. Zoom
Press :keyboard: **1 ~ 6** number key to zoom the window size.
1. Rotate
Press :keyboard: **"L"** **"R"** letter key to rotate the window.