*** Refer to the attached graph when reading this description *** Let X be a joystick axis with value ranging from -1 to +1. Plot y=x and you get a straight line with slope (gain) = 1 Now plot y = x^3 and you get a cubic output, also ranging from -1 to +1. The gain of this cubic curve is less than 1 for all x values between -sqrt(1/3) and +sqrt(1/3), and greater than 1 outside that range. At x=0 the gain is zero (essentially giving a small deadband), and at x=1 the gain is 3. Now plot y = a(x^3) + (1-a)x, where "a" is a constant in the range 0<=a<=1. You get a family of curves lying between the curve y=x and y=x^3. When a=0 you get y=x, and when a=1 you get y=x^3. When 0 x = +/- sqrt(1/3) = +/- 0.577 ... so the "gain crossover" between y=x and y=a(x^3)+(1-a)x always occurs at the same x value, namely 0.577. The gain of y=a(x^3)+(1-a)x at x=0 is (1-a), and the gain at x=1 is 1+2a: x=0 gain = 1-a x=0.577 gain = 1 x=1 gain = 1+2a You can set "a" equal to a hard-coded constant in your software, or you can use (for example) the throttle on a joystick to vary the value from 0 to 1 so the driver can select the desired sensitivity.