Use specific version of code from git

I realize I’m doing something off the tracks…but, I really would like to.

I remove the contents of .platformio/packages/framework-espidf/

And then replace it with the latest version from git.

But, when I then build my code VSC re-installs the older version.

How do I force it to compile against what I’ve put there? rather than replacing it.

If you are removing the whole folder you are also removing the package.json file and the platformio folder for versionkeeping and compilation scripts. However, even if you do keep these folders and add the new ESP-IDF in, I highly doubt this will result in a succesful compilation, since the build structure of ESP-IDF has changed significantly, and adapted python build scripts would be needed.

Yes, I’ve tinkered a bit since I posted and yes, seems like it’s not going to work.

Is it possible to use test version of the esp-idf?

I’m trying to test a bug fix that’s in a the 4.x version and the PIO version is 3.x

Hm porting the build scripts could be done but then that’s double work with what the PlatformIO team will do anyways once a stable version is released. You’re always free to roll your own though.

The path of least resistance would however be to take the current working framework-espidf package, duplicate in your github, then backport the patch / bugfix you’re talking about to the ESP IDF 3.x version (if that’s even applicable), and use that by using the platform_packages override to obtain framework-espidf from there. What specific patch are you reffering too in ESP-IDF?

1 Like

I am working on an issue with the uart driver. The proposed fix was shown in a version of 4. But version 4 has changed significantly from 3. (I think it was the addition of the hal layer that resulted in some #define changes, so it wasn’t real straight forward to use the proposed fix in 3.x.
I have managed to modify my local 3.x version of uart.c to include the proposed fix and it does seem to work.

The short description: if the driver detects a break before the FIFO has reached it’s full threshold, the existing FIFO content is lost.

See issue: How to read UART bytes in queue after break? (IDFGH-2424) · Issue #4537 · espressif/esp-idf · GitHub