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?"
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.
I have split the ‘C’ code implementation into two parts:
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
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?
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.