In this article the goal is to set up and calibrate properly the Hall sensors to SOLO for controlling Speed or Torque of your 3-phase motors specially BLDC or PMSM motors. These types of sensors come with 3 wires as each of these wires are representing a digital hall sensor output placed 120° apart and each of them are aligned to 1 phase of the motor. There can be two other wires along-side with the Hall sensor outputs which are used for supplying the Hall sensing circuitry, SOLO provides you a +5V and a Ground for this purpose. If you don’t use the SOLO’s +5V supply for the Hall sensors, make sure at least in one point there is a connection between the Ground of SOLO to the Ground of Hall sensors output.
Using HALL sensors, you can achieve to a higher accuracy in Torque and Speed controlling comparing to sensorless methods and beside that once you use them, you can reach to lower speeds with higher performance too, because in general the sensorless methods are good for high speed operations and if you want to have good low speed operation, using HALL sensors or Encoders will facilitate that.
If you Monitor the Hall sensor outputs while a brushless motor is spinning in an arbitrary direction you will see the HALL Sensors output something similar to Figure 1 below, and as can be seen, the signals are having 120 degrees phase shift with respect to each other.
Figure 1- A possible output for Hall sensors mounted on a 3-phase Motor
Figure 2 – Encoder/Hall Input actual Pin numbering on SOLO UNO
As you can see in Table 1, SOLO provides the Power as well as signal inputs, so you can feed up your Hall sensors circuitry with the +5V coming out of SOLO at PIN Number 1 and also connecting the ground of your Hall sensors to Pin Number 6. To find the right order for signal inputs and how to connect them properly to SOLO you need to follow the steps below
Table 1 – The pinout of the Encoder/Hall Connector on SOLO UNO
Another point to keep in mind is the internal circuitry of SOLO and how it interfaces the Hall sensors output, the simplified schematic is as in Figure 3 below, which shows at the input, all the 3 channels of the “Encoder/HALL Connector” are pulled up with a 1kΩ resistance to provide 5mA current for open drain / open collector type of Hall sensors.
Figure 3 – Internal circuitry of HALL sensors input with pulled-up lines
HALL sensors Setup and calibration for 3-phase Motors (BLDC, PMSM , ACIM)
To proceed with this setup we are using a Brushless DC Motor with part number of “DB56C036030-A” and the technical datasheet that can be read here.
Figure 1- BLDC Motor used in this setup for HALL sensor calibration
To Setup your Hall sensors for SOLO we will use here SOLO Motion Terminal and subsequently, the whole wiring of your setup can be only with a USB cable and a power supply connected to the input similar to Figure 5 shown below, in the first setup the order of Motor’s wiring to ABC Motor output of SOLO is not important, but later you might want to change that based on the calibration results in second phase of calibration which is the Motor connection phase mentioned below.
Figure5 – Initial wiring diagram of SOLO for setting up the HALL sensors
For the first time, you can connect the HALL sensors output in an arbitrary fashion to CHA, CHB and CHC inputs of SOLO known as “Encoder/Hall Connector” and then based on the first step below we will verify if the order of connection is right or it must be changed to a different configuration.
Once you correctly connect the HALL sensor outputs to SOLO, you need to verify the order of the connection of the Motor wires and finally calibrate the whole system, so basically the whole process will be done in two major steps as are listed in the following.
STEP 1 – Connect the HALL outputs to “Encoder/Hall Connector” of SOLO
Now we will proceed to check the order of HALL sensors outputs to SOLO and how to properly make sure everything’s in order, to that end we need to :
1. Connect the +5V, GND of the HALL sensor circuitry to respective pins on Encoder/Hall Connector on SOLO based on Table 1 and Figure 2 above
2. Make sure the CHA, CHB and CHC of “ Encoder/Hall Connector” are connected to 3 outputs of your HALL sensors, in this step the order of connection can be arbitrary, but you need to record this wiring order since if the order is not correct based on the following steps, you’d be able to discard this combination.
3. Make sure SOLO is in Closed loop ( pin number 5 of Piano switch is down in SOLO UNO)
4. Open Motion Terminal, connect to SOLO and make sure you put the “Command Mode” on “Digital”.
5. After making sure you are in Digital mode, now make sure the Motor Type is properly selected on any brushless motor type ( BLDC-PMSM or BLDC-PMSM ultra fast), you can “SET” it first and then “READ” it to make sure the motor type is properly selected on SOLO.
6. Make sure you put the “Speed/Torque Control Mode*” in Motion terminal on “USING HALL SENSORS”
7. Activate the Performance Monitoring , and keep it going, you can zoom a little bit on the signals to have better focus on them.
8. Keep the Motor in a way that the shaft of the Motor is facing you, Turn the Motor manually in CounterClockwise and Clockwise directions and keep looking at the “Angle” plot. If the wiring of the HALL sensors to SOLO is right, in C.C.W rotation you should see the Angle has a trend similar to Figure 6 below, with an upward trend to a max value and then jumping back to a minimum value, however the trend of this signal while you turn the motor in C.W direction will be opposite as can be seen in Figure 6, so if you see the trends of the Angle signal is as expected it means the wiring of your Hall sensor outputs to SOLO is correctly done, otherwise you need to try a different combination out of 6 available combinations of the HALL output to SOLO and continue till you find any wiring combination that satisfies the trend in Figure 6 based on the direction of the rotation.
Figure 6 – Correct “Angle” trend while the Motor is manually turned in CCW or CW directions
** NOTE: When you turn your Motor manually you might observe the Angle plot is not as clean as the image places above and instead you observe the Angle is stepping up when you turn the motor in the CCW direction or stepping down in CW direction, and this is totally fine! what matters is you confirm the similarity of the Angle trend between the direction of the rotation and the mentioned image in Figure 6 above, The main reason is for some brushless motors while you turn them manually they might move like step by step, but when SOLO drives them after calibration, you can see a clean Angle plot as in Figure 6 later on.
After verifying this part, your HALL sensor output connection to SOLO is done and now it’s time to check the Motors’ wiring based on the next section.
STEP 2 – Find the proper Motor wires connection to SOLO
Once you use SOLO in sensor-based modes, either by using quadrature Encoders or the Hall sensors, the order of wirings of your Motor to SOLO’s outputs will become important, while in sensorless mode the order of the motor’s wiring is not important.
For this reason you need to verify that the 3 wires coming out of your Motor are well connected to SOLO, in General there will be a total of 6 combinations that you can connect the wires of your 3-phase Motor to SOLO’s output A,B and C, while out of these 6 combinations only two or in some cases one of them will work flawlessly in both directions for Speed / Torque, the steps to find proper Motor wirings will be:
1. Connect the 3 wires of your motor in an arbitrary fashion to SOLO’s ABC Motor outputs and record the combination in a table, similar to the table 2 below, where we are imagining the Motor has 3 wires with Red, Blue and Black colors.
2. Make sure SOLO is in Closed loop ( pin number 5 of Piano switch is down in SOLO UNO)
3. Open the Motion Terminal, connect to SOLO and make sure you put the “Command Mode” on “Digital”.
4. After making sure you are in Digital mode, now make sure the Motor Type is properly selected on any brushless motor type ( BLDC-PMSM or BLDC-PMSM ultra fast), you can SET it first and then READ it to make sure the motor type is properly selected on SOLO.
5. Put the current limit on 70% of your motor peak current ( to have near full torque calibration), you can put this at max current limit if you want to do a full torque calibration.
6. Do the Motor Identification in Motion Terminal and wait till it’s done. ( 2 seconds )
7. Press the “HALL Sensors Calibration” button in the Motion terminal, after this the Motor will start slowly rotating in clockwise direction for a while and then it will stop. After the calibration is done, if you press “Read All”, you’ll see some value between 0 to 1 in Encoder/Hall C.C.W and C.W offset section of Motion terminal. These are the mechanical offsets in each direction that are estimated based on your HALL sensor mechanical positioning, please record the calibration values somewhere in your table for each combination. For HALL sensors the offset value for C.C.W or C.W direction will be the same.
8. Now automatically after calibration, if you Press “Read All Params“ in Motion Terminal, you will see you are in Digital Torque mode, so without doing anything you can just put a reference Torque value in Amps inside “Torque Reference_Iq [A]” and see if the Motor starts to move, for example you can put a value like 30% of your maximum current in Torque reference and see if the Motor goes to nominal speed in both C.C.W and C.W. directions. If the Motor doesn’t move at all or it works in only one direction, then it means the wiring combination is not right, in this case try the next combination of wires connection to ABC output of SOLO and start from step 7 above again ( change the Motor wiring, run again the Hall sensor calibration, check the torque loop).
Mostly In 2 out of these 6 combinations, you should see the motor works well in Torque mode, after this you can go to speed mode and check the behavior there in both C.C.W and C.W. directions, to make sure everything is correctly done.
Table 2 – A sample table for finding the best wiring combinations for HALL sensors
In this article the goal was to make sure only for the first time that you connect your Motor to SOLO using HALL sensors, you are making sure out of the correct wiring between the HALL sensors output to “Encoder/Hall connector” on SOLO as well as the correct wiring of the Motor to ABC Motor outputs of SOLO.
Speed and Torque Control of a Brushless Motor with Hall sensors using Arduino and SOLO [+ Arduino Code]
In this article we are going to talk about how to control Torque and then Speed of a Brushless motor of any kind from BLDC, PMSM or Coreless EC brushless motors using Hall sensors as their rotor position feedback precisely and efficiently, we are also going to use a...
In this article we are going to control the position of a Brushless DC or Permanent Magnet Synchronous Motor using SOLO with Arduino and more specifically using SOLO’s Arduino Library , in another word, we are turning SOLO into a precise servo drive to interface and...
In a lot of applications it’s important to control precisely the positioning of an electrical Motor, like in lots of Robots, 3D printers, CNC machines and so on, and to make that happen there are numerous methods including using external sensors mounted on the Motors...