Require esp-idf 5.3.x with a clear error - #24
Open
jmarler wants to merge 65 commits into
Open
Conversation
…ware Add unified firmware and setup tooling
Updated the link to tinytouch.dev to use HTTPS.
…pi-2026-08-16 Preserve TinyTouch API deployment
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
problem
main/idf_component.ymldeclaresidf: '>=5.3,<5.4', but nothing enforces it. The Espressif installer (EIM) now defaults to 6.0.x, so a fresh setup builds against an unsupported version and fails several minutes into compilation with two confusing errors:Neither message points at the real cause. The mbedtls one is actively misleading, because ESP-IDF's hint locates the header inside OpenThread's vendored copy of mbedtls and suggests adding an include directory, which cannot work.
Both are IDF 6.0 breaking changes:
driverumbrella component no longer re-exports UART, soREQUIRES driverdoes not supplydriver/uart.hmain/piv.cusesmbedtls_rsa_contextandmbedtls_rsa_private, andmain/touch_pin_hid.cusesmbedtls_aes_crypt_ctr, so no CMake change can fix it.Reported in #8, where it was understandably attributed to the macOS version rather than the toolchain.
changes
firmware/tiny_touch_smartcard/CMakeLists.txt: fail at configure time with install instructions when IDF is not 5.3.x. The check is skipped ifIDF_VERSION_MAJORis undefined, so it cannot break builds on toolchains that do not expose it.tinytouch:run_idf()now checksidf.py --versiononce before running anything, and reports the same guidance. This matters becauserun_idf()prefers whateveridf.pyis onPATH, then$IDF_PATH/export.sh, so an EIM install silently supplies 6.0.x.main/CMakeLists.txt: addesp_driver_uarttoPRIV_REQUIRES. Not required on 5.3, but it is the correct explicit dependency fordriver/uart.h.README.md: state the required version in the build section, with install steps and a note to clearbuild/,sdkconfig, anddependencies.lockafter a failed 6.0 attempt. A staledependencies.lockrecords the old IDF version and keeps the build broken.testing
idf.py --versionreporting 6.0.2, 5.3.3, 5.4.1, and unparseable output. Rejects with actionable text on mismatch, accepts 5.3.x, and falls through quietly when the version cannot be parsed.notes
This keeps the project on 5.3.x rather than porting to IDF 6.0. Supporting 6.0 means moving
piv.candtouch_pin_hid.cto the PSA crypto API, and the raw RSA operation behind PIV general authenticate has no clean PSA equivalent. That felt like a separate decision, so this PR just makes the current requirement explicit and fast to diagnose.Closes #8