Many years ago before Ebay was flooded with cheap controllers for sensorless brushless motors you payed good money for those. So good money in fact that it sometimes made sense to build them yourself. Back then I did some experiments thinking that they were just souped up 3-phase stepper motor controllers. Realizing that there was much more to it than that I did a few more prototypes with the correct methods and then realized that it wasn’t worth the effort.
Since then on a few occasions the need has come up for some motor controllers with much more agile control than the standard servo interface model aircraft types. I have often thought about revisiting sensorless BLDC now that I have more experience and a better understanding of the subject.
The other day I found a bag of salvaged hard drive motors that are essentially the same as model motors just less powerful. I decided for fun to just hook one up directly to the port pins of an Arduino and much to my surprise I managed to get it to run with just a few lines of code.
Hard drive motor connected directly to Arduino pins
Simple Arduino demo code. Has to be push started.
A bit of buffering and using analog comparator
Encouraged by this I added a little more electronics, just a couple of transistors for buffering. This allowed me to use a simple setup as a model for a more complex controller.
Arduino code AS IS! for inspiration only.