Installation¶
This guide sets up the operator tool (C3PO), the firmware build environment, and the module cross-compilers. For a faster path to a running device, see the Quick Start.
1. C3PO (operator)¶
C3PO is a Python package with a Qt6 UI.
Requirements:
- Python 3.11+
- A desktop environment (Qt6 / PySide6)
esptool(installed as a dependency) for flashing
Dependencies installed automatically: PySide6 (>= 6.6), qasync (>= 0.27), pycryptodome (>= 3.15), protobuf (>= 4.21), esptool (>= 4.0), and tomli on Python < 3.11.
Optional:
pip install pyserial # serial port auto-detect in the Provision view
sudo apt install gcc-riscv32-esp-elf # RISC-V module compilation
See C3PO installation for CLI flags and run options.
2. Firmware build environment¶
To build firmware locally (the Provision view can do this for you):
- ESP-IDF v5.3.2 (this exact version)
idf.pyon yourPATH(source the IDFexport.sh)
. ~/esp-idf/export.sh
cd framework/Espilon-Firmware
idf.py set-target esp32c6
idf.py -D SDKCONFIG_DEFAULTS='configs/base;configs/esp32c6' build
Config overlays live in configs/ (base, esp32, esp32c3, esp32c6, esp32s3, esp32s3-v0.2, esp32s3-cam, and GPRS board overlays under configs/boards/). See configuration.
3. Module cross-compilers¶
C3PO compiles modules on demand for the target chip:
| Chip family | Toolchain |
|---|---|
| ESP32 / S2 / S3 (Xtensa) | xtensa-esp32-elf-gcc, xtensa-esp32s2-elf-gcc, xtensa-esp32s3-elf-gcc |
| C3 / C6 / H2 (RISC-V) | riscv32-esp-elf-gcc |
These come with ESP-IDF, or install the RISC-V package directly (gcc-riscv32-esp-elf). C3PO finds toolchains on PATH or under ~/.espressif/tools/.
4. Run C3PO¶
It listens on 0.0.0.0:2626 and opens the UI. keys.json is created automatically when you provision your first device.
Next steps¶
- Quick Start - provision and operate a device
- Provisioning