Wow, eddietheengineer is becoming eddiethescientist. I love the test bench setup you made and know how much effort goes into building a setup like that so I cannot thank you enough for this.
Please try to tune up the chopper before some test and compare the data before and after the tuning. Tuning the chopper "by ear" to reduce vibration and noise leads to a noticeable decrease in motor heating. But you have all equipment for this.
Great start to a new series! I would personally would want to know which steppers are the most silent and what parameters can be tuned to make them absolutely noiseless without affecting the performance much.
@eddietheengineer I want to be able to sleep in the room next to my printer without hearing my printer. At all. And have a full bed 2 inch high print finish overnight? I feel like these are metrics more people can relate to vs 1000mm/s vs 500mm/s
Well done, I love the way you present your data. Magnetic braking could be a good option for torque control. I suspect these test drive what the next round of test will look like.
@@stevehanwright481 thank you! I definitely considered magnetic braking, but decided against it due to not being sure if I could generate enough load at low speeds. Right now I’m working on refactoring the code to be more robust and reliable, since I’ve been getting some data collection failures that really put a damper in things 😄
Hey Eddie, massive thanks for putting all the effort on measuring the real world performance of stepper motors for our specific application. Also great to hear you shouting out Alex Kenis, another great source of information. What I'd like to as you is how much negative influence Stealthchop has on the all-round performance of a stepper motor. Is it really beneficial to turn Stealthchop off to squeeze out extra performance from stepper motors? Again, thank you for the great showcase!
This is a great question! It's really fascinating looking at oscilloscope data for stealthchop vs. spread cycle--it seemed like instead of keeping a fixed pwm frequency and varying the duty cycle, stealthchop varied the frequency? It definitely did not reach as high speeds as spread cycle. That may be a nice quick video I could talk through :)
Now this is the quality of research I love to see! Awesome job! And useful too, since I was thinking of replacing the steppers on my printer. This helps a lot!
Hysteresis brakes are specially designed to provide a torque directly proportional to input current and independent of shaft speed. A 1/8hp PMDC motor wired to brake resistors or an electronic load may be easier to interface with than a BLDC motor.
seeing the tmc hysteresis settings tested would be cool, even if it was just like a couple test of a motor without and with just the starting values from the tmc spreadsheet to see if that make a difference in speed, torque, or sound. or ive head having them set right reduces power lost to the motor because the phases stay on for too long? theres a document about tuning spreadcycle thats largely about tuning the hysteresis values but it has a super different aproach of just starting at 0 and playing around with a scope, to find the values.
Yes! This would be really cool! I'd love to be able to track motor rotational position/accuracy/smoothness and overlay that with the current characteristics and sound, maybe with that we could optimize TMC driver values to reduce sound, VFAs, etc
Good video I think if you used 2 other stepper motors both with closed loop control The test motor would be connected with a belt like you have. The other stepper motor would be connected with a coupler that would connect both closed loop steppers straight across from each other. that would allow you to put different loads on it.
I'm always impressed by how thorough your videos are! Very excited to see various motors tested and compared, especially at "reasonable" speeds. I'm also very curious to see temperature data and how it might be impacted by a DOOMed printer (wonder if this could be extrapolated from open-air testing or if this needs to be tested experimentally).
Wow, very interesting, great job. Note that you cannot dynamically adjust the motor voltage for TMC drivers, it will blow up the driver because internal voltages are derived from the motor voltage and at powerup a voltage mode is set. Check the datasheet.
The easiest way to measure me torque is to put a flywheel with know moment of inertia. Giving known angle speed acceleration you will easlly alculate the torque. As the motor stall or skip stepps - you have a maximum torque.
Yes! I considered something similar, the tricky part though is that I need steady state stepper operation for a few seconds in order to capture all the datapoints, so it wasn't really feasible to do a transient test like that. However, to validate just the stepper motor torque that would work!
That's a good question! At this point I think adding a resistance between the coils would reduce torque (since they are shorted together now), but I can definitely change out the pulley on the BLDC motor to change the relative speeds of the two motors! One day I'll get the Texas Instruments motor controller working :)
@eddietheengineer the speedys vs the super power. The super has very low inductance. But so far, they are than the speedys in every aspect. They sound so much smoother and quieter... and shows less i think.
@@Vez3D We haven't been able to get any decent performance out of those super powers yet, the speedy's beat them in torque, i suspect they won't be very useful outside of extremely light setups? I've yet to try them myself, they're sitting here in a box though!
Excellent work! Have you managed to test the LDO-42STH48-2504AC from the previous video? It would be interesting how the real data differs from the original excel sheet.
Yes! It's very similar to the OMC 2.5A motor shown in the initial results, both were essentially identical from a speed/performance standpoint. I need to try and compare the theoretical model stall to the dyno results! That would be a great idea
Awesome video!!! Epic graphs and video. I'd be super-interested in the temps at those higher currents, as well as the sound connection. Can't have a printer that's too quiet.
Definitely! Temps are a bit tricky since it takes so long to reach steady state--I wonder if it almost makes sense to create a model that attempts to plot the temperature of a stepper motor during a print by feeding in the motor power characteristics, heat dissipation characteristics, and the klipper kinematic log? Then you could predict how hot it would get for a given print/settings.
@@eddietheengineer ideal would of course be measuring the power as the delta between measured torque x speed, vs input power. Honestly just a reading after a min for a few would be good, because the lines don't matter if the temps are unsustainable. Regardless, this is all follow up - what you have is an amazing start.
Yes! I'm attempting to calculate mechanical power vs. input power to look at an "efficiency" too, but the losses there would be combined both between the stepper driver losses and motor losses as well. The tricky part with measuring after a few minutes is that it stabilizes on the order of 30+ minutes since I guess the mass is pretty large and the power is pretty low. Theoretically it may be possible to look at a "projection" of where the temps would be.
@@eddietheengineer The motor copper windings may heat up faster than a thermistor on the outside of the laminations. You could add relays to isolate the motor and measure winding resistance change after running for say 0,5,10,15 minutes.
@@bdykes7316 I saw that the new TMC2240 drivers have estimated motor temp readings (probably from looking at change in resistance) which would help this too! Too bad the 5160s don’t have that 😄
Can you test one or two different stepper driver? I think it would be interesting to see if a "modern" tmc 2208 gets better performance from a stepper than a Drv8825 or a A4988
Impressive work, @eddietheengineer! Thank you! One question about the graph you show at 23:09, what happened to the plot of 48V @1.2A? It ends abruptly after 200mm/s; that seems like an anomaly. Could you please confirm?
That would be fantastic if possible! I'm not sure what motor parameters/driver settings cause VFAs but if someone knows or has a hunch I'd be glad to do some testing to analyze it!
@@eddietheengineer I know that stealthchop made a huge difference in my v0 LDO motors but I think it's this kind of visibility and systematic approach what will make it possible to play with all the trinamic driver settings and see what they do empirically, not make blind, one-size-fits-all assumptions.
it's amazing very good job nice and tight, I have on my hand a Sanyo Denki motor and i was to test it with your code, first thing it didn't work with me is M105, it didn't get data back even on console, do you know any solution?
Wow awesome work! But what affects max speed the most isn’t the load the steppers are pushing? This can give us a base value but will depend a lot on the weight of the axis, and the friction it has. Also, now I understand why Vez was having issues with is Ldo Super Power motors with very low inductance
Interesting point on the inductance, lower inductance "easier" to stall. Prusa achieves "no-VFA" by using (very) low inductance motor and proberly some well tuned settings for the TMC2130 drivers, but if I understand correct on one of the last point in the video, the trade-off is it would be easier to bump out of position during printing. Maybe something for testing...
@@eddietheengineer I have played around with the TMC spreadsheet's where you add the specs for the motors and it calculate new settings for the TMC drivers, but it doesn't seems to make any differences on the initial tests. So it would be interesting to see what settings Prusa have done compare with default settings, maybe I could learn something... 🙂
Are you settling different pwm frequencies for different input voltages ?..because it is not clear to me as to how much it could be..my guess is 25kHz and 40 kHz..am I right...also what type of motor current control is implemented?
This is very valuable! Exactly what I need to select correct parameters for my upcoming project. If it is not too much to ask, would it be possible for you to share the data using dolt/dolthub?
Hello Christian! I currently plan on uploading datasets to my GitHub repo. A bit part of this project is finding ways to easily process and digest the data because there is just so much of it!
@@eddietheengineer No doubt. If you plan on using matplotlib,pandas or tools from scikit it should be no problem integrating either CSV, JSON or Dolt (SQL) for data storage. In fact I would expect SQL to be many times faster than the two others. I'll happily create a pull request to your project once you have the time to publish data!
Is it possible to test with more Amps ? Im using NEMA17 steppers from OMC and i can go up to 1200mm/s (acceleration 50000mm/s2) (20teeth GT2 pulley) on 24VDC with something like 3Amps.
Wow! That’s very high amps. I have tried testing up to the rated amps (Ie, 2.5A for a 2.5A stepper motor). the rms amps at low speeds reach the target value, but they quickly drop off even at high input voltage due to the backemf.
@@eddietheengineer OMC told me that they use 3 phase steppers for high speed applications. I want to try them too, but drivers are quite expensive. But im happy with 1000mm/s (1500RPM) with normal motors, but i cant test them as you do, it looks really fast, but i cant tell if the values are real, cant test it as you do...
Yes! I want to upload them probably to Github, but I'm not sure at this point how to organize everything and track versions, since the stepper dyno code changes over time :)
You aren’t measuring the voltage correctly with the oscilloscope. Your current is going through clear transitions when the voltage is constant. You must be measuring the voltage single ended (only on one terminal of the winding). You need to measure the voltage differentially across the winding, because the driver is running a full bridge.
You are correct! Two things are going on here, one is that I need to work on phase shifting the current vs voltage signal since there is a slight time delay for the current probe vs the voltage probe. Second, I tried (naively) to measure the voltage across the coil with a regular voltage probe…not a great idea 🤣 it didn’t go well. Now I’m only measuring half of the voltage if that makes sense. The cleanest way would be to use a differential voltage probe to measure it directly! But I didn’t want to spend another $200 on one since this test setup has already gotten quite expensive. The other option I believe would be to have a second voltage probe that’s ground referenced to measure the opposite half of the voltage. Do you have any other recommendations? Or maybe a spare differential voltage probe lying around by chance? 😉
Thanks for share, great video.
We would really love to have a torque chart of the super power motors
Rarely am i disappointed when a video ends…this is one of those rare times. WELL DONE!!!!!!!!
It's a shame these kinds of videos are so hard to find on UA-cam. A hidden jem, thanks for sharing!
Wow, eddietheengineer is becoming eddiethescientist. I love the test bench setup you made and know how much effort goes into building a setup like that so I cannot thank you enough for this.
Please try to tune up the chopper before some test and compare the data before and after the tuning. Tuning the chopper "by ear" to reduce vibration and noise leads to a noticeable decrease in motor heating. But you have all equipment for this.
Definitely! I haven’t gotten to chopper setting optimizations yet but I’m excited to get there
Great start to a new series!
I would personally would want to know which steppers are the most silent and what parameters can be tuned to make them absolutely noiseless without affecting the performance much.
Yes! Me too :) One question--what is "affecting performance much" to you? Maintaining >1000mm/s travel speed? or maybe 500mm/s? or 300mm/s?
@eddietheengineer I want to be able to sleep in the room next to my printer without hearing my printer. At all. And have a full bed 2 inch high print finish overnight?
I feel like these are metrics more people can relate to vs 1000mm/s vs 500mm/s
Well done, I love the way you present your data. Magnetic braking could be a good option for torque control. I suspect these test drive what the next round of test will look like.
@@stevehanwright481 thank you! I definitely considered magnetic braking, but decided against it due to not being sure if I could generate enough load at low speeds.
Right now I’m working on refactoring the code to be more robust and reliable, since I’ve been getting some data collection failures that really put a damper in things 😄
It's finally time! Been looking forward to this video
Wow, impressive study!
Hey Eddie, massive thanks for putting all the effort on measuring the real world performance of stepper motors for our specific application. Also great to hear you shouting out Alex Kenis, another great source of information.
What I'd like to as you is how much negative influence Stealthchop has on the all-round performance of a stepper motor. Is it really beneficial to turn Stealthchop off to squeeze out extra performance from stepper motors?
Again, thank you for the great showcase!
This is a great question! It's really fascinating looking at oscilloscope data for stealthchop vs. spread cycle--it seemed like instead of keeping a fixed pwm frequency and varying the duty cycle, stealthchop varied the frequency? It definitely did not reach as high speeds as spread cycle. That may be a nice quick video I could talk through :)
Extreme interreting!!!
Thank you for the vid and your work on testing!
Amazing!!!
Now this is the quality of research I love to see! Awesome job! And useful too, since I was thinking of replacing the steppers on my printer. This helps a lot!
Hysteresis brakes are specially designed to provide a torque directly proportional to input current and independent of shaft speed.
A 1/8hp PMDC motor wired to brake resistors or an electronic load may be easier to interface with than a BLDC motor.
Ooh!! That’s a really great point, thanks for sharing! I’ll look into that
Nice setup, finally we are going to have some real data, I configured my steppers based on the data from Alex from a few years ago.
Epic exploration! 🙏🙏🙏
seeing the tmc hysteresis settings tested would be cool, even if it was just like a couple test of a motor without and with just the starting values from the tmc spreadsheet to see if that make a difference in speed, torque, or sound. or ive head having them set right reduces power lost to the motor because the phases stay on for too long? theres a document about tuning spreadcycle thats largely about tuning the hysteresis values but it has a super different aproach of just starting at 0 and playing around with a scope, to find the values.
Yes! This would be really cool! I'd love to be able to track motor rotational position/accuracy/smoothness and overlay that with the current characteristics and sound, maybe with that we could optimize TMC driver values to reduce sound, VFAs, etc
I know how much work goes into getting this data. Awesome job!
Quality as always!
the mad scientist is back!
Good video I think if you used 2 other stepper motors both with closed loop control The test motor would be connected with a belt like you have. The other stepper motor would be connected with a coupler that would connect both closed loop steppers straight across from each other. that would allow you to put different loads on it.
I'm always impressed by how thorough your videos are! Very excited to see various motors tested and compared, especially at "reasonable" speeds. I'm also very curious to see temperature data and how it might be impacted by a DOOMed printer (wonder if this could be extrapolated from open-air testing or if this needs to be tested experimentally).
Wow, very interesting, great job. Note that you cannot dynamically adjust the motor voltage for TMC drivers, it will blow up the driver because internal voltages are derived from the motor voltage and at powerup a voltage mode is set. Check the datasheet.
That’s great feedback! Do you have a datasheet (Ie 2209 or 5160) and page number for the reference?
Thanks Eddie!!
The easiest way to measure me torque is to put a flywheel with know moment of inertia. Giving known angle speed acceleration you will easlly alculate the torque. As the motor stall or skip stepps - you have a maximum torque.
Yes! I considered something similar, the tricky part though is that I need steady state stepper operation for a few seconds in order to capture all the datapoints, so it wasn't really feasible to do a transient test like that. However, to validate just the stepper motor torque that would work!
@@eddietheengineer maybe te resistance to the bldc motor coils could give more flexibility?
That's a good question! At this point I think adding a resistance between the coils would reduce torque (since they are shorted together now), but I can definitely change out the pulley on the BLDC motor to change the relative speeds of the two motors! One day I'll get the Texas Instruments motor controller working :)
Great stuff brother!! Cant wait to see more comparissons between models :) you planning to do some?
Yes! Are there specific models you would like to see compared?
@eddietheengineer the speedys vs the super power. The super has very low inductance. But so far, they are than the speedys in every aspect. They sound so much smoother and quieter... and shows less i think.
@@Vez3D We haven't been able to get any decent performance out of those super powers yet, the speedy's beat them in torque, i suspect they won't be very useful outside of extremely light setups? I've yet to try them myself, they're sitting here in a box though!
Excellent work! Have you managed to test the LDO-42STH48-2504AC from the previous video? It would be interesting how the real data differs from the original excel sheet.
Yes! It's very similar to the OMC 2.5A motor shown in the initial results, both were essentially identical from a speed/performance standpoint. I need to try and compare the theoretical model stall to the dyno results! That would be a great idea
Awesome video!!! Epic graphs and video.
I'd be super-interested in the temps at those higher currents, as well as the sound connection. Can't have a printer that's too quiet.
Definitely! Temps are a bit tricky since it takes so long to reach steady state--I wonder if it almost makes sense to create a model that attempts to plot the temperature of a stepper motor during a print by feeding in the motor power characteristics, heat dissipation characteristics, and the klipper kinematic log? Then you could predict how hot it would get for a given print/settings.
@@eddietheengineer ideal would of course be measuring the power as the delta between measured torque x speed, vs input power. Honestly just a reading after a min for a few would be good, because the lines don't matter if the temps are unsustainable.
Regardless, this is all follow up - what you have is an amazing start.
Yes! I'm attempting to calculate mechanical power vs. input power to look at an "efficiency" too, but the losses there would be combined both between the stepper driver losses and motor losses as well.
The tricky part with measuring after a few minutes is that it stabilizes on the order of 30+ minutes since I guess the mass is pretty large and the power is pretty low. Theoretically it may be possible to look at a "projection" of where the temps would be.
@@eddietheengineer The motor copper windings may heat up faster than a thermistor on the outside of the laminations. You could add relays to isolate the motor and measure winding resistance change after running for say 0,5,10,15 minutes.
@@bdykes7316 I saw that the new TMC2240 drivers have estimated motor temp readings (probably from looking at change in resistance) which would help this too! Too bad the 5160s don’t have that 😄
Can you test one or two different stepper driver? I think it would be interesting to see if a "modern" tmc 2208 gets better performance from a stepper than a Drv8825 or a A4988
Yes! This is one thing I want to check--basically comparing legacy drivers like the A4988 to newer generation drivers. I haven't done that yet though!
Impressive work, @eddietheengineer! Thank you!
One question about the graph you show at 23:09, what happened to the plot of 48V @1.2A? It ends abruptly after 200mm/s; that seems like an anomaly. Could you please confirm?
Yes! That is an anomaly, it’s one of the things that is trickiest-sometimes there’s just a bad reading and I need to filter those out.
Stellar job! Do you think we'll be able to spot and mitigate VFA resonance patterns with this kind of analysis?
That would be fantastic if possible! I'm not sure what motor parameters/driver settings cause VFAs but if someone knows or has a hunch I'd be glad to do some testing to analyze it!
@@eddietheengineer I know that stealthchop made a huge difference in my v0 LDO motors but I think it's this kind of visibility and systematic approach what will make it possible to play with all the trinamic driver settings and see what they do empirically, not make blind, one-size-fits-all assumptions.
it's amazing very good job nice and tight, I have on my hand a Sanyo Denki motor and i was to test it with your code, first thing it didn't work with me is M105, it didn't get data back even on console, do you know any solution?
Wow awesome work!
But what affects max speed the most isn’t the load the steppers are pushing? This can give us a base value but will depend a lot on the weight of the axis, and the friction it has.
Also, now I understand why Vez was having issues with is Ldo Super Power motors with very low inductance
Yes! Once I get the variable load I can find the maximum torque value that each speed stalls at 👍🏼 then any load below that value should be okay
@@eddietheengineer awesome man! Keep up the good work 💪🏻
Interesting point on the inductance, lower inductance "easier" to stall. Prusa achieves "no-VFA" by using (very) low inductance motor and proberly some well tuned settings for the TMC2130 drivers, but if I understand correct on one of the last point in the video, the trade-off is it would be easier to bump out of position during printing. Maybe something for testing...
That's an interesting point--I'd love to see the data sheets for the new Mk4 motors! I have tested some super low inductance stepper motors (like
@@eddietheengineer I have played around with the TMC spreadsheet's where you add the specs for the motors and it calculate new settings for the TMC drivers, but it doesn't seems to make any differences on the initial tests. So it would be interesting to see what settings Prusa have done compare with default settings, maybe I could learn something... 🙂
Are you settling different pwm frequencies for different input voltages ?..because it is not clear to me as to how much it could be..my guess is 25kHz and 40 kHz..am I right...also what type of motor current control is implemented?
Have a look at vesc bldc drive to control your dyno load.
It's code is open source.
I beleive you can use scripts to control torque.
Thanks for sharing! I’ll take a look
Do you have driver a recommended tune for the 2504 on 24V 5160 Plus drivers
This is very valuable! Exactly what I need to select correct parameters for my upcoming project.
If it is not too much to ask, would it be possible for you to share the data using dolt/dolthub?
Hello Christian! I currently plan on uploading datasets to my GitHub repo. A bit part of this project is finding ways to easily process and digest the data because there is just so much of it!
@@eddietheengineer No doubt. If you plan on using matplotlib,pandas or tools from scikit it should be no problem integrating either CSV, JSON or Dolt (SQL) for data storage. In fact I would expect SQL to be many times faster than the two others. I'll happily create a pull request to your project once you have the time to publish data!
Is it possible to test with more Amps ? Im using NEMA17 steppers from OMC and i can go up to 1200mm/s (acceleration 50000mm/s2) (20teeth GT2 pulley) on 24VDC with something like 3Amps.
Wow! That’s very high amps. I have tried testing up to the rated amps (Ie, 2.5A for a 2.5A stepper motor). the rms amps at low speeds reach the target value, but they quickly drop off even at high input voltage due to the backemf.
@@eddietheengineer OMC told me that they use 3 phase steppers for high speed applications. I want to try them too, but drivers are quite expensive. But im happy with 1000mm/s (1500RPM) with normal motors, but i cant test them as you do, it looks really fast, but i cant tell if the values are real, cant test it as you do...
@@dromCZ that’s an interesting thought, BLDC makes sense! I wonder what the positional accuracy is vs a stepper motor
Are you have plans to share all your dataset with the community?
Yes! I want to upload them probably to Github, but I'm not sure at this point how to organize everything and track versions, since the stepper dyno code changes over time :)
Magnetic Particle Brakes
Does anybody know Alex kennis's UA-cam channel link? I couldn't search with the name😅.
Search for @AlexKenis
I've also added it to the description so people can find his channel easier :)
You aren’t measuring the voltage correctly with the oscilloscope. Your current is going through clear transitions when the voltage is constant. You must be measuring the voltage single ended (only on one terminal of the winding). You need to measure the voltage differentially across the winding, because the driver is running a full bridge.
You are correct! Two things are going on here, one is that I need to work on phase shifting the current vs voltage signal since there is a slight time delay for the current probe vs the voltage probe. Second, I tried (naively) to measure the voltage across the coil with a regular voltage probe…not a great idea 🤣 it didn’t go well. Now I’m only measuring half of the voltage if that makes sense. The cleanest way would be to use a differential voltage probe to measure it directly! But I didn’t want to spend another $200 on one since this test setup has already gotten quite expensive. The other option I believe would be to have a second voltage probe that’s ground referenced to measure the opposite half of the voltage.
Do you have any other recommendations? Or maybe a spare differential voltage probe lying around by chance? 😉