Skip to content

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.

cd framework/c3po
pip install -e .

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.py on your PATH (source the IDF export.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

c3po --keystore keys.json --modules modules/

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