Skip to content

Any plans to build on ESP-IDF v5.0 for the ESP32 port? #11078

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

Closed
ma261065 opened this issue Mar 20, 2023 · 15 comments
Closed

Any plans to build on ESP-IDF v5.0 for the ESP32 port? #11078

ma261065 opened this issue Mar 20, 2023 · 15 comments
Labels
enhancement Feature requests, new feature implementations port-esp32

Comments

@ma261065
Copy link

I believe there are a number of breaking changes in ESP-IDF v5.0, but as v4.4 is already in the maintenance period, and will be unsupported in Jul 2024, at some point we will have to move off it.

Also, some of the newer chips (C2 & C6) are only supported in v5.0

Wondering if the changes are massive, and whether it is worth starting the work now (maybe for the 1.20 release) rather than waiting?

@ma261065 ma261065 added the enhancement Feature requests, new feature implementations label Mar 20, 2023
@cherrydev
Copy link

I would like to see this happen as well. I have a specific use-case I'd like to make use of: ESP-IDF 5.x supports DMA transfers on the RMT peripheral for some of the newer ESP chips. Based on the tests I've done with the raw IDF, I'd be able to contribute a WS2812b component that would be able to drive thousands of LEDs simultaneously over multiple channels. The current WS2812b component is 100% synchronous and blocks the main thread for the entire data transmission.

From what I've seen so far there are some IDF 4.x components that were deprecated and are now removed from 5.x. Some of the components still exist but have been moved to an external component repository. If the micropython team expresses an intention to begin the migration process I would like to contribute to the migration.

@jkhax0r
Copy link

jkhax0r commented Mar 31, 2023

FWIW, I saw there was a branch/fork/PR for IDF 5.0 over on CircuitPython that may be helpful. Not sure what the status was or anything

@cherrydev
Copy link

Huh, okay. Looks like they've gotten a fair distance on it. But isn't circuitpython supposedly downstream from micropython? Or is that not the case anymore?

@dhalbert
Copy link
Contributor

dhalbert commented Apr 1, 2023

But isn't circuitpython supposedly downstream from micropython?

CircuitPython uses the core Python language implementation from MicroPython, and some of the port-independent code (re, etc.). But the built-in modules are mostly different.

@dpgeorge
Copy link
Member

dpgeorge commented Apr 6, 2023

There is a PR at #8777 which has started work on supporting IDF v5. We definitely want to support that version of the IDF, so feel free @cherrydev to help get that PR in a state where it can be merged.

@cherrydev
Copy link

@dpgeorge that's great! I'll take a look.

@Carglglz
Copy link
Contributor

Carglglz commented Apr 6, 2023

@cherrydev be aware of this too #8988 👍🏼 it will be needed to update to IDF v.5

@jorisplusplus
Copy link

jorisplusplus commented May 10, 2023

I have gotten a build to work on the esp-idf v5.0 based on current master branch with the changes listed in #8988. There is currently still a lot broken most notably the network stack. But it boots and the REPL works with some basic commands.
I have noticed that there are quite some significant changes between V5.0 and V4.x.
Is the goal to keep support for V4.x, or to drop v4.x and move to v5.0 only?

@dpgeorge
Copy link
Member

I have gotten a build to work on the esp-idf v5.0 based on current master branch

I also managed to do this recently (with help from @projectgus for the UART REPL). My branch is at https://github.com/dpgeorge/micropython/tree/esp32-idf-50 but I didn't yet make a PR.

Is the goal to keep support for V4.x, or to drop v4.x and move to v5.0 only?

I propose to drop support for IDF v4.x completely, and move exclusively to v5.0.1 (and later to higher v5 versions when they are released).

@jorisplusplus
Copy link

I also managed to do this recently (with help from @projectgus for the UART REPL). My branch is at https://github.com/dpgeorge/micropython/tree/esp32-idf-50 but I didn't yet make a PR.

That is looking a lot better than what I have currently. I'm willing to help if necessary.

@dpgeorge
Copy link
Member

See #11528 for my IDF 5 branch/PR.

@ma261065
Copy link
Author

It seems that even Expressif is still using v4.4 for their Arduino Core. Just linking to their issue to track the update to v5.x in case there are any useful learnings there - espressif/arduino-esp32#7852

@dpgeorge
Copy link
Member

It seems that even Expressif is still using v4.4 for their Arduino Core. Just linking to their issue to track the update to v5.x in case there are any useful learnings there

Thanks, that's useful to know about and read. It seems Arduino Core is being updated straight to IDF v5.1, instead of v5.0 which is what we will do here (there is currently no v5.1 release but there is a v5.0 release).

And it seems they are stopping work on their IDF v4.4 support and only doing bug fixes for that.

So I think this is a good indication that we are doing the right thing updating to v5.0.

@andrewleech
Copy link
Contributor

@ma261065 IDF5 support has now merged to master in #11528 ! Is there any other outstanding issues you're aware of? If not this issue can probably be closed?

@ma261065
Copy link
Author

Closing as completed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Feature requests, new feature implementations port-esp32
Projects
None yet
Development

No branches or pull requests

8 participants