BLDC motor comu - Page 1
Forum section: electronics / general

author: zezo2030
author_rank: Contributor
timestamp: July 06, 2025, 08:27:43 pm
content: Hello everyone,I need an expert with BLDC motor because I have bldc motor(42v,350w) inside the hoverboard, and I need to get the correct commutation table(sequence) from the hall sensors signal.at this moment the motor is working in one direction but with high vibration.I added the hall signal in ccw and cw direction.

author: DL2XY
author_rank: Regular Contributor
timestamp: July 07, 2025, 02:54:11 pm
content: https://mechtex.com/blog/field-oriented-control-foc-for-bldc-motors-a-beginners-guide

author: zezo2030
author_rank: Contributor
timestamp: July 07, 2025, 05:07:11 pm
content: I just need the commutation table as per the hall sensor diagram if possible.

author: NathanBxr
author_rank: Newbie
timestamp: October 13, 2025, 12:55:17 pm
content: have you pulled the motor to bits? I got an old 2x150 watt, 2016 hoverboard and just got a 2x350 watt Gyroor G2.I pulled the 2016 and G2 motors apart the 2016 one is around 20% larger, has thicker copper windings and bigger magnets, even the quality of these metals looks better in the 2016 model, the copper and magnets in the g2 look like there mixed with dog shit.I put the 2016 motors on the g2 body and it goes harder.I think those fukers bs about the watts of these motors, do yours look ok?

author: Doctorandus_P
author_rank: Super Contributor
timestamp: October 13, 2025, 02:18:25 pm
content: I suggest you drive the motor with a cordless drill or another motor, and then measure the hall signals. Preferably also correlate those with the generated coil voltages by measuring with a multi channel oscilloscope.The signals you measure should be pretty much symmetrical and repetitive.Alternatively you can also wrap a cord around the motor axle and give it a good spin just like a top so you have 10+ revolutions to do a better measurement.

author: Infraviolet
author_rank: Super Contributor
timestamp: October 13, 2025, 08:43:22 pm
content: I'd usually suggest anything you're doing with a BLDC you're better off converting it to be used with sensors rather than going sensorless. All you have to do to make it sensorless is find an appropriate way to get an "absolute"* measurement of the shaft angle. Given your motor already has hall sensors it doesn't seem like you'd need either of the obvious options:1.Add a 3d printed (or other production method) disc to the motor's shaft, embedding in it magnets around it's rim. Subsequent magents take opposite polarities to the previous one, you need to space (evenly) around the rim twice as many magnets as your motor makes electrical rotations per mechanical rotation. For small outrunner BLDCs, for example, you often find they make 7 electrical revs per mech rev, so you need 14 magnets. You then arrange two hall sensors so this disc of magnet moves past them, you position the hall sensors either 90 electrical degrees apart about the shaft's centre (so 90/7=12.85 mechanical degrees in the common case) or separate by N(an integer number of electric rotations)+90(electric degrees) apart if you can't physically get hall sensors close enough to each other to be 90 electric degrees apart. You use analog hall sensors and measure the voltage waveforms coming from them:HallPhaseB=analogRead(SensorB)-HallSensorBMiddleVoltage; //HallSensorBMiddleVoltage is the voltage coming out of the sensor when no magnetic field is acting upon itHallPhaseA=analogRead(SensorA)-HallSensorAMiddleVoltage; //phases A and B might need swapping around depending which one is leading in your systemElectricAngle=atan2(HallPhaseA,HallPhaseB);or2. You use a diametrically polarised magnet on the end of the motor's shaft and an AS5600 (or equivalent) magnetic angle sensor. In this case you need to multiply the sensor's output angle (which is the mechanical angle) by your number of electric revs per mech rev then subtract 360 degrees until you're left with a remainder in the range 0 to 360 so as to get the electrical angle.In either case, or by doing the "atan2" a bit more crudely from implanted digital hall sensors giving a blocky approximation of a sine wave, you power the motor at the lowest current which can make it move and you treat it, for calibration, like a stepper motor. You blindly send it the correct relative currents on the three phases, without at this time looking for any sensor feedback. The motor will move so as to line the rotor up with the applied currents, you note down the measured angle from your magnet-disc-hall-sensors-and-atan2 or from your diametric-magnet-and-as5600-multiplied-and-remainder-calculated. You change those currents to move it through one or more electric rotations, noting all the while the angle you are sending it to and the angle your sensor is measuring, you can also do this again in the backwards direction if you like. You perform theses tests with no load torque acting on it, all the motor's torque at this relatively low current should be in use simply to get the rotor to snap to the desired orientation, just the way the rotor of a stepper motor snaps to an orientation. In the end you end up with an average difference between your measured position and the angle you were supplying with the ratio of the three currents. This becomes your calibrated offset between the sensed position and the electrical position. Then to drive your motor properly you simply find the sensed position at any given time and apply currents to the three phases in the correct ratio so as to point to a location 90 electrical degrees ahead of where the rotor presently is. To apply more or less torque you change the magnitude of the three currents whilst keeping their ratio appropriate to the angle they are giving.The videos athttps://www.youtube.com/@jtlee1108/videosgive a good overview of BLDC principles too*if you used a normal incremental encoder then you'd need to calibrate it initially every time you turned it on, whereas these methods which are absolute (atleast to within an electrical revolution if not a mechanical one) mean you calibrate once and only need to recalibrate if you take the magnetic-disc/diametric-magnet off and then put it on again when fitting an output gearbox or something like that