Flashing The Firmware - Open Controller
ESP32 Firmware Flashing
Flashing the initial firmware onto your ESP32 requires you to use the Micro-USB port on the ESP32. Plug in the Micro-USB and click connect on the update website linked above.
You may need to install the CP210x driver provided by Silicon Labs:
Windows: https://www.silabs.com/documents/public/software/CP210x_Windows_Drivers.zip Mac:
https://www.silabs.com/documents/public/software/Mac_OSX_VCP_Driver.zip

You will be asked to select a device, select "CP2102 USB to UART Bridge Controller"

It will then prompt you with a box that says "Install Open Controller Classic", click that button

It will ask you if you want to erase the device; this is optional and not required. Click next.

It will then ask you to confirm the installation

The install will then start, it may take up to two minutes to complete

When it finishes you will get a confetti symbol showing that the install is complete! You can then close any pops ups left on the screen, and unplug the micro-usb cable.

USB Firmware Flashing
The USB gamepad communications are handled by an EFM8UB1 microcontroller acting as a co-processor as the ESP32 does not have native USB device support. This microcontroller has its own firmware which must be installed.

Download the ZIP file provided on the firmware page. Extract the ZIP file.
Hold down the button labelled EN on the ESP32 devkit while plugging in the USB-C Cable. This will put the USB microcontroller into programming mode.
Run the 'LoadEFM8.bat' file.

You may end up getting a Windows Defender notification, simply click more info and allow access to for the flasher to run.

After a successful update, you will get a message telling you to press any button to exit.

Unplug and replug your device to confirm USB Gamepad function is working properly.

