Custom ESP32 Arduino libraries build

Hi there

I’m developing over ESP32 Arduino framework, but I’ve reached a point where I need to rebuild the precompiled SDK libraries and found the esp32-arduino-lib-builder, in which I’ve built with my custom definitions.

I’ve reached a point where I’ve the /out directory contains the following heirarchy:

– out
___|–tools
_____|–sdk
_______|–esp32
_______|–esp32s2
_______|–esp32s3
_______|–esp32c2

Looks as a part of what’s in arduino-esp32 repository.

I’m looking to push the /out directory to a public repository, but what’s the correct method to let PlatformIO use it inside platformio.ini configuration file, further?

With thanks,
Hamza

Easiest way: Duplicate the current ~/.platformio/packages/framework-arduinoespressif32 folder, use your new precompiled .a libraries to replace the old ones in tools/sdk/esp32/lib (or for whichever esp32 chip series you compiled), upload the new framework-arduinoespressif32 folder somewhere, reference it with platform_packages.

Other methods like an extra_scripts could also replacea the framework files in-place, but that then destroys the previous version of them. So the new package method is the cleanest one in my opinion.

1 Like

Thanks, I’m doing that right now.

However, to make this systematic, what repository I should fork in order to actively pull changes and apply my builds into?

I’ve searched for framework-arduinoespressif32 but it seems auto-generated, am I correct?

If so, should I fork the arduino-esp32? What should I concern about?

* This is the repository where it contains the /out directory mentioned earlier. (ESP32-Arduino-Builds)

Thanks,
Hamza

No it’s just the release version of arduino-esp32.

1 Like

Thanks, that’s clear now.

The next step is to update it with generated files and push to a repository, then add to platformio.ini this line:

 platform_packages =
     platformio/framework-arduinoespressif32 @  https://github.com/[repository-url]
  • Is that correct?
  • Should I respect the “platformio/framework-arduinoespressif32” part for PIO internals?

Thanks.

@hamzahajeir I’m trying to do exactly this. I see you’re regularly pushing changes to your release repos so I assume you are still actively on with this.

Would you be kind enough to update this thread with the remaining steps for an idiot like me?

How come your repos GitHub - HamzaHajeir/ESP32-Arduino-Builds is just the output from the lib builder, and doesn’t include the rest of the PIO stuff as @maxgerhardt suggests? Are you doing that elsewhere?

I’d greatly appreciate an idiots guide

Side question, I see you’re fiddling with LittleFS in your commits… My motivation for this is to fix a LittleFS bug in Arduino ESP32. There seems to be two copies of LittleFS in the source for this project, theres this:

https://github.com/espressif/arduino-esp32/blob/idf-release/v4.4/tools/sdk/esp32/lib/libesp_littlefs.a a precompiled lib referenced by https://github.com/espressif/arduino-esp32/tree/idf-release/v4.4/libraries/LittleFS/src which ends up under esp32_arduino_lib_builder/components/arduino/... and then GitHub - lorol/LITTLEFS: LittleFS library for arduino-esp32 also ends up under components/LittleFS/src Are these both in play? Whats going on? Any advice much appreciated

Thanks

Thanks

Hi @trullock, first things first I don’t believe anyone here is idiot, we all continuously learn the unknown to us.

Yes, as you’ve spotted, ESP-Arduino-Builds holds the out builds. It’s because a silly reason: I couldn’t copy directly from the virtual machine (builder) to the host machine :), so transfer it via GitHub.

I only fiddle with LwIP so any other tweaks comes from syncing with esp-idf or arduino component which is done by the ./build.sh script.

After getting the output I copy manually the output files into the suitable locations of them within the customized arduino-esp32 repository, trying not to delete other files and folders present prior to that.

I think you can have good use of this comment, you might try his built tools to shorten the manual work.

Sorry for the late reply

Thanks for getting back to me.

I’m a user of Tasmota but never looked into it’s build pipeline, theres some good general info in there to help me.

I’ve been off this topic for a while but will get back on it soon.

Thanks