Yaw not changing at low-mid throttle

Hi everyone. I’m having a rather strange problem:
The yaw of my quadcopter simply will not respond to my commands when the throttle lever is between zero and halfway.

I am using a Cheerson CX-20 with ArduCopter v3.1.5. I’m not using any custom hardware or anything fancy, and I’m using the stock controller as well.

I believe it is a issue with the received control signal. In mission planner >> radio calibration, I can see the signal bars changing as I move the levers on my controller, and this is the situation.
-All controls (roll, pitch, throttle etc) are working just fine (apart from yaw)
-The yaw works fine if the throttle is between midway and full, or at completely zero.
-The yaw signal does not change if the throttle is between zero and half way. I cannot rotate the quadcopter at all, and if it is already rotating, it will not stop. If there is already some yaw signal and the throttle is moved just below halfway, the yaw very slowly returns to zero, despite me not touching any levers.

I have taken apart my controller and watched the voltages change as I move the levers around, and the actual voltage changes are fine. I believe it is something to do with how the quadcopter receives the signal, but I have no idea of how to go about fixing the problem.

Any ideas?

Please provide tlogs and/or datatflash logs to help troubleshoot your issue.

Here is a log I obtained from a flight yesterday, trying to diagnose the rotation problem.
Note: I am currently waiting on a new compass module, so my drone doesn’t have one at the moment.