Configuration Reference¶
Firmware configuration is expressed as ESP-IDF Kconfig symbols in sdkconfig. C3PO generates the sdkconfig for a device during provisioning from the values you enter in the Provision view (provision/config.py::generate_sdkconfig). You can also build manually by composing config overlays. The tables below group the symbols that matter.
You normally do not edit this by hand
For most devices, set the fields in the C3PO Provision view and let it emit the sdkconfig.
Edit Kconfig directly only for custom builds.
Device and network¶
| Symbol | Example | Meaning |
|---|---|---|
CONFIG_DEVICE_ID |
"esp32-home-01" |
Device identifier (also stored in fctry NVS) |
CONFIG_NETWORK_WIFI |
y |
Use WiFi STA transport |
CONFIG_WIFI_SSID |
"lab-net" |
WiFi SSID |
CONFIG_WIFI_PASS |
"..." |
WiFi password |
CONFIG_NETWORK_GPRS |
y |
Use GPRS/PPP transport (instead of WiFi) |
CONFIG_GPRS_APN |
"sl2sfr" |
Cellular APN |
CONFIG_SERVER_IP |
"192.168.1.100" |
C3PO server address |
CONFIG_SERVER_PORT |
2626 |
C3PO server port |
Exactly one of CONFIG_NETWORK_WIFI or CONFIG_NETWORK_GPRS is set.
Crypto¶
| Symbol | Value | Meaning |
|---|---|---|
CONFIG_CRYPTO_FCTRY_NS |
"crypto" |
fctry NVS namespace holding the master key |
CONFIG_CRYPTO_FCTRY_KEY |
"master_key" |
NVS key name for the 32-byte master key |
CONFIG_MBEDTLS_CHACHA20_C |
y |
ChaCha20 cipher |
CONFIG_MBEDTLS_POLY1305_C |
y |
Poly1305 authenticator |
CONFIG_MBEDTLS_CHACHAPOLY_C |
y |
ChaCha20-Poly1305 AEAD |
CONFIG_MBEDTLS_HKDF_C |
y |
HKDF key derivation |
Flash and partitions¶
| Symbol | Value | Meaning |
|---|---|---|
CONFIG_ESPTOOLPY_FLASHSIZE_4MB |
y |
4 MB flash assumed |
CONFIG_PARTITION_TABLE_CUSTOM |
y |
Use the custom partition table |
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME |
"partitions.csv" |
Partition table file |
See flash layout for the partition map.
ESPM (module loader)¶
| Symbol | Value | Meaning |
|---|---|---|
CONFIG_MOD_ENABLE |
y |
Enable module loading |
CONFIG_ESPM_PERSIST_ENABLE |
y |
Allow modules to persist to NVS and autoload |
CONFIG_ESPM_VERIFY_ENABLE |
y |
Verify the HMAC-SHA256 module signature before load |
CONFIG_ESPM_MAX_MODULES |
8 |
Concurrent module slots |
CONFIG_ESPM_MAX_CODE_SIZE |
65536 |
Max .text per module |
CONFIG_ESPM_MAX_DATA_SIZE |
32768 |
Max .data + .bss per module |
OTA¶
| Symbol | Value | Meaning |
|---|---|---|
CONFIG_MBEDTLS_CERTIFICATE_BUNDLE |
y |
TLS certificate bundle for HTTPS OTA |
CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_FULL |
y |
Full certificate set |
CONFIG_ESPILON_OTA_ALLOW_HTTP |
n |
Allow plain HTTP OTA (test only; off by default) |
Camera (planned)¶
Provisioning emits CONFIG_ESPM_CAMERA_ENABLE=y when a camera board profile is selected, but camera support is not wired in the current firmware (no camera syscalls in the ESPM ABI yet). This symbol is reserved for a future camera release. See planned modules.
GPRS pins (cellular builds)¶
These come from the board overlay (configs/boards/<board>) rather than being typed in:
| Symbol | T-CALL | T-SIM7070G |
|---|---|---|
CONFIG_GPRS_TXD_PIN |
17 | 27 |
CONFIG_GPRS_RXD_PIN |
16 | 26 |
CONFIG_GPRS_PWR_KEY |
4 | 4 |
CONFIG_GPRS_RESET_PIN |
5 | -1 |
CONFIG_GPRS_PWR_EN |
23 | 25 |
Chip-specific¶
| Chip | Important symbols |
|---|---|
| ESP32-C6 | CONFIG_ESP_SYSTEM_PMP_IDRAM_SPLIT=n (allow ESPM dynamic loading) |
| ESP32-S3 | CONFIG_SPIRAM=y, CONFIG_SPIRAM_USE_MALLOC=y, CONFIG_SPIRAM_MALLOC_RESERVE_INTERNAL=65536 |
| ESP32-S3 v0.2 | CONFIG_BT_ENABLED=n (BLE errata, frees ~28 KB) |
Config overlays (manual builds)¶
The firmware composes a base overlay with a chip or board overlay:
Available overlays: configs/base, configs/esp32, configs/esp32c3, configs/esp32c6, configs/esp32s3, configs/esp32s3-v0.2, configs/esp32s3-cam, and the GPRS board overlays configs/boards/t-call and configs/boards/t-sim7070g.