Pololu Blog »
New product: A89301-Based Sensorless Brushless Motor Controller, 50V, 11A
![]() |
Yes, you read that right: brushless! We’re excited to finally announce our A89301-Based Sensorless Brushless Motor Controller, 50V, 11A, our first board designed to control a brushless DC motor.
Pololu has never offered any BLDC motor drivers or controllers until now (we’ve had stepper motor drivers for a long time, but that’s typically not what people mean when they ask for a brushless motor driver), and I think it’s easier to appreciate some of our reasons for this if you look into their principles of operation.
A brushed DC motor can easily be driven with a simple direct current produced from a constant voltage, and its speed can be controlled by varying that voltage proportionally (or by using PWM, which effectively produces a lower average voltage). This is because it has a commutator and some contacts, or “brushes”, that switch the direction of the current in the windings as they rotate inside a fixed magnetic field, and that maintains a steady torque on the motor shaft to keep it spinning. Consequently, the simplest brushed DC motor drivers are not much more than amplifiers that turn low-voltage, low-current control signals into higher power outputs capable of driving a motor.
By contrast, the construction of a brushless DC motor is relatively simple. The coils are located on the fixed part of the motor (stator) and are directly connected to the motor’s terminals, and the magnets are on the rotating part (rotor) instead. Eliminating the brushes and commutator accounts for some of the advantages of brushless motors, including higher efficiency (partly due to less friction) and longer lifetimes (fewer parts to wear out) compared to brushed motors. The trade-off for this reduced mechanical complexity is increased control complexity: something else now has to switch the coil currents appropriately to maintain a steady torque on the rotor, and that is the responsibility of the brushless motor driver.
In order to produce torque, a motor’s windings must generate magnetic forces tangential to the axis of rotation. (I saw an analogy that compares this to using a wrench: you can torque a bolt by applying a tangential force to the wrench handle, but pushing or pulling on the wrench parallel to the handle doesn’t do anything useful.) Since a brushless motor’s magnets rotate, the fixed coils’ magnetic fields must also rotate to keep acting on the rotor tangentially, and this means the coils need to be energized in a rotating sequence.
The simplest way to do this is with an open-loop technique that simply drives the brushless motor using a sequence with fixed timing. However, for better reliability and efficiency, it is helpful to know the actual position of the rotor so that the timing of the sequence can be adjusted accordingly. There are two approaches to doing this, each with their own upsides and downsides: sensored control relies on a position sensor in the motor (like an encoder) to directly measure its position, while sensorless control uses the back-EMF (electromotive force) induced on the coils by the motor’s rotation to calculate its position.
I hope this brief overview conveys some of the additional considerations that are involved in making a brushless DC motor control system. This complexity, and the wide range of electronic parts released by various manufacturers to address it, means that it’s been hard for us to decide on a direction to take when it came to trying to design our own brushless driver or controller. Another factor was that we don’t sell any brushless motors (yet), which made it kind of a chicken-and-egg problem: does it make sense for us to develop a brushless driver when we have no brushless motors, and does it make sense for us to source brushless motors to sell when we have nothing to drive them?
![]() |
Of course, to resolve that dilemma, you have to start with one or the other, and Allegro offering development support for their A89301 brushless DC gate driver IC made it an easy decision for us to move forward with a board for it. Our A89301-Based Sensorless Brushless Motor Controller, 50V, 11A combines the A89301 with external MOSFETs to enable sensorless control of 3-phase BLDC motors at voltages from 5.5 V to 48 V and with phase currents up to 11 A. The A89301 uses a fully-integrated field-oriented control (FOC) algorithm that computes the exact position of the rotor so that the coil currents can be controlled accordingly, optimizing torque and efficiency. It accepts speed inputs via analog voltage, PWM duty cycle, pulse frequency, or I²C signals to simplify the process of getting a brushless motor running without having to write your own complex low-level motor control code. We offer versions with soldered header pins and terminal blocks or without through-hole connectors.
Introductory special discount! Use coupon code A89301INTRO to get either version for $19.95 each.
To make use of all of the A89301 IC’s features and settings, including lock (stall) detection and multiple motor startup options, it needs to be configured through I²C. Our board’s 4-pin I²C connector (Qwiic and STEMMA QT compatible) makes it easy to connect it to one of our USB-to-I²C Adapters and use the Pololu A89301 Configuration Utility software for Windows (based on Allegro’s own evaluation board software) to interface with the A89301.
![]() |
The Pololu A89301 Configuration Utility software. |
---|
![]() |
An A89301-Based Sensorless Brushless Motor Controller connected to a computer with a Pololu Isolated USB-to-I²C Adapter (IOREF shorted to 2V8). |
---|
This is our first brushless motor control solution, and we definitely don’t intend it to be our last. While we have plans for other products, we’re also interested in hearing from you: What are you looking for in a BLDC motor system? What kinds of brushless motors, drivers, and controllers would you like to see us offer?