Introducing RajoGUI — a Windows GUI builder for LVGL and embedded systems

Hi everyone,

I’m developing RajoGUI, a Windows desktop application for visually designing and building embedded user interfaces.

The goal is to simplify the complete embedded GUI workflow—from designing the interface and selecting the target hardware to simulation, code generation, project building, and flashing the final application to the device.

RajoGUI is currently being prepared for a private beta. The first release will be available for Windows, while Linux and macOS versions are planned for future releases.

I am sharing the project here because I would like to receive technical feedback from experienced LVGL and embedded developers before the first public release.

Current hardware support

To be completely transparent, RajoGUI currently includes configuration profiles for more than 48 MCU and MPU families. However, this does not mean that every supported combination has already been physically tested.

The hardware combinations I have validated so far include:

  • ATmega328P with an ILI9341 display
  • ESP32-S3

Next week, I plan to test additional hardware, including:

  • STM32F401
  • ILI9488 displays
  • Additional ST-serie display

Because RajoGUI is still in beta, hardware validation is one of my main priorities. I plan to acquire and physically test supported MCUs, MPUs, development boards, and display modules instead of relying only on datasheets or theoretical compatibility.

This is especially important because different display controllers—and sometimes even different modules using the same controller—can have their own initialization requirements, supported features, timing constraints, color formats, touch configurations, and communication interfaces.

My objective is not simply to show a long support list. I want each officially validated hardware combination to work reliably and provide the correct configuration, drivers, build settings, and device-specific features.

Planned workflow

RajoGUI is being designed to help developers:

  • Create embedded interfaces using a visual editor
  • Select an MCU, MPU, development board, and display
  • Configure the display interface and hardware settings
  • Preview and simulate the interface
  • Generate editable source code
  • Detect compatibility and configuration problems
  • Build the generated project
  • Flash it directly to the target device

The generated code is intended to remain accessible and editable, so developers will not be locked into the visual editor.

Planned editions

RajoGUI is expected to be available in four editions:

  • Free
  • Maker
  • Pro
  • Business

The exact features and limitations of each edition are still being evaluated and may change based on feedback from beta testers.

I would especially appreciate feedback on the following:

  1. Which MCUs, MPUs, development boards, and display controllers should be validated first?
  2. Which parts of setting up a new LVGL project cause the most difficulty?
  3. Which build systems and toolchains should be prioritized?
  4. How important is support for vendor IDEs such as STM32CubeIDE?
  5. Which display-specific features should a GUI builder configure automatically?
  6. What would you need before using generated code in a commercial project?

You can find more information and apply for the private beta here:

https://www.rajogui.com

RajoGUI is an independent project and is not affiliated with or officially endorsed by LVGL.

Thank you. I would be very interested in hearing your feedback, criticism, and hardware recommendations.

Hello, @SaeedHaidar,

The proposal is excellent. I’ll test it and provide further feedback.

I think it is most important to make simulator more stable, or it is easy to fix the problem of simulator, the reason is that we should take most time on simultor not the platform. Take an instance, I ever encountered a simulator’s problem that system crashes when I keep entering key for long time for my UI, I traced the code related sdl, but i still can not fix the problem, and I can not meet this problem on my platform(hardware).