To build the ButterBot firmware, you'll need the ESP-IDF. You can find the getting started guide here. The production firmware is built using IDF version 5.5.3.
All required components are contained in the repository, and managed components (esp-sr, esp-dl, esp-tflite-micro, face detection and recognition models, etc.) are fetched automatically by the IDF component manager during the build.
In the root directory of the project:
To build the firmware run idf.py build
To upload the firmware to the device run idf.py -p <PORT> flash. Replace <PORT> with
the port the robot is attached to, for ex. COM6 or /dev/ttyACM0.
Flashing also uploads the data partitions: the SPIFFS filesystem image built from spiffs, the object detection model from models, and the speech recognition and face detection / recognition models provided by the managed components.
To restore the stock firmware, you can download the prebuilt binary on the releases page of this repository and flash it manually using esptool:
esptool -c esp32s3 -b 921600 -p <PORT> write_flash 0 ButterBot-Firmware.binAlternatively, you can also do so using CircuitBlocks by logging in, clicking the "Restore Firmware" button in the top-right corner, and following the on-screen instructions.