Still tweaking slicer settings
I've been running 2.3.0 and just updated to 2.3.1. The resultant sliced files are identical (except for the date and version in the first line of the gcode).
I'm still trying to figure out brief pauses the gcode causes on my printer. After reading a bit on gcode, it seems gcode movement that don't include extruder information should use the G0 and not G1 command. Using the G1 command causes un-necessary control board calculations. Is this true?
Here's an example;
G1 X207.962 Y178.739 E0.04054 ; infill
G1 X202.072 Y177.738 F4800.000 ; move to first infill point
G1 X202.072 Y179.108 E0.04067 ; infill
Why are the two lines with no E commands using the G1, should they be using G0?
The Marlin documentation describes it this way:
By convention, most G-code generators use
G0for non-extrusion movements (those without the E axis) and
G1for moves that include extrusion. This is meant to allow a kinematic system to, optionally, do a more rapid uninterpolated movement requiring much less calculation.
There are conditions for other printer mechanisms, but you've got it right: G0 for non-extruding moves, G1 for extruding moves. That said, using G1 is always going to make the "correct" move. I wouldn't expect any significant difference in execution time on the Mk3. You'd have to look at the Prusa firmware source code to see if there is any actual internal difference as some printers just use the same code for both.
In my case I have small pauses when printing. The pauses seem to occur after a retraction / detraction. It's long enough to melt the layer where the nozzle is which leave some blemishes.
Could that be from the wiping action. It happens before each retraction and can leave small squished bits if you're over extruding a bit.
Check Printer Settings->Extruder 1.
Not wiping. Seems to occur when jumping across an object. Say you've got two vertical walls, one with a large hole. As the print is happening when the hole layer area is starting to print, the nozzle will finish up the print for the hole, then pause for a 1/2 second then move to the other wall and when arriving at the x/y location (same z layer) the print will pause again for a 1/2 second or so, then pick up. Once past the hole and then just printing a vertical wall no pausing occurs.
Are you using OctoPrint by any chance? Have you tried another slicer?
Using Repetier Server, which I thought it may be a communication issue. So I put the gcode on the memory card and printed from the memory card, same pauses. If I use Cura slicer I don't have the pauses, but tons of other issues to many to list which is why I went back to using Prusa. This is a GeeeTech A30T printer. I know lots of folks are having issues with getting really nice prints. I get good prints most of the time since switching to Prusa but a few things like this pause issue causes some pimples on the print. The pause doesn't happen on every print. My next step is to change from Marlin flavor to Repetier flavor gcode to see what changes. I know not all Marlin gcodes are supported by this printer firmware, like the M303 is not functioning and there are a few others. GT has been reluctant to release the source code for users to fix things that GT missed in the firmware, but nothing yet.
[...] Using Repetier Server, which I thought it may be a communication issue. So I put the gcode on the memory card and printed from the memory card, same pauses.
OK. That eliminates one possible issue.
If I use Cura slicer I don't have the pauses, but tons of other issues to many to list which is why I went back to using Prusa.
Now that's interesting. I'd try slicing a very small & simple STL in both slicers and doing a comparison just to see if anything obvious jumps out. If you want to zip up gcode from each slicer generated for your printer and attaching it to a reply here, I -- and likely others -- would be interested in taking a look.
This is a GeeeTech A30T printer. I know lots of folks are having issues with getting really nice prints. I get good prints most of the time since switching to Prusa but a few things like this pause issue causes some pimples on the print. The pause doesn't happen on every print.
The good news is that it isn't the basic hardware then. You can get prints without pauses. You just need to figure out the cause.
My next step is to change from Marlin flavor to Repetier flavor gcode to see what changes. I know not all Marlin gcodes are supported by this printer firmware, like the M303 is not functioning and there are a few others. GT has been reluctant to release the source code for users to fix things that GT missed in the firmware, but nothing yet.
Trying to think of printer-specific settings that might affect flow:
- Have you tried disabling Linear Advance (remove or comment out the M900 Kxx gcode in filament gcode)?
- Bit of a long shot, but you might try disabling Print Settings->Output options->Verbose gcode if it's on. Extra comments do have to be processed, even if ignored.
- Do you get the pauses if you disable retraction? This will make a mess, but a quick test print might be interesting.
- That printer has the color mixing hotend. I don't know a thing about that, but perhaps it's doing some color selection? Could this be a start gcode option? Compare to Cura gcode. Anything in tool change script?
Sorry, that's about all I can think of.
If I turn off retraction, yes very messy print but no pauses. I did a Cura slice and found that with Cura gcode there are no G1 commands without extrusion and those commands that don't require any extrusion are always G0 not G1 commands. With Prusaslicer everything is a G1 command. By definition of Marlin, G0 should be used in place of G1 when no extrusion is required. To me, and I am certainly no expert, it seems Prusaslicer has a bug.
I am now experimenting taking a Cura no pause slice and changing the G0 to G1 commands and see the printer reacts with pauses.
I also like your idea of suppressing verbose descriptions in the gcode to see if that makes a difference.
I would personally love to stay with Prusaslicer, it is much more intuitive than Cura but I really have to get past this pause issue.
If you're only seeing the pauses in PrusaSlicer and only with retraction enabled, that narrows it down to "settings". Regardless of retraction settings and use of G0 versus G1, gcode generated by PrusaSlicer should not cause those pauses. Save your current 3MF project file, zip it up, and attach it to a reply here so we can see your part & settings and give better recommendations. I suspect something is off in your retraction settings.
I took a look through your settings. I can only make a few suggestions to try:
- It's a 3 extruder setup. I don't see any tool changes occurring, but you might look through the gcode to see if it's doing long retractions. Your Printer Settings->Extruder ->Retraction when tool disabled is set to 12mm. Could it be doing an extra 12mm retraction, perhaps for unused extruders, before each retraction?
- Looking at your Printer Settings->Machine Limits, your Max acceleration E is 10,000. This is high compared to an Ender 3 (Bowden setup) at 5,000. This is the maximum acceleration in speed changes. Max jerk E is 2.5mm/s compared to the Ender 3 at 5mm/s. This affects the rate of acceleration change. This isn't necessarily a problem, but it's interesting that your settings seem to have gone both high and low compared to another printer. Did you create this printer profile yourself or has it been tested elsewhere?
I'd spend some time comparing these to your Cura GUI and gcode settings to see if you can spot anything different. In short, I wouldn't expect changing between G0 & G1 to fix this problem unless you find something specific to your printer's firmware. Other printers work fine without pauses using PrusaSlicer's existing setup. It does look like Geetech has their own firmware flavor though, so perhaps this is significant.
There is a possibly related issue noted on GitHub. That looks like retraction issues with the 3 extruder setup is a concern. Can you create a profile using only 1 extruder? (Grasping for straws, admittedly.)
Sorry I can't suggest anything more helpful.
this profile I tweaked from one I found on forums for another GeeeTech printer but not the A30T. The A30T has different firmware from the other A series printers from GeeeTech. My profile has been a 6 week long experiment in trying to get this printer perfected with Prusaslicer (Cura is just clunky and way to many button/knobs/levers/ropes to adjust, I don't know how anyone would ever dial that slicer in on this machine. The biggest issue with Cura is the damn stringing which I solved with Prusaslicer. The pausing is really the only last thing that bugs me.
I appreciate you sifting through the code. I'll take your advice and report back.
Is there a post processing script to change all the G1 to G0 is there is no extrusion in the command?
The pausing seems to coincide with print-retraction-pause-move nozzle-unretraction-print.
The pause is always after a retraction.
G1 X166.224 Y166.432 E0.00872
G1 X166.650 Y166.475 F3600.000
G1 Z9.250 F3600.000
G1 X154.638 Y153.933
G1 X154.319 Y154.149 E0.00526
G1 X153.885 Y154.329 E0.00641
G1 X153.430 Y154.408 E0.00632