Skip to main content

Flashing the ESP32

What you need

Preliminary steps

Make sure your USB cable can transmit data

A fully-featured USB 2 cable contains 4 wires: two are used for power transmission, and two for data. Some cables, especially on the cheaper end, only wire up the two power wires, meaning those can't pass any information.

To test your cable, you can try to plug in something that can trasmit data to your computer with that cable. An older phone, another microcontroller, a printer, whatever you might have to make sure it's known good.

The LED on the ESP32 lighting up does not mean the cable can tramsit data. All cables will be wired for power, thus the LED will always turn on, even with a bad cable

Install the required Arduino libraries

The library versions are susceptible to change if you read this page late after it was last updated

SSR1 - OSR2 - SR6

This library offers support for the ESP32 to the Arduino IDE, and is mandatory if you use an ESP32.


Via the taskbar on the left, click on the Boards Manager. Search for "ESP32", and install the esp32 library by Espressif Systems


SSR1 only

OSR2 and SR6 both use servomotors, but the SSR1 uses a BLDC (BrushLess Direct Current) motor, driven by an FOC controller, and we need two libraries to control it using the ESP32.

In the Library Manager tab, under the Boards Manager, search for "SimpleFOC". Install both the Simple FOC and SimpleFOCDrivers libraries, by Simplefoc.


As of January 1st 2024, you must use specific versions of said libraries:
Simple FOC 2.3.0
SimpleFOCDrivers 1.0.4

Once installed, do not update them



Install the USB drivers for the ESP32

ESP32 boards are designed and maintained by Espressif, who have a handy guide on how to connect to them.
For our purpose, we only need the USB drivers, to be downloaded from Silicon Labs' website.

ESP32 boards should possess a cp2102 UART to USB chip, which handles talking to the computer over the USB cable. However, Espressif also lists FTDI as a possible manufacturer.

Check the chip circled in red on your own board, and make sure it has "SILABS" written on it before downloading and installing the Silicon Labs drivers.


To install the Silicon Labs drivers, right click the silabser.inf file and select Install

Flashing the firmware

  1. Plug in your ESP32 to your computer.
    With the Arduino IDE opened, select your board and COM port via the Select Board dropdown menu

    image.pngIf you have installed the esp32library correctly, the board should show up under the name DOIT ESP32 DEVKIT V1. Select it.
    The COM port number will vary, it might not be COM5, but COM3 or COM9 for example.

  2. Click on the Upload button (the right-pointing arrow) once everything is in order


  3. When the console shows a line saying "Connecting..." press and hold the boot button on your ESP32, until other lines show up, at which point you can release the button.
    Otherwise, it won't be able to be flashed, and you'll get an error


  4. The end of the console output should look like this after the fact


You have successfully flashed your ESP32 microcontroller with your stroker's firmware.
Next step: testing that all the axes move the right way.