Skip to content
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

Compilation failures after updating to v3.x ESP32 Arduino Core #56

Open
Roger-random opened this issue Aug 30, 2024 · 1 comment
Open

Comments

@Roger-random
Copy link
Owner

Roger-random commented Aug 30, 2024

Symptom:

After updating to v3.x ESP32 Arduino Core, the first compilation error will be:

ESP_8_BIT_composite.cpp:45:55: error: invalid conversion from 'const volatile void*' to 'volatile void*' [-fpermissive]

HOWEVER, this is not the core issue, it's just the first breaking change to cause a error. (Default compiler flags changed in v2.x to v3.x.)

Downstream are deeper problems with this library's dependency on deprecated ESP32 legacy DAC driver, which has been (or will soon be) removed. Replacement DAC driver does not expose the same functionality.

Reference:

Espressif's documentation on breaking changes: https://docs.espressif.com/projects/arduino-esp32/en/latest/migration_guides/2.x_to_3.0.html

Workaround:

The current workaround is to downgrade ESP32 Arduino Core to an earlier version in the v2.x lineage. I understand this is not a satisfactory long-term solution.

Espressif esp32 arduino core version select

Why did Espressif do this?

The following is my observation/hypothesis/guess and not from Espressif.

Espressif seized upon the fame of the successful "ESP32" name and has released many variants. Some are VERY different from the original chip, but they are all supported by ESP-IDF which ESP32 Arduino Core is built upon. ESP-IDF has the job of keeping things in sync across the entire ESP32 library, so software developers won't have to worry about details of hardware differences between variants.

Unfortunately, this means ESP-IDF is restricted to the subset supported by all ESP variations on a peripheral. Creative hacks like the ESP_8_BIT composite video code (which this library is built from) depended on features outside of that lowest-common-denominator subset. So while the original ESP32 (no suffix) DAC can do this, but newer ESP32-[???] variation DAC could not, so it was removed from ESP-IDF.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants
@Roger-random and others