To build the 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.1.1.
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
.
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 MissionControl-Firmware.bin
Alternatively, 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.
Note: This repository also contains code for the Basic controller version, but it's not designed to be reprogrammable.