This DIY active pedal design is based on the original design from @tjfenwick.
This product is essentialy a robot. If not interacted with care, it may cause harm. I’m not responsible for any harm caused by this design suggestion. Use responsible and at your own risk.
For better communication, a Discord server has been created. Feel free to join, research before you build and ask questions.
The embedded code of the DIY active pedal runs on an ESP32 microcontroller. Some PCB design, which hold the ESP32 breakoutboard, the ADC breakoutboard and connectors are uploaded to the Wiring directory. They were used to proof the concept. The regular ESP32 is currently recommended over the ESP32 S2, as it has a FPU and it performs better with the stepper library. ESP32 S2 is losing steps currently.
| ESP32 PCB | ESP32 S2 mini PCB |
|---|---|
![]() |
![]() |
A more sophisticated custom PCB is currently under development and tested. Please refer to the Discord for up-to-date designs.
Here are some examples of mechanical designs awesome DIYers have done:
| Design | Link |
|---|---|
![]() |
Tjfenwick design |
![]() |
Bjoes design |
| GWiz design | |
![]() |
ChrGri design |
The BOM refers to the pedal design which I have choosen, see here.
A Doxygen report of the sources can be found here.
To flash the code, e.g. via Ardiono IDE to esp32.
HASN’T BEEN TESTED YET: The prebuilt binaries for the regular ESP32 can be found here. They can be flashed via the ESP webflasher.
The SimHub plugin was designed to communicate with the esp32 to (a) modify the pedal configuration, e.g. the force vs. travel parameterization and (b) to trigger effects such as ABS oscillations.

To install the plugin, copy the plugin binaries content to your SimHub directory, e.g. C:/Program Files (x86)/SimHub
To get a better understanding of the motion and forces, a python script for simulation of the pedal angle, the pedal angular velocity and maximum pedal force has been written. Feel free to tune the pedal geometry as needed. The simulation result for my pedal geometry looks as follows:
