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.
The drivers can be found here here.
There are two recommended ways to install the code on the ESP32. (a) built the sources by your own via Arduino IDE or (b) flash the compiled binaries via webflasher.
- Install the ESP32 dependencies in Ardiono IDE, see e.g. here
- Install the libraries
- Flash the code, e.g. via Ardiono IDE to esp32.
The prebuilt binaries for the regular ESP32 can be found here. They can be flashed via the ESP webflasher.
Memory adress | File |
---|---|
0x1000 | Main.ino.bootloader.bin |
0x8000 | Main.ino.partitions.bin |
0xe000 | boot_app0.bin |
0x10000 | Main.ino.bin |
The iSV57T allows parameter tuning via its RS232 interface. To tune the servo towards this application, follow the instructions.
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:
- Add Doxygen + Graphviz to the project to automatically generate documentation, architecureal design overview, etc.
- Add automatic system identification of pedal response
- Add model-predictive-controll to the ESP code for improved pedal response
- Add build manual
- Create video describing the build progress and the features
- gin66/FastAccelStepper#194
- br3ttb/Arduino-PID-Library#138
- GUI design improvements for the SimHub plugin
- SimHub plugin: Bugfix for COM port selection wrong, when switching between pedals
- Send SimHub data via wifi to ESP
- Automatically generate the bin files and refer to the ESP32 webflasher