Welcome! Log In Create A New Profile

Advanced

Question about feed rates

Posted by walts 
Question about feed rates
May 18, 2017 07:59AM
I'm a N00B to 3-d printing but have been doing 3-D milling for a couple of years and am familiar with G-code and my stepper motors.

I have my feed rates set to 5 mm/sec. in the Printer Settings page, and G-code flavor set to RepRap. I'm using Marlin on an Arduino Mega to drive the steppers. When I exercise the axes using Pronterface (also set to 5mm/sec.), everything works smoothly and accurately.

I'm trying to print a 20mm calibration cube, and when I look at the G-code file from Slic3r, I consistently see F-parameters of 7000, 3500, 1400 mm/minute while my max speed is 5mm/sec or 300mm/minute.

Printing is OK except when there is a rapid reversal of the y-axis, and after a couple of layers, the y-axis has lost its calibration (the calibration cube I'm printing leans to the left).

There must be something I'm missing an all of the setup parameters, but I could use some help finding it.

Please help.

Walt

Edited 1 time(s). Last edit at 05/18/2017 08:04AM by walts.
Re: Question about feed rates
May 18, 2017 09:44AM
Layer shifting is usually caused by acceleration and/or jerk (or junction deviation) being set too high in the printer controller's firmware, and usually affects the Y axis because of the relatively large moving mass.

Why are you printing so slowly? At 5mm/sec the heat from the extruder nozzle is probably going to soften previous layers of plastic and in a part as small as 20mm on a side, the whole thing with be a soft mess. 20 mm is too small to calibrate anything. When you measure something with a caliper, there is always some error in your measurement. That error gets built into your calibration. If you use a small object to calibrate, when you print a larger object the absolute error in the calibration gets multiplied. If you use a large object to calibrate, and then print smaller objects, the absolute error gets divided, so it's best to calibrate with as large an object as you can measure accurately.

Edited 1 time(s). Last edit at 05/18/2017 09:45AM by the_digital_dentist.

Son of MegaMax 3D printer: [www.instructables.com]
Ultra MegaMax Dominator 3D printer: [drmrehorst.blogspot.com]
Re: Question about feed rates
May 18, 2017 01:29PM
Quote
the_digital_dentist
Layer shifting is usually caused by acceleration and/or jerk (or junction deviation) being set too high in the printer controller's firmware, and usually affects the Y axis because of the relatively large moving mass.

Why are you printing so slowly? At 5mm/sec the heat from the extruder nozzle is probably going to soften previous layers of plastic and in a part as small as 20mm on a side, the whole thing with be a soft mess. 20 mm is too small to calibrate anything. When you measure something with a caliper, there is always some error in your measurement. That error gets built into your calibration. If you use a small object to calibrate, when you print a larger object the absolute error in the calibration gets multiplied. If you use a large object to calibrate, and then print smaller objects, the absolute error gets divided, so it's best to calibrate with as large an object as you can measure accurately.

OK, here's the whole gory story.
First the calibration cube stl I downloaded is 2cm on a side, not 20mm. (I'm much more comfortable in inches!) I was able to print one completely, but it is a parallelogram on the "Y" face.

I'm using a 3D CNC mill (mydiycnc.com) with a MK8 extruder and a RAMPS 1.4 / Arduino controller. With that setup, the effective bed size is 200mm x 120mm. I set the feed speed experimentally, starting at 50mm/sec and gradually working down to 5mm/sec as the maximum speed the steppers will run smoothly. I calibrated the axes using a 100mm move and the actual movement is 100.09mm measured with a digital caliper. That's at 318 steps/mm; the steppers are 200 steps/rev, 1/2 step, driving a 1/4"x20 lead screw. the math works out to 333 steps/mm, and the actual value was set experimentally.

I suspect the acceleration and jerk parameters are causing problems here but I can't find any information about how to set them. The Y axis stepper makes a brief buzzing noise when it starts, sometimes, but when I use pronterface to move it, it is smooth as silk. I tried a g-code file that repeatedly moves it +/- 2mm and also tried it at +/- .5mm but could not duplicate the buzzing behavior. That's why I was questioning the 3000 - 7000 federates generated by slic3r.

Thanks for the help, I'm still trying various settings but I'd rather not have to grope!

Walt
Re: Question about feed rates
May 19, 2017 04:13AM
What firmware is the controller running? If it uses Marlin, which I haven't used in years, I believe the default acceleration is a pretty high number. You'll have to open the many config files and search for the acceleration settings, change to an appropriate value for testing, and recompile the firmware. Try a value like 300 mm/s/s for starters, and you should be able to get the mechanism moving quite a bit faster then 5 mm/sec. Reduce the jerk setting while you're in there. You can turn those numbers up later, once you have things working faster.

2cm is 20 mm...


Son of MegaMax 3D printer: [www.instructables.com]
Ultra MegaMax Dominator 3D printer: [drmrehorst.blogspot.com]
Re: Question about feed rates
May 19, 2017 04:15AM
Erm firstly, 2cm IS 20mm!

If you are losing steps, it is not the speed that is the problem, but the acceleration. There is very little additional strain on a stepper driving a bed at 50mm/s than driving at 5mm/s once the speed is steady (unless there is lots of friction in your system). The fact that the Y motor buzzes when starting to move suggests that your controller is trying to accelerate too rapidly. Setting a lower max speed will make little difference to that until you set a speed that is extremely low (as you have done). It sounds to me like your controller is attempting to go to the set speed immediately from standstill (i.e. infinite acceleration). Acceleration is usually set up in your controller rather than the G-code, and probably you just need to set a good default. The heavier the mass to be moved and the smaller the motor, the lower the acceleration needs to be. Look here [reprap.org] and look at the parameters for M201, M202, M203 and M204. Also make sure that your controller firmware is up to date. I know of at least one RepRap firmware version that did not handle acceleration properly, and as a consequence often missed steps. I suggest setting X & Y acceleration the same even if it does not need to be. Z acceleration can be really low.

Also, the maths that you use to calculate steps/mm on a system that is driven by timing belts or leadscrews should always work out exactly - there should never be any need to experiment or calibrate. There are no tolerances to take account of. As your actual value differs so much, it means that either the constants you used are wrong (i.e. leadscrew pitch or steps/rev), your arithmetic is wrong, or the mechanics is not set up as you think it is.

Dave
Re: Question about feed rates
May 19, 2017 07:33AM
Thank you all. I have decided to go back to "ground zero" with the configuration files, and start over methodically following your instructions.

The original CNC machine uses proprietary hardware to drive the steppers through LinuxCNC, and if I recall correctly (I dismantled that setup to use the Arduino/Marlin/RepRap hardware) I was able to feed at slightly more than 12 inches per minute, which calculates to 50 mm/sec if I have done the arithmetic correctly (12 * 25.4 / 60 ) but no matter how I try to do it , using direct G-code commands or the "joystick" in pronterface, all they do is buzz. I've tried fiddling with the current potentiometer, but to no avail. However, 5mm/sec appears to be about the same speed as the CNC setup was running at 12"/min. I never timed it, but a 10X difference in speed ought to be obvious.

So back to the drawing boards, and thanks for your help. I'll post updates as I learn.

Walt
Re: Question about feed rates
May 20, 2017 01:54PM
Hello again!

I have some progress to report, and still some frustration.

First, the progress... the Y axis is now behaving. The problem was dirt in the lead screw. It wasn't visibly dirty, but when I ran a tap down the length of the lead screw a lot of dirt came out. After reassembling the axis runs smoothly and repeatably.

I also found the specs for my steppers, and calculated the steps/rev bases on 1/8 stepping, and set up the motor driver accordingly. Again, perfect accuracy with 100mm moves in both directions.

Now the problem - speed. I calculated the max speed of my steppers at [www.daycounter.com] and came out with a max feed rate of 5.94 mm/sec. That's consistent with my experimenting with pronterface. If I try higher speeds, (I tried speeds in the tens, hundreds and thousands) the motors perform smoothly during acceleration and deceleration, but just sit there and whine (scream) during the actual travel portion of the cycle.

So I started looking at replacing the stepper motors. I found some on Amazon from SainSmart that are advertised as for RepRap and MakerBot 3D printers, but there are no specs given. I also found a variety of NEMA 17 motors from OSM Technology that look compatible, but the calculated RPM is only marginally faster than what I have, and the specified voltage/phase is 2.8 which sounds too low for the polu drivers.

The I looked at lead screws. There are quite a few that would work, but they only have 2mm pitch and my 1/4-20 lead screws calculate out to 1.27 mm pitch, so there is not much to gain there.

So I'm back for more wisdom from you all. I'm currently printing the 2 cm. calibration cube from thingverse, and it is about 3/4 done after 3 hours! Quality looks excellent but I would expect greater speeds.

Walt
Re: Question about feed rates
May 20, 2017 07:44PM
You want low voltage motors. Motor torque is determined by current- the only value of the voltage spec is to indicate the motor's inductance. Low voltage means low inductance which is good for high speed operation. It is normal to operate steppers at 10-20X their rated voltage.

Arduino/RAMPS running Marlin can run at 40k usteps per second. If you motors are 200 steps/rev and you're using 8:1 ustepping, it will take 1600 steps to turn the screw one time. 40000/1600 = 25. The controller should be able to drive the motor at 25 revs/sec which would translate to 31.75 mm/sec., but there's no way you'll get a stepper to turn that fast. You might get 10 revs per second if you have a good motor and a high voltage power supply. You're going to need to get higher lead (a one start screw has pitch= lead, a 2 start screw has lead = 2x pitch, etc.) screws if you want to move faster, or switch to belt drive.


Son of MegaMax 3D printer: [www.instructables.com]
Ultra MegaMax Dominator 3D printer: [drmrehorst.blogspot.com]
Re: Question about feed rates
May 22, 2017 04:20AM
The OP states that the original CNC hardware/software was able to drive the table at about 50mm/s. If that is true, then it must be the case that the original stepper motors were capable of being driven at that RPM. Perhaps they are really big high current steppers and RAMPS cannot provide sufficient current? 50mm/s would equate to about 40 RPS or 2400 RPM which is fast but not impossible. As you say, the Arduino setup would not be capable of stepping that fast.

I agree that replacing the leadscrews with multi-start leadscrews would probably be the way to go (use anti-backlash nuts), though the original CNC machine design must have chosen high gearing for a reason. A photograph of the machine may help a lot.

Dave
Re: Question about feed rates
May 22, 2017 08:42AM
Thanks.

I never ran the machine at 50mm/s. This was where I started, and iterated my way downward to where it would run reliably at 5mm/s.

I have ordered new lead screws (the current ones are 1/4-20 threaded rod) and they're due to arrive tomorrow.

The original machine was designed as a CNC mill using a Dremel tool for the spindle, hence the low feed rates. And the steppers are probably the smallest NEMA 17 motors available.

Here's a photo of the machine in its current state, which I am ashamed of. Later this week, after a complete rebuild, it will look much better. It is currently able to print a 2cm cube (from thingverse) but it took 5 hours! The new lead screws should be 5 times faster.

Walt
Attachments:
open | download - IMG_0568.JPG (103.8 KB)
Sorry, only registered users may post in this forum.

Click here to login