App note: RC Model Aircraft Motor Control

Modern RC model aircraft designs incorporate some hefty standards regarding motor speed control:
- The motor should not be started until the speed is at its lowest setting
- Motors with gearboxes should have acceleration limits
- If the control signal is lost the motor should shut off
- Motor shut off in case of low battery, to save power for reaming systems
This reference design from Microchip features two versions of a DC motor controller. Version one has all the features from the list above, while version two adds programmable throttle response and a motor brake.
Schematics and firmware are provided for the PIC12C508A, and PIC16F628 microcontrollers.
This entry was posted in app notes and tagged DC Motor controll, microchip, PIC.

Comments
It’s a bit late for this… Electric R/C models invariably use 3 phase brushless motors now, with electronic speed controllers.
You’re totally right with respect to models being 3 phase sensorless BLDC motor powered now. An appnote or examples for this type of controller would be infinitely more useful, if anyone happens to know of some, such as AVR444.
So model are using brushless DC motors how do they do sense the speed for feedback? Or are they running open loop and just assuming that the motor is at speed. I would guess that they are running open loop to save the weight and because speed regulation is not that important for this application.
Back-EMF on the “idle” leg of the motor is used to sense rotation of the magnets, both for correct rotation direction at startup and to ensure commutation sync.
RC motors generally aren’t sync’ed to a speed, but to a power “setting”, which changes the pulse width applied during each commutation. The exception is helis, which use a governor mode to maintain a fixed headspeed despite wildly varying rotor loading caused by changes is blade pitch.
Thanks I have never explored the RC world but I have wondered how it was done. Power, I never thought of that.
Speed regulation /is/ important, especially for applications like helicopters and multi-rotor craft.
From what I can tell, they use the back emf generated by the turning rotor on the unpowered winding end to work out commutation time and therefore position. They start off in open loop because there is no BEMF produced when the rotor is static or at low speed (signal:noise ratio) but once a lock on the rotor is made they can run closed loop. See http://www.mikrokopter.de/ucwiki/en/BrushlessCtrl#Recognition_of_the_rotor_position and http://open-bldc.org/wiki/Open-BLDC
I’m glad it saves power for reaming systems, but what exactly is getting reamed?
What code is required (Microchip PIC16F877A if possible) to control the motor controller of an RC. Is this general knowledge?
Thanks
Jim Evans