What are airmode and idle up and what do they do improve my freestyle flights?
Airmode and idle up both seek to increase a control authority and stability during ultra-low throttle moves.
In normal flight, when the pilot commands the multirotor to pitch or roll (cyclic), the flight controller responds by increasing thrust on one side of the craft and decreasing thrust on the other side by the same amount proportional to the cyclic rate commanded. This symmetrical change in thrust allows for quicker rotation than would otherwise be possible if the flight controller only increased power on one side.
The trouble comes when a pilot tries to change the attitude of the multirotor when the throttle commanded by the pilot is near zero (
min_throttle). The flight controller obviously can't decrease the speed of a motor below zero (aka. idle speed), so it has to do something to ensure it can achieve the cyclic rate the pilot wants. Without anything to fix this behavior, the flight controller would only respond with as much as it could without making any motors increase thrust more than the others can decrease thrust. This results in massively decreased control authority at low throttle because the flight controller can only provide minuscule adjustments to motor thrust.
This is where idle up and airmode come into play, although they solve the problem a bit differently.
Idle up is setting configurable in the RC transmitter which changes the throttle curve at the low end so that it the bottom-most throttle position doesn't actually correlate to the transmitter sending zero throttle to the multirotor. Instead, it would send some low value that you configure, usually below 10%.
This would allow the flight controller to speed up and slow down motors by the amount you configure for the increased idle speed, which is a lot better than what it could otherwise accomplish at low throttle.
Most modern flight controller firmwares support airmode, including Cleanflight and Betaflight.
When enabled on the flight controller and the pilot commands a large rotation while at low throttle, the flight controller temporarily pretends that the pilot's throttle command is high enough for it to slow down motors to zero throttle and still achieve the cyclic rotation rate the pilot wants. When the pilot commands less cyclic rotation rate, the flight controller stops pretending that the throttle command is higher than it actually is.
For a graphical explanation of this functionality using graph paper, I recommend taking a look at Joshua Bardwell's video about airmode.
To see what this looks like visually during low-throttle maneuvers, I recommend watching Le Drib's video about idle up vs. airmode. (link starts at relelvant section)