Note on my latest research direction (hovorboard hub motors)

I posted a while ago about the idea of having a large diameter 3d printed motor and was doing research on how to drive it (stepper, bldc, etc) and have gone off on a slightly different direction in and wanted to throw it out for others to think about.

With Field Oriented Control (think, treat the motor as a 3-phase AC motor that’s position is defined by the power phases, rotating only as you rotate the power phases), you can get no-encoder position accuracy of a motor (BLDC and others) of ~1 degree with no sensor (probably better, this 1 degree figure is over a decade old). This is 1 degree electrically, BLDC motors have multiple sets of magnetic poles, so one rotation of the motor requires (# pole pairs) electrical rotations.

so for an example:

A cheap 250w, 6" class hoverboard motor typically has 15 magnetic pole pairs.

This is 1/15 of a degree positioning of the wheel (or ~15 * 360 positions/rotation = ~5400 positions/rotation).

If you remove the tire from the hoverboard wheel (possibly replacing the tire with a thin 3d printed layer to guide thin wire , say 8 turns of 1/16 steel cable), it’s about 5" in diameter. This is a perimeter of 5 * Pi = 15.7" perimeter

This makes a step size of 15.7" / 5400 steps or .0029"/step (0.07mm/step).
This compares very favorably with the malsow positioning requirement of around 1/128" (0.0078" .2mm).

The current maslow motor positioning is ~8000 steps/rotation, with a rotation being 2.5" for a ste[ sze of 0.0003125" (~0.008mm). (The problems with the maslow not cutting accurately are not related to the motors not being measured accurately enough but rather with the math and motor control logic not being as good as they could be)

So I think that this is looking promising and wanted to get others thinking about the possibilities.

Possible limitations:

While these motors are FAR more powerful than the current motors (250w vs 24w), there is no gearbox (no gears to wear, which is an advantage), the current gearboxes are a little under 300:1 but with an efficiency probably well under 50%. We would have to test them to tell for sure.

One major problem with this approach is that the motors are not self-locking, you can rotate them when they are powered down, so they would need to be powered all the time while the machine is running, potentially causing heat issues (depending on load)

The other major problem (related) is that since the motors will move while powered down, you would need to create a homing routine to set the motors to known line lengths.
(After initial calibration, this could be ‘move it to the center of the workpiece’ and you will be a bit less than perfectly accurate as you are less than perfect in your positioning, but if you mark the wheel, or have the system remember the electrical angle of ‘zero’ for each motor, you may be able to move in ‘steps’ to make this easier)

speaking of these steps, because of the multiple pole pairs, every 24 degrees of wheel rotation will look exactly the same to the controller, so the ‘chain skip’ type of problem is still possible. If they are run at lower power levels (to save power and heat), they will be more likely to ‘skip’

There is the matter of a suitable controller, this will not be a simple H-bridge, FOC controllers are very smart versions of the ESC used to control quadcopter motors (they output 3 sin waves to the motor instead of just a 6-step voltage pattern). I don’t know if it would be possible to reprogram commercial ESCs to do this or exactly what would be involved with generating the signals directly

David Lang

some reference to FOC

a video in a 9+ year old training class that talks about doing this sort of thing Teaching Old Motors New Tricks -- Part 5 - YouTube


hmm, with 24 degrees for a ‘skip’, I wonder if a simple quad encoder could be made on the rim of the wheel and if it moves when not expected, the processor could detect it and correct.

or, hoverboard motors commonly come with hall effect sensors, 3 of them, 120 (electrical) degrees out of phase, they could be used with similar logic to detect unexpected movement (although, since the pre and post skip positions would look the same to the hall effect sensors, you would have to notice during the very fast movement of the skip)

just discovered an opensource FOC library that runs on a lot of stuff, including the Pi Pico

It also sounds as if it supports step/dir input, so you could treat it like a stepper (allowing the use of klipper or similar software that assumes steppers)
(edit, helps if I include the link)

very interesting. Would there be a smaller motor size suitable to get away from 250W? quad copter motors, and now drills have all gone brushless, so this sounds like a reasonable pursuit. The one question I have is whether these motors have sufficient low end torque to move slow equipment like Maslow around. Quads spin at higher rpm and drills are geared down. If we gear down, then we lose the resolution you described. Any thoughts on that?

actually, if we gear down we gain resolution (more movement of the motor for a
given movement of the line)

smaller bldc motors have fewer pole pairs, so the resolution at the motor will
be worse, but the gearing multiplies that (the stock motors only have 28
positions/rev that they report, but then they go through the gearbox and this
gets multiplied up to ~8000

I don’t think we would end up running these at 250w (if we did, we would have to
cool them) but I don’t know how much torque we would lose cutting down on the

the tiny cheap quadcopter motors spin at insanely high speeds for our needs, so
would need rather substantial gearing. That is the direction I have been going
down. Ironically, the slower BLDC motors for hobby/RC purposes are far more
expensive. Buying power tools and pulling the motors out may be cheaper (and
the motors a better fit), but still rather pricy. I was trying to think of ways
to attach gearing to the hoverboard motors when I started wondering if I could
use them directly, leading to this tangent.

David Lang

the 250w rating is if you run them at 36v IIRC

David Lang

another interesting thought, these motors have a rim around them (and 6 screws
just inside that), you could mill the rim or bolt on a ~64 tooth sprocket to run

milling the rim would be an easy thing to test, but since it’s aluminum, it
would probably wear too fast to be the long-term answer.

or if you offset the sprocket enough to clear the chain (on the motors I have on
hand, the screws are on ~115mm centers compared to the ~125mm drum or up to
~135mm rim), you could run a smaller sprocket, giving you more chain tension
with less motor power

David Lang

doing more research, these motors will not be accurate enough under load for sensorless operation (with no load, the rotor will turn to perfectly align with the magnetic field, max torque is applied when the magnetic field is 90 degrees from the motor (this is in terms of the magnetic field, a hoverboard wheel motor with 30 magnet pairs and 27 poles on the stator has either 27 or 30 magnetic rotations per physical rotation, but this is still several degrees of what would show up as springiness around the angle of the magnetic field produced by the stator.

So at the very least, this will require a 4k position/rotation sensor, so I think this may be a dead end, back to digging into gearbox options.

I found a 3d printed gearbox that they drove with a battery powered drill and gave a ~150:1 gear ratio and topped out at around 1000lb of force. I think something along those lines (not quite as beefy) that is driven by a belt drive to give it another step of reduction could work very well as the winch, I’m just trying to figure out a good way to get a position sensor. Part of me is thinking that I should just have the sensor as a separate drum that the line goes around (either a partial wrap across the top and around to lead off, or a full + partial wrap to give a better bite on the drum). The separate drum would make the sensor trivial as the bearings can be any size to incorporate the sensor, it can be just large enough to not damage the rotor (~3" for a 3/16-1/8" cable) and it would mean that the physical dimensions of the winch and the possibility of the line wrapping on top of other line doesn’t matter.