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.
19 thoughts on “Brushless Motor Controller Shield For Arduino”
The popular SimonK open firmware for 3-phase BLDC controllers also supports serial. Additionally this mod: https://github.com/balrog-kun/tgy implements I2C control with controllable spin direction, RPM feedback, and voltage + temperature feedback if the hardware has appropriate resistors (as do the cheap AfroESC boards)
Maybe I am not seeing the connect, but this appears to be an integrated controller. That way you don’t have to worry about an extra external controller… At which point there’s not too much of a need for a library.
Andrew’s point is correct. Why do this if you can get extremely cheap brushless ESCs going up to 100amps or more from HK, reflash with SimonK and plug it into your choice of uC.
For the fun of it is valid, I suppose.
Well, in my case, I will need a BLDC controller that can fit into an unusual form factor. Maybe if there were more schematic-only ESCs I’d be set?
Maybe to get a different control interface or a greater amount of control? I get the impression the R/C ones only read a PWM signal for controlling speed. Granted, I don’t know a lot about that market.
No, as mentioned they also read serial (if available) and can be controlled through I2C which gives you a little more control (motor reversing, etc.)
OK. I was thinking of something like pulse & direction pins for position control.
There is also another project with the same name:
However it’s not arduino based so the risk of confusion should be low.
Isn’t there a phone friendly link for a schematic?! I can’t devote hours to getting on a pc every day to read hackaday stuff that is buried in a file system, in a zip, in a file system.
define phone friendly. Zips in a filesystem are certainly no issue for android users.
Ok, I have an android. I guess I’ll download. Unzip look around the files…certainly easier to click on a link/picture. I won’t always bother. MAKE IT EASIER hackaday!
get a bigger phablet.
Has NOTHING to do with size.
A PDF or PNG of the schematic would be pretty enlightening
Added a jpg of the schematic,
Thanks! This sort of configuration remembers me of one of the sides of a H-Bridge, but only with N-Channel transistors.
a 20A SimonK ESC is $20
FYI, all modern BL motors used for RC/Hobby applications use back EMF. There are no hall effect sensor on the motors to begin with.
Please be kind and respectful to help make the comments section excellent. (Comment Policy)