Notifications
Clear all

Artillery x2 on PrusaSlicer  

Page 2 / 2
  RSS
Neophyl
(@neophyl)
Illustrious Member
RE: Artillery x2 on PrusaSlicer

I think the problem is your E positioning type.

The Cura Gcode is has
M82, which is absolute positioning on the extruder.

The Prusa profile is using M83 , which is relative extrusion.

On a normal print this difference wont be a problem, as the firmware is instructed what mode it is in so the values in the gcode are used correctly.  
However when you perform a filament change I suspect the printer firmware is reverting to Absolute positioning.  As such when it exits the firmware after the change it is still in Absolute and therefore all the values for extrusion are now wrong.  Firmware should really restore the type it was set to before hand when it exits its built in routine.

For example if the printer had extruded 20 mm of filament at the time of the change then with the system set for absolute the next extrusion would be an E22.5 (if it needed to extrude .5mm after the pause).  Whereas for a system set to relative like the Prusa profile the extrusion command would have E .5, so I suspect the artillery is actually retracting.  Its complicated by the fact that on the prusa profile if it has been set up for relative then there is probably a G92 E0 performed on each layer to reset the E count to remove accumulated errors.

One 'fix' is to redo the artillery's printer profile in PS to use Absolute extrusion like the Cura profile.  This is simple if you know what you are doing.  
Under Printer Settings>General>Advanced make sure Use relative E distances is Unticked.  
The you will have to modify your custom gcode blocks for start/stop to change any M83 to M82.  You will also need to Remove/disable the G92 E0.0 commands in the Before layer change fields in Custom gcode too.

You could try those changes and see if the pause then works correctly.

An alternative that may be simpler (but I'm not sure if it will work) would be to change the Pause Print gcode field to
M601 
M83
Which should theoretically put it back into Relative extrusion after the pause.  It depends on just how the firmware is processing the lines and what order its doing them in.
I'd expect the same issues to be occurring for a colour change too.  If the M83 addition works for pause then it should also work for the other custom blocks too.

Anyway that's my best guess, just up to you to try it now.

Posted : 26/11/2022 11:21 pm
You liked
Jaime
(@jaime)
Active Member
RE: Artillery x2 on PrusaSlicer

That was very nice of you.
All printers in the middle of a 73 hour job.
I'll try that as soon as they finish.

Both aproaches look great.
First one even seems to go te core of the problem so it should even work with hardware pause and stop.

I'll come back to you as soon as print jobs finish with test results.
Again thanks a lot.

Posted : 27/11/2022 10:34 am
Jaime
(@jaime)
Active Member
RE:

I would marry you right now @Neophyl. Looks like it's working!
I paused the printer on the screen and then resumed and eveything was fine.

There is only this funny thing.
It finishes the current trace (not the layer) at light speed. After that it reverts to normal for the rest of the job.
It seems to do so extruding so it doesn't seem to be a problem.
I'll do more tests on that.

Initial GCODE

; Initial setups
G90 ; use absolute coordinates
M82 ; extruder absolute mode
M900 K0.12 ; K factor
M900 W[extrusion_width] H[layer_height] D[filament_diameter]
M200 D0 ; disable volumetric e
M220 S100 ; reset speed factor to 100%
M221 S100 ; reset extrusion rate to 100%

; Set the heating
M190 S[first_layer_bed_temperature] ; wait for bed to heat up
M104 S[first_layer_temperature] ; start nozzle heating but don't wait

; Home
G1 Z3 F3000 ; move z up little to prevent scratching of surface
G28 ; home all axes
G1 X3 Y3 F5000 ; move to corner of the bed to avoid ooze over centre

; Wait for final heating
M109 S[first_layer_temperature] ; wait for the nozzle to heat up
M190 S[first_layer_bed_temperature] ; wait for the bed to heat up

;Auto bed Leveling
@BEDLEVELVISUALIZER
G29 ; ABL T
M420 S1 Z3 ; reload and fade mesh bed leveling until it reach 3mm Z

; Return to prime position, Prime line routine
G92 E0 ; Reset Extruder
G1 Z3 F3000 ; move z up little to prevent scratching of surface
G1 X10 Y.5 Z0.25 F5000.0 ; Move to start position
G1 X100 Y.5 Z0.25 F1500.0 E15 ; Draw the first line
G1 X100 Y.2 Z0.25 F5000.0 ; Move to side a little
G1 X10 Y.2 Z0.25 F1500.0 E30 ; Draw the second line
G92 E0 ; Reset Extruder
M221 S{if layer_height<0.075}100{else}95{endif}

Final GCODE

G4 ; wait
G92 E0 ; prepare to retract
G1 E-0.5 F3000; retract to avoid stringing

; Anti-stringing end wiggle
G91 ; use relative coordinates
G1 X1 Y1 F1200

; Raise nozzle and present bed
{if layer_z < max_print_height}G1 Z{z_offset+min(layer_z+120, max_print_height)}{endif} ; Move print head up
G90 ; use absolute coordinates

; Reset print setting overrides
M200 D0 ; disable volumetric e
M220 S100 ; reset speed factor to 100%
M221 S100 ; reset extrusion rate to 100%

; Shut down printer
M106 S0 ; turn-off fan
M104 S0 ; turn-off hotend
M140 S0 ; turn-off bed
M150 P0 ; turn off led
M85 S0 ; deactivate idle timeout
M84 ; disable motors

GCODE before layer change

;BEFORE_LAYER_CHANGE
;[layer_z]

GCODE after layer change

;AFTER_LAYER_CHANGE
;[layer_z]

I hit pause on the screen, change the filament, resume and everything goes great.
Still haven't tried the M600 and M601 with and without  M83 after.
Since they are supported and resuming is working I guess the codes should simply work.
By the way, shouldn't it be M82 instead of M83? I didn't get that.

This is a huge deal for us owners of Artillery printers.
Now we can resume a printing job or change an empty roll using Prusa Slicer.

Anyhow, I'll do a couple prints and run the remaining  tests with all M600-M83(on and off) variants and come back to you with Artillery X2 and Genius Pro full profile.

Thanks sincerely Neophyl.

Posted : 27/11/2022 11:01 pm
You liked
Neophyl
(@neophyl)
Illustrious Member
RE: Artillery x2 on PrusaSlicer

The speed difference until the next line is the same basic problem as the extrusion.  Gcode is very simple in nature.  So if you do a movement such as
G1 X100 Y.5 Z0.25 F1500.0 E15 ; Draw the first line <to use one from your above list, then you are saying to move to these coordinates at this speed with the speed being set by the F1500 part.
If you then have a following line with G1 X50 Y20 then it will move to the X and Y coordinates at the same speed as was set by the previous line as you haven't set a different feed rate.  It still uses F1500.

When there is a M600 or M601 (or anything similar) the firmware takes over and uses its own built in processes to accomplish the task of the 'shorthand' M600 command.  It will go off and do various moves etc at whatever speeds its been programmed with.  The problem fundamentally is that firmware *should* store the settings from before it goes into the pause and restore them afterwards before exiting.  

As for the M83, yes it should be that if you are trying the second method, as you are telling the printer to go back to relative addressing on extrusion after exiting the pause/colour change.  M83 is relative extrusion.
At the moment with the original PS profile its all set for relative so using M83 and has the relative tickbox enabled so all the E values using that.
The it goes into Pause, and somewhere in all that built in code its being internally set to M82 (absolute).  Then when it exits the pause its still in M82 absolute so in theory adding the M83 once it exits pause should set it back.  

Anyway I'm glad it seems to be working for you 🙂

Posted : 28/11/2022 8:15 am
deFrisselle
(@defrisselle)
New Member
RE: Artillery x2 on PrusaSlicer

Jaime,  What did you come up with for a profile
I have two X2 printers  I did the M600 firmware upgrade on one, but still has that pause/resume issue  

Posted : 06/04/2023 7:51 am
Myrdhin
(@myrdhin)
Member
RE: Artillery x2 on PrusaSlicer

After updating the TFT firmware and just adding an M83 code after the M600, the color change works perfectly. Thanks.

Posted : 01/05/2023 10:06 am
profaugustorossi
(@profaugustorossi)
Member
RE: Artillery x2 on PrusaSlicer

I wanted to thank you for this contribution you made, because it was very useful to me, I managed to make the X2 pause for the color change with the prusa slicer. I would love for Prusa to make a 300x300x340 MK3S++ Extended so I don't have to keep buying these devices that are not so good. But hey, prusa does its business and they know what's best for them. Without further ado, thank you very much, excellent contribution!

Posted : 25/10/2023 5:56 pm
patomdp
(@patomdp)
Member
RE: Artillery x2 on PrusaSlicer
  • Jaime .me podrías explicar más claramente q debo hacer .twngo una x2 con el problema de pausa y reanudación. Estuve traduciendo a español pero no entiendo q debo hacer ..te pido porfavor me puedes explicar como soluciono esto .plis
Posted : 09/03/2024 4:27 pm
patomdp
(@patomdp)
Member
RE: Artillery x2 on PrusaSlicer

Hola tengo el mismo problema q los demás usuarios .de pausa a reanudación en la x2 ..me podrías explicar q debo hacer plis .

Posted : 09/03/2024 5:06 pm
Page 2 / 2
Share: