Arcade and X-Arcade Drive using full range of joystick without clipping

Well I found out how to add tables so I figured I’d put the Arcade drive equation here with the tables showing some values for different joystick positions. The X-Arcade tables are interactive so they are still in HTML form found at the github link above.

If using joy and/or motor ranges that are not -127 to 127 then the 127 in the equations changes to the joy value and the output value must be scaled to the motor range.

Arcade Drive Equations

Extrapolated from Arcade function
These equations are for Left Drive is normal and Right Drive is reversed
mSpeed is the Forward (and -Reverse) vector component due to Speed
mYaw is the Left (and -Right) vector component due to Yaw

mSpeed = Speed - (Speed*ABS(Yaw)/127)/2
mYaw = Yaw - (Yaw*ABS(Speed)/127)/2
L = mSpeed + mYaw
R = mSpeed - mYawm

mSpeed Values

null -127 -112 -96 -80 -64 -48 -32 -16 0 16 32 48 64 80 96 112 127
127 63.5 71 79 87 95 103 111 119 127 119 111 103 95 87 79 71 63.5
112 56 62.5 69.5 76.5 84 91 98 105 112 105 98 91 84 76.5 69.5 62.5 56
96 48 53.5 59.5 66 72 78 84 90 96 90 84 78 72 66 59.5 53.5 48
80 40 44.5 50 55 60 65 70 75 80 75 70 65 60 55 50 44.5 40
64 32 36 40 44 48 52 56 60 64 60 56 52 48 44 40 36 32
48 24 27 30 33 36 39 42 45 48 45 42 39 36 33 30 27 24
32 16 18 20 22 24 26 28 30 32 30 28 26 24 22 20 18 16
16 8 9 10 11 12 13 14 15 16 15 14 13 12 11 10 9 8
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-16 -8 -9 -10 -11 -12 -13 -14 -15 -16 -15 -14 -13 -12 -11 -10 -9 -8
-32 -16 -18 -20 -22 -24 -26 -28 -30 -32 -30 -28 -26 -24 -22 -20 -18 -16
-48 -24 -27 -30 -33 -36 -39 -42 -45 -48 -45 -42 -39 -36 -33 -30 -27 -24
-64 -32 -36 -40 -44 -48 -52 -56 -60 -64 -60 -56 -52 -48 -44 -40 -36 -32
-80 -40 -44.5 -50 -55 -60 -65 -70 -75 -80 -75 -70 -65 -60 -55 -50 -44.5 -40
-96 -48 -53.5 -59.5 -66 -72 -78 -84 -90 -96 -90 -84 -78 -72 -66 -59.5 -53.5 -48
-112 -56 -62.5 -69.5 -76.5 -84 -91 -98 -105 -112 -105 -98 -91 -84 -76.5 -69.5 -62.5 -56
-127 -63.5 -71 -79 -87 -95 -103 -111 -119 -127 -119 -111 -103 -95 -87 -79 -71 -63.5

mYaw Values

null -127 -112 -96 -80 -64 -48 -32 -16 0 16 32 48 64 80 96 112 127
127 -63.5 -56 -48 -40 -32 -24 -16 -8 0 8 16 24 32 40 48 56 63.5
112 -71 -62.5 -53.5 -44.5 -36 -27 -18 -9 0 9 18 27 36 44.5 53.5 62.5 71
96 -79 -69.5 -59.5 -50 -40 -30 -20 -10 0 10 20 30 40 50 59.5 69.5 79
80 -87 -76.5 -66 -55 -44 -33 -22 -11 0 11 22 33 44 55 66 76.5 87
64 -95 -84 -72 -60 -48 -36 -24 -12 0 12 24 36 48 60 72 84 95
48 -103 -91 -78 -65 -52 -39 -26 -13 0 13 26 39 52 65 78 91 103
32 -111 -98 -84 -70 -56 -42 -28 -14 0 14 28 42 56 70 84 98 111
16 -119 -105 -90 -75 -60 -45 -30 -15 0 15 30 45 60 75 90 105 119
0 -127 -112 -96 -80 -64 -48 -32 -16 0 16 32 48 64 80 96 112 127
-16 -119 -105 -90 -75 -60 -45 -30 -15 0 15 30 45 60 75 90 105 119
-32 -111 -98 -84 -70 -56 -42 -28 -14 0 14 28 42 56 70 84 98 111
-48 -103 -91 -78 -65 -52 -39 -26 -13 0 13 26 39 52 65 78 91 103
-64 -95 -84 -72 -60 -48 -36 -24 -12 0 12 24 36 48 60 72 84 95
-80 -87 -76.5 -66 -55 -44 -33 -22 -11 0 11 22 33 44 55 66 76.5 87
-96 -79 -69.5 -59.5 -50 -40 -30 -20 -10 0 10 20 30 40 50 59.5 69.5 79
-112 -71 -62.5 -53.5 -44.5 -36 -27 -18 -9 0 9 18 27 36 44.5 53.5 62.5 71
-127 -63.5 -56 -48 -40 -32 -24 -16 -8 0 8 16 24 32 40 48 56 63.5

(L,R) Drive Values

null -127 -112 -96 -80 -64 -48 -32 -16 0 16 32 48 64 80 96 112 127
127 (0, 127) (15, 127) (31, 127) (47, 127) (63, 127) (79, 127) (95, 127) (111, 127) (127, 127) (127, 111) (127, 95) (127, 79) (127, 63) (127, 47) (127, 31) (127, 15) (127, 0)
112 (-15, 127) (0, 125) (16, 123) (32, 121) (48, 120) (64, 118) (80, 116) (96, 114) (112, 112) (114, 96) (116, 80) (118, 64) (120, 48) (121, 32) (123, 16) (125, 0) (127, -15)
96 (-31, 127) (-16, 123) (0, 119) (16, 116) (32, 112) (48, 108) (64, 104) (80, 100) (96, 96) (100, 80) (104, 64) (108, 48) (112, 32) (116, 16) (119, 0) (123, -16) (127, -31)
80 (-47, 127) (-32, 121) (-16, 116) (0, 110) (16, 104) (32, 98) (48, 92) (64, 86) (80, 80) (86, 64) (92, 48) (98, 32) (104, 16) (110, 0) (116, -16) (121, -32) (127, -47)
64 (-63, 127) (-48, 120) (-32, 112) (-16, 104) (0, 96) (16, 88) (32, 80) (48, 72) (64, 64) (72, 48) (80, 32) (88, 16) (96, 0) (104, -16) (112, -32) (120, -48) (127, -63)
48 (-79, 127) (-64, 118) (-48, 108) (-32, 98) (-16, 88) (0, 78) (16, 68) (32, 58) (48, 48) (58, 32) (68, 16) (78, 0) (88, -16) (98, -32) (108, -48) (118, -64) (127, -79)
32 (-95, 127) (-80, 116) (-64, 104) (-48, 92) (-32, 80) (-16, 68) (0, 56) (16, 44) (32, 32) (44, 16) (56, 0) (68, -16) (80, -32) (92, -48) (104, -64) (116, -80) (127, -95)
16 (-111, 127) (-96, 114) (-80, 100) (-64, 86) (-48, 72) (-32, 58) (-16, 44) (0, 30) (16, 16) (30, 0) (44, -16) (58, -32) (72, -48) (86, -64) (100, -80) (114, -96) (127, -111)
0 (-127, 127) (-112, 112) (-96, 96) (-80, 80) (-64, 64) (-48, 48) (-32, 32) (-16, 16) (0, 0) (16, -16) (32, -32) (48, -48) (64, -64) (80, -80) (96, -96) (112, -112) (127, -127)
-16 (-127, 111) (-114, 96) (-100, 80) (-86, 64) (-72, 48) (-58, 32) (-44, 16) (-30, 0) (-16, -16) (0, -30) (16, -44) (32, -58) (48, -72) (64, -86) (80, -100) (96, -114) (111, -127)
-32 (-127, 95) (-116, 80) (-104, 64) (-92, 48) (-80, 32) (-68, 16) (-56, 0) (-44, -16) (-32, -32) (-16, -44) (0, -56) (16, -68) (32, -80) (48, -92) (64, -104) (80, -116) (95, -127)
-48 (-127, 79) (-118, 64) (-108, 48) (-98, 32) (-88, 16) (-78, 0) (-68, -16) (-58, -32) (-48, -48) (-32, -58) (-16, -68) (0, -78) (16, -88) (32, -98) (48, -108) (64, -118) (79, -127)
-64 (-127, 63) (-120, 48) (-112, 32) (-104, 16) (-96, 0) (-88, -16) (-80, -32) (-72, -48) (-64, -64) (-48, -72) (-32, -80) (-16, -88) (0, -96) (16, -104) (32, -112) (48, -120) (63, -127)
-80 (-127, 47) (-121, 32) (-116, 16) (-110, 0) (-104, -16) (-98, -32) (-92, -48) (-86, -64) (-80, -80) (-64, -86) (-48, -92) (-32, -98) (-16, -104) (0, -110) (16, -116) (32, -121) (47, -127)
-96 (-127, 31) (-123, 16) (-119, 0) (-116, -16) (-112, -32) (-108, -48) (-104, -64) (-100, -80) (-96, -96) (-80, -100) (-64, -104) (-48, -108) (-32, -112) (-16, -116) (0, -119) (16, -123) (31, -127)
-112 (-127, 15) (-125, 0) (-123, -16) (-121, -32) (-120, -48) (-118, -64) (-116, -80) (-114, -96) (-112, -112) (-96, -114) (-80, -116) (-64, -118) (-48, -120) (-32, -121) (-16, -123) (0, -125) (15, -127)
-127 (-127, 0) (-127, -15) (-127, -31) (-127, -47) (-127, -63) (-127, -79) (-127, -95) (-127, -111) (-127, -127) (-111, -127) (-95, -127) (-79, -127) (-63, -127) (-47, -127) (-31, -127) (-15, -127) (0, -127)