The PrusaSlicer Thread

Discussion in 'Getting Started' started by Paul Arden, Sep 23, 2019.

  1. Paul Arden

    Paul Arden Well-Known Member

    Joined:
    Aug 28, 2019
    Messages:
    144
    Likes Received:
    47
    I just wanted to kick off a PrusaSlicer profile and setup discussion thread since there seem to be at least a couple of people trying to work with this. I don't have a tested profile ready yet but am definitely interested in what speeds others are using as that is the one part I just transferred more or less wholesale from the E3D S3D factory files.

    The main change I have made on the printer firmware side is to change the tool definitions so the individual PCF are associated with the tools as described in this thread. Then I was able to remove tool number parameters from the M106 commands in the various toolchange macros. Now tfreeX.g just calls M106 S0 to stop the PCF when the tool is dropped and tpostX.g calls M106 R2 to restore the value set from M106 calls generated by PrusaSlicer. This allows fan settings to follow the tool and PrusaSlicer to change the fan speed for each tool if needed.

    For temperatures I am setting them normally, per tool in PrusaSlicer and also setting the Temperature Delta in the ooze prevention option in the print settings (but then leaving ooze prevention turned off, I just want somewhere to put in a temperature delta). I've then made a small C++ post processing script which takes the generated gcode and replaces the M104 commands with G10 commands for each tool where the active temperature is set based on the M104 command and the standby is set by adding the (usually negative) delta, which is able to get retrieved from the SLIC3R_STANDBY_TEMPERATURE_DELTA environment variable during post processing.

    The end result is a G-code file which uses G10 for all hotend temperature control and sets standby temperatures to something reasonable. It obviously isn't clever about when to heat things up but neither would S3D so I don't really see a big issue there.

    I've generated some test G-code and manually reviewed it and done some G-code console tests but haven't printed yet as I am still sorting out my priming macros. Fingers crossed I can run a print soon. In the meantime very interested in what values others are using for speed and retraction in PrusaSlicer since it offers more categories than S3D. The E3D factory seemed pretty conservative at 40mm/s given the capability of the toolchanger.

    In any case, just wanted to kick off a place for PrusaSlicer discussion.
     
  2. Ben Kay

    Ben Kay Well-Known Member

    Joined:
    Sep 9, 2019
    Messages:
    47
    Likes Received:
    14
    Great thread and will watch with great interest. At the moment I'm using firmware retraction based on the settings posted in the "retraction" thread in this sub-forum....but I'm thinking of going back to using PrusaSlicer retraction, as for me it's the most logical and easiest way to set up per-filament retraction settings.

    Would be great at some point to get a semi-tested and working base set-up for PrusaSlicer. Since building the machine (Friday)...integration with slicing software has been the hardest, and least documented, challenge.
     
    Jason Chodakowski and Paul Arden like this.
  3. Paul Arden

    Paul Arden Well-Known Member

    Joined:
    Aug 28, 2019
    Messages:
    144
    Likes Received:
    47
    Ran a couple of tests tonight but nothing to completion yet. I definitely need to sort the priming/wipe side of things before going much further. However the tool changes, fan hand off and standby temperature G10 stuff is all working how I'd expect. I did encounter two issues.

    - The Duet web interface allows you to click the tool selectors while printing, which basically destroyed the state and caused a crash into the bed for me (since the toolchange macros didn't run as I had disabled them). I would have thought the tool selection would be locked out during printing but it seems not. I think I will make a habbit of switching to the heaters column instead so I don't hit this in the future.

    - It didn't seem well defined which tools got set to standby at startup, 0,1,2 went into standby but 3 remained off for some reason, so it didn't heat up until it was picked up. I think I need to add some additional gcode at the start to switch the tools on before pick up.

    Hopefully tomorrow I can get through a full print.
     
    Ben Kay likes this.
  4. wHack

    wHack Well-Known Member

    Joined:
    Aug 20, 2019
    Messages:
    96
    Likes Received:
    16
    I use firmware retraction and eventually plan on using the duet filament profiles to set my firmware retraction per filament so my sliced gcode remains filament agnostic. I also handle temps through the duet interface and leave them out of my gcode once again to make my gcode filament agnostic. I also set up fan speed following the tool.
     
  5. wHack

    wHack Well-Known Member

    Joined:
    Aug 20, 2019
    Messages:
    96
    Likes Received:
    16
    Anyway here is my basic setup. It's pretty baseline at this point as I am generally just tweaking my Default print settings and my Basic PLA filament settings if I want to do something specific. So I don't have a collection of different filament or print settings yet.
     

    Attached Files:

    Paul Arden likes this.
  6. Paul Arden

    Paul Arden Well-Known Member

    Joined:
    Aug 28, 2019
    Messages:
    144
    Likes Received:
    47
    Filament agnostic is an interesting approach, on the Duet, actually pretty feasible too. I guess I could do something similar with the post processing tools by removing all temperature settings. How are you doing filament dependent cooling though? You also lose varying temperature by layer (which is not necessarily essential though).
     
  7. wHack

    wHack Well-Known Member

    Joined:
    Aug 20, 2019
    Messages:
    96
    Likes Received:
    16
    Cooling is an issue. As for varying temp by layer I don't really use it. If I wanted to for a specific file I would just add temps back in PrusaSlicer. Just like if I wanted more control over retraction I would just add the values back in for that file.
     
  8. Krayn

    Krayn Well-Known Member

    Joined:
    Aug 11, 2019
    Messages:
    49
    Likes Received:
    13
    I haven't spent a lot of time tweaking my speeds yet, what I HAVE spent a lot of my time on is making sure that my workflow when using the TC is the exact same as the workflow when using my Prusa mk2.5. Import STL -> Pick Materials -> Pick Quality/Speeds -> Slice -> Print. I wanted to avoid as much post processing as possible. Not saying this is the best way, this is just the way I do it. I think crashing my shapeoko has made me paranoid about forgetting a step in the process.

    Note - I haven't had time yet to tune any speeds or settings inside the slicer yet. Don't download this expecting anything much more than a workflow template. That said, once I do have time to try out some settings, I will update them and share those details. I am using firmware retraction in this profile. Please set this up or modify retraction settings on your own. Bed temperature must be set using the duet's web interface. Multi material still needs tweaks, please be nice.
    The setup:
    [​IMG]
    I included a cropped picture of the heated bed from the e3d website. It's a recent feature added to PrusaSlicer and makes the profile look less generic. You can add it yourself by giving prusaslicer a path to the picture on your drive under general -> bed shape.

    Notes:
    I ended up zeroing out the temperature settings in PrusaSlicer completely. As stated above, PrusaSlicer throws out M104's to manage temperature. It will do this unless you set up custom gcode that outputs M104 manually. Instead of trying to fight the slicer, I decided to disable it completely. Temperature is set using the custom G-Code section of the filament's settings. Conditional gcode is supported here so this could be a potentially powerful way to manage temperatures or even printer settings. I'm debating throwing some of my printer settings in my filament start gcode if I find that things like pressure advance or firmware retraction settings need to be tweaked on a filament by filament basis.

    You will notice I start the filament gcode with "T[current_extruder]". This is a workaround to the problem of PrusaSlicer thinking that T0 is the implied default extruder. If you slice a model using ONLY the default (T0) extruder it will at no point actually select T0. My guess is this is probably one of the first printers where it is possible to not have an extruder selected at all times. The filament start g-code throws out a T[current_extruder] to make sure that a tool is always selected. I believe that redundant T[x] commands are benign, at least so far it hasn't caused issues. This also lets me prime the active tool at the start of a print as the current_extruder isn't defined in the printer settings' start G-Code section.


    Code:
    T[current_extruder] ;Make sure a tool is selected.
    G10 P[current_extruder] S210 R170 ; Set Active Temp of current_extruder to 210, and standby temp to 170.
    M116 P[current_extruder] ; Wait ONLY for currrent_extruder to get up to temp
    M98 Pprime.g ; Prime Nozzle
    G4 P3000 ; Wait for some of the pressure to release (this needs tweaking)
    M98 Pbrush.g; Wipe
    
    [​IMG]
    At the moment filament temperatures are not set until the first time that particular filament is used. This isn't ideal but I'm not sure how I'm getting around it right now.
    The rest of my settings are pretty standard or self explanatory.

    To Do:
    Speed and acceleration tuning
    Multi material tweaks, specifically ooze management, standby temps, and extra extrusion on restart.
     

    Attached Files:

    • TC.zip
      File size:
      9.1 KB
      Views:
      42
    #8 Krayn, Sep 24, 2019
    Last edited: Sep 24, 2019
    Olle Wreede, Killercds and Paul Arden like this.
  9. Paul Arden

    Paul Arden Well-Known Member

    Joined:
    Aug 28, 2019
    Messages:
    144
    Likes Received:
    47
    Very interesting. I hadn't thought of using the filament G-codes for temperature control. I hadn't thought about what will happen in the single extruder (well actually anything less than all four) yet, I'll definitely need to adjust mine for that.

    After reading about firmware retraction some more I've switched to that now as well. Definitely like the idea of controlling that on the Duet instead of the Slicer. I'd likely only change it for flex anyway.

    Just to note you can suppress the automated addition of temperatures in the start G-code by including an M104 with no parameters, this will just get ignored by the Duet and do nothing and it will stop PrusaSlicer adding temperatures for each tool.
     
    #9 Paul Arden, Sep 24, 2019
    Last edited: Sep 24, 2019
  10. Krayn

    Krayn Well-Known Member

    Joined:
    Aug 11, 2019
    Messages:
    49
    Likes Received:
    13
    It only happens if you only use T0. Using only T1 and up causes the slicer to specify the tool. Slightly annoying. I'll play around with throwing a dummy M104 in there. Hopefully it also suppresses M109's that the slicer throws out. That filament custom gcode is the best addition to 2.1 IMO.
     
  11. Paul Arden

    Paul Arden Well-Known Member

    Joined:
    Aug 28, 2019
    Messages:
    144
    Likes Received:
    47
    Yes, the M109's go away as well. If you look at the source code they are only checking whether or not there is an M104 in there and nothing else (they don't check for parameters which is why the dummy one works). It does have to be uncommented though since if its commented out it gets thrown away before that check.
     
  12. Killercds

    Killercds Member

    Joined:
    Sep 13, 2019
    Messages:
    13
    Likes Received:
    12
  13. blarbles

    blarbles Well-Known Member

    Joined:
    Aug 10, 2019
    Messages:
    97
    Likes Received:
    63
    Is there any concern with turning on "Use relative E distances" in Slic3r? This seems to be the only way to enable purge towers in Slic3r.
     
  14. Amr

    Amr Well-Known Member

    Joined:
    Jun 2, 2019
    Messages:
    130
    Likes Received:
    30
    I have been using it for quite some time now, did not pin a proper profile yet to share. I believe it is the default on S3D right?
     
  15. Olle Wreede

    Olle Wreede Member

    Joined:
    Aug 30, 2019
    Messages:
    3
    Likes Received:
    0
    Does anyone have an updated profile?

    I’m using the profile from @Killercds and it works pretty great.

    Unfortunately I have two issues in my setup that I haven’t been able to solve.

    At the start of the print, the initial tool is picked up and primed, then it’s placed back on the dock. Then it’s immediately picked up again, and the print starts.

    I also have an issue where the first layer temperature isn’t followed, it just prints with the default tool temp.

    Does anyone have any idea what can cause these things?
     
  16. Killercds

    Killercds Member

    Joined:
    Sep 13, 2019
    Messages:
    13
    Likes Received:
    12

    Sorry Olle, that's my fault.

    I've updated both my repository to reflect the system changes I made for the Hemera tools, as well as updating the PrusaSlicer profile

    You may need to adjust the printer profile within PrusaSlicer with content from my "All Hemera" profile scripts, as that's where my focus really has been lately

    Here's the link to my system configuration: https://github.com/StevenCregan/RepRapFirmware-SD/tree/working_configuration

    Here's the link to my PrusaSlicer Configuration Bundle: https://github.com/StevenCregan/Slicer-Profiles

    Important Notes:

    I personally changed my system files to call prime_left.g and prime_right.g, as well as purge_left.g and purge_right.g

    This is to allow for the right-offset hemera extruders to reach the brush mount (The standard design, just moved to the opposite wall)

    In addition, the purge and prime scripts now call brush_left.g or brush_right.g instead of having each position written out multiple times. This also allows you to simply call M98 P"brush_right.g" in the Custom G-Code sections of slicers if you want to brush ooze without a purge or prime


    For Anyone Using My Profiles/System Code:
    PLEASE Read the scripts to understand what needs to be changed for your individual machine. I've put some comments in to explain what lines do, but you still need to adjust for each unique machine :)
     
    vhankim and Olle Wreede like this.
  17. Olle Wreede

    Olle Wreede Member

    Joined:
    Aug 30, 2019
    Messages:
    3
    Likes Received:
    0
    Thanks, that’s much appreciated. I’ll have a look at your updated files and see if I can figure out how to fix my profile.
     
  18. John Pickens

    John Pickens Member

    Joined:
    Jul 1, 2018
    Messages:
    20
    Likes Received:
    3
    Trying to align the true bed shape with the settings in PrusaSlicer.
    The default setting was 300 in X and 200 in Y size.

    I'm printing a very large object, which is pushing the X axis limits of the printer.
    When I measured the actual printable dimensions, I get something closer to 305mm or maybe 2mm bigger.
    However, when I enter 305X by 200Y in the Prusaslicer print bed setup, the actual print seems offset by about 10mm positive X when looking
    from the front of the printer.

    Here is an example sliced object:
    [​IMG]

    And here is my PrusaSlicer bed settings:

    [​IMG]

    Here is the object printing on the build plate:
    [​IMG]

    As you can see, I have about 12mm of bed available in the X axis.

    So, I'm guessing I need to somehow move the (0,0) point about 10 mm in X (pos or neg? my brain hurts) to get it lined up properly.
    How to do this? Firmware tweaking or PrusaSlicer settings?
    All my toolheads are using standard E3D V6 hotends with the stock Toolchanger bracket, so the offsets should be like factory.

    Any help would be appreciated, and how do I get that cool E3D bed graphic on the slicer settings?
    Thanks,
    John
     
    #18 John Pickens, May 5, 2020
    Last edited: May 5, 2020
  19. dc42

    dc42 Well-Known Member

    Joined:
    Aug 16, 2016
    Messages:
    429
    Likes Received:
    201
  20. dc42

    dc42 Well-Known Member

    Joined:
    Aug 16, 2016
    Messages:
    429
    Likes Received:
    201
    PS - if using RRF 3.01, don't forget to enable Label Objects in PrusaSlicer, so that you can use the object cancellation facility (M486).
     
    Michael Pearson likes this.

Share This Page