Help configuring Prusa Slicer for my custom built printer
 

Help configuring Prusa Slicer for my custom built printer  

  RSS
Rat_Patrol
(@rat_patrol)
Eminent Member

Printer works fine, I usually run it with S3D. However, since getting my Mini and using Prusa Slicer, there are a few features in Prusa Slicer I'd like to use that are unavailable in S3D.

 

Here is my start code from S3D, which works fine:

G90
M82
M106 S0
M140 S65
M190 S65
M104 S215 T0
M109 S215 T0
G28;
G29 S1 P"smooth60.csv";
G30;
M572 D0 S0.1
G1 Y0.0 X0.0 Z0.3 F1500.0 ; go to edge of print area to start .6mm nozzle purge line
G92 E0.0;
M83; set extruder to relative mode
G1 X60.0 E12.0 F800.0 ; intro line
G1 X150.0 E20.0 F800.0 ; intro line
G1 X160 F800; drag filament 10mm to decompress bowden tube
G1 X146.0 F3200; wipe backwards a bit
G92 E0.0;
M82; set extruder to absolute mode
; process Process1
; layer 1, Z = 0.300
T0
G92 E0.0000
G1 E-6.0000 F3960
; feature inner perimeter
; tool H0.300 W0.900

then off to printing the model...

 

Here is start code from Prusa Slicer:

M107
M190 S60 ; set bed temperature and wait for it to be reached
M104 S215 ; set temperature
G90
M82
M106 S0
G28;
G30;
M572 D0 S0.1
G1 Y0.0 X0.0 Z0.3 F1500.0 ; go to edge of print area to start .6mm nozzle purge line
G92 E0.0;
M83; set extruder to relative mode
G1 X60.0 E12.0 F800.0 ; intro line
G1 X150.0 E20.0 F800.0 ; intro line
G1 X160 F800; drag filament 10mm to decompress bowden tube
G1 X146.0 F3200; wipe backwards a bit
G92 E0.0;
M82; set extruder to absolute mode
M109 S215 ; set temperature and wait for it to be reached
G21 ; set units to millimeters
G90 ; use absolute coordinates
M82 ; use absolute distances for extrusion
G92 E0
G29 S1 P"smooth60.csv";
G1 Z0.350 F7800.000
G1 E-6.00000 F3960.00000
G92 E0
G1 Z0.550 F7800.000

 

Few issues:

It sets a M104 instead of a M109 for nozzle temp

After the Z hop from the purge line, the nozzle does not move back down and it just prints in mid air.

 

Just as an FYI, the machine runs a Volcano with .6mm nozzle with a bowden setup running on a Duet Maestro.

 

I've gone through all the custom G code settings on all 3 tabs for print/filament/printer, and I can't figure out why it do what it do.

 

Thoughts?

Posted : 09/07/2020 10:13 pm
bobstro
(@bobstro)
Illustrious Member
Posted by: @rat_patrol

[...]After the Z hop from the purge line, the nozzle does not move back down and it just prints in mid air.

I think your problems are here:

G90 ; use absolute coordinates
M82 ; use absolute distances for extrusion
G92 E0
G29 S1 P"smooth60.csv";
G1 Z0.350 F7800.000
G1 E-6.00000 F3960.00000
G92 E0
G1 Z0.550 F7800.000

You set absolute extraction. IME PrusaSlicer uses relative extrusion mode for the print. In other slicers, this varies. IIRC S3D does expect absolute extruder moves and your code snippet shows this. In my startup gcode for S3D for Cura and S3D, I set absolute mode for the actual print. For PrusaSlicer, it's relative mode.

Marlin G29 command doesn't normally take file names like "smooth60.csv". Are you using a preprocessor?

You move Z to 0.550 after the preceding 0.350. Not sure what the intent is.

 

My notes and disclaimers on 3D printing and miscellaneous other tech projects
He is intelligent, but not experienced. His pattern indicates two dimensional thinking. -- Spock in Star Trek: The Wrath of Khan...
Posted : 10/07/2020 1:01 am
Antoninus
(@antoninus)
Active Member

.....
G1 Z0.350 F7800.000
G1 E-6.00000 F3960.00000
G92 E0
G1 Z0.550 F7800.000

Isn't Z0.350 the Z offset?
And Z0.550 the layer height?... here for the 0.6 noozle

As I know the prusaslicer, these are preset values ​​in the gcode, not own/custom gcode.

Posted : 10/07/2020 1:39 am
bobstro
(@bobstro)
Illustrious Member
Posted by: @antoninus

[...] Isn't Z0.350 the Z offset?

And Z0.550 the layer height?... here for the 0.6 noozle

Ah, that makes sense. So putting in an additional offsets then zeroing the position. Additional thoughts then:

  • 0.35 seems very high for an initial layer 0 gap, especially with ABL in use. I don't see equivalent lines in the working S3D gcode sample.
  • 0.55mm is a bit high for a 0.6mm nozzle. I'd recommend staying within the guideline of lower than 80% of the nozzle height to get the flatter extrusions, so 0.48mm.

As I know the prusaslicer, these are preset values ​​in the gcode, not own/custom gcode.

 

My notes and disclaimers on 3D printing and miscellaneous other tech projects
He is intelligent, but not experienced. His pattern indicates two dimensional thinking. -- Spock in Star Trek: The Wrath of Khan...
Posted : 10/07/2020 2:54 am
Rat_Patrol
(@rat_patrol)
Eminent Member

.35 is my layer height, and it normally works just fine even as a first layer.

The call to Z .55 is due to the .2mm Z hop.

I'm thinking that maybe it's an issue of relative and absolute movements, as that seems to make sense. After the initial Z issues, it prints fine.

 

So, the other issue, why does Prusa Slicer issue a M104 for the nozzle heater instead of a M109?

Posted : 10/07/2020 3:51 am
bobstro
(@bobstro)
Illustrious Member
Posted by: @rat_patrol

[...]The call to Z .55 is due to the .2mm Z hop.

Are you trying to do a manual z-hop move in startup gcode? The functioning S3D gcode does not. I wouldn't think it would be a problem, but you'll want to review the actual printing gcode to verify it isn't impacted.

I'm thinking that maybe it's an issue of relative and absolute movements, as that seems to make sense. After the initial Z issues, it prints fine.

There was a recent firmware change that affected how extruder moves were adjusted. IIRC, extruder moves were previously set along with other movement. I had to make adjustments to my startup gcode in S3D, Cura and ideaMaker as a result.

So, the other issue, why does Prusa Slicer issue a M104 for the nozzle heater instead of a M109?

M104 is just "set target temp and continue". M109 is "set target temp and wait". Using M104 just lets you execute other commands as the nozzle heats. You can do M109 without M104.

My notes and disclaimers on 3D printing and miscellaneous other tech projects
He is intelligent, but not experienced. His pattern indicates two dimensional thinking. -- Spock in Star Trek: The Wrath of Khan...
Posted : 10/07/2020 7:52 am
Antoninus
(@antoninus)
Active Member

Perhaps a look into the ini files can help. See end of file.

...\Prusa3D\prusaslicer\ressources\profiles\Creality.ini

Example: the Creality.ini is dated march 2020.  So I think it will not be modified when playing around with settings. That's what I did the last days.  Are this data preset settings? I did not tested yet. The G1 commands and the M109 can be found there.

start_gcode = G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 ; home all\nG1 Z2 F240\nG1 X2 Y10 F3000\nG1 Z0.28 F240\nG92 E0.0\nG1 Y190 E15.0 F1500.0 ; intro line\nG1 X2.3 F5000\nG1 Y10 E30 F1200.0 ; intro line\nG92 E0.0

end_gcode = M104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\n{if layer_z < max_print_height}G1 Z{z_offset+min(layer_z+10, max_print_height)} F600{endif} ; Move print head up\nG1 X0 Y200 F3000 ; present print\nM84 X Y E ; disable motors

This post was modified 4 weeks ago by Antoninus
Posted : 10/07/2020 3:42 pm
bobstro
(@bobstro)
Illustrious Member

Here's the description of the decoupling of extruder mode from XYZ with the release of firmware 3.9:

Decoupling XYZ relative and E relative

Until now the Prusa-Firmware was preventing the user from using relative XYZ motion (for Z-hop) at the same time with absolute extrusion. This behavior was fixed and also switched at the same time to be more inline with the Marlin 2.0 standard (changing the XYZ relativity also affects the extruder).

The users however reported that some calibration G-codes stopped working with the RC1 release. It turns out those G-codes needed the axis to be decoupled just like previously in Prusa-Firmware and not be directly inline with Marlin 2.0. The second change, which came with RC2, which decoupled the XYZ relativity from the extruder completely, eliminating both mentioned issues simultaneously.

If you have older gcode samples that assumed XYZ and E were linked, this might cause extruder weirdness. I noticed it when previously-working S3D and Cura profiles would print the prime line correctly, but make a mess trying to print the part.

I've been burned a few times when using relative mode for extrusion (e.g. G1 E-2 to retract) and issuing that command when the extruder was set to absolute and would try to position to -2.

This post was modified 4 weeks ago by bobstro
My notes and disclaimers on 3D printing and miscellaneous other tech projects
He is intelligent, but not experienced. His pattern indicates two dimensional thinking. -- Spock in Star Trek: The Wrath of Khan...
Posted : 10/07/2020 4:19 pm
Rat_Patrol
(@rat_patrol)
Eminent Member

Thought I had things going well, but latest test print was over-extruding, I would guess by a good 20% or so :/

 

I moved my purge line to my filament starting script, which fixed the M109 issue.

I also set the Z offset in Prusa Slicer to match my settings in the Duet. That seems to be working now, but I had z offset in S3D at 0, so not sure why they don't agree.

 

Starting to thing the juice may not be worth the squeeze...

Posted : 10/07/2020 4:58 pm
bobstro
(@bobstro)
Illustrious Member
Posted by: @rat_patrol

Thought I had things going well, but latest test print was over-extruding, I would guess by a good 20% or so :/

I've found that my Sidewinder X1 printer over-extrudes by a similar amount. I'm having good luck just using the PrusaSlicer start gcode to reduce the flow by 15% or so.

M221 S{if layer_height >= 0.1}95{else}100{endif} ; compensate for thick layer heights

This is working well so far, and lets me share filament profiles between my Sidewinder and Mk3.

I moved my purge line to my filament starting script, which fixed the M109 issue.

I'm not sure I understand what you mean by "M109" issue. You can use M104 and M109 together. I use M104 to set the initial nozzle temp, then proceed with other settings and wait for the final nozzle temp with M109. The only real "rule" is to wait for the M109 final temp before starting to print.

I also set the Z offset in Prusa Slicer to match my settings in the Duet. That seems to be working now, but I had z offset in S3D at 0, so not sure why they don't agree.

I'm personally not a fan of trying to do hardware corrections (1st layer gap) in the slicer since they're very likely to change. I like to set the hardware so that the slicer can assume 0 is a good starting position. Of course, this requires Mesh Bed Leveling in firmware and appropriate gcode to enable it.

Starting to thing the juice may not be worth the squeeze...

I can understand the frustration, but I am very (very very) glad to have spent the time working out good PrusaSlicer configs for my Sidewinder. I still find PrusaSlicer to be the most powerful slicer if changing between hardware (printers & nozzles), filaments and print types frequently. The Maximum volumetric speed setting alone makes it worth all the hassles.

If it's of any help, here's my startup gcode modified for the Artillery Sidewinder X1 running Marlin 2.0 firmware with manual mesh bed leveling & EEPROM enabled:

; Last updated 20200611
M300 S60 P10 ; chirp
M117 Initializing
; Set coordinate modes
G90 ; use absolute coordinates
M83 ; extruder relative mode
; Reset speed and extrusion rates
M200 D0 ; disable volumetric e
M220 S100 ; reset speed
; Set print temps
M117 Heating nozzle & bed
M104 S160 ; set no-ooze nozzle temp while bed heats
M140 S[first_layer_bed_temperature] ; set heatbed temperature
M109 S160 ; wait until nozzle is warm to avoid bed damage
; Home
M300 S60 P10 ; chirp
G1 Z3 F3000 ; move z up little to prevent scratching of surface
M117 Homing
G28 ; home all axes
; Present bed for final cleaning
M300 S60 P10 ; chirp
G1 Z3 F3000 ; move z up little to prevent scratching of surface
G0 X155 Y310 F7200 ; Present bed for cleaning
; Wait for final bed heating
M190 S[first_layer_bed_temperature] ; wait for the bed to heat up
; Return to prime position and wait for nozzle to heat up
M300 S60 P10 ; chirp
G1 Z3 F3000 ; move z up little to prevent scratching of surface
G1 X0 Y-5 F7200.0 ; go outside print area
M104 S[first_layer_temperature] ; set final nozzle print temp
M109 S[first_layer_temperature] ; wait for the nozzle to heat up
; Prime line routine
M300 S60 P10 ; chirp
M117 Printing prime line
M900 K0; Disable Linear Advance for prime line
G92 E0.0 ; reset extrusion distance
G1 Z0.2 F3000 ; lower nozzle to printing height
G1 E5 F1000 ; de-retract and push filament to trap ooze
G1 X0 Y-3 F7200 ; move to prime line position
G1 X20.0 E10 F7200.0 ; fat 20mm intro line @ 0.5
G1 X60.0 E3.2 F3600.0 ; thin +40mm intro line @ 0.08
G1 X100.0 E6 F3600.0 ; fat +40mm intro line @ 0.15
G1 E-0.8 F3000; retract to avoid stringing
G1 X99.5 E0 F3600.0 ; -0.5mm wipe action to avoid string
G1 X110.0 E0 F3600.0 ; +10mm intro line @ 0.00
G1 E0.4 F1500; de-retract
G92 E0.0 ; reset extrusion distance
; Final print adjustments
M300 S60 P10 ; chirp
M117 Preparing to print
; Adjust extrusion rate if desired
M221 S{if layer_height >= 0.15}85{else}100{endif} ; compensate for thick layer heights
;M92 E437.24 ; compensate for extrusion error
;M85 S180 ; activate 30-second idle timeout
; Adjust PID values
M301 P14.93 I1.27 D43.27
M304 P88.75 I11.17 D176.30
M420 S1 Z3 ; reload and fade mesh bed leveling at 10mm
M117 Print in progress

Note that I use both M104 & M109. There's currently nothing in between, so I could just use M109 with no change in the results. I may stick something time consuming in between in the future though, so have left it this way. Lots of experimental settings are commented out.

 

This post was modified 4 weeks ago 3 times by bobstro
My notes and disclaimers on 3D printing and miscellaneous other tech projects
He is intelligent, but not experienced. His pattern indicates two dimensional thinking. -- Spock in Star Trek: The Wrath of Khan...
Posted : 10/07/2020 5:11 pm
Rat_Patrol
(@rat_patrol)
Eminent Member

@bobstro

The M109 issue was that Prusa Slicer was starting my purge line BEFORE the nozzle had reached printing temp, as the M109 isn't generated until the filament gcode, which is after the printer gcode (which is where I had my own purge line commands). The only issue now is that I needed to create filament profiles specifically for this printer, otherwise it would screw up my Mini royally 😀.

I'll have to play with the extrusion settings, and then just run the code like you did to handle the over-extrusion. Kind of a weird issue though.

 

The reasons I want to have a good profile in Prusa Slicer is for the ability to have a narrower extrusion for top solid infill and Prusa Slicer seems to handle the 'bump' from internal perimeters to external perimeters better than S3D. S3D has a bit of a pause (just enough for human recognition), but with a .6mm volcano and a 600mm Bowden tube, it's enough to give me a nice blob right there. On my to-do list is getting a Prusa MK3 Bear frame kit and dump all my components onto that and go back to direct drive extrusion with my Bondtech, which will get rid of a lot of my Bowden related issues. I have to have pressure advance set to .22 to actually get perfectly smooth prints, but then I increase my print times by a factor of 4 😑. Running Pressure Advance at .14 is enough of a compromise to have usable prints though. This is my volcano machine after all, I use my Mini when I want detail.

Posted : 10/07/2020 5:22 pm
bobstro
(@bobstro)
Illustrious Member
Posted by: @rat_patrol

[...] The M109 issue was that Prusa Slicer was starting my purge line BEFORE the nozzle had reached printing temp, as the M109 isn't generated until the filament gcode, which is after the printer gcode (which is where I had my own purge line commands).

You can definitely fix that in your printer settings start gcode. No need to do it for every filament profile, especially if you want to use those same filament profiles with other printers! Take a look at the Sidewinder sample I posted above. I set the initial temp with M104 but do wait for the final temp with M109 before printing anything.

The only issue now is that I needed to create filament profiles specifically for this printer, otherwise it would screw up my Mini royally 😀.

I started down that path, but am working hard to isolate printer-specific things in my print and printer profiles in PrusaSlicer. So far, I'm having good luck maintaining separate profiles for the Mk3 and Sidewinder but sharing filament profiles.

I'll have to play with the extrusion settings, and then just run the code like you did to handle the over-extrusion. Kind of a weird issue though.

I haven't done any comparisons with other slicers, but the Sidewinder definitely seems to push more filament out. I'm going to repeat my extruder calibration to make sure I didn't goof, but I don't think so. If it's as simple as knocking extrusion rates back 15% with M221 in the printer profile startup gcode, that's not so bad.

My notes and disclaimers on 3D printing and miscellaneous other tech projects
He is intelligent, but not experienced. His pattern indicates two dimensional thinking. -- Spock in Star Trek: The Wrath of Khan...
Posted : 10/07/2020 6:35 pm
Rat_Patrol
(@rat_patrol)
Eminent Member

I think I about have it figured out, or at least close enough to fine-tune it from here.

After all said and done, this is the start of the code that PrusaSlicer puts out:

 

; generated by PrusaSlicer 2.2.0+win64 on 2020-07-10 at 16:35:16 UTC

;

; external perimeters extrusion width = 0.68mm
; perimeters extrusion width = 0.68mm
; infill extrusion width = 0.68mm
; solid infill extrusion width = 0.68mm
; top infill extrusion width = 0.60mm
; first layer extrusion width = 0.68mm

M107
M190 S60 ; set bed temperature and wait for it to be reached
M104 S215 ; set temperature
G90
M82
M106 S0
M92 E415

M109 S215 ; set temperature and wait for it to be reached
G21 ; set units to millimeters
G90 ; use absolute coordinates
M82 ; use absolute distances for extrusion
G92 E0
G28; home all
G29 S1 P"smooth60.csv"; load MESH profile
G30; single point Z home
M572 D0 S0.14; set pressure advance
G1 Y0.0 X0.0 Z0.35 F1500.0 ; go to edge of print area to start .6mm nozzle purge line
G92 E0.0; set extruder to 0
G1 X60.0 E16.0 F800.0 ; intro line
G1 X150.0 E40.0 F800.0 ; heavier intro line
G1 X160 F800; drag nozzle 10mm to decompress long bowden tube
G1 X146.0 F3200; wipe backwards a bit
G1 Z1.00
G92 E0.0; set extruder to 0

G1 Z0.350 F7800.000
G1 E-4.00000 F3960.00000
G92 E0
G1 Z0.750 F7800.000
G1 X118.727 Y110.216
G1 Z0.350
G1 E3.70000 F1800.00000
G1 X119.903 Y108.975 E3.84594
G1 X121.317 Y108.016 E3.99187
G1 X122.905 Y107.383 E4.13781
G1 X124.537 Y107.116 E4.27902
G1 X126.295 Y107.199 E4.42929

Posted : 10/07/2020 6:42 pm
Rat_Patrol
(@rat_patrol)
Eminent Member

Oh, so far on this test print, the over-extrusion issues have cleared up. I reset the printer and PrusaSlicer, re-sliced and uploaded, and it seems to be extruding properly so far, if not a touch of under-extrusion.

Posted : 10/07/2020 6:49 pm
Rat_Patrol
(@rat_patrol)
Eminent Member

Also got the link directly to my Duet Maestro from PrusaSlicer setup, so the direct upload is nice 😀

Posted : 10/07/2020 7:01 pm
bobstro
(@bobstro)
Illustrious Member
Posted by: @rat_patrol

Oh, so far on this test print, the over-extrusion issues have cleared up. I reset the printer and PrusaSlicer, re-sliced and uploaded, and it seems to be extruding properly so far, if not a touch of under-extrusion.

Glad it's working for you.

Your username brought back memories from long ago. It was a bad idea to re-watch one of those shows as an adult. They weren't as good as I remembered. 

My notes and disclaimers on 3D printing and miscellaneous other tech projects
He is intelligent, but not experienced. His pattern indicates two dimensional thinking. -- Spock in Star Trek: The Wrath of Khan...
Posted : 10/07/2020 7:21 pm
Share:

Please Login or Register