Go Down

Topic: how to drive the cd-rom brushless motor? (Read 12350 times) previous topic - next topic


now i got one BLDC motor from my old cd-rom. The motor was 3 wires. Anybody can tell me how drive it using arduino?The motor have 13 pins,maybe it's diffcult to drive.Maybe i will have to cut the driver part from the origial . :D


3 wires or 13 pins which is it? Perhaps a clear photo or drawing or part number will help.


you can get it from an old cd-rom. it's used to rotate the cd in center of shield.


Sorry, I don't have an old CDROM I care to tear apart.


and every CD-rom drive don't have the same motor... we need more infos to be able to help you...


just found BA6840BFS IC can driver the cd-motor with 3-phase . i cannot find the motor stype,it is nothing  about it,maybe i will detach it to see which pin is wire A,b,c ,whici is Hall 1,2,3, etc


There's a whole cult following in converting old CDROM 3-phase motors to high-power "outrunner" motors for model planes and such.  Rewind the stator, add stronger magnets, drive with a multi-amp ESC...
While there are many different motors, the principles of the three-phase motors which are usually there are the same, and you can learn a lot from the cult, even if you don't go to the extremes...  (the motor is the same before you start mods; just not as powerful.)


This does mean that driving such a motor from an Arduino is relatively difficult; about comparable to driving a stepper motor.  Standard circuit is a half H-bridge for each of the three wires.  I'm still looking for a simple circuit that will do for light loads...

It ALSO means that one way of driving such a motor is to buy a cheap RC Electronic Speed Controller, which the arduino can then drive as it would a servo...


Jun 29, 2008, 02:46 am Last Edit: Jun 29, 2008, 02:47 am by cxl2253 Reason: 1
yes, now i found that it is diffcult to drive the BLDC, maybe  it is relatively easy to drive BLDC with sensor than sensorless . LBP6190 maybe meet the need if with hall sensor. But it cost nearly $2 more. Does anybody use arduino to drive BLDC without sensor ???


Hi, I have tried and found this Sketch useful for driving a Sensorless BLDC Motor.


// this uses the Arduino servo library included with version 0012

// caution, this code sweeps the motor up to maximum speed !
// make sure the motor is mounted securily before running.

#include <Servo.h>

Servo myservo;

void arm(){
 // arm the speed controller, modify as necessary for your ESC  
 delay (1000); //delay 1 seconds,  some speed controllers may need longer

void setSpeed(int speed){
 // speed is from 0 to 100 where 0 is off and 100 is maximum speed
 //the following maps speed values of 0-100 to angles from 0-180,
 // some speed controllers may need different values, see the ESC instructions
 int angle = map(speed, 0, 100, 0, 180);

void setup()

void loop()
 int speed;

 // sweep up from 0 to to maximum speed in 20 seconds
 for(speed = 0; speed <= 100; speed += 5) {
 // sweep back down to 0 speed.
 for(speed = 95; speed > 0; speed -= 5) {
 delay(5000); // stop the motor for 5 seconds

I am building my Knowledge up to drive a large very powerful BLDC Motor.

Kiwijor 8-)


Apr 10, 2010, 01:41 am Last Edit: Apr 10, 2010, 01:44 am by retrolefty Reason: 1
A lot can be learned reading a Atmel application docs on driving brushless DC motors:


This app note looks very informative for sensorless applications:




@Kiwijor: i assume that you also have a BLDC "speed controller" between the Arduino and the actual motor...  Driving a bare motor is a lot different.
(since such controllers are available for under $10 these days, I'm not even sure it makes sense to try to build discreet controllers any more.)


I omitted to mention that didn't I, I bought a small motor and 20 amp ESC from Hobby City for experiment cost of both was under $20 I think.

I have a high Power BLDC motor that came from a Fisher and Paykel washing machine, and intend to construct a higher power ESC for controlling it, I also bought a serial Arduino Bd Kit, I've been involved in Electronics for many years, and enjoy tinkering.

My first Microcontroller used a 6801L which was a 1bit CPU with 2k of ram, back in 1980 it was the first of the modern CPU chips.

The F'nP' washing machine, built in 1984 was the first ever to use a BLDC computer controlled Motor, as an aside, it also makes a great Wind Turbine generator, turning out considerable energy.


Go Up