Close



Page 2 of 6 FirstFirst 1234 ... LastLast
Results 11 to 20 of 55
  1. #11
    Technologist
    Join Date
    Nov 2014
    Location
    Orange, CA
    Posts
    78
    Quote Originally Posted by printbus View Post
    SUGGESTED HOMEWORK AND INDEPENDENT RESEARCH

    While we wait for the conjuring of miracle answers...

    Consider playing around with the Z axis details in the Prusa leadscrew calculator. Note how using a metric pitch threaded rod to obtain metric linear movement typically always involves an integer number of steps. Switch to using Imperial threads in the calculator and see about all you can do is get close. Imagine now the pain those with Imperial rods have in using nice, even metric layer heights. After playing with the calculator, you'll likely never buy a printer with Imperial threaded rods.

    What might happen to the DEFAULT_STEPS_PER_UNIT for the Z axis if the Z rods were replaced with M8?

    Increasing the difficulty now since at least the Prusa calculator doesn't have a pull-down for it, how would the DEFAULT_STEPS_PER_UNIT change if the Z rods were replaced with 8MM ACME leadscrews that have a 2.5mm pitch?

    The value of 4000 steps per mm for the Z axis in DEFAULT_STEPS_PER_UNIT seems to be a large number of steps. Using higher pitch M8 or 8MM ACME leadscrews would reduce the number of steps required to obtain the same linear movement. Ignoring any other limitations like available motor torque, reducing the number of steps required per mm movement would also increase the achievable feed rate. What kind of achievable feed rate on the Z axis might be possible with the M8 or 8MM ACME used instead?

    Now repeat as much of this as required to assess what would happen to the Z axis achievable feed rate if you reduced the microstepping on the Z-axis motor to something other than 1/16. Can you come up with a reasonable combination of threaded rod pitch and microstepping that might allow the Z motors to move faster, thereby reducing the Z axis time in homing, and also reducing the time spent in fixed-point layer shifts? Do you know enough about stepping motors and microstepping to explain why that would be a stupid thing to try?
    if your ok with some more noise you can remove a jumper from Z and speed it up 2X by switching to 2000 steps per mm or 1/8th micro i have done this to the printer we have at school it has a massive .8 nozzle and uses 3mm abs all day so i switched a few things i changed the pulleys to 16 tooth and dropped x and y to 1/8 micro i can't tell at all in the prints But for the speed boost it has net me it was worth my time. i was at the limits at what that POS can do right around 140mm/s infill before it start skipping now i print all day with infill at 210mm/s bridges at 60mm/s rest at 100mm/s first layer at 40mm/s using hair spray

  2. #12
    Staff Engineer printbus's Avatar
    Join Date
    May 2014
    Location
    Highlands Ranch, Colorado USA
    Posts
    1,437
    Add printbus on Thingiverse
    CAN 42BHH48-050-24A TYPE MOTORS BE DRIVEN FASTER ?

    I went into this knowing I could reliably spin the Z motors up to a linear Z axis movement of about 2.2 mm/sec. When I was trying a bunch of different settings on my printer, I found I couldn't really turn the Z motors much faster when I had RAMPS and Marlin configured for 1/4 microstepping (for 1000 steps per mm) instead of the normal 1/16 microstepping. Testing with a 10mm travel, the motors would start accelerating up fine, but just give up and sit until some slower speed when Marlin was decelerating back to a stop. I could reliably maybe get to 2.5 revs per second, from the 2.2 I already knew I could do. I was expecting more available torque as microstepping was reduced, and with it maybe a higher rotation rate. One possibility is that I was losing torque to resonance, which sounds like a common issue.

    Another possibility is the "run hot" 42BHH48-050-24A type motors I have on my Z-axis. In thread MakerFarm Prusa i3 and i3v 66 oz. in. Stepper Motor Specifications, clough42 says these earlier 9.5V/0.5A motors have 20 to 30 ohms resistance and 30+ mH of inductance per coil. It seems to me that the comparatively high inductance on this motor type could be a real limiting factor in driving the motor faster.

    I had previously replaced that same type motor on my extruder with a KYSAN 1124090 (4.2v, 1.5a, 2.8 ohm resistance, 4.8 mH inductance, 75 oz-in torque). As another experiment, I connected the Kysan motor to the Z stepper driver still configured for 1/4 stepping and removed the filament from the extruder. Testing with travel distances between 10 and 50 mm, I found I could reliably spin the extruder motor and gearing with hobbed bolt up to the rate necessary to get what would be 8 mm per second travel rate on the Z axis (10 revs per second). Marlin acceleration factors were left as they were.

    True, the Kysan is a higher torque motor, and it's fair to assume that the mechanical drag from the extruder gearing is different than the z-rods (but to which favor I'm not sure). This test still suggested to me that as far as trying to drive the 42BHH48-050-24A motors any faster, well, they likely aren't suitable for it.

    FOLLOWUP COMMENT: I did eventually replace all of my remaining 42BHH48-050-24A motors with Kysan 1124090 motors. With the Z stepper driver still configured for 1/4 microstepping, the best I could reliably get out of the Kysan Z motors was somewhere around 3.5 mm/sec. With the Z stepper driver reconfigured for 1/16 microstepping, I couldn't get much more than the 2mm/sec rate. The difference makes sense since the amount of torque available from a stepper motor goes down with increased microstepping.

    NOTE: Starting about with shipments for the 10-inch i3v, MakerFarm is no longer believed to be using the 42BHH48-050-24A motors. The limitation observed here may not be applicable to the newer motors.
    Last edited by printbus; 02-18-2015 at 11:42 AM.

  3. #13
    Staff Engineer printbus's Avatar
    Join Date
    May 2014
    Location
    Highlands Ranch, Colorado USA
    Posts
    1,437
    Add printbus on Thingiverse
    ACME LEADSCREW CLARIFICATIONS

    Some of my earlier information about leadscrews was misleading since I didn't know enough about them. I've corrected the earlier post(s), but this should help others from being similarly confused when starting to look at lead screws as a possible upgrade.

    My misunderstanding was in assuming that an 8mm diameter leadscrew with a 2mm pitch would provide 2mm linear travel for each rotation of the rod. Turns out that's not likely.

    A standard screw or threaded rod has a single thread. In that case, the linear travel possible per turn, or lead, is the same as the distance between ridges of the thread, or pitch. On an ACME type lead screw, there are usually multiple threads essentially operating in parallel. A "four start" has four threads machined into the rod. A "two start" has two. Pitch is still the distance between ridges on the thread, but it's now the distance between adjacent threads, not the same one. Here, the linear travel per turn, or lead, is the pitch multiplied by the number of thread starts. Although the thread pitch is 2mm for both, a four start 8mm diameter leadscrew will provide a lead of 8mm per turn, and a two start leadscrew will provide a lead of 4mm per turn. The amount of torque required goes up with the lead value. I've read about people having problems driving 4-start leadscrews on the Z-axis due to inadequate torque from their stepper motors.

    REFERENCES:

    I found this to be helpful - http://www.protoparadigm.com/news-up...n-3d-printers/, including links to other info.

    Info on decoding the Tr8*8(P2) kind of label some suppliers use on their lead screw is available at - http://www.shapeoko.com/forum/viewto...=1554&start=10
    Last edited by printbus; 12-18-2014 at 03:34 PM.

  4. #14
    Staff Engineer printbus's Avatar
    Join Date
    May 2014
    Location
    Highlands Ranch, Colorado USA
    Posts
    1,437
    Add printbus on Thingiverse
    A STAB AT CALCULATING A MAXIMUM PRINT SPEED

    So far, we've put a lot of faith in the achievable step rate of 16 kHz stated in http://reprap.org/wiki/Step_rates. But configuration_adv.h has a MAX_STEP_FREQUENCY parameter defined to 40000. By label alone, it sounds like we should use 40 kHz instead of 16 kHz in our calculations, right?

    MAX_STEP_FREQUENCY is used in setting up a timer value in stepper.cpp. Reading the code doesn't do well at suggesting what's going on here. I found M2 vs. Marlin: Speed Calculations and a comment in Makergear M2: Z Axis Numbers helpful. Up to a step rate of 10 kHz, Marlin will create stepper interrupts at the rate required. Over a 10 kHz step rate, Marlin keeps the timer interval at 10 kHz but starts combining two steps into each interrupt. Over a 20 kHz step rate, Marlin starts combining four steps into each interrupt interval. The references suggest combining steps in each interrupt can lead to jitter since the interval between steps won't be consistent.

    So, one thought is to keep the step rate below 10 kHz to stay away from this jitter. Since we only care about this when we're printing, we don't need to worry about the reduced limit for Z-axis moves (well, maybe if you're printing spiral or with ABL but then the Z axis moves are slow). If the DEFAULT_MAX_FEEDRATE value for the extruder really only comes into play for retractions, we don't need to worry about the reduced limit there either. Nor with non-printing X-Y moves. So, we can tentatively leave DEFAULT_MAX_FEEDRATE alone and deal with the 10 kHz step rate as a limit on maximum print speed we use in the slicer instead.

    Revisiting our feed rate equation for X and Y, the max print speed would = ( steps per second / steps per mm). Steps per mm was previously baselined to 80 for X and Y. Plugging in the numbers we get max print speed = ( 10,000 / 80 ) or 125 mm/second. So, ignoring an obvious question on whether the hot end can keep up and whether we need to adjust for stepping that has to also occur on the extruder motor while printing, we should be able to print perhaps up to 125 mm/sec before we risk picking up the jitter effects of handling motor steps in groups of two or four instead of individually. Why not add some margin and shoot for a max print speed of 100 mm/sec?

    It's at least a place to start.
    Last edited by printbus; 12-21-2014 at 12:21 PM.

  5. #15
    Engineer-in-Training gmay3's Avatar
    Join Date
    Mar 2014
    Location
    USA
    Posts
    388
    Add gmay3 on Thingiverse
    Just checking in to say that these posts have been really interesting reads and keep em coming!

  6. #16
    Staff Engineer printbus's Avatar
    Join Date
    May 2014
    Location
    Highlands Ranch, Colorado USA
    Posts
    1,437
    Add printbus on Thingiverse
    Quote Originally Posted by gmay3 View Post
    Just checking in to say that these posts have been really interesting reads and keep em coming!
    Thanks. I was starting to wonder. I hope to eventually provide similar background for the acceleration and jerk settings, but they're going to take some time.

    EDIT: It'll take more of my time, but I'll likely try to work through acceleration and jerk testing with the existing CW motors, and then recheck things after I retrofit Kysans in for the rest of the motors. I figure it'd be interesting to see where they make a difference.

  7. #17
    Staff Engineer printbus's Avatar
    Join Date
    May 2014
    Location
    Highlands Ranch, Colorado USA
    Posts
    1,437
    Add printbus on Thingiverse
    TESTING XY TRAVEL MOVEMENTS WITH GCODE

    Some simple gcode files were useful in checking out the mechanics of my i3v. Here are sets of gcode for use with the X and Y axes, with Z and the extruder to follow later. Copy the gcode into text files and "print" them either via the SD card or your host software. You don't need to heat up the hot end to run these. I used the Repetier Host gcode editor to adjust values between prints.

    Code:
    ; gcode for testing the X axis
    ; be sure to manually position Y and Z first to clear bed clips etc.
    G28 X  ; home X to initialize it
    M201 X500 ; this will override the DEFAULT_MAX_ACCELERATION for X
    G0 F12000  ; set travel rate to be used in mm per minute
    G0 X180    ; move to X = 180 mm
    G0 X20     ; move to X = 20 mm
    G0 X180
    G0 X20
    G0 X180
    G0 X20
    G0 X180
    G0 X20
    After homing the X axis, the X carriage will move back and forth between X=20 to X=180 a handful of times, at the feed rate specified by the G0 F command, using the max acceleration value from the M201 command. In this example, the travel rate is set to the 200 mm/sec (or 12,000 mm/minute) DEFAULT_MAX_FEEDRATE value derived in an earlier post. You can edit the 180 to a larger value if you have the 10 inch or 12 inch printer, and you could repeat the G0 X180 and G0 X20 lines as desired if you want more passes.

    You can change the M201 command value to get a feeling for the effect different max acceleration values have. Go lower and you'll be able to grasp how a low acceleration value can keep the X carriage from getting very fast - it will eat up too much of the available distance accelerating and then decelerating. You can play around with higher (faster acceleration) values, but above some point you won't see any difference - perhaps because the DEFAULT_ACCELERATION or the DEFAULT_XYJERK factors are coming into play. We'll get into those settings later.

    You can use this test to determine whether you have motor skipping issues at the DEFAULT_MAX_FEEDRATE value you've settled on for X. If you don't know how to tell if your motor is skipping keep cranking the value up. You'll figure it out.

    I've noticed the X belt occasionally resonating over by the X-motor on some prints. Running this gcode indicated the belt resonated reliably at the 12000 mm/minute max feed rate rate. By experimenting with the value in the G0 F command, I determined the belt resonation occurs until I drop down to about a 9500 mm/min feed rate, or what would be about 158 mm/sec for X in DEFAULT_MAX_FEEDRATE. This is above the max printing speeds we've discussed, so the belt flutter would only be occurring on travel moves. I'm not sure the flutter on travel moves would affect print quality, so it might be a non-issue. Yeah, I could add more adhesive Velcro loop to the belt channel of the aluminum extrusion to dampen the resonation, but I want to find a more elegant solution that doesn't risk catching on the X-carriage belt mount hardware. Until then, I'm sticking with a max feed rate of 158 mm/sec so I simply know the belt flutter won't be there.

    I've also noticed bursts of a resonation coming from the X-carriage and extruder on pretty much every print, but I've never been able to determine the source of it. Running this test, the resonation would briefly occur during the acceleration and deceleration on each leg. More experimenting with the G0 F command revealed it happens around a feed rate of 3500 mm/min, or 58 mm/sec. I still couldn't pin point exactly where the noise is coming from, but found I could manage it by adjusting the stepper driver trimpot for the X-motor.

    The long travel moves were instrumental in playing with the X stepper driver trimpot, getting a feeling for what setting was too low (motor skipped a lot), and too high (leading to the resonation noise in the extruder). I looked for a setting that gave me the ability to overcome some hand pressure on the x-carriage at the 158 mm/sec feed rate while still not making a lot of step noise. I think I've now got a better real-world adjustment on the X-motor driver than I've had before and no voltmeter was used. FWIW, I did later measure the current limit setting at just 0.10v.

    This testing also proved, contrary to what I've said several times, that the high resistance 9.5V motors that "run hot" are in fact affected by the stepper driver current limit adjustment.

    Similar gcode for Y:
    Code:
    ; gcode for testing the Y axis
    ; be sure to manually position X and Z first to clear bed clips etc.
    G28 Y  ; home Y to initialize it
    M201 Y500 ; this will override the DEFAULT_MAX_ACCELERATION for Y
    G0  F12000  ; set travel rate to be used in mm per minute
    G0 Y180     ; move to Y = 180 mm
    G0 Y20      ; move to Y = 20 mm
    G0 Y180
    G0 Y20
    G0 Y180
    G0 Y20
    G0 Y180
    G0 Y20
    The upper part of my Y-belt also resonates near the Y-motor at high travel rates, and it stops occurring at about the same 9500 mm/minute rate as well. The current limit adjustment on the Y-motor stepper driver was adjusted by feel and sound like the X-motor. I later measured the current limit adjustment for the Y-motor set to 0.12v.

    FOLLOWUP COMMENT: One thought is that the X and Y belt flutter is related to belt tension, but earlier attempts at adjusting it weren't very conclusive. Now I at least know there's a way to repeat the flutter at will and observe how things like belt tension might make a difference.

    HOMEWORK AND INDEPENDENT STUDY
    Put together some gcode that moves around the print bed in a square. I'm envisioning a future post where we use such a test with concentric squares spaced at 10 or 20 mm so we can see cumulative effects of jerk, acceleration and feed rate settings across different sizes of square movements...

    REFERENCES
    The test concept leverages discussion near the end of https://github.com/ErikZalm/Marlin/issues/305#issue
    Last edited by printbus; 12-21-2014 at 12:24 PM.

  8. #18
    Engineer
    Join Date
    Jul 2014
    Location
    Eastern Colorado
    Posts
    536
    Dangit, you just had to post this right before I go to bed, didn't you? I'm quite interested in running this test now, and have to wait nearly 20 hours before I get a chance.

  9. #19
    Staff Engineer printbus's Avatar
    Join Date
    May 2014
    Location
    Highlands Ranch, Colorado USA
    Posts
    1,437
    Add printbus on Thingiverse
    TESTING Z AXIS TRAVEL WITH GCODE

    I'm posting Z axis testing separately since I want to make a point with it. Here's some gcode to start with -

    PREFACE: Gcode provided below always starts by homing Z as a safe thing to do, and this adds a delay to every test while it completes. There'd be other ways to go about this, by manually raising the X-carriage to some height and then running the test. I went with the safe route.

    Code:
    ; gcode for testing the Z axis
    G0 F120 ;prepare for a safe homing rate of 2mm/sec
    M201 Z5 ;prepare for a safe homing acceleration 
    G28 Z  ; home Z to initialize it
    M201 Z1 ; this overrides the DEFAULT_MAX_ACCELERATION for Z
    G0 F120  ; set travel rate to be used in mm per minute
    G0 Z20   ; move to Z = 20 mm
    G0 Z10   ; move to Z = 10 mm
    G0 Z20
    G0 Z10
    This starts by homing the Z axis with a known safe Z axis feed rate and the MakerFarm default for the Z term in DEFAULT_MAX_ACCELERATION. After homing, the X-carriage is raised to 20mm, using a real slow acceleration value. The X-carriage is then moved between 20mm and 10mm heights a few times.

    Prior experimenting with various homing feedrates had indicated I could get resonations caused by certain Z travel rates, just like I had experienced on the X axis. This gcode starts with the slow acceleration rate of 1 mm/sec per second in order to listen for them. Sure enough, adjustment of the Z motor stepper driver while the carriage was moving up and down eliminated the resonation sound here too. I later measured the current limit adjustment on the Z stepper driver set to 0.125v.

    The G0 F120 feed rate is as fast as we can go with firmware built to a DEFAULT_MAX_FEEDRATE of 2 mm/sec for Z. If you want to test faster than that, you have to either upload revised firmware or change Vmax Z from the LCD Control | Motion menu. The gcode starts with homing performed at a proven speed so that any issues you have later with motor skips won't occur in a subsequent Z home. It's important to understand that settings loaded into the printer by one gcode file will remain in effect until changed by another, or changed by reset, etc.

    Now it's time to fiddle with acceleration. With the gcode as provided, we see how the Z axis slowly accelerates and decelerates for our 10mm travels. Observe the MakerFarm default for Z acceleration of 5 mm/sec per second. Go higher. Try 10. 50. 100. 500. Do you observe any negative effects of a high acceleration setting?

    Results with long-distance travels on Z are of marginal value since real prints won't involve those kinds of moves. Here's some different gcode -

    Code:
    ; gcode for testing rapid back and forth movements on the Z axis
    G0 F120 ;prepare for a safe homing rate of 2mm/sec
    M201 Z5 ;prepare for a safe homing acceleration 
    G28 Z  ; home Z to initialize it
    M201 Z5 ; this overrides the DEFAULT_MAX_ACCELERATION for Z
    G0 F120  ; set travel rate to be used in mm per minute
    G0 Z20   ; move to Z = 20 mm
    G0 Z19.8   ; move to Z = 19.8 mm
    G0 Z20
    G0 Z19.8
    G0 Z20
    G0 Z19.8
    G0 Z20
    G0 Z19.8
    This performs a Z home and raises the carriage to 20 mm as before. Then the carriage is rapidly moved up and down 0.2mm, the same distance for a typical layer height shift. The gcode sets the acceleration to the MakerFarm default of 5 mm/sec per second. Note how a 0.2mm change in height is 1/4-turn on the Z rods. This makes sense since the M5 rods have a full-turn pitch of 0.8mm, so 0.2mm in height would be one fourth of that. Now try higher values for the acceleration term. It's hard to tell if the motor really finishes the quarter turn with higher acceleration rates like 100 or 500 mm/sec per second. Maybe those values are fine, but 50 mm/sec per second definitely looks promising, even at this fast zig-zag height adjustment.

    Why would this be important? After all, a print only involves a certain number of layer shifts and speeding them up will only save some number of seconds over the print. Well, increasing the Z acceleration term would also speed up incremental height adjustments for spiral contours and printing with auto-bed-leveling, and especially speed up prints if you're lifting Z on each retraction.

    In a subsequent post, I'm also going to be suggesting there's an advantage to having all the terms in the DEFAULT_MAX_ACCELERATION about the same. This is a key reason why I'm looking for an acceptable Z axis acceleration value higher than the MakerFarm default of 5 mm/sec per second. Our printers aren't a delta where the suspended hot end could bounce around on a fast move. The 0.8mm pitch Z rods are going to inherently provide some limit in how fast we can try to raise the i3v X-carriage. The aluminum v-rails provide a movement with minimal slop, compared to round rods and notorious linear bearings used on common prusas. IMO, we can accommodate some serious increase in the Z axis acceleration setting on the i3v.

    But first, I feel the need for some gcode to test the extruder with.

    HOMEWORK AND INDEPENDENT STUDY
    Revise the second block of gcode so that the travels continue in the same direction (20.2, 20.4, 20.6, etc.). IDK, it's just something to do.

    Then add something like a 200 mSec delay between moves by adding a G4 P200 dwell command between each of the multiple G0 commands. This allows you to better see each of the height adjustments. Experiment with the acceleration term again. Does a value of 500 mm/sec per second seem to work OK? Keep that in mind for later.

    FOLLOWUP COMMENT: Keep in mind that the mass of the x-carriage makes it harder for the Z motors to increase the Z-axis than to lower it.
    Last edited by printbus; 04-14-2016 at 11:55 AM. Reason: typos in the code block comments

  10. #20
    Engineer-in-Training TopJimmyCooks's Avatar
    Join Date
    Jul 2014
    Posts
    204
    Let me echo Gmay - I am following this with interest and look forward to doing some "homework". I'm waiting until after I get my dual itty bitty extruder going so I can do my tests with the heavier end effector. I will post any feedback.

Page 2 of 6 FirstFirst 1234 ... LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •