|
| 1 | +# LVGL ported to RZ/G3E-EVKIT |
| 2 | + |
| 3 | +## Overview |
| 4 | + |
| 5 | +The RZ/G3E-EVKIT is a development kit for the RZ/G3E MPU. It's a SMARC v2.1 System-on-Module (SOM) |
| 6 | +with a carrier board. It is one of the more powerful MPU boards available and has some specialized |
| 7 | +applications in mind for use with GStreamer and electrical current measurement. |
| 8 | + |
| 9 | +## Buy |
| 10 | + |
| 11 | +You can purchase RZ/G3E-EVKIT from https://www.renesas.com/en/design-resources/boards-kits/rz-g3e-evkit |
| 12 | + |
| 13 | +## Benchmark |
| 14 | + |
| 15 | +<!-- <a href="https://www.youtube.com/watch?v=XXXXXXXXXXXXXXXXXXXXXXX"> |
| 16 | + <img src="https://github.com/user-attachments/assets/87c1f2e5-0260-4772-b711-13fdab467474" width="75%"> |
| 17 | +</a> --> |
| 18 | + |
| 19 | +Here are the results of the benchmark with multi-threaded software rendering to an OpenGLES EGL display, |
| 20 | +with a 16 ms refresh period (60 FPS target). |
| 21 | + |
| 22 | +| Name | Avg. CPU | Avg. FPS | Avg. time | render time | flush time | |
| 23 | +| :------------------------ | -------: | -------: | --------: | ----------: | ---------: | |
| 24 | +| Empty screen | 10% | 55 | 7 | 0 | 7 | |
| 25 | +| Moving wallpaper | 24% | 61 | 10 | 3 | 7 | |
| 26 | +| Single rectangle | 7% | 61 | 7 | 0 | 7 | |
| 27 | +| Multiple rectangles | 10% | 61 | 8 | 1 | 7 | |
| 28 | +| Multiple RGB images | 18% | 61 | 8 | 1 | 7 | |
| 29 | +| Multiple ARGB images | 29% | 61 | 11 | 4 | 7 | |
| 30 | +| Rotated ARGB images | 26% | 55 | 16 | 9 | 7 | |
| 31 | +| Multiple labels | 24% | 61 | 10 | 3 | 7 | |
| 32 | +| Screen sized text | 42% | 61 | 13 | 6 | 7 | |
| 33 | +| Multiple arcs | 28% | 61 | 10 | 3 | 7 | |
| 34 | +| Containers | 16% | 61 | 9 | 2 | 7 | |
| 35 | +| Containers with overlay | 48% | 55 | 16 | 9 | 7 | |
| 36 | +| Containers with opa | 18% | 61 | 11 | 4 | 7 | |
| 37 | +| Containers with opa_layer | 21% | 57 | 14 | 7 | 7 | |
| 38 | +| Containers with scrolling | 39% | 61 | 13 | 6 | 7 | |
| 39 | +| Widgets demo | 18% | 58 | 10 | 3 | 7 | |
| 40 | +| All scenes avg. | 23% | 59 | 10 | 3 | 7 | |
| 41 | + |
| 42 | +## Specification |
| 43 | + |
| 44 | +### CPU and Memory |
| 45 | +- **CPU:** 1.8 GHz quad core ARM Cortex-A55 |
| 46 | +- **RAM:** 4GB LPDDR4X SDRAM |
| 47 | +- **Flash:** Micro SD card, 64 GB eMMC, 16 MB flash |
| 48 | +- **GPU:** Mali-G52 |
| 49 | + |
| 50 | +### Display and Touch |
| 51 | +- **Resolution:** Micro HDMI 1920x1080 |
| 52 | +- **Interface:** HDMI from MIPI on carrier board. HDMI from RGB also available on SoM |
| 53 | +- **Color Depth:** 32-bit |
| 54 | + |
| 55 | +### Connectivity |
| 56 | +- Dual ethernet |
| 57 | +- 6x USB (2.0, 3.0, type-C, micro 2.0 OTG) |
| 58 | +- multi audio jack interface |
| 59 | +- SIM card |
| 60 | +- PMOD ports |
| 61 | +- Camera ribbon connectors |
| 62 | + |
| 63 | +## Getting started |
| 64 | + |
| 65 | +### Hardware setup |
| 66 | + |
| 67 | +You will need to provide your own 65 watt USB C power supply and a Micro SD card. |
| 68 | + |
| 69 | +- Connect SER3_UART to your PC. |
| 70 | +- Connect the Micro HDMI port to a monitor. |
| 71 | +- Optionally connect ethernet. |
| 72 | +- Connect the 65 watt USB power supply to USB-C PWR IN when it's time to power the board. |
| 73 | + |
| 74 | +### Software setup |
| 75 | + |
| 76 | +Follow the instructions in "RZ_G3E Evaluation Board Kit Quick Start Guide.pdf" |
| 77 | +in this repo which is from |
| 78 | +https://www.renesas.com/en/design-resources/boards-kits/rz-g3e-evkit#documents. |
| 79 | +It is a detailed guide for obtaining the OS image, flashing the Micro SD card, and |
| 80 | +flashing the board's bootloader into its ROM. |
| 81 | +This GitHub repo contains a copy of the prebuilt OS images ZIP file in the |
| 82 | +[Releases](https://github.com/lvgl/lv_port_renesas_rz-g3e-evkit/releases) artifacts. |
| 83 | +Flashing the bootloader is a bit complex |
| 84 | +so follow the directions carefully. The guide says to use Tera Term to send files over |
| 85 | +serial to the board. Tera Term is a Windows application. If you are using Linux, you can send |
| 86 | +files over serial by opening the serial port with the correct baud settings at least once |
| 87 | +and then using `cat` to send the file to the serial device. E.g. `cat file.txt > /dev/ttyUSB0`. |
| 88 | +You may be able to keep the serial terminal open while you run this command in a separate |
| 89 | +terminal. |
| 90 | + |
| 91 | +You need an SDK to cross-compile applications to run on the board. When you compile an OS |
| 92 | +image locally with Yocto, it also produces an SDK. To save you the time needed to build Yocto, |
| 93 | +an SDK is included in the GitHub repo's |
| 94 | +[Releases](https://github.com/lvgl/lv_port_renesas_rz-g3e-evkit/releases) artifacts. |
| 95 | +It's for x86-64 architecture systems, so you will need to use an |
| 96 | +x86-64 emulator to run it if your development PC is x86-32 or ARM based. Docker has support for emulation. |
| 97 | +Unzip sdk.zip and execute the shell script |
| 98 | +rz-vlp-glibc-x86_64-core-image-weston-cortexa55-smarc-rzg3e-toolchain-5.0.8.sh. |
| 99 | +If you wish to uninstall it, simply delete `/opt/rz-vlp/` or just `/opt/rz-vlp/5.0.8` |
| 100 | +if you have multiple SDK versions. To activate the SDK in your current terminal, run |
| 101 | +`. /opt/rz-vlp/5.0.8/environment-setup-cortexa55-poky-linux`. It will set environment |
| 102 | +variables like `CC`, the compiler. You can run `$CC main.c` to compile a C file that |
| 103 | +will be able to run on the board. |
| 104 | + |
| 105 | +### Run the project |
| 106 | + |
| 107 | +- Clone this repository and its submodules: |
| 108 | + `git clone --recursive https://github.com/lvgl/lv_port_linux.git` |
| 109 | +- Open the project in an editor of your choice. |
| 110 | +- Before doing anything else in the terminal, make sure the SDK environment variables |
| 111 | + have been set as mentioned above. Run |
| 112 | + `. /opt/rz-vlp/5.0.8/environment-setup-cortexa55-poky-linux`. |
| 113 | +- We recommend using `drm-egl-2d` config for this board. Select it by running |
| 114 | + The SDK includes `cmake` and `ninja` so you don't need to install them. |
| 115 | + |
| 116 | + ```shell |
| 117 | + cmake -B build -DCONFIG=drm-egl -GNinja |
| 118 | + ``` |
| 119 | +- Edit `src/main.c` if you want to change the default demo. |
| 120 | +- Build the project. |
| 121 | + ```shell |
| 122 | + ninja -C build -j$(nproc) lvglsim |
| 123 | + ``` |
| 124 | +- The executable is at `build/bin/lvglsim`. Copy it to the board. If ethernet is connected, |
| 125 | + you can do it with `scp build/bin/lvglsim root@<board ip>:/root/` where `<board ip>` is |
| 126 | + the IP address of the board which you find by running `ip a` on the board serial terminal. |
| 127 | +- In the serial terminal of the board, stop the Wayland desktop, weston, |
| 128 | + so EGL can run directly on the display through DRM. |
| 129 | + Run `systemctl stop weston weston.socket` to stop weston and the weston socket. |
| 130 | +- Run `./lvglsim` to start the app. |
| 131 | + |
| 132 | +You can also use the wayland configuration. Select it with: |
| 133 | + |
| 134 | +```shell |
| 135 | +cmake -B build -DCONFIG=wayland |
| 136 | +``` |
| 137 | + |
| 138 | +You can give `-W` and `-H` arguments to `lvglsim` to change the window size. |
| 139 | +E.g. `./lvglsim -W 1920 -H 1080`. This project uses OpenGL ES |
| 140 | +by default since it was found to have the best flushing performance, especially when |
| 141 | +the refresh period is 16 ms (60 FPS target). |
| 142 | + |
| 143 | +### Debugging |
| 144 | + |
| 145 | +The OS image does not have `gdbserver` which is typically what you'd need to do remote |
| 146 | +interactive debugging. You will need to build the image with Yocto and include gdbserver |
| 147 | +in the configuration. |
| 148 | + |
| 149 | +## Notes |
| 150 | + |
| 151 | +More information and resources are available at: |
| 152 | +- https://www.renesas.com/en/design-resources/boards-kits/rz-g3e-evkit#documents |
| 153 | +- https://www.renesas.com/en/software-tool/rzg3e-board-support-package#download |
| 154 | + |
| 155 | +## Contribution and Support |
| 156 | + |
| 157 | +If you find any issues with the development board feel free to open an Issue in this repository. For LVGL related issues (features, bugs, etc) please use the main [lvgl repository](https://github.com/lvgl/lvgl). |
| 158 | + |
| 159 | +If you found a bug and found a solution too please send a Pull request. If you are new to Pull requests refer to [Our Guide](https://docs.lvgl.io/master/CONTRIBUTING.html#pull-request) to learn the basics. |
| 160 | + |
0 commit comments