@shota_irl Sure! I realized after posting that I had oversimplified the actual functions that I used. Since it seems like a lot of people found it useful, so I’ll explain it in greater detail ![]()
Traditionally, you just set the motor equal to the the joystick’s value. This is represented by the dashed red equation y = x (see graph below). In order to get a curve with the following characteristics:
You can use the equation with the form:

In this equation n >= 1, x = unmodified joystick output, and y = requested motor speed. The graph below demonstrates the output of various values of n.
As you can see when n = 1 (blue), it actually results in the traditional output. Also note that they all intersect the points (0, 0) and (127, 127). Please be aware that if you choose an even value for n, the output will be positive even when you push the joystick backwards! You can solve this by multiplying the sign of the raw joystick value and the output of your function. When n is an odd number, the direction of the output will work as expected. Remember there is no correct value of n, and it’s up to the driver’s preferences.
@Gameoa Yes technically you are correct, but each of the functions have a specific constant that they need to be divided by, as you can see from my equation.
