I was scrolling through the Brushless Hipsters Facebook Group when I saw someone ask if anyone had experience with the 70mm 60KV Maytech Hubmotors. I knew hubmotors roughly this size had existed before, but the build quality of these motors looked quite a bit better (and more compact) than those I had seen previously.
These hubmotors were originally meant to be used for electric longboards in which I'm assuming they see fairly heavy abuse from their riders. I figured 4 of these would be adequate for a 30 lb drive system. I ordered a set from Maytech to test out. Since these motors also utilize hall effect sensors for sensored drive, I also ordered a set of the Maytech 50A V4 VESC's. Since I have never used any VESC ESC's before, I know I would have to do quite a bit of bench testing prior to testing the drive out on a test bot.
When I first got the motors I was pretty impressed by how solid they seemed. At a mass of 20.7 Ounces, these are roughly the same weight of a Banebots 16:1 P60 Gearbox with 36mm inrunner that I was using previously on Glasgow Kiss and Translationally Inconsistent. While the weight savings may not be immediately apparent, I think the real benefit to these hubmotors is the compact size. Since they don't need extra belts/pulleys/wheels, the overall footprint of a robot can be reduced considerably. The weight savings from the frame size can then be utilized in other areas (armor, weapon, etc.). Approximate dimensions of these wheels are 70mm diameter, and 56mm long.
As I mentioned before, I've not had any experience with VESC's or hubmotors before, so I wanted to do some bench testing to make sure I had any idea what I was doing some relatively good settings prior to putting a test bot together for loaded drive tests.
The test stand what relatively easy to put together, I just used a 100mm M8 bolt from McMaster-Carr, with 2 distorted thread nuts, and a few washers. One of the distorted thread nuts was ground down to fit within the hubmotors 12mm square bore which stops the rotation of the hubmotor stator. The bolt is "locked" in place rotationally by torquing the (now) square distorted thread nut against the wood block to a high value of gutentight.
The latest flavor of the VESC Tool that I downloaded seemed to really plug the FOC commutation, so thats what I tried out first. The Motor Setup wizard within the VESC Tool did not seem able to automatically setup the hubmotor. Honestly I'm not sure why this is the case as opposed to just a regular sensored motor that gets setup relatively easily through the wizard. Through a bunch of headscratching/headbanging, I was able to get the motor to at least work on FOC. While the motor wizard did not work for me, the input wizard does work very well. In order to get bidirectional control (for a robot drive), make sure braking is enabled for your VESC and select duty cycle control mode within the PPM control mode options. The results for this test were somewhat underwhelming. When quick direction changes where commanded, the hubmotor would start cogging and the current would spike. Afterwards, I found out one of my 4S lipos I was using in Series to get 8S voltage was actually 100% dead. So I was actually only getting 14.8V for a motor with a minimum voltage of 24V.
I swapped out the dead 4S lipo for a good one, and there was a definite improvement in terms of the cogging issues. That being said the issues still were not completely resolved, and the motor was under zero load. Someone suggested that I try out the BLDC commutation mode. I didn't really understand the difference between FOC and BLDC until I found this post. Essentially FOC is supplying current to each phase in a sinusoidal pattern. This makes the overall power output more consistent. BLDC on the other hand uses step input to each phase, which leads to a less consistent power output from the motor. I'm not sure if VESC's use the trapezoidal or step version of the BLDC commutation.
As soon as I switched to BLDC commutation, the hubmotor began acting a lot better. I'm honestly not sure why it is so much better than FOC, but I definitely think BLDC is the way to go for sensored brushless drivetrains at this time. The results from this test were really encouraging and I built up a test platform that I could weigh down to 30 lbs.
The test bot is constructed from 3/4" MDF board. I was pretty much winging the design as I went, but I did intentionally have the front wheels inboard from the mounting rails, as opposed to the outside rear wheels. This is because I am thinking of building a 30lb version of my beetleweight Boop the Snoot with these wheels. Unlike Boop the Snoot, I am not able to alter the diameter of these wheels (easily), so in order to tuck the from wheels behind an angled side wedge, the front wheels will have to be inboard behind the non-angled portion of the wedge. In hindsight, I wish I had made the overall test bot shorter, as its current configuration is much too long to be representative of a final robot... oh well. I zip-tied two 10lb dumbells to get the overall weight up to approximately 30lbs.
Excuse the cluttered garage and inability to drive while filming, but this was the first test with the more or less stock BLDC settings. As you can see, the bot can accelerate and gets up to a pretty quick speed. My garage is probably ~3 feet longer than the Motorama arena, so I'd guess crossing the floor in less than a second would be pretty doable. That being said, the braking was not very powerful, and the ramp up/down time were relatively long. That made slowing down and cornering painful to say the least. I reduced the ramp times to 0.1 seconds and then tried again.
With the decreased ramp times, I tested the bot again. As shown above, the performance of these motors seems pretty darn good, and will be more than adequate for a weaponed bot drive. I drove about for about 2 minutes and the motors weren't even warm. Granted, the test bot in this video has no weights on it, you'll just have to take my word for it that the bot handled a little bit better with the weight on it since there was more traction. After the video above, I ran a full 3 minutes driving pretty hard with the weights on. At the very end I accidentally drifted/slammed one of the wheels into the concrete side of my garage. Unfortunately, this led to a burnt motor winding. I felt the motor temperatures at this point, and they were pretty warm, but I don't think the burnt motor was due to burning off the enamel of the motor windings.
So when I disassembled the motor I noticed the burnt windings confirming that I had burnt out the motor. But what I was more interested in was the compressed portions of wire that were right next to the burnt windings (See Below). This was an indicator to me that the motor may not have failed due to the heat melting the enamel, but instead the enamel may have been scraped off when the stator was impacted by some portion of the bell. I made a CAD model of the motor to get a better idea of what the tolerances are like within the motor. As can be seen below, the outer race of the lower bearing actually sticks up out of the endcap by about 1mm. This makes the clearance between the stator and the rotating portion of the bearing really tight (~0.7mm nominal). The real reason I think the impact occurred though, is that the stator itself is not securely held in place longitudinally. There is a keyway that stops the stator from rotating, but only a tight fit is used to stop the stator from sliding up and down the shaft. If I moved the stator all the way up the shaft I could get the clearance in that area up to about 1.4mm, which seems much more adequate. If you want to download the CAD model I generated, you can do so further down the page.
Compressed Portion of Motor Windings
Cross Section of Cad Model
If you haven't seen Robert Cowan's How to Battle Harden Motors video, I strongly recommend you give it a watch. Here are a couple of things I want to do that should dramatically increase the robustness of these motors:
Epoxy the magnets. There is currently ~0.5mm radial clearance between the magnets and the stator, so I think a thin layer of epoxy is doable. This will help prevent magnets from shattering during impacts.
Cover the top and bottom of the motor windings with epoxy. This will help prevent the bell from rubbing the enamel off the motor windings during any inadvertent contact. It will thermally insulate the wire a little more, so I will have to be careful to not push the drive motors *too* hard.
Epoxy the hall effect sensor in place. I plan on sliding the hall effect sensor into place, then essentially potting the entire sensor in epoxy. This will greatly increase the chance of the sensor surviving impacts.
Shock mount the entire drive motor in whatever robot design I come up with. The less impact the motor experiences in the first place, the less it has to survive.
I plan on rewinding the motor that I burnt out in the identical manner that it was originally wound in. Once I test to make sure the rewound motor works, I'll take it apart and try the methods I outlined above, then reassemble and test some more!
I made a CAD model through reverse engineering for my own uses in designing a robot with these wheels. The dimensions may not be 100% accurate, but usable to design a robot around. CAD Files can be downloaded to the left. If you have any with downloading on this page, you can also download the model from GrabCAD HERE. Screenshots of CAD model are shown below.