Skip to content

Flashing firmware

gilphilbert edited this page Nov 5, 2024 · 14 revisions

Flashing the firmware

Install ESP32 driver

Note

Windows requires the installation of a driver in order to write firmware to the ESP32 family

The drivers can be found here

DIY FFB Flash Tool

Tip

It's recommended to use the automated Web Flash Tool as it will automatically download the correct version and flash the board for you. It eliminates flashing errors as it downloads the correct files and flashes them to the correct locations.

Warning

The v1.x Control Boards will not automatically enter flash mode once they have firmware installed, so you must do this manually. Don't worry, it's dead-easy, simply start with the board unplugged, hold down the BOOT button and plug in the board. It's now in flash mode.

  • Open the web-based Flashing Tool (https://gilphilbert.github.io/pedal-flasher/) and click on the "CONNECT" button
  • A list of serial ports will open, select the port for your device and click "Connect"
  • Below you will see a few options
    • We recommend flashing firmware from the Stable channel unless you need a newer version for a specific reason
    • Select the board you're using from the dropdown box. Some firmware options will be disabled, these are not designed for the controller on your board
  • Click "FLASH FIRMWARE" to install the firmware to your board
  • Your board is now ready to use!

Flashing the firmware manually (legacy)

Important

It's strongly recommended to use prebuilt firmware from the main releases on this repo. Building the firmware yourself is more complicated and, unless you need to implement a new feature, unnecessary

Tip

Unless you need access to a newer feature, or you're testing a new feature, we strongly suggest you run a Release Package of the firmware (Release_Package_vX) and not one of the development packages

Selecting firmware versions

Each board has a microcontroller from the ESP32 family. These microcontrollers must be programmed with software so they know what to do, this is called flashing the firmware. Below is a table of the different boards and the firmware needed to make them work.

Board Binary file archive Description
V3 Control PCB esp32_0.zip Modular control PCB with ESP32 module board
V4 Control PCB esp32s3.zip Modular control PCB with ESP32-S3 module board
Gilphilbert v1.x control board Link esp32s3-gilphilbert.zip Custom control PCBA created by Gilphilbert
Speedcrafter control PCB esp32_speedcrafter.zip Custom control PCB created by SpeedcrafterVersion, Version 1.4
Wireless bridge Link esp32s3_Bridge_With_Joy.zip Wireless Bridge
Analogout_SC_D15 shield Link esp32_analogout_SC_D15.zip Connect analog input to Simucube wheelbase D15 port

Flash prebuilt binaries via web flasher

The firmware is available under Releases. The easiest way to flash the firmware is to use the ESP webflasher. If that's not available, there is another webflasher. You will need to know the location to flash each firmware component to.

ESP32 memory addresses (V3 PCB, Speedcrafter board and analog out)

Memory address File
0x1000 bootloader.bin
0x8000 partitions.bin
0xe000 boot_app0.bin
0x10000 firmware.bin

ESP32-S3 (V4, wireless bridge and gilphilbert control board)

Memory address File
0x0000 bootloader.bin
0x8000 partitions.bin
0xe000 boot_app0.bin
0x10000 firmware.bin

Tip

If the pedal is constantly rebooting, make you have flashed the firmware correctly. If in doubt, flash again with the correct adresses. Don't worry, you won't brick the microcontroller by flashing it with our firmware, even if you get the addresses wrong.

Building from source

The source code is built using PlatformIO, an extension inside Visual Studio Code. If you're interested in software development for this project, you can find more information on the Development page.