Tuesday, January 12, 2021
Static torque testing
Saturday, November 21, 2020
Actuator thermal testing
Hi
Today I'd like to post some thermal data that I've gathered recently. I wanted to check what is the maximum continuous torque of my motor module. By continuous I mean the amount of torque the motor is able to produce infinitely without overheating. It seems that many actuator manufacturers interpret "continuous torque" differently - sometimes by continuous they mean a short period of time, which is far from being continuous (Josh made a similar observation in his log: https://jpieper.com/2020/08/07/up-rating-the-qdd100-beta-thermal-bounds/). I decided to test my actuators and determine what is their continuous torque rating. The test stand was rather simple - an actuator with a lever pushing against a table.
I was simply commanding different torque values and waiting for the actuator to heat up. This was quite a monotonous process as the estimated time constant was about 16 minutes and I stopped each experiment after a duration of five time constants (almost 1,5h).
I wanted to go one step further and prepare a simple first order system model. After all the thermal circuit can be modelled similarly to a simple parallel RC circuit, where the resistance is the thermal resistance form the module to air, capacitance is the thermal capacitance, voltage is temperature and current is power loss. The input to the system is power loss that occurs on the winding resistance. The model is able to fit a single curve, however due to changing thermal resistance to ambient it is no good in predicting a few different responses. This is the outcome:
The ambient temperature was about 25*C, and the actuator initial temperature was 30*C.As you can see the thermal resistance varies with different currents being applied. This is why it is so hard to predict the resultant temperature response based solely on the current. Nevertheless the real characteristics helped me to determine the maximum continuous torque which is 0.875Nm (7A), and with that current the device should never reach 65*C.
In the next entry i'm going to publish some static torque data.
Tuesday, November 17, 2020
New method of fixing the sun gear to the shaft
Hi,
this is going to be just a short log about new way of fixing the sun gear to the aluminium shaft mounted to the rotor. During some high speed tests of the actuator I noticed that the sun gear slipped on the aluminium axis when I tried to stop the output 3d-printed lever. I was kind of expecting it as I haven't made a strong interference fit and used just a regular epoxy adhesive and paid no extra attention to that part. I decided to try some new methods.
The first idea was to make a hole in the aluminium stock before milling, and then mill the motor shaft part so that the shaft has this long groove. A similar groove was milled in the sun gear as well. As you might expect it was supposed to be a keyway connection. The key was simply a piece of mild steel screw shaped to fit the empty space.
![]() |
| before pressing in the key |
![]() |
| After pressing the key |
The connection looked ok, but was a bit springy when I tried to break it using pliers. I succeeded eventually and saw the shaft was weakened by the groove.
![]() |
| broken connection |
The second idea was to make something like a shape connection (I do not know the professional name) where the shaft and gear are milled with a matching shape and then just pressed onto each other. This connection does not require additional elements, however it is inevitable to avoid the rounded edges when milling the shaft "tab". The rounded corners favor breaking the gear by pushing on its walls outwards.
![]() |
| "shape fit" |
![]() |
| Two small tabs milled with 6mm endmill |
![]() |
| Two small grooves made with 1,5mm endmill |
Sunday, November 1, 2020
Programming and testing the actuator
Hi,
It's been a while since I last wrote, but it was mostly because I was engaged in writing my thesis and programming the actuator as well as writing a simple service app. Right now I'm testing the actuator and preparing a torque test stand in order to determine maximum torque and see if there is no severe cogging torque.
I've made a few changes in the actuator design since the first prototype was made. A couple of parts (including the rotor) were milled with additional slots in order to make them lighter.
![]() |
| these four slots result in 6g of mass reduction |
![]() |
| the rotor mounted in the case |
![]() |
The gearbox housing was milled with eight additional slots and eight mounting threaded holes. Initially I wanted to use half of the motor gearbox screws for holding the motor to the external housing, but I decided to make additional threaded holes just for fixing the actuator. This solution looks much better and I do not have to use only four out of eight screws.
![]() |
| Gearbox housing botom view |
Moreover I milled the part that is used for connecting two actuators front-to-back. This was the most complicated part as there were many milling operations and the part required flipping. I even made a short time-lapse video about it :
In order to reduce the backlash I modified the planet carrier pins to 3.1mm instead of 3mm (the gearbox planets holes are about 3.11 - 3.12mm in diameter which is not very convenient). There is still some play at the output, but at this point I cannot do anything about it, other than replacing the gearing system. For now it is okay.
I prepared an early 3d-printed prototype of robot's leg:
![]() |
| Leg prototype |
The thigh is mounted to the knee actuator, whereas the knee actuator is mounted to the thigh actuator. This way the joints are independent which simplifies the mathematical analysis. The knee joint is driven by a belt. All three actuators were mounted as close to the torso as possible in order to make the leg light and reduce the moment of inertia. The adduction / abduction motor (hip actuator) is going to be placed in the robot's torso and connected to the thigh actuator.
Besides mechanical parts modifications I made a simple python app for communicating with each actuator. The main purpose of the app is to be able to update the drivers' firmware by FD-CAN bus. Although there are some other functionalities such as spring/damper position control, offset measurement, motor parameters identification (d/q axis inductances and phase resistance used for PI controller gain calculations), setting the bounds within the motor should stay during the movement, or the live plot of measured quantities. So far it's been really useful in testing the motor and testing different ideas during development.
![]() |
| Service app - i know it looks awful ;) |
In the end some high speed actuator tests that I performed recently:
Hope you enjoyed this entry! Next time I'll do a quick writeup about the torque test bench and post some results ;)
You can follow me on Instagram for more frequent updates: https://www.instagram.com/klonyyy/
Friday, August 14, 2020
Machining the first motor module prototype
![]() |
| sun gear and bearing pressed onto the pin |
![]() |
| I know the surface of the motor is sloppy it was done by hand, will fix it next time ;p |
![]() |
| I mostly used screws to fix the material to the table, as it was the fastest way considering I do not own any good claps yet. |
![]() |
| Probing the gearbox mount |
![]() |
| though the endmill was a bit to big it looks nice and fits tightly! |
![]() |
| lower planet carrier with additional sleeve for bearing ring |
![]() |
| gearbox mount, top planet carrier, lower planet carrier ready to be assembled |
Tuesday, July 28, 2020
Soldering new BLDC controllers
I recently got the PCB's of my new brushless motor controller. It is also my first 4-layer design, so I was quite excited about it. I also ordered a stencil, so that the soldering is faster and more reliable. When the PCB's finally came to me I was very happy with the result. Although after a closer look I noticed some via problems. I do not know what is the origin of this problem, but these vias seem to be really bad quality.
At the same time the soldermask is very thin and literally scrapes off when being touched by hot soldering iron. I guess this it what you get for 13$ (JLCPCB) :) Although for prototyping purposes this offer is a great deal as 13$ is super low price for a 4-layer design and I still haven't seen a similar offer anywhere else.
I found an issue with the MOSFETs after soldering them to the pads. One of these two pieces of drain connector sticking on both sides was shorting motor terminal to V+. I had to move each low side FET a bit further from the pad to get rid of this issue. It turned out that my FET library wasn't precise enough (missed these two insets), but fortunately it is an easy bug to fix in the next iteration.
![]() |
| Whoops |
In the end a few photos of the assembly process and assembled board:

Friday, July 3, 2020
CNC machine Z axis replacement
![]() |
| Z axis before modification |
![]() |
| Linear rails in place as well as the ball screw |
![]() |
| Finished! |
Another thing I guess is worth sharing, is the chip protection for the lower linear rails and ball screw (y axis). I wanted to make curtains following the table - something similar to window blinds. I had to prepare a mechanism for folding and unfolding the curtains when the table moves. The simplest idea I came across was to use torsion springs from cheap folding rules. I 3d-printed my own casings, inserted the springs, added a bearing on each side and used a pvc tube as the shaft. The curtain is mounted to the table using slats with a few screw holes. The whole thing is quite nice-looking and most importantly keeps the chips away from the rails and ball screw.
![]() |
| Mounting process |
![]() |
| Inserting the spring |
A video of the solution:
The last thing is just an interesting video of drilling using a blunt drill. When you look closely there is a visible heat wave coming off the hole when the drill pushes down on the part :)

















































