Which mode is best for new setups?
The cool news is that last night I went ahead and purchased my servo motor. I have all of the molex mini-fit connectors I need to make my cables and I have big 12' USB micro cables so I didn't need any connectors. This helps me keep my costs down. Additionally my mill has a nice large 70v DC supply on it so I'll just get my power from that and see how things go. If I need to buy a power supply I can do that after some testing. The unit I got will more than double the torque of the Parker Motor I was testing. It was a good little servo back in the day but tech changes fast in this arena. The unit I ended up getting from Teknic was CPM-SDSK-3432S-RLN with 392 oz-in of continuous torque. My little parker motor had just 160 oz-in and can move the knee for a while but over-heats after a bit of use. This new servo motor has 2.5x the power and should be great.
I am anxiously awaiting my package so please see that it's sent out quickly for me! (grin) Anyway, thank you for the help and I will be buying more motors from your company as my needs grow with my business!
andypugh wrote: I don't really like step/dir for servos. It feels like a kludge. If you are going to let the servo drive close the loop, why not send it a position request as a floating point number? It makes for a very neat HAL file....
# This is an example for linuxcnc hal in position mode for the x-axis: net xposcmd joint.0.motor-pos-cmd => hm2_5i25.0.stbl.0.0.pos_cmd net xvelcmd joint.0.vel-cmd => hm2_5i25.0.stbl.0.0.vel_cmd net xposfb joint.0.motor-pos-fb <= hm2_5i25.0.stbl.0.0.pos_fb net xenable joint.0.amp-enable-out => hm2_5i25.0.stbl.0.0.enable net xfault joint.0.amp-fault-in <= hm2_5i25.0.stbl.0.0.fault net xindex joint.0.index-enable <=> hm2_5i25.0.stbl.0.0.index_enable
Andy I was actually going to get into this tonight. Now that my new servo motor is on order what will I use for my HAL file to both give it proper step/dir commands and then also monitor the HLFB to understand if my Z axis (which will be my new Teknic servo) is out of position.
Warren if you're still monitoring this thread, perhaps you can weigh in here as I'm certainly new to this sort of setup. I will share my HAL / INI files with you guys tonight when I get home but I was doing testing with Step/DIR from the PNCConf program and it was working, but that was only sending step/dir. I do want to close the loop to monitor anything out of position ...which should throw an error.
I was further intrigued by the early warning detection system Warren spoke of where the system drops the feedrate to compensate automatically if it senses that it's starting to get out of position. Can LinuxCNC handle this sort of thing guys?
hatch789 wrote: I was further intrigued by the early warning detection system Warren spoke of where the system drops the feedrate to compensate automatically if it senses that it's starting to get out of position. Can LinuxCNC handle this sort of thing guys?
I think this could be done fairly easily with one of the limit components on the stepgen output. Once the status bit came on, you could enable the limit to reduce the feedrate by a set percentage or something like that...
One item that you should be mindful of is the minimum pulse width on your step and direction signals. The Clearpath manual specifies this as 1us, which is quite long for a stepper setup. I converted my machine from steppers with a 250,000 step per inch microsteppiing capability —0.5 threads per inch— which requires shorter pulses than 1us at moderate speeds. I believe I had it set to 200ns.
What happened was that the machine appeared to work perfectly until I started to actually use it. Then I noticed that its position kept drifting, exactly as if there were a loose mechanical coupling in the drive train. I spent many hours securing couplings trying different ones, aligning the motor, etc until I determined that it was not a mechanical problem. Then I spent more hours until I identified the step length from the MESA I/O card as being shorter than the minimum required by the motor. What happens is that at a certain pulse width, the motors begin to ignore some steps and thus drift out of position over many moves.
I'm not sure but isn't the max resolution on those Clearpath motors only 6400 steps/rev (if you have the high res version, otherwise only 800),
Todd Zuercher wrote: Never understood why people would try to use such ultra fine micro stepping with a step motor. 50x micro steps sounds like utter nonsense to me. Especially when you consider what the real resolvable accuracy of a step motor actually is (maybe 4x for accuracy and 8x max for smoothing out the steps). I guess there could be the advantage that if the drive missed a dozen or so steps, it really might not make much difference in the real position of the motor, but...
I'm not sure why other people do it but I used this setting as an attempt to quiet down the noise and the associated "harmonic stall" (I just made that term up.. not sure what it's called or even if it's called something) at certain frequencies. My theory is that when the step frequency or its harmonics coincide with the mechanical resonance in the drive system, the drive becomes easier to stall. Increasing the microstepping count reduces the step noise and gives you more torque at that specific speed. I believe some of the nice stepper drivers can somehow avoid those frequencies ...
Also, some people may like the noise of a stepper system but I don't. At those microstepping frequencies, the motor noise becomes a faint squeal, as opposed to the the typical squawk. I figured that since it's an option, why not?
I've seen some stepper drives advertised as having a clean sine wave output. Ultra fine micro stepping is the next best thing, no?
Todd Zuercher wrote: I'm not sure but isn't the max resolution on those Clearpath motors only 6400 steps/rev (if you have the high res version, otherwise only 800),
This is correct.
In seriousness, there appears to be a bit of research on the topic and apparently a combination of low friction and stiff drive couplings make it worse. The box ways of a mill might be stiff enough to kill it, perhaps? My real problem was that the motors were too small for the job. I could have replaced the steppers with larger ones and solved the problem that way. That said, I am happy with the Clearpath servos.
The half dozen stepper machines I have worked with at work are old routers with NEMA34 unipolar steppers (half stepping the only option) with rack and pinion drive and belt gear reduction on the X-Y and a zero backlash leadscrew on the Z. None of of these machines are particularly stiff or accurate (aluminum frames). I guess the belts and friction of the leadscrew dampen enough of the harmonics to prevent most of the problem.
Besides you need the big steps if you play music with your CNC. (now that was sarcasm )
Todd Zuercher wrote: Besides you need the big steps if you play music with your CNC. (now that was sarcasm )
Like in the movie Sorcerer's Apprentice But his was with HV discharges from Tesla Coils. It would be neat to hear this with CNC machines. Though in my opinion a terrible waste of time and raw productive power.
Anyway the reason for my reply is that I'd like to ask help from those of you who have clearly done this before with regard to step/dir setup of a clearpath drive. Now that I have mine I'm setting it up and would like to avoid the issue that Thadwald ran into with the ghost drift due to skipped (ignored) steps. In this case I fear the servo wouldn't even know it was out of position. So how do I match this servo value to LinuxCNC. My motor is: CPM-SDSK-3432S-RLN and it is (as far as I know) 800 counts per revolution. This is actually very high for my needs because I need 50 revolutions at the servo motor to make 1 complete revolution on my Z-Axis dial indicator which is 0.100". This means by my math that I have 400 counts per 0.001" which seems really great resolution. Again more bad math but I think that means my max resolution on Z would be 0.000025" ( 1 / (50 * 800) ).
So any help anyone can give me in matching this up in LinuxCNC that would be great. Also guys I will need help in setting up my HLFB from this servo motor to know when there's a problem in LinuxCNC.