My own design Sensor less/ Brush less/ Slot less Motor and driver - Page 3 - RC Groups
Shop our Airplanes Products Drone Products Sales
Thread Tools
Dec 19, 2002, 06:59 AM
Registered User

Sensing pattern and Drive pattern

The sampling of drive coil generator 3 phase waveform has 6 kinds of code patterns at the comparator output except g000h and g111h. This pattern synchronizes the FET output drive pattern as follows.

This is the heart of Sensor-less Brush-less control of main routine.

Last edited by Takao Shimizu; Dec 19, 2002 at 07:15 AM.
Sign up now
to remove ads between posts
Dec 20, 2002, 07:34 PM
Registered User

Drive main routine

Here is the simplified program for explanation of main routine.
Just get the sensor output code pattern and drive same pattern for output drive.
(There U,V,W drive coils and N=Low site FET-on, P= High site FET-on)

Last edited by Takao Shimizu; Dec 20, 2002 at 07:36 PM.
Dec 21, 2002, 11:13 AM
Registered User

Difficulties at motor starting

The sensor-less detector is the A.C. circuit by drives coils. This means the circuit cannot detect the magnet position without rotation. This is why the sensor-less does not start smoothly. Once the motor starts with a few hundred rpm, the circuit works perfectly.
At starting, just apply the 3-phase AC power as sequencer control to a few winded motor with duty control for power current limit. At this time, the difficulties are smooth rotation and direction controls by very low sensing voltage, which cause unstable sensing code data.
My program makes error the motor rotate direction at the starting, as you mention it some times, not always. In the air, there is no problem by fling airflow to the prop rotation, even fold prop.
Just touch the prop and rotate it at starting with stick control, the motor runs as engine starts. This is why I am not interesting in the motor start control programming.
Probably, the unstable sensing code data should be averaged as integrator to check missing code data in starting period.

Last edited by Takao Shimizu; Dec 24, 2002 at 10:12 AM.
Dec 22, 2002, 10:36 AM
Registered User

Programming tool and support software

Programming tool selection is very important for easy debugging and writing program to improve the high power control program. If you made a bug, the circuit would be burned out in short period on the brush-less motor controller board.

I have used ATMEL ICE: In Circuit Emulator, ICE200. The reason is $99.

Also, the support software is free from web download.

ATMELfs technology root is INTEL. The processor is RISC type and most of instructions are one clock cycle, very fast.
The AT90S2313 micro-controller chip, which is used for my plane, is less than $3 in Japan.
Also, this chip has internal 16bit timer counter with edge selectable input capture register, which may use the input pulse width counter for the digital proportional servo control as ESC. The interrupt routine or in main routine, you can measure the stick position by this counter anytime. This is why you can see this chip on some ESC RC manufacture printed circuit board.

If you make new ESC for any motor or other computer controls, enjoy the low cost electronics hobby with these uPs.

Last edited by Takao Shimizu; Dec 26, 2002 at 11:33 AM.
Dec 22, 2002, 09:02 PM
X-Era Motors
DavidB.'s Avatar
Great job Takao, I'm amazed at how much work you have put into your brushless controller design. I am still curious how it performs compared to an off the shelf design such as a Jeti, or CastleCreations ESC? Not that it really matter right now since your still design stage.
I sincerely hope we can start a DIY brushless ESC trend not unlike what's happening on the LRK scene, this would allow much faster progression and provide a larger knowledge base. Right now it seems people are very tight lipped about their controller designs (your the single exception). Even the designers of the SpeedyBL kit won't give away the code that runs their controllers.

keep us posted
David Bloomfield
Dec 23, 2002, 10:35 AM
Registered User
I have been following this thread with great interest. Takao has done a great job posting information on his design. I have been experimenting the past few weeks with 2 off-the-shelf brushless/sensorless chips, the Fairchild ML4425 and the Philips TDA5142T. The Fairchild seems very finicky, and does not restart well, but has builtin speed control and pwm drive to the fet's. The Philips chip has much better startup, but no builtin pwm for the fet's. My next steps will be to add pwm to the philips chip for control from the receiver.

David, good point about open designs, I plan to post everything I have done so far so that others can contribute also. I initially tried to get source code for the SpeedyBL from Jo, but he wants to keep it proprietary, as is his right. I am really not interested in building a controller that I cannot modify and hopefully improve myself, as this is most of the fun for me. In fact, Takao has been so open with his design that I am now thinking about switching my efforts over to his controller.

As a side note, there is another "kit" type design at:

It is all in German (at least I think it is german), and appears to be a well made kit. Interesting also in that he is using the Fairchild chip but lists his own part number and appears to have sanded off all markings on it. Of course, since I do not read german I may have missed additional info at his site.

Dec 23, 2002, 10:53 AM
Registered User
I also need to mention that I have been using a great cd-rom motor built by MrSpinner. He has flown these on his Tiny and his own design heli (smaller than a HouseFly!), although not with my controllers. My controllers have not made it off my bench yet.

Dec 23, 2002, 12:16 PM
Registered User


* Appendix 1:Specs and comparison
I have been asked that gDid you compare the performance to another ESC?h so often.
Should I answer this?
If I said it, the next question is gWhy so different?h, anyway.

The brush-less control is not complicated. Only 3 output stage and 3 input data lines, plus one digital proportional interface control with CPU on the so small printed circuit board. As you may find the brush-less ESC comparison reports on some sort of RC magazine, there may be no difference of performance, basically. Because of the output control sequence is based on only 3 digits of input data code. Other parameters may be ON resistance between source and drain of switching FET.

My motor is almost same as other slot-less type. There is no difference of magnet and slot-less coils between others and mine, except magnetic shield ring with the expensive machine made outer case. Therefore, you should not put any magnetic metals near the open case brush-less motor like mine.

*Appendix 2: Good efficiency motor?
Good motor means good design, which uses good efficient magnetic field in the motor.
Imagine less than one rotation of the insite of motor without load.
At the starting of feeding the electric energy into the drive coil phase position, there may not be 100% using of magnetic filed(by number of limited pole). So, the drive current is not so small, because of the reactive voltage is smaller than 100% magnetic field rotor position.
After this, the rotor phase moves to 100% using of magnetic filed in the motor. The power current is reduced and BACK TO THE POWER SUPPLY (through the FETfs protection diode) by previous HIGH CURRENT speed rotation.
This is why the efficiency at the no-load condition is not so good. All current into the motor condition as the best efficiency means that the small loading is necessary for energy converting to output shaft energy.
You might use hi-pole motor to get good efficiency (but, my latest motor is single phase).

Last edited by Takao Shimizu; Mar 04, 2003 at 04:51 AM.
Dec 23, 2002, 05:53 PM
X-Era Motors
DavidB.'s Avatar
It's great to see growing interest in DIY controllers. I have been investigated Brushless controllers for some time, and it seems that a microcontroller is the best solution since it provides a very easy means of modifying the code to suit different conditions. The high end brushless controllers all use very expensive DSP's while for us, the AVR chip is the preferred at only a few dollars each. I did find a link or two that used the philips chip, but adjusting parameters whould involve soldering......I much prefer an EEPROM. Right now I only have some experience with basic stamps, but will read up on the AVR's so I'm not wandering around in the dark, so to speak. I will however, try my hands at a breadboard version of Takao's controller once I can finish my Christmas shopping .

David Bloomfield
Dec 24, 2002, 09:53 AM
Registered User

Programming hints

The power current may be more than 20A required for testing and debugging. You may need the hi-current DC power supply or Ni-Cd battery with continues charging while writing the program to check the full power motor running test measurement. You may need the car light bulb series connection on the FET power line to limit the current and protect the circuit instead of fuse as my photo shows for a while. If you made the serious bug, the light comes on.
After this, another bug may make a lot of peak current noise. This type of bug also heats up the power supply bypass capacitor, which may be over 1000uF on the DC power line. Check the cap temperature by your finger for final test. It is useful compared with using any expensive oscilloscope.

The ATMEL ICE 200 is interfered as ICE reset by hi speed motor switching drive current, sometime. So, my ICE 200fs I/O bus transceiver chip 74FST3244sf Vcc pins are connected to 5V, instead of 3.3V to avoid reset happening. This is by connection from 7805fs 5V output pin with just one wire on the board.

Last edited by Takao Shimizu; Dec 26, 2002 at 01:28 AM.
Dec 26, 2002, 01:14 AM
Registered User
Takao, thank you for sharing your work with us, it is much appreciated. Do you think a pic proccessor would be suitable for a brushless motor controller?

Thanks again,

Dec 26, 2002, 03:12 AM
Registered User

> Do you think a pic proccessor would be suitable for a brushless motor controller?

PIC is useful. I have seen many PIC brushless controllers in Japan. But, the emulator is expensive for me. This why I can not use PIC.
Last edited by Takao Shimizu; Dec 26, 2002 at 03:14 AM.
Dec 26, 2002, 11:15 AM
Registered User

Basic of power control

The most of ESC control signal, like Futaba or JR, is shown as the figure.
The frame timing is about 15 to 20mS. Most of radio digital proportional control pulse width is 1 to 2 mS (varied with Tx stick position).
My radio is slow as stop stick position is 1mS and full power is 2mS at Tx normal direction setting.

The ESC program needs to measures this pulse width for power control.
ATMEL AVR AT90S2313 chip has 8bit resolution T0 and 16bit resolution T1 internal timer/counters. My program uses the T1 timer with 1/64(6.4uS) clock resolution to measure the input pulse width and T0 is used for output duty control.
As you see the schematic, the rising edge of the control pulse is used for the T1 timer/counter reset function by interrupt routine program through pin7 (INT1) of interrupt input. Also, the falling edge is used for the (hardware) capture for the T1 timer/counter data and transferred to internal T1 timer/counter capture register by pin11 (ICP) function. This is why pin7 and pin11 are connected parallel to Rx signal connector (to be able to read this control pulse width from T1 timer/counter capture register anytime).

The captured T1 data is used for T0 output duty setting timer/counter control. Also T0 is used for the sampling timing control (after the end of T0 off duty timer).

The sensing circuit starts to work from the good magnetic filed phase position at very slow start running condition (and a lot of missing code generating), anyway.
The T0 resolution timing at the motor starting is longer than normal running for the sensor-less sampling control as reduce the getting number of error sensing pattern code input at the motor starting. This is the reason of just like the working of pulse motor with some cogging at the starting.

Last edited by Takao Shimizu; Dec 27, 2002 at 10:22 AM.
Dec 27, 2002, 10:16 AM
Registered User

Other considerations

1) Jitter
The control pulse has no jitter by PCM radio control system. But, as my radio, the PPM control with narrow FM inexpensive system has inherent jitter. I measured it by my digital counter. The result says gThere is +-5uS at least, the worst case is about 20uS in control conditionh.
This jitter causes one problem at gvery slowh or gstoph vice versa pulse width condition. This is very serious for the sensor-less (=unstable starting) system for restarting.
I programmed the hysterisis control at the slowest power control condition to avoid this problem.

2) Dead spot
The chassis of Tx is not enough for antenna ground (for the reverse polarity radiation of antenna RF energy). This means VSWR is not goneh always (when you are holding your TX).
This means the reverse polarity of RF energy is balanced with the antenna radiation RF energy at somewhere spot in the space of flying area.
This causes the no-control area, which is called gdead spoth. (This may be felt in one RF wave length, near a few meters away from your TX)
Especially, the PPM system generates the error control pulse(like noise) or no control pulse in the dead spot.

My program checks the losing control pulse, shorter than minimum control pulse width or longer than maximum pulse width for PPM system radio by T1 timer data and T1 nearly overflow data. The system works continually with previous control data in the dead spotf for about 0.4 second. After this, the system shut off the power to the motor, if there is no control pulse come in, like PCM fail-safe control.

Last edited by Takao Shimizu; Dec 27, 2002 at 10:25 AM.
Dec 28, 2002, 09:51 AM
Registered User
3) Battery voltage down sensing and power cut-off control
The battery voltage sensor circuit checks low battery voltage condition in main routine. I may say that Ni-Cd is 0.7V/cell is the motor cut off voltage. For example, at 7 cell pack is about 5V is the low voltage limit and 5V is also adequate voltage radio and servo operation.
The reason of battery voltage down is the internal resistance is higher than just after charged. Therefore, after CPU cut-off the motor, the battery voltage comes-up immediately by reducing the current drawing.
The low battery voltage sensing cut off program should check the Tx stick power off after low-voltage cut off to avoid Power on/off oscillation loop in software.

4) BEC
You must use the low voltage drop type of voltage regulator chip for BEC. Such as Input voltage is greater than 5.1V and output is 5V constant, not 7805 as 7V minimum input voltage type.

The BEC chip is working just like the automatic controlled variable resister to stable the Rx and servo power voltage by liner feedback loop with output voltage sensing amplifier. This is why the BEC chip is heated up with high-loading servo condition.

Most of inexpensive 5V regulator can draw 1A. It may work with 3 or 4 RC servos in short period working time as the usual servo motor run time before BEC chip over heat by heat delay by the thermal resistance.
But, do not forget the BEC heat up problem.

(Input voltage - Output voltage)*(Rx and servo control current)=power consumption of BEC chip.

This formula says;

a) You must consider the Input voltage limit.
b) Do not over servo load condition.

If you need high current BEC constantly, Use multi BEC chips or use heat-sink for BEC chip cooling within limited INPUT BATTERY VOLTAGE.

I hope these may be the answers for sending e-mail to me with questions, so far.
Last edited by Takao Shimizu; Jan 09, 2003 at 03:40 AM.

Thread Tools