Brushless motors are ubiquitous in RC applications and robotics, but are usually driven with low-cost motor controllers that have to be controlled with RC-style PWM signals and don’t allow for much customization. While there are a couple of open-source brushless drivers already available, [neuromancer2701] created his own brushless motor controller on an Arduino shield.
[neuromancer2701]‘s shield is a sensorless design, which means it uses the back-EMF of the motor for feedback rather than hall effect sensors mounted on the motor. It may seem strange to leave those sensors unused but this allows for less expensive sensorless motors to work with the system. It also uses discrete FETs instead of integrated driver ICs, similar to other designs we have covered. Although he is still working on the back-EMF sensing in his firmware, the shield successfully drives a motor in open-loop mode.
The motor controller is commanded over the Arduino’s serial interface, and will support a serial interface to ROS (Robot Operating System) in the future. This shield could be a good alternative to hobby RC controllers for robots that need a customizable open-source motor controller. The PCB design and source code are available on GitHub.
Continue reading “Brushless Motor Controller Shield for Arduino”
Building electronics with 3D printers is something we see hitting the tip line from time to time, but usually these are printed circuits, not electromechanical parts like motors, solenoids, and relays. [pitrack] thought he could do better than printing out a few blinking LED circuits and designed and built a brushless motor, the same kind you would find on electric model planes and quadcopters.
In every brushless DC motor, there are a few common parts: the rotor has a few powerful magnets embedded in it, a stators with coils of wire, and the an enclosure to keep everything together. [pitrack] printed all these parts off on his Makerbot, winding each of the three coils with about 400 turns of 26 AWG magnet wire. Also embedded in the stator are a trio of hall effect sensors to make the control via an Arduino and an L6234 motor driver easy.
For his next trick, [pitrack] is going to test the efficiency of the motor and attempt to optimize it. In the long term, it should be possible to parameterize the design of one of these printed motors, effectively allowing anyone to type in the torque and Kv rating of a desired motor, plug that into an equation, and have a motor design come out the other end.
Continue reading “A 3D Printed Brushless Motor”
Yep, smoke and flames are usually a sign that your electronics aren’t functioning as expected. This is actually the second failure encountered while learning about brushless motor controllers.
[Michael Kohn] purchase the motor while working on a different project and it went unused for quite some time. When he came across it again he decided he should learn the not-so-dark art of BLDC control.
The first hurdle was to figure out how to drive the three-wire motor when he had been expecting only two. The answer required him to come up with switching mechanism that allows three states for each wire: positive, negative, and not connected. His solution was to use MOSFETs. It’s a good idea, but unfortunately during the first iteration they were under-spec’d and he scared the crap out of himself when one of them blew up during testing (clip #1 below). After sourcing a more robust set of MOSFETs [Micheal] went back to testing which is when this little fire broke out. The 22 gauge wires connecting the Lithium battery to the driver just couldn’t cut it. See for yourself in the second clip.
It’s been awhile since we’ve said it: Please remember the Fail of the Week is not about ridiculing the hacker who was gracious enough to document his or her failure. It’s about learning from the mistake and discussing alternatives that can help others in the future. For instance, in this case some advice in determining MOSFET specs and wire gauge for any type of motor would be quite helpful. Have at it in the comments.
Continue reading “Fail of the Week: Flaming Brushless Motor Controller”
[Davide Gironi] shows us how to implement a sensorless brushless DC motor controller (sensorless BLDC) using an ATmega8 microcontroller. In order to control a BLDC motor you need to know its rotational sequence position and speed so you can calculate and apply the correct current phase sequence to the motor windings at just the right time.
Simply said, sensorless BLDC means you’re not using a purpose built sensor to determine the motor’s position and speed, however, you are sensing the motor’s sequence position using the back EMF signal coming from one of motor’s coils that is not currently receiving power. When this back EMF signal crosses zero voltage a microcontroller can calculate the rotational speed and when to switch to the next power sequence. This technique is not good for position control motors but is great for continuous motors like computer fans and drives were the slightly reduced wiring costs make this type of BLDC control favored.
If you want to build a BLDC controller we recommend starting with [Davide’s] last project on sensor controlled BLDC motors. You can also checkout these interactive demonstrations for more understanding on the different BLDC configurations.
Follow along after the break to watch the video demonstration of [Davide’s] sensorless BLDC controller controlling a motor from CD-ROM drive.
Continue reading “Build a Sensorless Brushless DC Motor Controller”