To build the ButterBot Controller 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 (LVGL, esp_new_jpeg) 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 controller is attached to, for ex. COM6 or /dev/ttyACM0.
The SPIFFS filesystem image is built automatically from the pre-generated archives in spiffs_image. If you modify the source assets in spiffs_archives, regenerate the archives by running scripts/archive.sh from the project root. See scripts/archive.sh.md for details.
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 ButterBotCtrl-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.