Maker Pro

DIY Sim Racing Pedals

October 29, 2022 by İlge İpek

Hello to everybody! For our sim racing setup, we'll be creating our own Sim Racing Pedals in this blog post. Pedals are the most important component of a realistic and enjoyable sim racing setup. It's time for the pedals after we constructed a 900 degrees DIY steering wheel in our last piece.

Materials and Tools for Making DIY Sim Racing Pedals


The software part of this project rather easy, thanks to the program called MMJoy. MMJoy is a software designed for hobbyists and sim racing enthusiast. It lets our pedals interface with the driving games without much configuration and effort. Thus, you don't need much coding and software knowledge to build this project.

Let's start by downloading MMJoy and extracting the .zip file to our computer from the link below.

MMJoy Software GitHub Page

The necessary software is inside the "firmware and software release" file. Extract the "MMJoy2" file to your computer. This file includes all the necessary files like firmwares, images, softwares.

To proceed with the setup, launch the MMJoySetup application which is inside the "MMJoy2" file.

Launching the MMJoy Software

The first step is uploading the firmware to our Arduino Pro Micro card. We will do the configuration from the section indicated by the red rectangle.

Choosing the Necessary COnfiguraitons in the MMJoy Software

In the "Firmware file" part, we are going to choose the firmware we will upload. The file we need to choose is inside the "MMJoy2/Firmware" file. There are 3 .hex files. We need to choose the one with the "ATMEGA32U4", since we are using Arduino Pro Micro.

Choosing the Necessary Configurations in the MMJoy Software

In the "Firmware file" part, we are going to choose the firmware we will upload. The file we need to choose is inside the "MMJoy2/Firmware" file. There are 3 .hex files. We need to choose the one with the "ATMEGA32U4", since we are using Arduino Pro Micro.

Settings for the Firmware Section

In the port selection part, you will encounter different ports after you click "COM ports list" button, but we are not going to choose one yet. Here is why:

In order to upload firmware to our Arduino Pro Micro, we need to force it to "bootloader" mode. When the board is in bootloader mode, the port changes. Thus, we need to determine the port the board is connected to, when it is bootloader mode.

In the MMJoy2 software, click on “Device Management and choose “Ports” on the opened window. Next, press the button on the Arduino Pro Micro board twice to force the board to "bootloader" mode. Then, device manager will reload and we will be able to the port of our Arduino Pro Micro board under the "Ports" section.

Now that we know which COM port our board is connected to, we can type it to the "Port" field in the MMJoy2 software. For instance, if you see COM6 on device manager, type COM6 in the "Ports" field.

Now it is time to upload the bootloader to our board. Again, double click the button on Arduino Pro Micro and press "Upload Firmware" button on MMJoy2. Keep in mind that Arduino Pro Micro stays in bootloader mode for 8 seconds and you should do the upload in that time gap.

Uploading the Firmware

If you see an upload screen like the one below, it means that the upload is successfully done. It is time to do the necessary configurations for the potentiometers.

Success Message After Upload

MMJoy lets us play with many hardware components and configure them as we like. In our project we will use 3 potentiometer, one for each pedal.

After you upload the firmware, you'll see that the device list on the top left will change and from now on our computer will see the Arduino Pro Micro board as a joystick. We need to choose it from the device list.

Selecting the Right Device from Device List

Then, we need to visit the "Joystick Axes" section and do some settings on the areas indicated in the image below.

Configuring the Device

Our potentiometers are connected to the A0, A1 and A2 pin on our Arduino Pro Micro and these pins are connected to the PF7, PF6, PF5 of the MCU, respectively. Therefore, we pick F7, F6 and F5 for the “MCU port”. For the “Source”, we pick “IntSensor” and for the “Assignment” we pick “X”. We pick 10 as the “Precision” setting because Arduino Pro Micro has a 10-bit Analog Digital Converter (ADC). Finally, we press “Save sets to device” to upload the settings to our board.

Saving the Configuration

After all these configurations, our hardware is ready to be used as DIY Sim Racing Pedals.


The electronic system of this project is not very complicated. We are using 3 potentiometers, one for each pedal, in order to determine the position of the pedal. The readings from the potentiometers get communicated to the computer by the Arduino Pro Micro. The schematic for the circuit is presented below. You can use it to do the wiring on your DIY Sim Racing Pedals.

Making the Mechanic Parts

900 Degrees DIY Steering Wheel for Sim Racing

In this blog post, we have covered how to build your own DIY Sim Racing Pedals from scratch. In order to have an immersive sim racing experience while testing your pedals, we recommend you to build your own steering wheel as well. In our 900 Degrees DIY Steering Wheel for Sim Racing blog post, you can find detailed instructions on how to build your own DIY Steering wheel for your Sim Racing setup!


What is MMJoy?

MMJoy is a piece of software spesifically designed for creation or modification of game controllers. It lets you build your own game controllers that can communicate with your PC without worrying about coding and complicated configurations. It is commonly used by sim racing hobbyist and enthusiast since it makes building simulation hardware easier.

Why is Arduino Pro Micro being used in Sim Racing System instead of Arduino Uno?

Arduino Pro Micro has Atmega32u4 chip while Arduino Uno uses Atmega328. This creates an important difference between these boards since Atmega32u4 based boards can communicate with computers natively just like a keyboard/mouse. Thanks to this functionality, Arduino Pro Micro is a common choice for projects like sim racing systems. However, you can use other boards which feature the same chip (Atmega32u4) like Arduino Leonardo.

Related Content


You May Also Like