This project was developed as part of a Bachelor’s thesis titled:
Development of a Cross-Platform GUI for the Control of an RF Power Amplifier Evaluation System Using Open-Source Software
The focus of this work is the implementation of a real-time, interactive graphical user interface for an RF power amplifier evaluation system on microcontroller-based hardware.
The developed GUI enables continuous, real-time visualization of measurement data acquired from the RF power amplifier, such as operating values and system states. In parallel, the user can modify amplifier parameters in real time via the touch-based interface. Any parameter change is immediately applied to the hardware and reflected back in the displayed measurement values, forming a bidirectional real-time interaction loop between the GUI and the RF evaluation system.
The implementation targets the STM32H750B-DK platform and is based on the LVGL (Light and Versatile Graphics Library) framework, demonstrating that responsive, real-time control and monitoring of RF systems.
Graphical user interfaces play a crucial role in modern embedded systems. However, high-quality graphics typically require significant computational power and energy, which is challenging for battery-powered and cost-sensitive devices.
Microcontrollers (MCUs) provide low power consumption and high efficiency but traditionally offer limited graphical capabilities. This project demonstrates how LVGL, an open-source embedded graphics library, can be used to implement responsive and visually appealing GUIs on MCU platforms.
- STM32H750B-DK Discovery Kit
- LVGL 8.3.0
- STM32 HAL and BSP drivers
- STM32CubeIDE and STM32CubeMX
The application uses a bootloader-based memory architecture:
- A bootloader is flashed into internal Flash memory at address
0x08000000 - The bootloader configures the external QSPI Flash in Dual mode
- The user application (GUI and LVGL demos) is executed from QSPI memory at
0x90000000 - Runtime data is stored in AXI SRAM
The linker script has been adapted to support this memory layout.
- The bootloader initializes the QSPI interface
- Control is transferred to the application stored in external Flash
- LVGL handles rendering, input processing, and GUI logic
- Hardware acceleration via LTDC and DMA2D is used where applicable
The provided .ioc file does not automatically configure all display-related peripherals such as LTDC, DMA2D, and I²C4.
If the project is regenerated using STM32CubeMX, the configuration of these peripherals may be modified. In this case, the following HAL driver files must be manually copied from the STM32Cube firmware package (STM32Cube_FW_H7_Vx.y.z/Drivers/STM32H7xx_HAL_Driver) into their corresponding directories within the project:
stm32h7xx_hal_dma2d.hstm32h7xx_hal_dma2d.cstm32h7xx_ll_dma2d.hstm32h7xx_hal_ltdc.hstm32h7xx_hal_ltdc.cstm32h7xx_hal_ltdc_ex.hstm32h7xx_hal_ltdc_ex.c
Failure to copy these files may result in build errors or missing display functionality.
This project contains software components provided by STMicroelectronics, which are licensed under SLA0044. The LVGL library is licensed under the MIT License. This repository is intended for academic and research purposes. All third-party license texts and copyright notices are retained.

