compiling for ESP32 UI like menuconfig

All ESP32 boards running MicroPython.
Target audience: MicroPython users with an ESP32 board.
Post Reply
kindmartin
Posts: 20
Joined: Sun Apr 26, 2020 7:30 am

compiling for ESP32 UI like menuconfig

Post by kindmartin » Wed Nov 25, 2020 9:56 am

Hi all, I'm looking for a loboris like compiling environment/setup where we can select easily options for ESP32 firmware like we can do on old that not evolved for 2 years lobo one. I think Loboris did an excellent work making it easy for a user like me not very fluent on esp/idf toolchain and the number of esp config options, micropython options, etc.

any hint?

User avatar
jimmo
Posts: 2754
Joined: Tue Aug 08, 2017 1:57 am
Location: Sydney, Australia
Contact:

Re: compiling for ESP32 UI like menuconfig

Post by jimmo » Wed Nov 25, 2020 11:14 pm

kindmartin wrote:
Wed Nov 25, 2020 9:56 am
Hi all, I'm looking for a loboris like compiling environment/setup where we can select easily options for ESP32 firmware like we can do on old that not evolved for 2 years lobo one. I think Loboris did an excellent work making it easy for a user like me not very fluent on esp/idf toolchain and the number of esp config options, micropython options, etc.
There are two parts to this:

1. Make MicroPython an ESP-IDF component (so it can be part of the IDF build system). Right now we actually don't really the IDF build system at all.

There's been good progress on this (as it needs to be done to support the new ESP32-S2 and other future parts). See https://github.com/micropython/micropython/pull/6473

2. Add menuconfig entries (in the new MicroPython component) for all the things that someone might want to configure.

There have been some investigation into this. Other ports (such as Zephyr) also use KConfig (and therefore menuconfig) so some thought has gone into making this used across all of MicroPython.

I can definitely see the advantage of a more intuitive way to browse the various configuration options. Our focus right now has been to provide "standard configurations" (which we have via our "boards" system) for enabling disabling features or drivers.

Many of the other ESP32 options don't make a lot of sense. Not that this is what you're suggesting, but when I've seen this raised elsewhere people have suggested that it's "just a simple matter of enabling feature X in ESP-IDF", but the MicroPython bindings also need to be written.

The other thing on ESP32 is that we generally have the luxury of lots of flash space, so we tend to enable everything (that has MicroPython bindings implemented) by default. To be honest, I don't really understand what's left to "menuconfig", but I haven't really spent much time thinking about this. Do you have some examples? What sort of options would you enable/disable or values would you tweak (from both the IDF and MicroPython)?

FWIW, if you run menuconfig in a regular ESP-IDF project, you can use the generated sdkconfig file output in boards/MYBOARD/sdkconfig.board.

Post Reply