Jump to content
Ultimaker Community of 3D Printing Experts
das_enginer

KISSlicer / 14.07

Recommended Posts

Hi All!

After working with the amazing Simon & fbrc8 quite extensively, I finally have a printer that I think I can run without worries of under-extrusion so long as I stick to certain filaments (with more testing to come).

I was running KISSlicer back on 14.03, but it's been so long since I've had a truly functional printer that I haven't dealt with the new UM firmware until now. I'm trying to mimic the 14.07 Cura startup sequence, but either I'm missing something or I'm no longer able to override all actions on the printer with 14.07.

Basically I have the prefix almost down to decently match the Cura startup. I need to adjust the extrusion prime lengths, but the main issue is that the z-axis raises to ~z = 15mm before my home command even gets reached. It's almost as if there is a "G1 Z15 F9000" in the firmware that is superseding my GCode prefix. The machine will raise to the z height, THEN home all of my axes, which means the startup sequence is: bed up - home bed (bed down) - home head - bed up. Something very similar happens if I simply change Cura to output RepRap/Marlin instead of UltiGCode.

My postfix is in even worse shape; it seems to run my postfix just fine after the print (hard to tell exactly due to speed, but what I would expect), but then retracts the filament even further and re-homes the axes again. Here it's as if there is a "G1 E-5 F300" and another "G28" concatenated to my postfix.

Is there any way to get the UM2 to stick to just what is in my prefix / postfix, or is the result going back to an older firmware?

My prefix code is:

G21 ;Metric Values

G90 ;Absolute Positioning

M82 ;Extruder to Absolute

M107 ;Fans Off

G28 ;Home All Axes

G1 X5 Y8 F9000 ;Move Head to ~Origin

G1 Z15 F9000 ;Raise Bed to Head

M140 S<BED> ;Set Bed Temp

M190 S<BED> ;Wait For Bed to Reach Temp

M109 T0 S<TEMP> ;Set & Wait Head Temp

T0 ;Select Extruder 1

G92 E0 ;Zero Extrude L

G1 F200 E5 ;Extrude 5mm @ 200mm/s

G1 F50 E7 ;Extrude 2mm @ 50mm/s

G92 E0 ;Zero Extrude L

G1 F9000 ;Set Axes Rate

 

My postfix code is:

T0 ;Select Extruder 1

M104 S0 ;Head Temp Off

M140 S0 ;Bed Temp Off

G91 ;Relative Position

G1 E-1 F300 ;Retract 1mm

G1 Z+0.5 E-5 X-20 Y-20 F9000 ;Drop, Retract 5mm, Move Head

G28 ;Home All Axes

M84 ;Steppers Off

G90 ;Absolute Position

Any help is appreciated!

Thanks!

 

Share this post


Link to post
Share on other sites

Ultigcode is turned on in the firmware, if the file has ';FLAVOR:UltiGCode' at the start.

If the file is Ultigcode, the startup sequence is:

1) Home everything

2) Move head to (5,10) with bed lowered still

3) Heat up bed and head

4) Raise platform to priming height (z=20)

Then, for any extruder that is used in the print (as determined by the presence of a non-zero 'Material' value at the start of the file), prime the nozzle as follows:

5) Advance 20mm of filament at 5 linear mm/s (this should be undoing the standard end-of-print retraction)

6) Prime the nozzle by flushing 50 cubic mm of plastic through it, at 5 cubic mm per second

7) If the extruder in question isn't the first one, do the standard end-of-print 20mm retraction.

If the file is not Ultigcode, then steps 1,2 and 3 don't happen. But step 4 does still happen. This is arguably a bug, especially since the bed isn't guaranteed to know where it is until a homing has happened. Steps 5, 6 and 7 will only happen if there is a 'Material' line in the file header, which usually there won't be.

At the end of the print (or when a print is aborted), the head and bed heaters are turned off, the head is homed, the current extruder is retracted 20mm (the standard end of print retraction) and the steppers are released. This happens for either type of gcode.

There is no way around the initial bed raising for now, but I'll put a fix in the firmware to stop that happening when using normal gcode. At the end of the print, you should be able to just change your ending gcode to just do the mini retract and lift etc, and then let the firmware turn everything off and do the final homing.

You can't avoid the final retraction of 20mm, but I'd be inclined to just go with it. It keeps the filament out of the hot end during the cooldown, and is going to happen automatically after a filament insertion as well. So, I'd be inclined to expect it to happen, and add the same de-retraction that the firmware does automatically, as part of your start gcode.

 

Share this post


Link to post
Share on other sites

Oh, so it wasn't just me then. I was playing around with KS the other day and noticed the same weird behaviour. I couldn't be arsed at the time to investigate further to see what was causing it. By being lazy I now have an answer and a free start-gcode to work from. Score! :D

Oh, and if you aren't already, you should keep an eye on the refugee forum. Jonathan has been posting new versions pretty frequently in the 1.5 update thread lately (but keep in mind that they can be buggy):

https://groups.google.com/forum/?fromgroups=#!forum/kisslicer-refugee-camp

 

Share this post


Link to post
Share on other sites

Thank you Simon, you've once again saved the day!

I've updated my pre/post fixes (below), and aside from the initial table raise, the only thing left to figure out is why when using this code, the extruder motor skips once right before it begins its skirt path. It's not a big deal as long as your skirt is large enough to allow it to re-prime fully. I've tried many different E lengths and F speeds, but it seems to constantly do it no matter how much/little I prime or at what speed, whereas Cura does not, even at lower temps. The full-stop retraction at cycle end should be 21mm, and I'm priming 18mm quickly, then slowly priming another 10mm, so theoretically only 7mm should be getting pushed through.

Disabling de-string stops this skipping, so I'm guessing that because of the travel length from the prime spot to the print area it's doing some form of suck and prime, which is running too fast and causes a skip. That said, I plan on dealing with the skip for now since I'd rather not disable de-string.

G21 ;Metric Values

G90 ;Absolute Positioning

M82 ;Extruder to Absolute

M106 S0 ;Fans Off

G28 ;Home All Axes

G1 X5 Y10 F9000 ;Move Head to ~Origin

G1 Z20 F9000 ;Raise Bed to Head

M140 S<BED> ;Set Bed Temp

M190 S<BED> ;Wait For Bed to Reach Temp

M109 T0 S<TEMP> ;Set & Wait Head Temp

T0 ;Select Extruder 1

G92 E0 ;Zero Extrude L

G1 F100 E18 ;Forward 18mm @ 100mm/min

G1 F50 E28 ;Extrude 10mm @ 50mm/min

G92 E0 ;Zero Extrude L

 

T0 ;Select Extruder 1

M104 S0 ;Head Temp Off

M140 S0 ;Bed Temp Off

G91 ;Relative Position

G1 E-1 F300 ;Retract 1mm

G1 Z+0.5 X-20 Y-20 F9000 ;Drop, Move Head

G90 ;Absolute Position

 

Share this post


Link to post
Share on other sites

There is no way around the initial bed raising for now, but I'll put a fix in the firmware to stop that happening when using normal gcode. At the end of the print, you should be able to just change your ending gcode to just do the mini retract and lift etc, and then let the firmware turn everything off and do the final homing.

 

I'm seeing the bed being homed twice before the print. Is that the issue you mention here illuminarti ?

Apart from that it prints perfectly! :-)

 

Share this post


Link to post
Share on other sites

Here's a slight tweak on a Kisslicer Prefix, that actually saves time versus Cura's startup sequence.

 

This preheats the extruder (to your print temp less 80C) while the bed is heating up, to save time. When the bed is 6C below the set temperature, the extruder continues heating to the set temp along with the bed heater, so the bed and the extruder are both ready at about the same time.

------------------------------------------------------------------------------

G21 ;Metric Values

G90 ;Absolute Positioning

M82 ;Extruder to Absolute

M106 S0 ;Fans Off

G28 ;Home All Axes

G1 X5 Y10 F9000 ;Move Head to ~Origin

G1 Z20 F9000 ;Raise Bed to Head

M104 S<TEMP-80> ;preheat extruder

M140 S<BED-6> ; set bed temp to Lo

M190 S<BED-6> ;Wait For Bed to Reach Lo Temp

M140 S<BED> ;Set bed temp to final

M109 S<TEMP> ;Set & Wait Extruder Temp

G92 E0 ;Zero Extrude L

G1 F100 E18 ;Forward 18mm @ 100mm/min

G1 F50 E28 ;Extrude 10mm @ 75mm/min

G92 E0 ;Zero Extrude L

 

Share this post


Link to post
Share on other sites

Hi all!

I'm trying to use Kisslicer with my UM2 using the prefix and postfix from @das_enginer

 

G21 ;Metric Values

G90 ;Absolute Positioning

M82 ;Extruder to Absolute

M106 S0 ;Fans Off

G28 ;Home All Axes

G1 X5 Y10 F9000 ;Move Head to ~Origin

G1 Z20 F9000 ;Raise Bed to Head

M140 S ;Set Bed Temp

M190 S ;Wait For Bed to Reach Temp

M109 T0 S ;Set & Wait Head Temp

T0 ;Select Extruder 1

G92 E0 ;Zero Extrude L

G1 F100 E18 ;Forward 18mm @ 100mm/min

G1 F50 E28 ;Extrude 10mm @ 50mm/min

G92 E0 ;Zero Extrude L

T0 ;Select Extruder 1

M104 S0 ;Head Temp Off

M140 S0 ;Bed Temp Off

G91 ;Relative Position

G1 E-1 F300 ;Retract 1mm

G1 Z+0.5 X-20 Y-20 F9000 rop, Move Head

G90 ;Absolute Position

but when the print starts the nozzle is to close to the heated bed, in fact it touches the bed, why??

UM2 firmware is 15.02.1.

Share this post


Link to post
Share on other sites
Hi all!

I'm trying to use Kisslicer with my UM2 using the prefix and postfix from @das_enginer

 

...

but when the print starts the nozzle is to close to the heated bed, in fact it touches the bed, why??

UM2 firmware is 15.02.1.

I've got the same problem, Did you manage to find a solution to this? I've been trying all evening but no joy yet.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Welcome to the Ultimaker Community of 3D printing experts. Visit the following links to read more about our Terms of Use or our Privacy Policy. Thank you!