Nema 23 Questions
-
Hi
I am trying to complete my Cartesian Printer, and I believe I am up against my lack of electronics knowledge.I am having problems with my Y axis. There is another post that I have been reading which seems to be having the same issue where the motor is skipping (for lack of a better term.) My print starts out correctly and then the layers start positioning themselves incrementally forward.
The advice in the other thread is discussing back EMF and the use of the wiki tool.
I have put the results in because I don't know what to do with the information.
I am not sure about the resistance and inductance as they were not on the site where I bought the motor.Here is the detail from the drives section of my config.g
M350 X16 Y16 Z16 E16 I0 ; Configure microstepping without interpolation
M92 X400 Y800 Z360 E84.75 ; Set steps per mm
M566 X40000 Y40000 Z18000 E7200 ; Set maximum instantaneous speed changes (mm/min)
M203 X60000 Y60000 Z16800 E72000 ; Set maximum speeds (mm/min)
M201 X250 Y250 Z250 E250 ; Set accelerations (mm/s^2)
M906 X950 Y855 Z855 E855 I30 ; Set motor currents (mA) and motor idle factor in per cent
M84 S30 ; Set idle timeoutAny observation / advice would be greatly appreciated.
Thanks,
Tim
edited to add the detail from the config.g -
I would increase the motor current and/or check for any mechanical problems on the Y.
-
1000 mm/sec * 800 steps/mm = 800000 steps/sec (that 800KHz). At 400 steps/revolution it means 2000 rev/sec = 120000 rev/min. Is this a Dyson vacuum/dryer? Btw, at 2mm lead it means 2mm * 2000rev/sec = 4000 mm/sec so you are clearly missing the microstepping parameter.
You don't know the resistance & inductance, but you should be at least aware about the machine mechanical details.
-
I believe I’m the one having similar problems. I’m curious, how is your Y Axis setup mechanically?
-
What is the model number of your motors? It's usually on a label attached to the motors.
-
@dc42
The motor isJugeTek
57H56M-2804A -
Thanks, I'm pretty confident on the mechanical aspects. I had it apart yesterday and I did get rid of a slope on the lead screw caused by the end bracket that holds the motor. It needed to be raised.
-
@timvukman said in Nema 23 Questions:
57H56M-2804A
A quick search produced the specifications here. I think you can ignore the 'M' in the middle of your model number.
-
@sigxcpu
Thanks for your input. The mechanics are the same as the X axis so I copied the values from there and adjusted for the .9 degree motor. The X is at 400 steps /mm to line up the 20mm configuration cube.However, in looking at the RepRap Firmware configuration, it notes the standard stepper at 200 steps / revolution. Therefore, my X is double what it should be and now my Y is double that again.
I will straighten those out.
I would love to know all of the mechanical details of all of the pieces that I have used, but unfortunately some of my parts are from OEM equipment that does not provide that information and some suppliers don't provide the details.
Rather than stating what I should know, I would benefit from someone in a position to explain how to calculate some of it.
Thanks,
Tim -
@dc42
Thankyou. I couldn't find the model number on the motor. It's on the sides of the Nema17, so that's where I looked. I found it on the back of one of my other ones. This motor for the Y was up against a wall an pretty tough to get at.
Thanks,
Tim -
@wcj97
Hi wc97. I believe yours is indeed the post I was reading.My Y Axis is completely non standard. it is a 20x60 V-Slot. On the wide side which is horizontal, there are two slide rails.
Each of those slide rails is mounted in the outer two tracks of the three that are there. There is a OpenBuilds plate 80 x 150 mounted to the two sliding bearings lengthwise along the Y Axis.
In the center of the plate is a lead screw block. It's not the right thread for the lead screw, so the block was drilled out. At the end of the plate is a bronze lead screw holder from an old Z axis gantry that is the correct thread.
So, the lead screw rotates in the bronze adapter which is attached to the build plate which moves the build plate. It is actually very stable and precise. The block is really there just to support the lead screw.
With the two slide rails, there is almost no friction on the axis. There are some other open build blocks that are mounted to the plate and extend out from the plate in a Y configuration that lines up with the two back corners of the heat bed and the front center so that I have a three point level system.
I ran this for more than a year when this printer was originally a Tevo Tarantula and the motors where all Nema17 motors on 12 volts.
The configuration is now a 500mm x 500mm x 500mm cube. Centered on the outside of each side are 500mm openbuilds motion systems driven by Nema23 motors. Connecting these two drive systems is a square gantry that goes through the inside of the cube. This is the Z axis.
The Y Axis is mounted on the top of this square gantry.
The X axis is mounted across the top of the cube and handles the hot end.
The Neam23 on the Y Axis is a .9 degree motor and the overall plan was to get another one to replace the 1.8 Nema 23 that drives X currently.
The system is powered by 24 Volts. I may replace the hot bed with a larger one as the plan for this printer was for large objects.
Any other questions, please let me know. This printer has been a tank for me and I really only got into trouble when I upgraded the motor. I'm sure it will get sorted out and I will get the correct settings into it.
Tim -
@timvukman OK, after you mentioned that your motor is a 0.9° stepper, the correct specs can be found here.
To just post it here for easier overview:
57HM56-2804A- Current: 2.8A
- Inductance: 2.5mH
- Resistance: 0.9Ω
- Holding torque: 111Ncm
You also posted the following current settings in your first post
M906 X950 Y855 Z855 E855 I30 ; Set motor currents (mA) and motor idle factor in per cent
This means you try to run your 2.8A motor at 0.855A i.e. at 30% of their rated current. This will probably be too low. Try to increase this value at least to
Y1400
i.e. 50% and work your way up until it moves smoothly.Just as a side note: RRF will round down to full 0.1A steps so no use in putting anything in that has no two zeros at the end.
Also in your screenshot of the EMF calculator you selected a Microstepping factor of x1 but in your config you set x16. If I enter the values that I think should resemble your setup I get the following
As you can see I had to reduce the requested max speed to 109mm/s to keep the EMF due to rotation (first line in results) <= 24V but also already at 48mm/s the Duet would no longer be able to reliably detect skipped steps (second to last line in result).
EDIT: Note that the red warning around the Rated Current field is due to the fact that the Duet currently limits the maximum motor current to 2.4A and this should only warn you that you won't be able to ever run your motor at its full rated current.
-
@wilriker said in Nema 23 Questions:
Hi wilriker. Thank you for posting a detailed response. That is very helpful to me.
This means you try to run your 2.8A motor at 0.855A i.e. at 30% of their rated current. This will probably be too low. Try to increase this value at least to Y1400 i.e. 50% and work your way up until it moves smoothly.
I will change this to Y1400. Since my original post I had moved it up to 900.
Just as a side note: RRF will round down to full 0.1A steps so no use in putting anything in that has no two zeros at the end.
Ok. Noted!
Also in your screenshot of the EMF calculator you selected a Microstepping factor of x1 but in your config you set x16. If I enter the values that I think should resemble your setup I get the following
I am really fuzzy on the concept of microstepping. I seem to have had some serious issues with trying to set steps / mm whenever I have made changes.
My statement from config.g
M350 X16 Y16 Z16 E16 I0 ; Configure microstepping without interpolation
I spent some serious time in the GCode document wherein I went by this information.Inn Enable (nn=1) or disable (nn=0) microstep interpolation mode for the specified drivers, if they support it. The Duet 2 WiFi/Ethernet support interpolation (to x256 microstepping) only when configured for x16 microstepping. The Duet 2 Maestro supports interpolation at all microstep settings.
My read of this is that in the M350, the I0 at the end is intended to disable microstepping. When disabled, the default value is 1.
I don't know how that relates to the value of 16 that each axis has listed, but I did read that 16 was the value that should be used for the DuetWifi.As you can see I had to reduce the requested max speed to 109mm/s to keep the EMF due to rotation (first line in results) <= 24V but also already at 48mm/s the Duet would no longer be able to reliably detect skipped steps (second to last line in result).
Since the M203 that has the settings indicates mm/min, would I replace the Y60000 with Y6540? (mm/sec)
It would seem to me that I should be checking this value for X and Z?
My X and 2 Z motors are OPENBuilds MT2303HS280AW-08. I can get the stats for those.EDIT: Note that the red warning around the Rated Current field is due to the fact that the Duet currently limits the maximum motor current to 2.4A and this should only warn you that you won't be able to ever run your motor at its full rated current.
I don't ever expect to need to go to full power,
Thanks very much for the help.
Tim -
@timvukman said in Nema 23 Questions:
I am really fuzzy on the concept of microstepping. I seem to have had some serious issues with trying to set steps / mm whenever I have made changes.
My statement from config.g
M350 X16 Y16 Z16 E16 I0 ; Configure microstepping without interpolation
I spent some serious time in the GCode document wherein I went by this information.Inn Enable (nn=1) or disable (nn=0) microstep interpolation mode for the specified drivers, if they support it. The Duet 2 WiFi/Ethernet support interpolation (to x256 microstepping) only when configured for x16 microstepping. The Duet 2 Maestro supports interpolation at all microstep settings.
My read of this is that in the M350, the I0 at the end is intended to disable microstepping. When disabled, the default value is 1.
I don't know how that relates to the value of 16 that each axis has listed, but I did read that 16 was the value that should be used for the DuetWifi.OK, so I try to clarify this. The term "interpolation" is an additional feature (more on that below) that on Duet2 can only be applied if microstepping is x16. Available native (i.e. CPU controlled) microstepping factors are x1, x2, x4, x8, x16, x32, x64, x128 and x256. These will all subdivide a step of your motor in microsteps of the given factor, i.e. at x16 one full step of your motor will be divided into 16 microsteps.
Usually you can say the higher the microstepping factor the quieter and smoother runs your motor. But on the other hand at high speeds having a high microstepping factor will put a considerable heavy load on the CPU to create all these steps.
That's where interpolation comes into play. It is a feature of the stepper driver that - in case of Duet2's TMC2660 - will further interpolate every microstep in another 16 microsteps but will perform them all at once. So the Duet commands a microstep with factor x16 and the TMC2660 will subdivide this into 16 micro-microsteps so to speak.
This way you will get the benefits of smooth running x256 microstepping at only the CPU load of x16 microstepping. There are of course other advantages/disadvantages to both variants but that will go too far right now.
Since the M203 that has the settings indicates mm/min, would I replace the Y60000 with Y6540? (mm/sec)
Basically that's what you should do. I personally would round it down to 6500 but that's just my OCD.EDIT: I re-read what I wrote before. 109mm/s (=6540mm/min) is the absolute maximum that your setup is able to provide. For anything faster your input voltage is just "too low".
I also said that anything above 48mm/s (=2880mm/min) the Duet will no longer be able to reliably detect skipped steps. In other words: if your Y axis moves faster than this everything might be working as intended but if something goes wrong Duet won't notice.EDIT2: Do you really need the enormous torque that a NEMA23 provides? I ask because a NEMA17 is sufficient most of the times and can work with much higher speeds at 24V.
It would seem to me that I should be checking this value for X and Z?
My X and 2 Z motors are OPENBuilds MT2303HS280AW-08. I can get the stats for those.Yes, it definitely makes sense to calculate these values for every stepper and put them into your
config.g
accordingly. -
@wilriker said in Nema 23 Questions:
That's where interpolation comes into play. It is a feature of the stepper driver that - in case of Duet2's TMC2660 - will further interpolate every microstep in another 16 microsteps but will perform them all at once. So the Duet commands a microstep with factor x16 and the TMC2660 will subdivide this into 16 micro-microsteps so to speak.
Thanks. Your explanation above stands as the description that has been the clearest to me. I feel the fuzziness fading.
EDIT: I re-read what I wrote before. 109mm/s (=6540mm/min) is the absolute maximum that your setup is able to provide. For anything faster your input voltage is just "too low".
I also said that anything above 48mm/s (=2880mm/min) the Duet will no longer be able to reliably detect skipped steps. In other words: if your Y axis moves faster than this everything might be working as intended but if something goes wrong Duet won't notice.
Not detecting skipped steps sounds like something that I should avoid.
EDIT2: Do you really need the enormous torque that a NEMA23 provides? I ask because a NEMA17 is sufficient most of the times and can work with much higher speeds at 24V.
This is a very interesting question to me. I did a lot of reading and research before throwing more money at my printer. Everything that I read talked about the motor noise being lowered and the value of the torque in various situations which may not actually exist in my printer.
My X axis is under 300mm and does nothing but move my hot end back and forth, It is a light E3D V6 that feeds the filament through a bowden extruder.
The movement physically is quite smooth and really doesn't take much effort to move manually. If it would be more efficient to run a Nema17 and easier to set up, there is no reason why it would not suffice. That swap would be easy and I have lots of motors.
My Y Axis carries a 300 x 300 hot bed which is pretty heavy. It sits on two linear slide bearings and moves quite easily. The Nema23 decision was made because of the weight on the carriage. Not sure that a Nema17 wouldn't be enough. Open for discussion and recommendation.
My Z axis is a square gantry that carries the Y axis. I do not have a speed requirement for Z, but felt that the torque was more important. There is a Z motor at each end of the gantry.
I will swap out the X motor, and wait for input on whether or not I should do the same for the Y motor. I would like to be able to print as quickly as I can lay down filament - just to reduce the printing time.
Thanks for the assistance!
Tim -
@timvukman From an electrical/electronics point of view, stepper motors aren't in my field of expertise but from a mechanical point of view, I can make some observations which might help.
Firstly Nema 23 and Nema 17 refer to the physical dimensions of the stepper motor and do not necessarily mean that torque will be higher. As a general rule, a larger motor will produce more torque but one can have high torque Nema17s and low torque Nema 23s. Generally longer motors have more torque than shorter ones, so a long Nema 17 might have more torque than a short Nema 23.
What you really need to do is calculate the torque requirement to produce the force required to accelerate the mass at the desired speed. Or conversely, if you know the torque of the chosen motor, calculate the maximum acceleration that would be obtainable. (It takes very little force to maintain a mass at a constant speed, but a hell of a lot of force to accelerate up to that speed).
It's been a long time since I last did the calcs for my printer but this'll give you some idea of the process. I used a few fudge factors and I think there are probably better calculators out there.
Holding torque=59N.cm at rated current. Take 85% for running at 85% current = 50.15N.cm Take 71% to allow loss due to micro-stepping = 35.61N.cm. Reduce by 59% for torque loss due to speed = 17.8N.cm. Divide by pulley diameter in cm to get force in Newtons so 17.8/0.6 = 29.7 Newtons.
Now take carriage mass. In my case it's really heavy - much heavier than your X, possibly heavier than your Y but substitute your own mass. In my case it was 1.67Kgs. Force = Mass*Acceleration so Acceleration is Force/Mass so 29.7/1.67 = 17.77 m/sec^2 or in 3D printer terms 17,667.71 mm/sec^2. But take 10% of that to allow for drop in torque due to micro-stepping so say 1,776.77 mm/sec^2.
There are a lot of fudge factors in the above but you get the idea. So in simple terms, a single Nema 17 with rated holding torque of 59N/cm could accelerate a mass of 1.67Kgs at 1,776 mm/sec^2. In practical terms I can say that yes, this is possible as I've tested it.
How does this translate to speed? Speed is sqrt(2accelerationaxis length/2). Assuming you have a modest axis length of 200mm, then if we plug the above numbers into that formula we get 596mm/sec maximum attainable speed.
In reality, print speed is governed by how fast you can melt filament and you are unlikely to be able to lay down filaments at much over 100mm/sec unless you use very small nozzle diameter and or/ small layer heights and/or (as I do) multiple melt chambers. So that example of a single Nema 17 driving a mass of 1.7kgs would potentially allow you to attain speeds 6 times higher that you could reasonable print at. Although a high non-print speed is desirable. But also, you need to have a very rigid frame to be able to use high accelerations, especially if the mass is high too.
Sorry for all the maths and a long rambling post but without knowing the masses involved, the desired acceleration, and the available torque, there is no way to say whether a particular motor would do the job (but at a guess, I'd say you would be fine).
-
@deckingman Ian, if I only would have known you a year ago. I was looking for a calculation similar to yours and for the life of me was not able to find it. It was for a totally different purpose (a motorized barn-door tracking mount for astrophotography) but having known what you described would have saved me from buying a totally overpowered stepper.
Mind, if I turn this into an online calculator?
-
@wilriker said in Nema 23 Questions:
@deckingman Ian, if I only would have known you a year ago. I was looking for a calculation similar to yours and for the life of me was not able to find it. It was for a totally different purpose (a motorized barn-door tracking mount for astrophotography) but having known what you described would have saved me from buying a totally overpowered stepper.
Mind, if I turn this into an online calculator?
I think it's been done. At least I'm sure that someone did a better calculator taking other things into account. I'll email you the spread sheet that I have though.
Bear in mind that I'm just an old guy who cuts and screws bits of wood
-
@deckingman said in Nema 23 Questions:
I think it's been done. At least I'm sure that someone did a better calculator taking other things into account.
Probably, but till this date I was not able to find something that is not either too simple or totally over-complicated with friction coefficients etc.
I'll email you the spread sheet that I have though.
Thanks, looking forward to it.
Bear in mind that I'm just an old guy who cuts and screws bits of wood
You always make yourself smaller than you are.
-
@wilriker said in Nema 23 Questions:
You always make yourself smaller than you are.
No seriously, I am old and I do cut and screw bits of wood together (admittedly this is career number 9 or something)
Anyway, spread sent via email.