Giter Club home page Giter Club logo

lv_port_stm32h7b3i_disco's Introduction

lv_port_stm32h7b3i_disco

This repository contains the Light and Versatile Graphics Library (LVGL) port for the STM32H7B3I-DK development board.

demo_pic

This project uses LVGL v8.3.1

For the most up-to-date version of LVGL please visit: https://github.com/lvgl/lvgl

The STM32H7B3I-DK is an affordable development board with:

  • STM32H7B3LIH6QU Arm®-based microcontroller featuring 2 Mbytes of Flash memory and 1.4 Mbyte of RAM in BGA225 package
  • 4.3" (480x272 pixels) TFT color LCD module including a capacitive touch panel with RGB interface
  • Wi‑Fi® module compliant with 802.11 b/g/n
  • USB OTG HS
  • Audio codec
  • 512-Mbit Octo-SPI NOR Flash memory
  • 128-Mbit SDRAM
  • 2 user LEDs
  • User and Reset push-buttons
  • Fanout daughterboard
  • 1x FDCAN
  • Camera (8 bit)
  • USB with Micro-AB
  • Stereo headset jack including analog microphone input
  • Audio jack for external speakers
  • microSD™ card
  • TAG-Connect 10-pin footprint
  • Arm® Cortex® 10-pin 1.27mm-pitch debug connector over STDC14 footprint
  • ARDUINO® Uno V3 expansion connector
  • STMod+ expansion connector
  • Audio daughterboard expansion connector
  • External I2C expansion connector

How to import this project to STM32CUBEIDE:

  1. Clone this respository:
git clone https://github.com/epichl25/lv_port_stm32h7b3i_disco.git
  1. Open STM32CUBEIDE
  2. Create a new workspace
  3. Import the project: File => Import => General => Existing Projects into Workspace => Browse => Select the "lv_port_stm32h7b3i_disco" folder => Finish
  4. Build the project: Project => Build all
  5. Upload the firmware to the development board: Run

Update Information

26.8.2022

DMA2D support was added to the project.

This method uses the Chrom-Art Accelerator found in STM32H7B3I-DK's MCU for rendering. Compared to the "simple" mode, this mode significantly improves performance and reduces stuttering.

2.9.2022

  1. The project defaults to using the "simple" mode to render. Using STM32's DMA2D must now be enabled by changing the value of the define "LV_USE_GPU_STM32_DMA2D" found in lv_conf.h.

  2. The project was re-formatted to confrom with LVGL's project structure for stm32 projects.

Benchmark Results

The benchmark demo firmware found in LVGL's demos was used to benchmark performance.

Rendering method simple dma2d
Weighted FPS 40 76
Opa. speed 92% 83%

How to change rendering mode from default to DMA2D mode

NOTE: The simple rendering method is set by default. For better performance, please enable DMA2D mode.

  1. Navigate to "lv_conf.h"
  2. Locate the define "LV_USE_GPU_STM32_DMA2D" found in the GPU section.
  3. Change '0' to '1' to enable DMA2D.

Troubleshooting

Below lists some common problems users might face when using this project.

  1. The project fails to build due to include errors.
  • Solution 1
    Check the workspace is named "lv_port_stm32h7b3i_disco". If it is not, rename it by right-clicking on the workspace and selecting rename.

  • Solution 2

  1. If you do not wish to rename the workspace, go to "Project=>Properties=>C/C++ General=>Paths and Symbols=>Includes=>GNU C=>Include directories".
  2. Remove the included directory "/lv_port_stm32h7b3i_disco".
  3. Add a new inlcude directory "Add=>Workspace" and click on the workspace.
  4. Ensure "Is a workspace path" is checked and press "OK".
  5. Build and run the project again.

TODO

Add support for SDRAM buffers and test performance.

Credits

lv_port_stm32h7b3i_disco's People

Contributors

epichl25 avatar kisvegabor avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

lv_port_stm32h7b3i_disco's Issues

Some fixes

Hi,

I've added some fixes and optimizations. See in the history.

Sorry for not sending a PR but we'd like to make a tutorial video about this board and planning to use this repo. So I needed to have the changes merged. 🙈

Please let me know you have any remarks. 🙂

DMA2D_Config

Hello,
In the code there is a DMA2D_Config()... however this is not used, but why?
Then what is it intended for?

What setup is the official video based on, see link below?
DMA, DMA_IT, DMA2D ? Or something else? Pixel format 32bit or 16bit ?

https://blog.lvgl.io/2022-12-08/stm32h7b3i-review

Thank you

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.