-
Notifications
You must be signed in to change notification settings - Fork 190
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
get ready for ESP-IDF v5 #180
Conversation
They should be re-enabled with vroland#180.
… for esp-idf v5 in epdiy See open PR here: vroland/epdiy#180
Thanks for starting this work! I fixed up the remaining few issues to at least get epdiy compiling with esp-idf v5. It still spits some warning for future deprecation of modules like the legacy RMT peripheral and the periph_ctrl.h header, but this at least unblocks development for me and maybe others. I haven't tested these changes on an actual screen yet, although they're super minor so I'd be shocked if they caused issues. I didn't want to fork your fork to build on top of it so I just copied your fork on this |
… for esp-idf v5 in epdiy See open PR here: vroland/epdiy#180
I just confirmed that these changes do work properly to drive a screen. Tested with an ED060SC4 driven by my custom board using the changes linked in my commit above. I was able to clear the screen, draw a box, and draw text. |
* Add board HAL (Hardware abstraction layer) Instead of using defines to set the board hardware definitions each board get its own file with the routines to access the hardware functions. This way also third party boards can be implemented without being required to modify the epdiy source. So far only logic from display_ops.c has been ported. Work still also exists to optimize duplicated code. Care has been taken to not break existing code bases. If a board is defined in menuconfig this will still be used. * Move content of config_reg_v4.h into epd_board_v5.c The goal is to get rid of the config_reg_v*.h files * Move content of config_reg_v4.h into epd_board_v4.c * Move content of config_reg_v6.h into epd_board_v6.c * Move content of config_reg_v2.h into epd_board_v2_v3.c * Move content of config_reg_v2.h into epd_board_lilygo_t5_47.c * Remove board specific defines from display_ops.h * Free the i2s clock pin in i2s code This should not be done for individual boards. * Deprecate v6 board specific functions as generic function. Boards specific code should be marked as such. * Move temperature readings into board code * Implement a control interface for gpios Move signals oe, mode and stv to this Implement start_frame using the ctrl interface * Move logic of end_frame() from board to display_opts * Remove uneccesary function latch_row() * Move logic for latch_row from board to display_opts * Remove warning about v6_wait_for_interrupt() is unused * Optimize set_ctrl by supplying a mask with the changed signals * Share the temperature readings between boards v2 to v5 * Deprecate epd_powerdown() and make it to a board specific function instead * Read vcom voltage from epd_board_vcom_v6() This makes vcom voltage available at runtime and not at compile time
Revert "disable CI runs on latest ESP-IDF for now" This reverts commit 0e2bd15.
The drop-in replacement is portTICK_PERIOD_MS. See espressif/esp-idf#51.
Some symbols and macros were not longer implicitly imported.
In my opinion to fully test this after #183 master should be merged back into this branch. At least i2s_data_bus.c was also touched by 168 update. |
3ffb83c
to
fd8a290
Compare
#183 is merged. This can go forward when you find time for it @jdoubleu |
Thanks to @dot4qu (see vroland#180 (comment)).
Hi, I've incorporated @dot4qu's changes and merged the current master into this branch, for now. |
No problem, please check the test results so you can see where the build is failing. Thanks a lot for your contribution! |
Thanks to @dot4qu (see vroland#180 (comment)).
It seems there issues only compiling in IDF latest release:
And I don't really get why it's seeing duplicate functions between the display_ops header and C file. |
I remember looking into the GPIO macro definition a little bit, but I don't remember if I changed anything there or not. I'm traveling internationally right now so I most likely won't be able to take a look at this until around July 1st when I return. It looks like the tests are all passing though - is this still an issue? |
No rush, just take a detailed look when you are back.
There are 8 failing test and I think all of them are with latest IDF release. |
Hi!
Yes there is still 8 tests that are not passing. We should take a deeper look to see what is going on. |
@jdoubleu there are two changes that need to happen to the code merged from the BSP PR:
and change the two fast_gpio functions to the following
Compiling most of the examples works for me now, but the tests will tell for sure |
Thanks a lot for the work you have done here, @dot4qu and @martinberlin !
|
I'm not sure about this point but I managed yesterday after much effort to install IDF 4.4 and 5.0 at the same time after some hacking. |
Not exactly the point of this thread but I didn't have too much trouble with just cloning the esp-idf repo and checking out the different tags. Then just open a new shell window and run the |
Er, I just tried to run one of these examples on two of my boards/screens and I'm not seeing any screen updates at all. I'm going to dig more into this tomorrow but as far as I know I haven't changed anything, so if someone else could test on their screen really quick to make sure I'm not going crazy i would appreciate it! |
Mh, is still working for me. Although didn't try to pull latest updates in IDF v. 5 branch in a while. Just in case share the last commit of your IDF to see if we are in the same page: commit b66be87f886fdc1fcc97a1013a84fc59be1e5c7b (HEAD, tag: v5.0-beta1) Did you make sure your IDF menuconfig points to the right board configuration? (Double check this!) |
I forgot I switched some pin mappings for my custom board and had removed those changes on this branch to push to the PR 🤦🏼♂️🤦🏼♂️🤦🏼♂️. Just changed a couple defines in the correct Line 57 in ba1ec7a
It doesn't look like it's used anywhere, anyone know if there's a plan to allow a custom board file based on this? It would be nice to not change the source files in the future |
I think that allows to define a custom board on initialization. Never used it so far but I know is possible after the boards refactoring done by @mickeprag |
esp-idf v5.0 has been release. I just pushed a tiny change to switch to the release container now, but unless espressif changed things significantly from the 5.0 beta release it should be okay. Besides the merge conflict in font.c is there any other testing that needs to be done here before merging (finally)? |
Hi @dot4qu |
Interesting, it looks like they have a release/v5.0 tag for the repo, a docker container, and release/v5.0 documentation, but it's not listed officially as released anywhere. Sorry, I saw the repo tag when I was doing some other stuff so I just assumed it was fully released! |
I look forward to having this merged, too, since my ESP32-S3 branch is based on this branch ;) I would think it should be a matter of days now to the release, maybe some last-minute fixes? |
I’m also a bit impatient about getting this merged. Don’t really know how long it will take but I guess they need to also pack another OS versions like windows, still didn’t read any announcements on when it will be finished. But seems like a big move… |
Wanted to comment that IDF version 5.0 was released today. @vroland if you find some time it would be great to give this a last review and merge it! |
I merged in master to get rid of the the font.c merge conflict, but now there are two tests failing again. I'm not sure how that's possible since we should have been locked on the 5.0 release container (unless they made changes to that), but I don't have time to look at the failures right now. I'll look into it sometime later this week or over the holidays. |
It appears, that Unfortunately, I had to use the |
3065cc5
to
968140b
Compare
968140b
to
3184a73
Compare
I don't think Using the uint32_t val = 42;
printf("Value: %u", (unsigned)val); |
According to the migration guide, I agree, the |
Hi @dot4qu @jdoubleu @mickeprag and company :) About the logging functions and integers, yes is a pain, no idea why this happened in IDF ver. 5. Every-time you print a integer, no matter if it's uint8_t or uint16_t you need to cast it as (int) in the logging functions. But other than that was is missing so we can merge this? |
Nothing from my side! I've been using this branch in my personal code and it's been working without any errors for me |
Actually I used it as the base branch before as well, I just kind of forgot, sorry. |
I still get a few compiler warnings, which I'm trying to fix in another PR.
|
I wasn't aware of the miniz ROM one, but the deprecated drivers was known. There was no way to port the existing code without significant code and logical changes since the new drivers a structured differently and have different APIs. Now that this is merged they would be good things to tackle individually though |
Fixes #156
WIP: Pleas do not merge, yet!
At the moment, this PR is based on works in #177, so the CI is running.CI doesn't run, because the GitHub CI config has not been merged intomaster
, yet.Issues
Some symbols were no longer implicitly imported, so I included some rather specific headers.
However, there are a few issues remaining:
rtc_clk_apll_enable
changed their signature. They are currently used ini2s_data_bus.c
.RMTMEM
global variable, used byrmt_pulse.c
does no longer exist. Some HAL stuff seems to have been refactored: espressif/esp-idf@9f55712