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.
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.
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.
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.
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.
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).
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.
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: 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 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.
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.
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.
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.
Just going to throw a link to my profile here, just for comparisons' sake https://github.com/StevenCregan/Sli...ter/PrusaSlicer/PrusaSlicer_config_bundle.ini I really like the look of having the E3D heated bed picture appear in the slicer! Helps with knowing where everything will be positioned too
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.
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?
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?
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
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.
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: And here is my PrusaSlicer bed settings: Here is the object printing on the build plate: 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
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).