An Arduino based differential thrust mixer for twin engine RC Airplanes
A differential thrust mixer combines RC Throttle and Yaw input from a receiver or flight controller and then outputs Left Motor & Right Motor throttle values.
Most RC Transmitters support channel mixing right in the radio. Some radios do not. In my case, my radio supports it but I want to use an Eagle Tree Vector on a Sea Duck I bought from FliteTest.
The Vector does not support planes that rely on differential thrust for yaw. My solution was to use an Arduino to intercept the Throttle and Rudder outputs from the Vector, mix them and send the result to the ESCs.
- I used an Adafruit Trinket Pro w/5v logic (non pro version does not work!)
- Two pins are setup to read the PWM signal from the Vector
- Two pins are setup to write the PWM (in microseconds) to the ESCs
- When yawing left, the program calculates the % of yaw then reduces the left motor by that amount while increasing the right motor by the same amount.
- If the throttle value is set at 50% and a 50% yaw left command is given, the program will send 75% thrust to the right motor and 25% thrust to the left motor.
- Throttle = 50%, Yaw Left = 100%, Left Motor = 0%, Right Motor = 100%
- Throttle = 100%, Yaw Left = 25%, Left Motor = 75%, Right Motor = 100%