Skip to content

Commit 8182550

Browse files
authored
docs: add sdkconfig configuration section for ESP-IDF (#400)
Document two sdkconfig features for ESP-IDF projects: - board_build.esp-idf.sdkconfig_path for custom sdkconfig output path - SDKCONFIG_DEFAULTS layering via board_build.cmake_extra_args for maintaining small defaults files instead of the full generated config Links to integration test examples in platform-espressif32 (PR #1718).
1 parent 22ff08c commit 8182550

1 file changed

Lines changed: 43 additions & 0 deletions

File tree

platforms/espressif32_extra.rst

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,49 @@ Examples:
197197
[env:custom_builtin_table]
198198
board_build.partitions = no_ota.csv
199199
200+
sdkconfig Configuration (ESP-IDF)
201+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
202+
203+
ESP-IDF projects use ``sdkconfig`` files to configure the SDK. By default,
204+
PlatformIO generates ``sdkconfig.<env>`` (e.g. ``sdkconfig.esp32dev`` for
205+
``[env:esp32dev]``). This file contains the full merged configuration and is
206+
a build artifact, not a source file.
207+
208+
**Custom sdkconfig path**
209+
210+
Use ``board_build.esp-idf.sdkconfig_path`` to control where the generated
211+
sdkconfig is written:
212+
213+
.. code-block:: ini
214+
215+
[env:myenv]
216+
board_build.esp-idf.sdkconfig_path = sdkconfig.custom
217+
218+
**SDKCONFIG_DEFAULTS layering**
219+
220+
Instead of checking in the full generated ``sdkconfig.<env>``, you can maintain
221+
small defaults files containing only intentional overrides. Multiple files are
222+
separated by semicolons — later files override earlier ones:
223+
224+
.. code-block:: ini
225+
226+
[env:myenv]
227+
board_build.cmake_extra_args =
228+
-DSDKCONFIG_DEFAULTS="sdkconfig.common;sdkconfig.board"
229+
230+
This enables patterns like:
231+
232+
* ``sdkconfig.common`` — shared across all environments (committed)
233+
* ``sdkconfig.board`` — board-specific overrides (committed)
234+
* ``sdkconfig.local`` — developer-specific tweaks (gitignored)
235+
236+
Add ``sdkconfig.*`` to ``.gitignore`` and only check in the defaults files.
237+
This keeps diffs clean and makes your configuration intent explicit.
238+
239+
See the `espidf-sdkconfig-defaults <https://github.com/platformio/platform-espressif32/tree/develop/examples/espidf-sdkconfig-defaults>`__
240+
and `espidf-sdkconfig-custom-path <https://github.com/platformio/platform-espressif32/tree/develop/examples/espidf-sdkconfig-custom-path>`__
241+
examples for working projects.
242+
200243
Embedding Binary Data
201244
~~~~~~~~~~~~~~~~~~~~~
202245

0 commit comments

Comments
 (0)