How to contribute STM32H743 RGB LCD board support - PR guidance needed

I’d like to contribute to this fantastic project by adding support for an STM32H743 board with 32 MB of SDRAM, 8 MB of Flash, and a 40-pin RGB LCD connector + I2C touch (the board is called STM32H743IIT6 CORE V1.0, V1.1, and V1.3).

This board and some of its variants are available at low cost from Chinese manufacturers and support a 1024x600 display with capacitive touch quite well. The cost of the board, display, and cables is around $60.

It’s currently working and in testing. I’m trying to figure out how to manage pull requests so I can share the source code. What documentation/resources should I start with, which repositories should I target, in what order, and how many PRs should I submit?"

Hi,

Since you opened the post in the Micropython category I wonder if your question is related to Micropython.

Hi,
from what I understood, this category should concern binding lvgl with micropython. My question concerns development in C.
I hope I’m correct :slight_smile:

While you likely have good intentions, you’re posting about adding C-language support for a display driver [which you never name] in the Micropython forum. It seems you might not realize that STM32H743 is a microcontroller, not a display module.

The good news for you is that whatever display you’d like to use is almost certainly already supported in LVGL.

Apologies if my previous explanation was unclear.

I have split the ‘C’ code implementation into two parts:

  1. Board Support: I added support for an affordable STM32H7 board (STM32H7_CORE). The board definition is located here: /lv_micropython/ports/stm32/boards/STM32H7_CORE
  2. Driver Support: I added support for LCD displays and capacitive touch screens using the LTDC driver (leveraging the existing support in LVGL). This code is located here: /lv_micropython/user_modules/lv_binding_micropython/driver/stm32/STM32H7_CORE

My Question: I am unsure how to organize the Pull Requests for this. Given the repository structure, on which repositories should I open the PRs, and in what order? Should I submit separate PRs for the board definition and the driver?

Thanks for your support.

I might be missing something, but I think the answer is… you don’t?

LVGL is a graphics library. It is MCU agnostic. If you’ve got it working… congratulations! You’re already done.

I understand your point regarding the core LVGL library (which implies keeping board-specific code separate).

However, in the context of lv_micropython, the goal is to allow users to build a ready-to-flash firmware for this specific board. To do that, the build system needs the board definition files (in ports/stm32/boards) and the specific C drivers/bindings to be present in the repository.

Without submitting these PRs, other users cannot compile MicroPython for this board out-of-the-box. My intention is to contribute to the MicroPython port/binding, not the core LVGL library itself.

1 Like