Time to get the radio setup! I'm using a Taranis X9D+ with OpenTX - might as well show everyone how the model is setup
First interesting stuff happens in the Flight Modes tab. Here I've assigned Global Variables for all the rates for the different control surfaces, and my expo level on the Flight Mode 0 tab. On the Flight Mode 1 tab all the rate values ratchet up to 80%, and on the Flight Mode 2 tab I take them to 100% to start. After a maiden flight, depending on how sensitive she is I will make adjustments here to calm down the rates of various control surfaces. For anyone not familiar with OpenTX, Flight Mode 0 is active by default and on each of the other Flight Mode tabs there is a switch assignment to activate it - I use SB mid for the 80% "Firm" and SB Down for the 100% "Touchy" settings.
Next in order is the inputs. It doesn't really matter what order these go in, but there are a couple neat things I do here.
First, you'll see where each Input line has an "Expo (GV3:Epx)" - that means it's going to apply expo based on the Global Variable 3:Exp value - which in the screen show above is set for 30%. I usually set the high rates expo just a little higher at 35%, and this way the expo setting whichever flight mode is active is applied to the Rudder / Elevator / Aileron stick movements.
Also, I setup cross trims here - for example the Rudder input is using TrmA which is the Aileron trim tab for it's settings. This means I can keep my right hand on the stick and move the trim buttons on my left stick with my left hand - no reaching across the radio and accidentally hitting the power button!
And finally, here's the first part of my Throttle cut setup - the first line in the Thr section says to use the full weight of the Throttle stick with no trim only when Logical Switch 20 (L20) is active. If that condition is not true, it goes to the next line which says if Logical Switch 20 is not active (!L20) then apply Curve number 4 to the throttle value. And while I didn't screen shot it here, Curve 4 is a flat line at -100% value - so no matter where I move the stick up and down, there is still a value of -100 going out the throttle input. More on the throttle cut later...
Here's the heart of the control chain - the mixes! This is where we determine what goes out each channel. I've named each channel next to the channel number (can only use 6 characters so it's short hand). Then I identify the input, or combination of inputs, and modifiers that go with each channel.
Most of these are pretty simple - for Aileron Right (AilR) take the Aileron (I4:Ail) stick input and apply the GV1:ARa rate multipler to it. This way when I'm in flight mode 0 the value I've got in the GV1 variable will be applied to the right aileron channel. Repeat that general idea for right and left ailerons, rudder and nose servos, and the right and left canards.
The right and left throttle (ThrR and ThL) are setup a little differently. The first line of each mix says bring in the full value of the Thr input stick (which from before could be locked at -100 if the throttle cut logical switch is on). The next line says subtract 25% of the Rudder stick value from the throttle if switch SD is in the middle position. The third line says make that a 50% adjustment if the SD switch is down. So when the SD switch is up (it's a 3 position switch) the throttle value goes out normally without any rudder input. The end effect of this? Differential thrust! When I move the SD switch and hit the rudder, the engines throttle up and down on each side to help yaw the plane around.
Now could I have done this differential thrust setup with a Global Variable and Flight Modes? Not while keeping it on a separate switch from the high/medium/low rates. Only 1 Flight Mode can be active at a time, so I could create some complicated logical switches driven by both switch SB and SD setup and use Flight Mode 4 to be low rates but mid differential thrust, etc - but this was a simpler way to get differential thrust on it's own switch.
Here we come to the Logical Switches. Yes, I have lots of unused switches in the middle. That's because when I first started using this style of Throttle Cut I copied it from someone else who used Switches L19 and L20 - and I didn't understand how it worked enough to mess with changing it. Now it's just sort of handy to keep the same logical switches for all of my planes.
So the first Logical Switch L01 is only active when SE and SH are both in the down position. When we get to the Special Functions you'll see what that does.
Logical Switch L03 only goes active the instant that switch SF is held down for 1.5 seconds. I can hold switch SF for 1 second and it doesn't trigger the logical switch, and if I hold it for 3 or 4 or 5 seconds it still only triggers Logical Switch L03 once at the instant it crosses the 1.5 second timer. More on what I use that for in the Special Functions section.
L19 and L20 work together to add some spice to the throttle cut function. Starting with L19, you can see it will only be evaluated as True if the Thr input value is less than -98 - so only when the stick is all the way down, allowing for a tiny bit of sensor bounce. Remember our friend L20 was used back in the Inputs section to force the use of a -100 value (via curve). So looking at the L20 definition below, L20 can only be evaluated as true is switch SA is not up (!SA up arrow). The other part of L20 using the or statement with L19 and L20 and the .5 second delay are magic to me - I've seen a deep discussion of how the logic is evaluated, and it works, but honestly I couldn't explain it to you now. The end effect is that the only way to activate L20 and thus activate the throttle is to move switch SA and put the throttle stick all the way down. Then with the SA switch still in place, the throttle can go up and down and everything works normally. But if switch SA moves then L20 goes false and the throttle value is forced to be -100 via the curve on the input line. Make sense? Good.
The Special Functions! Here's another area where there are lots of blank spaces - but for a different reason. I used to have almost all of these lines filled in with triggers for sound files - but I've moved to using specially named sound files in a folder with the same name as the model instead of a line here for every one. The big advantage of this is it uses less RAM memory space in the transmitter - and I did hit a limit at one point where I had too many complicated models (I think around 40ish) and it wouldn't let me add any more. I could have grabbed a second SD card, but by doing this named sound file method I was able to free up RAM and keep on going
So, Special Function 5 (SF5) is still here, and it only triggers when Logical Switch 1 (L01) goes active. And remembering above, L01 only goes active when I put SE up and then hold the SH switch as well. If I do that, it triggers the Instant Trim feature - which after some experimenting I'm not a bit fan of.
Special Function 14 and 15 are here to make sure if I have differential thrust on and the throttle cut is active, no rudder values make their way out to the motors. I could have also done this by adding a line to the Rudder Input value just like the Throttle to force it to Curve 4 when the throttle cut is active, but then I couldn't test out the rudder servo on the ground before activating the throttle. Gotta be able to do the crap check, right?
The last pair of Special Functions 19 and 20 are only triggered when logical switch L03 goes active - and we remember that only goes active when switch SF is held down for 1.5 seconds (or longer). When that happens it resets the timers. I also have a global radio setting (not in this model, but active for all models) that says moving switch SF down causes the radio to speak out the values of the timers. This way the single two position switch does 2 functions - when I just quickly flick the switch it reads out my timer value. When I hold the switch down it will reset the timers. I also have a sound file named correctly that says "Reset" when the timers get reset. Very handy for when I forget to reset the timer until after I've already taken off
There are a couple other global radio functions that I can explain if people are interested, but this is all the special sauce for the model at this point.