Working on a more complete binding for LVGL #14317
Replies: 9 comments 17 replies
-
Good work, managed to build to stm32 with little errors but for some reason lvgl is hanging changing tab on tabview and I cant debug so changed the lvgl source with the on from lv_bindings and worked fine. |
Beta Was this translation helpful? Give feedback.
-
OK so the problem is in LVGL then? Maybe open an issue on the LVGL repo about it. I am using the code from the main branch where as the code use in the official binding doesn't . It is attached to the9.0 release of LVGL. so something is different in the code in the master branch that has broken something. If you don't mind could you paste the code you are using for the event callback so I can see what part is potentially broken. If you had to correct any errors in the build system for the STM3 if you could make a PR with what you fixed that would be helpful. |
Beta Was this translation helpful? Give feedback.
-
I would love to be able to get DMA memory working for SPI and also get a proper I8080 driver with DMA working as well. I have been dinking about with it using another library as a guide. The issue is the other library is written to be compile time and not runtime so all the pins and things like that are done using macros. |
Beta Was this translation helpful? Give feedback.
-
Yes, STM32 has hardware SS pin, I've said it was using DMA, not that it was
using in background, someone answered that the non block code must be done
on mpy side but DMA is non blocking by nature
Em ter., 23 de abr. de 2024 03:10, Kevin Schlosser ***@***.***>
escreveu:
… The CS line has been left up to the user to deal with, The only way to
make that work using DMA is the addition of setting start and stop callback
functions that get called so the user can set the CS line however they want
to. The real trick is how do you go about making the DMA transfers non
blocking when multiple devices are involved? I know that the ESP32 handles
the CS line internally and you can queue the transfers without any issue. I
don't know if that ability exists with STM32.
—
Reply to this email directly, view it on GitHub
<#14317 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AK4TXJ4LL6GWFQ46ANTQB4TY6X3LXAVCNFSM6AAAAABGLFBLMCVHI2DSMVQWIX3LMV43SRDJONRXK43TNFXW4Q3PNVWWK3TUHM4TCOJWG4YTO>
.
You are receiving this because you commented.Message ID:
***@***.***
com>
|
Beta Was this translation helpful? Give feedback.
-
the non blocking code should be written on the C c side of things. The thing is you need to be able to tell the user when the transfer has finished. This is the key to making the entire thing work. They need to be able to know when they are able to send the next bunch of data. That needs to be in place no matter what. That is what I am currently trying to figure out how to do for the STM32. That and also making use of the slave select pin. |
Beta Was this translation helpful? Give feedback.
-
Yes, STM32 does not have gpio matrix like ESP32, you need to use the fixed
Peripheral pins
Em ter., 23 de abr. de 2024 12:11, Kevin Schlosser ***@***.***>
escreveu:
… the non blocking code should be written on the C c side of things.
The thing is you need to be able to tell the user when the transfer has
finished. This is the key to making the entire thing work. They need to be
able to know when they are able to send the next bunch of data. That needs
to be in place no matter what. That is what I am currently trying to figure
out how to do for the STM32. That and also making use of the slave select
pin.
It is looking like the user is not able to select whatever pins they want.
It looks like the user has to use pins that are specifically set for the
purpose of SPI.
—
Reply to this email directly, view it on GitHub
<#14317 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AK4TXJZRZ4HFZET45HX7WL3Y6Z22HAVCNFSM6AAAAABGLFBLMCVHI2DSMVQWIX3LMV43SRDJONRXK43TNFXW4Q3PNVWWK3TUHM4TEMBSGI4TG>
.
You are receiving this because you commented.Message ID:
***@***.***
com>
|
Beta Was this translation helpful? Give feedback.
-
OK that is good to know. |
Beta Was this translation helpful? Give feedback.
-
@kdschlosser |
Beta Was this translation helpful? Give feedback.
-
??? why would that be of interest? All that needs to be done to update the MicroPython version for what I have is change the version number it is using. 1.23 is a preview which is an alpha test version. It has a while before it is going to be a full release. It is very common for releases of MicroPython to have bugs in it that need to be corrected. Waiting until a release has been out for a few months before pulling it in is a smart thing to do. That post and linked fork only builds LVGL as a user c module. It doesn't bring anything else to it so it only supports SPI and has different API for the different MCU's. There are no additional display drivers and no additional touch drivers. Once you get into dealing with the busses it will be quickly realized that it is impossible to build without modifying parts of MicroPython. from things like changing the macro definitions to adding repeat include protection in some of the header files needs to be done. That is why I have it done using python, it's a single entry point that is able to make the adjustments that are needed. Important things like building a custom partition file when compiling for ESP32 so the build doesn't fail or compile with partition size that is too large if a user modifies things and disables some of the internal features of MicroPython. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Take a look...
https://github.com/kdschlosser/lvgl_micropython
There are instructions for how to compile. At the moment ESP32 compiled properly. I am not knowledgeable with the other MCU's that MicroPython supports so I have not done anything to get those working. I am currently working on the unix port.
If there is anyone that is familiar with MicroPython C code and wants to lend a hand that would be fantastic. If there is anyone proficient with the RP2 or STM32 MCUs and is willing to lend a hand that would be great!
Beta Was this translation helpful? Give feedback.
All reactions