Skip to content

Commit 8c1dc36

Browse files
committed
Merge pull request #276 from lazd/reversedmixer
Subtract the RC middle value from the input, fixes #275
2 parents 620d3a5 + cded112 commit 8c1dc36

File tree

1 file changed

+15
-8
lines changed

1 file changed

+15
-8
lines changed

src/mixer.c

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -482,14 +482,21 @@ static void servoMixer(void)
482482
}
483483

484484
input[INPUT_THROTTLE] = motor[0];
485-
input[INPUT_AUX1] = mcfg.midrc - rcData[AUX1];
486-
input[INPUT_AUX2] = mcfg.midrc - rcData[AUX2];
487-
input[INPUT_AUX3] = mcfg.midrc - rcData[AUX3];
488-
input[INPUT_AUX4] = mcfg.midrc - rcData[AUX4];
489-
input[INPUT_RC_ROLL] = mcfg.midrc - rcData[ROLL];
490-
input[INPUT_RC_PITCH] = mcfg.midrc - rcData[PITCH];
491-
input[INPUT_RC_YAW] = mcfg.midrc - rcData[YAW];
492-
input[INPUT_RC_THROTTLE] = mcfg.midrc - rcData[THROTTLE];
485+
486+
// center the RC input value around the RC middle value
487+
// by subtracting the RC middle value from the RC input value, we get:
488+
// data - middle = input
489+
// 2000 - 1500 = +500
490+
// 1500 - 1500 = 0
491+
// 1000 - 1500 = -500
492+
input[INPUT_AUX1] = rcData[AUX1] - mcfg.midrc;
493+
input[INPUT_AUX2] = rcData[AUX2] - mcfg.midrc;
494+
input[INPUT_AUX3] = rcData[AUX3] - mcfg.midrc;
495+
input[INPUT_AUX4] = rcData[AUX4] - mcfg.midrc;
496+
input[INPUT_RC_ROLL] = rcData[ROLL] - mcfg.midrc;
497+
input[INPUT_RC_PITCH] = rcData[PITCH] - mcfg.midrc;
498+
input[INPUT_RC_YAW] = rcData[YAW] - mcfg.midrc;
499+
input[INPUT_RC_THROTTLE] = rcData[THROTTLE] - mcfg.midrc;
493500

494501
for (i = 0; i < MAX_SERVOS; i++)
495502
servo[i] = 0;

0 commit comments

Comments
 (0)