There is already a less sophisticated solution to this problem but it delivers same resutls - "Don't slow donwn on outer perimiters" option in filament settings. It makes sure outer wall is printed at the same speed so there is littli to noe difference in apperarance.
A lot of the time your speed is limited by the acceleration and the corner velocity not by the set speed of outer walls. That option helps only in a few scenarios and is nowhere even close to what results the variable temp can give you.
This has been batted around a few times in the discussions on the Orca GitHub. I wouldn't mind seeing it implemented, even in a prototype phase for testing purposes.
There were people who were making induction heated hotends, those will be perfect for this software, induction heated hotends thermal mass can be made way lower than what is possible for resistance based hotends.
@@onurcetinkaya4873 Induction with low thermal mass can only work with well tuned MPC. PID can't control it because it relies on a large thermal mass to buffer against heat loss and gain until the control loop can catch up with changes. Now that DangerKlipper has MPC, there's a lot more incentive to develop induction hotends.
@@daliasprints9798 I Didn't hear about the concept of model predicted control before, and it is such an obvious thing, thanks for letting me know about its existence.
This is one of those inventions created out of necessity. It wasn't a big deal on slower printers back in the day but nowadays with almost all printers going at high speed high flow, I think is what will cause this feature to become standard in future slicers
I actually can't believe we're getting into this territory now. I've long wondered when we would be into the concept of watts per cubic area of plastic over time, and when we'd be able to tune that, the idea I had goes slightly a step beyond temperature per features/extrusion sparsity and takes into consideration the approximate thermal energy a given extrusion move would pull from the system, pre-emptively putting an extra amount of thermal power into the hot-end, at a rate proportional to the move and also before it physically occurs. Not directly adjusting the temperature setpoint directly, but deciding how much arbitrary power to inject as it's about to be needed and during, and as a RESULT keeping temperatures from dropping during long and fast extrusions. Think of it as a look-ahead for PID.. Or maybe intentionally detuning the PID into a momentary overshoot?.. so It's actually a bit backwards from this concept of setting/cooling temperatures down for sparse moves. But the end-results would be similar, so tomato tomato I guess! Also my biggest pet peeves about auto-tune parameters, is the very idea that these loops are being calibrated.. without plastic being pushed through them, surely some of the values would be more optimal if it was tuned with plastic flowing and during extensive extrusion moves, the PID model was updated to a flow-rate based PID, instead of one tuned off a stalled system.
@@PrintingPerspective you are one of the few 3DP channels that actually digs deep into the weeds and just keeps going until root causes and occurrences are proven and made more clear, love it!
you are dreaming up feed forward control my friend. Using the gcode geometry data as an input we can achieve some wild shit in 3dp. Need something new on the hardware side to deal with imperfect layer adhesion though. I've seen lasers being used and halogen lamps, but they arent optimal.
I was thinking of this a few months ago! I just imagined off the top of my head this would be one of those things where it might be too much for the open source community to develop, as in there might not be enough interest.. IM GLAD I WAS WRONG 🥰 For me this is HUGE for mechanical parts that i want printed fast. Not only will it ensure its up to temp on certain sections for best layer adhesion BUT also it's not too hot for bridges and overhangs. I found some years ago if the speed settings are too low for steep overhangs it heats the plastic it's laying onto and warps/droops the wall, giving you the dreaded curl or filament hang. That way the outerwall can run cooler for best overhangs while the innerwall will be hotter at higher speeds.
Variable temperature is common option on better foam cutting CNC. I remember reading about it 10 years ago. They were not using thermistor for temp monitoring, but instead resistance and/or current draw from wire itself. Maybe you want to look it up. Might be interesting...
I solve this issue in a different way, I just slow down my outer perimeters so that they are consistent and have the same speed regardless if they're small or large. Also printing the outer perimeter first helps as well.
@@Bapate-rh9be not necessarily, I can print like 65-70° overhangs with 0 cooling and 0.6 nozzle with CF nylon by using with outer walls first. Anyone printing dimensionally accurate and strong parts will use outer walls first, if they aren't, big oof.
A simpler solution regarding the finish is to slow down the outer perimeter wall speed so it's uniform. Less quality variability (or translucency) as happens with variable temperature.
If you want that the temperatures would react to the flow rates as closely as possible then yes. Otherwise, transition sections from fast to slow (or otherwise) should be slower and add up way more time. :)
High mass/low power hotends (40w volcano) will have a significantly longer delay between setting a temperature vs reaction. Thinking on top of my head a rapido 1 would be the ideal (consumer) hotend for variable temperature. 115w peak power, low thermal mass, screws that increase heat transfer into the heatsink for quicker cool down. The by far best hotend would be the ino trident by team plasmics. Its a induction heated hotend that heats to 220c in 9s
I’m currently working on temperature based flowrate limiting for klipper in my own branch. It should allow the firmware to limit the flowrate in real time based on the hotend temperature. Obviously this does not fix the thermal mass issue, but it would eliminate the need to try to predict how long it takes the hotend to heat up.
Thank you for making a video about this! This is one of the few remaining big kinks to work out in modern slicers to make 3d printers better for everyone!
It's just a consequence of the hotend not being able to keep up with extrusion rate. This is why smaller hotends will benefit from it more. With massive copper volcano it is very likely you won't see this issue at the same conditions you start seeng it when you use hotend with small heat capacity. Because hotend can't transfer heat as fast as you want it to, increasing temperature leads to transferring more heat (not transferring heat faster). This works at fast extrusion rates but since it's already inadequate conditions, sections look different. With proper configuration there will be no visible difference. But proper configuration means you need to consider your hardware limits. In that case, it is volumetric speed should be under whatever your hotend can do. So at any rate heat transfer will be consistent because hotend won't starve for heat without increasing temperatures for printing fastest sections. Sure, for some "looking good" is valid reason but this will not fix layer adhesion issues which inevitably come with inefficient heat transfer. This is not the future, you only tuck away hardware issues by software hack rather than fixing the real culprit, which is the hotend. You also didn't mention Marlin's MPC temperature control, which replaces PID and more responsive in conditions where filament takes away heat fast. It's basically what "variable temperature" should be. Printer should just maintain temperature you set. And since PID isn't reactive enough, that is part of the issue.
Nothing to do with hotend. I print at like 30mm/s I get this. I print CF nylon in a heated chamber and 0 cooling for supreme layer adhesion, and some components will have such varying layer times that some areas will look different than others due to the layers not fully being cooled in certain areas before the next layer is deposited, giving inconsistent texturing. This can be partially solved with auto speed based off of layer time, but then some segments are going at 100mm/s and other at like 20mm/s, causing slight flow inconsistency due to the difference in nozzle pressure and required pressure advance. A variable temperature would make this incredibly good and would solve all my issues.
Basically, what you're saying also comes down to you creating such printing conditions that cause these issues. Varying temperature won't solve them. It will mask them away. If your only goal is to make prints look pretty then sure, nothing wrong with whatever workaround you apply for that. But that is not a fix. Fix would be to change printing conditions without trying to outsmart physics.
@@shadyb well, I don't make things to be pretty, I make them to be strong. All my prints are 100% perimeters throughout, or 2-3 perimeters with 100% rectilinear monotonic infill, depending on stress direction. Layer adhesion is a combination of layer temperature (affected by the environment, speed, and other things including cooling), extrusion temperature, flow rate and nozzle face width (flat surface that "flattens" layer line) as basics. If I'm gonna max extrusion and chamber temps without making my part a droopy piece of shit, I have to slow down. Going too fast creates extrusion inconsistencies that affect strength, as absolute perfect flow rate is MANDATORY for a near injection molded isotropic strength with these materials. Variable temperature can allow less heat transfer, but identical layer adhesion as the whole component will have the same layer adhésion/Strength. Most of my parts have less than 40 second layer times, even at 25-35mm/s (small components), with some parts being like 5-10 second layer times. Due to the usage of Nylons, cooling MUST be off, as it causes dimensional accuracy issues and slight warping due to the inconsistent speed of cooling between layers. This would work perfectly for this very particular situation, something you have yet to encounter it seems.
if your filament isn't being heated fully at an appropriate printing temp you're not spending enough time in the hotend. either slow down in general or get a longer melt zone
PLA is not fluid enough when it is at 80c. That is why you print it at 200c. But when you print it at 200c you intend for the plastic to be at 200c when it comes out the hotend. So I agree with OP, if your filament is significantly colder when getting out of the hotend then the hotends temp, you are printing too fast and/or your hotend is not good enough for the amount of flow you are asking it. Making the temp higher can be dangerous because some parts of the filament might be at that higher temp (lets say 240c) when you need it to be at 200c. In a perfect world the hotend thermistor should be mesuring the actual filament temp and not the heatblock temp.
Fast printing is achieved with * better heat transfer (longer melt zone or split heating) * higher nozzle temperature (stringing) * being OK with inadequate melting (matte surfaces, under extrusion, lower adhesion) Ain't nobody got time for good prints 😅
i have been countering these effects by tuning each models shellspeed and flow by lowering volumetric maxrate and accept the hit on printspeed. this would be great if not for the same speed issue.
Seems useful, I like practical things like this, which do not really require any modifications to the printer itself, but make the next step for the 3D printing technology.
I am surprised we haven't seen something like this sooner, because it is kinda obvious that with slower speeds we don't need higher temps, and for fast ones we do.
I love this. I have parts that I produce that have highly variable flow rates and I currently solve this issue by manually adding the temperature change command to the gcode. This is slow and prone to error, so an automated solution sounds like a dream
"Don't slow down outer walls' in Orca (under Filament -> Cooling) should achieve the same result if we also lower the overall speed by a bit. A good compromise until this feature becomes mainstream. This option will print the outmost wall at the same speed but compensate by slowing down infill and inner walls even more
It's faster response to change fan speed. Changing filament temp has it's own challenges with respect to time. The real forward move is to consider the amount of plastic for a given model, in layers, to control fan and movement speed in the slice, based on the amount of fan overhead.
Been wondering for *_ages_* why temperature control like this hasn't been part of the Slicers we all use 🤔 Realistically speaking though I'll be waiting until it is natively built into Slicers 🤨
This is not an issue unless you're outrunning your melt rate and getting incompletely melted extrusion. It's best fixed not by dynamically adjusting target temperature, but by dynamically adjusting heat output to match the flow. This is what MPC heater control (vs PID) does.
I dont think I understand you correctly. By using MPC the hotend temp should remain perfectly stable no ? Than if the hotend temp is already perfectly stable with PID, MPC wouldnt change a thing. The only way what you are describing could work was if MPC made the hotend temp variable, adjusting for the flow and lack of time for the filament to heatup, but that is not what it does (at least in the current Marlin implementation).
@@valegreg The issue is unless you were measuring temperature at the outlet of the nozzle there is always a lag in system response. Slowing down would overheat filament and speeding up would cool at the nozzle tip until PID levels out. MPC takes the specific heat capacity of the plastic into account and proactively heats in anticipation of the extrusion move. By using this feed forward method you end up with much more consistent extrusion. The only time extrusion is ever perfectly constant is doing vase mode cylinders.
This feature will cause thermal fatigue to the heater cartridge. The repeated thermal cycling stresses the resistive element inside the cartridge which will cause failure. Induction heating is the superior method to be used in hotends and can use variable temp printing without any problems.
You can only patent things that do not already exist, now this exists and can't be patented. Same with the other Stratasys stuff, if someone shows a heated bed dated to before the patent was applied for, the patent becomes invalid.
You can only patent things that do not already exist, now this exists and can't be patented. Same with the other Stratasys stuff, if someone shows a heated bed dated to before the patent was applied for, the patent becomes invalid.
I get the feeling this would better be implemented in the 3D printer firmware, as opposed to in the slicer. The slicer should just tell it to aim for 220C, while the printer should compensate depending on the actual flow-rate.
@PrintingPerspective orca contributor here :) I have a couple of questions with the testing that I'd like to better understand. Especially since I've seen that feature request multiple times on the Orca discord and orca issues list :) !! And because I love print quality and am obsessed by it - I did develop the adaptive PA feature, the don't slow down outer walls for layer time, refined the inner outer inner feature for the next release and the bridging algorithm perimeter segmentation to avoid unnecessary speed drops when printing overhangs and get overall better print quality out of the slicer :) In the setup part of the video, I see that you've set the speeds to be all equal - perfect!! However, how in the gcode preview at 5:45 you get lower flow in the smaller perimeters? Orca doesn't visualise actual print speed (so the acceleration effect is not visible) but rather requested print speed (and hence, flow). I’m assuming what we are seeing there is a reduced print speed due to the script estimating that the printer can’t reach a high speed anyway due to acceleration limits, so it clamps it down to allow for a smooth temperature increase, and the time it takes to ramp up the nozzle heater. The question is why it’s slowing these areas down though? If the printer can’t hit the print speed anyway, why clamp it? The second thing, is response time of the heater. While the gcode may ask for the heater temp to be set to X it takes at least 20-30 seconds or even more in some cases for that temperature to be reached. In which case any transient features, like overhangs would not benefit, as the change in speed is faster than the hot end can adapt to. So, at best, the script just sets an average temperature that optimises for the average flow over a 20-30 second or so time window. Meaning that some areas will still be either too hot or too cold for the requested flow (eg. a fast perimeter with an overhang in the end like the benchy hull and benchy nose will be printed probably a bit cooler than needed). Where I am getting with this basically is that adjusting the temperature is one way, but in my view is approaching the problem from the wrong end. I believe we should be striving for as consistent flow / speed as possible for the external walls, with as localised as possible change due to overhangs. Also we should be tuning the print temperature to perform best for those external features (including the acceleration limits of the printer) and run a max flow rate test at that temperature. Then use that value to print the faster internal features as the "speed limit". Thatway, whatever feature is visible, is consistent in extrusion width, gloss and PA, while whatever feature is not visible, is printed within the limits of the hotend tuned for external surface finish. So in the example printed above, set the external wall speed to 70mm/sec and nozzle temp to say 210c and max flow rate to whatever the nozzle can support at that temp. Then the internal features are speed clamped and the external features print at a constant and consistent speed, within the printer limits. It would be interesting to see the gcode output of the script and visualise the temperature changes to understand better what it does. It would also be great to better understand in the areas where you've seen those differences, what the true root cause was - a test with the print speed being equal across the model and the flow and temperature setting to match as described above would yield very interesting results I believe! Also with adaptive PA that is now present on the latest nightly :) PS. For the adaptive PA together with the klipper devs we have addressed the stuttering issue ;) the latest nightlies contain this code and klipper has this enabled since July ish this year. It is great to see someone that shares the same passion as I do for print quality - so I'd welcome a ping to chat about this and experiment together on it :) Please do reach out if interested.
Looking at the script code, what it appears to do is create a temperature profile for the print based on the desired print speed. It then parses the gcode file and sets temperature commands to it. It then adjusts the feed rate to match that temperature, in effect slowing down the print in areas where the temperature has not been reached yet. So basically it’s slowing down the print for the layers where the temperature has not arrived yet / in effect smoothing out feed rate changes over a period of time…. Which could be equally achieved by striving to begin with to have consistent print speeds 🤔
Hey, you did some great work! :) At 5:45 you see the imported gcode after the script altered it. It would be best if you tried paying with the script yourself and ask its creator how exactly it works. I asked him just for a basic explanation as diving deep into how he programmed it would be too much for me, haha. Yeah, that is another way - printing the outer wall slowly. We can chat. Please write your discord name to my email, most of the time I am very busy as I am always working on the other future videos, but I will find some time. :)
@@PrintingPerspectiveyeap I realised that’s the gcode output after I’ve written my comment lol! I’ve edited above. What I don’t get is why it slows down the perimeters in those areas. Unfortunately I don’t have a windows computer to run it :( I’ll drop you a note to chat! Thank you!!
@@PrintingPerspective can’t see your email I’m afraid. And RUclips is cutting my comment when I say what my details are :( I’ve got the same name everywhere so do reach out if you can :)
Should the script work the other way around (sorry if it already does and I didn't understand). It should limit the top flow rate to match a temperature, that is, allow the current temp value control to set the flow rate (and head speed). Use a look ahead in the file to anticipate the speed needed soon.
I feel like this should be in the firmware instead of the slicer. I don't think you're really trying to hit a higher temperature, more so compensate for a thermal model that doesn't know about extrusion rate
It is not only visual, it still gives you a rough idea of the layer adhesion strength. :) But we shouldn't lower the temperature too much for the small sections as higher printing temps give better adhesion.
It always depends on the model at the end of the day, some will see huge improvements some quite small. But now we can think of different hotend designs to work better with this.
I don't get why this isn't standard already. The fact that for small prints with thin wall that you have to use a different temperature then on larger prints should already open the question why not adapt the temperature to what is getting printed in the moment.
With some changes in the code, and with a deferent version of Delphi 12, the code can be complicated for different operating systems (Android, MACOS, IOS, WINDOWS, Linux)
@@PrintingPerspective Is it mostly the heated bed? I knew I liked the small form factor printers so much for a reason Voron v0, Kingroon KP3S, Prusa Mini, and Bambu A1 mini are all fascinating printers to me, weirdly
I'm running a suped up ender 3, it can move the piece at up to 675mm/s (7750mm/s2 x axis accel 5k y axis accel), and I'm getting this problem, but I can't extract the settings, since it's not running klipper (sorry, really tight budget) I tried replicating the json file with my machine's settings, but the program refuses to accept it, can you please share your original file (in txt so the link doesn't get flagged) to see what's wrong?
@@PrintingPerspective sorry :( I don't have enough money for the klipper conversion, but since this would still be able to alter the gcode itself, I thought it might still be a good tool to have...
JUST DON"T FORGET TO PRESS "Generate G-Code" and then "Save and Close" after you configured the temperature curve! Forgot to mention lol.
I would like this in standard Orca :)
There is already a less sophisticated solution to this problem but it delivers same resutls - "Don't slow donwn on outer perimiters" option in filament settings. It makes sure outer wall is printed at the same speed so there is littli to noe difference in apperarance.
A lot of the time your speed is limited by the acceleration and the corner velocity not by the set speed of outer walls. That option helps only in a few scenarios and is nowhere even close to what results the variable temp can give you.
SpeedPrinting knowledge is very important in these cases too.
Always check you gcode.
This has been batted around a few times in the discussions on the Orca GitHub. I wouldn't mind seeing it implemented, even in a prototype phase for testing purposes.
If it's in standard Orca it also resolve the problem that it's not available on Linux and MacOS at the time
There were people who were making induction heated hotends, those will be perfect for this software, induction heated hotends thermal mass can be made way lower than what is possible for resistance based hotends.
Now we talking! A great idea. :)
Ino trident by plasmics!
@@onurcetinkaya4873 Induction with low thermal mass can only work with well tuned MPC. PID can't control it because it relies on a large thermal mass to buffer against heat loss and gain until the control loop can catch up with changes.
Now that DangerKlipper has MPC, there's a lot more incentive to develop induction hotends.
@@daliasprints9798 I Didn't hear about the concept of model predicted control before, and it is such an obvious thing, thanks for letting me know about its existence.
This is one of those inventions created out of necessity. It wasn't a big deal on slower printers back in the day but nowadays with almost all printers going at high speed high flow, I think is what will cause this feature to become standard in future slicers
I actually can't believe we're getting into this territory now. I've long wondered when we would be into the concept of watts per cubic area of plastic over time, and when we'd be able to tune that, the idea I had goes slightly a step beyond temperature per features/extrusion sparsity and takes into consideration the approximate thermal energy a given extrusion move would pull from the system, pre-emptively putting an extra amount of thermal power into the hot-end, at a rate proportional to the move and also before it physically occurs. Not directly adjusting the temperature setpoint directly, but deciding how much arbitrary power to inject as it's about to be needed and during, and as a RESULT keeping temperatures from dropping during long and fast extrusions. Think of it as a look-ahead for PID.. Or maybe intentionally detuning the PID into a momentary overshoot?.. so It's actually a bit backwards from this concept of setting/cooling temperatures down for sparse moves. But the end-results would be similar, so tomato tomato I guess!
Also my biggest pet peeves about auto-tune parameters, is the very idea that these loops are being calibrated.. without plastic being pushed through them, surely some of the values would be more optimal if it was tuned with plastic flowing and during extensive extrusion moves, the PID model was updated to a flow-rate based PID, instead of one tuned off a stalled system.
Nice to see that someone actually gets why I am excited about a project like this and the potential that can come in the future. :)
@@PrintingPerspective you are one of the few 3DP channels that actually digs deep into the weeds and just keeps going until root causes and occurrences are proven and made more clear, love it!
you are dreaming up feed forward control my friend. Using the gcode geometry data as an input we can achieve some wild shit in 3dp. Need something new on the hardware side to deal with imperfect layer adhesion though. I've seen lasers being used and halogen lamps, but they arent optimal.
I think you're referring to this: marlinfw.org/docs/features/model_predictive_control.html
this is a great advertisement for danger-klipper's MPC support (originally in marlin) :b
Several people mentioned it, I might have a look at it. :)
I was thinking of this a few months ago! I just imagined off the top of my head this would be one of those things where it might be too much for the open source community to develop, as in there might not be enough interest.. IM GLAD I WAS WRONG 🥰
For me this is HUGE for mechanical parts that i want printed fast. Not only will it ensure its up to temp on certain sections for best layer adhesion BUT also it's not too hot for bridges and overhangs. I found some years ago if the speed settings are too low for steep overhangs it heats the plastic it's laying onto and warps/droops the wall, giving you the dreaded curl or filament hang. That way the outerwall can run cooler for best overhangs while the innerwall will be hotter at higher speeds.
Variable temperature is common option on better foam cutting CNC. I remember reading about it 10 years ago. They were not using thermistor for temp monitoring, but instead resistance and/or current draw from wire itself. Maybe you want to look it up. Might be interesting...
I solve this issue in a different way, I just slow down my outer perimeters so that they are consistent and have the same speed regardless if they're small or large. Also printing the outer perimeter first helps as well.
Yeah, but it is not always practical: Overhangs do not like this setting.
@@Bapate-rh9be not necessarily, I can print like 65-70° overhangs with 0 cooling and 0.6 nozzle with CF nylon by using with outer walls first. Anyone printing dimensionally accurate and strong parts will use outer walls first, if they aren't, big oof.
@@FrozenByFire3 do you use slowdown for overhangs feature in slicer?
@@riba2233 yes always
@@FrozenByFire3 awesome thanks, and if I may ask (since I am interested in numbers with 0 cooling) how slow do you go, for eg on 45deg?
A simpler solution regarding the finish is to slow down the outer perimeter wall speed so it's uniform. Less quality variability (or translucency) as happens with variable temperature.
With a hotend that has very small heat mass (capacitance) it will help...but with a bigger hotend that has a lot of heat mass, it might not be ideal?
If you want that the temperatures would react to the flow rates as closely as possible then yes. Otherwise, transition sections from fast to slow (or otherwise) should be slower and add up way more time. :)
High mass/low power hotends (40w volcano) will have a significantly longer delay between setting a temperature vs reaction. Thinking on top of my head a rapido 1 would be the ideal (consumer) hotend for variable temperature. 115w peak power, low thermal mass, screws that increase heat transfer into the heatsink for quicker cool down. The by far best hotend would be the ino trident by team plasmics. Its a induction heated hotend that heats to 220c in 9s
I’m currently working on temperature based flowrate limiting for klipper in my own branch. It should allow the firmware to limit the flowrate in real time based on the hotend temperature. Obviously this does not fix the thermal mass issue, but it would eliminate the need to try to predict how long it takes the hotend to heat up.
@@gunnerpetrea3531can you provide a link to your git?
Thank you for making a video about this! This is one of the few remaining big kinks to work out in modern slicers to make 3d printers better for everyone!
Definitely seems like a neat process; would like to see it get added to slicers as well
It's just a consequence of the hotend not being able to keep up with extrusion rate. This is why smaller hotends will benefit from it more. With massive copper volcano it is very likely you won't see this issue at the same conditions you start seeng it when you use hotend with small heat capacity.
Because hotend can't transfer heat as fast as you want it to, increasing temperature leads to transferring more heat (not transferring heat faster). This works at fast extrusion rates but since it's already inadequate conditions, sections look different.
With proper configuration there will be no visible difference. But proper configuration means you need to consider your hardware limits. In that case, it is volumetric speed should be under whatever your hotend can do. So at any rate heat transfer will be consistent because hotend won't starve for heat without increasing temperatures for printing fastest sections.
Sure, for some "looking good" is valid reason but this will not fix layer adhesion issues which inevitably come with inefficient heat transfer. This is not the future, you only tuck away hardware issues by software hack rather than fixing the real culprit, which is the hotend.
You also didn't mention Marlin's MPC temperature control, which replaces PID and more responsive in conditions where filament takes away heat fast. It's basically what "variable temperature" should be. Printer should just maintain temperature you set. And since PID isn't reactive enough, that is part of the issue.
Nothing to do with hotend. I print at like 30mm/s I get this. I print CF nylon in a heated chamber and 0 cooling for supreme layer adhesion, and some components will have such varying layer times that some areas will look different than others due to the layers not fully being cooled in certain areas before the next layer is deposited, giving inconsistent texturing. This can be partially solved with auto speed based off of layer time, but then some segments are going at 100mm/s and other at like 20mm/s, causing slight flow inconsistency due to the difference in nozzle pressure and required pressure advance. A variable temperature would make this incredibly good and would solve all my issues.
Basically, what you're saying also comes down to you creating such printing conditions that cause these issues.
Varying temperature won't solve them. It will mask them away. If your only goal is to make prints look pretty then sure, nothing wrong with whatever workaround you apply for that.
But that is not a fix. Fix would be to change printing conditions without trying to outsmart physics.
@@shadyb well, I don't make things to be pretty, I make them to be strong. All my prints are 100% perimeters throughout, or 2-3 perimeters with 100% rectilinear monotonic infill, depending on stress direction. Layer adhesion is a combination of layer temperature (affected by the environment, speed, and other things including cooling), extrusion temperature, flow rate and nozzle face width (flat surface that "flattens" layer line) as basics. If I'm gonna max extrusion and chamber temps without making my part a droopy piece of shit, I have to slow down. Going too fast creates extrusion inconsistencies that affect strength, as absolute perfect flow rate is MANDATORY for a near injection molded isotropic strength with these materials. Variable temperature can allow less heat transfer, but identical layer adhesion as the whole component will have the same layer adhésion/Strength. Most of my parts have less than 40 second layer times, even at 25-35mm/s (small components), with some parts being like 5-10 second layer times. Due to the usage of Nylons, cooling MUST be off, as it causes dimensional accuracy issues and slight warping due to the inconsistent speed of cooling between layers. This would work perfectly for this very particular situation, something you have yet to encounter it seems.
Whatever floats your boat. If you think you can beat physics, I am afraid to stand in your way.
@@shadyb I literally explained all the physics perfectly, you are ignoring them. How bout you explain why I'm wrong with your physica
That's a great improvement specially for TPU filaflex 3d printing, I need to try!! thanks for the development
if your filament isn't being heated fully at an appropriate printing temp you're not spending enough time in the hotend. either slow down in general or get a longer melt zone
Pla melts at 80*C, do you suggest setting nozzle temp to 80*C and printing way slower? Don't think so
PLA is not fluid enough when it is at 80c. That is why you print it at 200c. But when you print it at 200c you intend for the plastic to be at 200c when it comes out the hotend.
So I agree with OP, if your filament is significantly colder when getting out of the hotend then the hotends temp, you are printing too fast and/or your hotend is not good enough for the amount of flow you are asking it. Making the temp higher can be dangerous because some parts of the filament might be at that higher temp (lets say 240c) when you need it to be at 200c.
In a perfect world the hotend thermistor should be mesuring the actual filament temp and not the heatblock temp.
Fast printing is achieved with
* better heat transfer (longer melt zone or split heating)
* higher nozzle temperature (stringing)
* being OK with inadequate melting (matte surfaces, under extrusion, lower adhesion)
Ain't nobody got time for good prints 😅
That would be cool if all 3d printer apps would have this as a automatic in build function.
i have been countering these effects by tuning each models shellspeed and flow by lowering volumetric maxrate and accept the hit on printspeed. this would be great if not for the same speed issue.
Seems useful, I like practical things like this, which do not really require any modifications to the printer itself, but make the next step for the 3D printing technology.
I am surprised we haven't seen something like this sooner, because it is kinda obvious that with slower speeds we don't need higher temps, and for fast ones we do.
I love this. I have parts that I produce that have highly variable flow rates and I currently solve this issue by manually adding the temperature change command to the gcode. This is slow and prone to error, so an automated solution sounds like a dream
Happy Smart 3D Printing
This is amazing and something I pondered once upon a time. I'm happy to see this!
Yeah, hopefully, more people will be aware of this concept, I always want better print quality! Haha.
Can't wait to see more results in the future. Thanks for excellent comparison and choice of different models to illustrate best/worst case scenario !
Glad you liked it! :)
"Don't slow down outer walls' in Orca (under Filament -> Cooling) should achieve the same result if we also lower the overall speed by a bit. A good compromise until this feature becomes mainstream. This option will print the outmost wall at the same speed but compensate by slowing down infill and inner walls even more
I've been looking for a solution like this for a while, really happy to finally find one thanks 😊
Me too, with something like this we can expect specific hotend designs that better work with this variable temp method.
It's faster response to change fan speed. Changing filament temp has it's own challenges with respect to time. The real forward move is to consider the amount of plastic for a given model, in layers, to control fan and movement speed in the slice, based on the amount of fan overhead.
try this with danger klipper's MPC and smooth PA. MPC may be able to help with larger hotends and I'm curious how it handles the non linear PA
Been wondering for *_ages_* why temperature control like this hasn't been part of the Slicers we all use 🤔 Realistically speaking though I'll be waiting until it is natively built into Slicers 🤨
Nozzle temperature changes very slowly compared to print speed
This is not an issue unless you're outrunning your melt rate and getting incompletely melted extrusion. It's best fixed not by dynamically adjusting target temperature, but by dynamically adjusting heat output to match the flow. This is what MPC heater control (vs PID) does.
Good idea! changing PID in theG-Code is not available for Klipper unfortunately ☹
@@sb53-systemssc28 The DangerKlipper fork of Klipper has MPC.
I dont think I understand you correctly. By using MPC the hotend temp should remain perfectly stable no ? Than if the hotend temp is already perfectly stable with PID, MPC wouldnt change a thing.
The only way what you are describing could work was if MPC made the hotend temp variable, adjusting for the flow and lack of time for the filament to heatup, but that is not what it does (at least in the current Marlin implementation).
@@valegreg The issue is unless you were measuring temperature at the outlet of the nozzle there is always a lag in system response. Slowing down would overheat filament and speeding up would cool at the nozzle tip until PID levels out. MPC takes the specific heat capacity of the plastic into account and proactively heats in anticipation of the extrusion move. By using this feed forward method you end up with much more consistent extrusion. The only time extrusion is ever perfectly constant is doing vase mode cylinders.
A new approach that controls the intensity of heating would be welcome. For the moment, the change in temperature already offers a clear improvement !
This feature will cause thermal fatigue to the heater cartridge. The repeated thermal cycling stresses the resistive element inside the cartridge which will cause failure. Induction heating is the superior method to be used in hotends and can use variable temp printing without any problems.
Not sure if its just me but at 5:10 the benchy hull line also seems a lot less pronounced than on the fixed temperature.
How long until stratasys patents and sues for this new feature
;DD
You can only patent things that do not already exist, now this exists and can't be patented. Same with the other Stratasys stuff, if someone shows a heated bed dated to before the patent was applied for, the patent becomes invalid.
Great stuff! Can't wait to have this become a thing!
I got my first printer BL P1S Combo in May, bet even I can tell that variable printing and multihead is the future.
I'm going to have to take a look at this
Something we all have been wishing for all these years.
startsys watching this, START PATENTING START PATENTING !
You can only patent things that do not already exist, now this exists and can't be patented. Same with the other Stratasys stuff, if someone shows a heated bed dated to before the patent was applied for, the patent becomes invalid.
Definitely trying this! I may be a maniac who calibrates more often than he prints, but this is briliant haha
Same ;D I can't wait till the script evolves more, but even at this stage and with minimal tinkering you can get noticeably better results.
Just use DangerKlipper and MPC temperature control.
I get the feeling this would better be implemented in the 3D printer firmware, as opposed to in the slicer. The slicer should just tell it to aim for 220C, while the printer should compensate depending on the actual flow-rate.
Ideally, the stock Klipper would have it as most machines have way more processing power to live adjust things.
@PrintingPerspective orca contributor here :)
I have a couple of questions with the testing that I'd like to better understand. Especially since I've seen that feature request multiple times on the Orca discord and orca issues list :) !! And because I love print quality and am obsessed by it - I did develop the adaptive PA feature, the don't slow down outer walls for layer time, refined the inner outer inner feature for the next release and the bridging algorithm perimeter segmentation to avoid unnecessary speed drops when printing overhangs and get overall better print quality out of the slicer :)
In the setup part of the video, I see that you've set the speeds to be all equal - perfect!! However, how in the gcode preview at 5:45 you get lower flow in the smaller perimeters? Orca doesn't visualise actual print speed (so the acceleration effect is not visible) but rather requested print speed (and hence, flow). I’m assuming what we are seeing there is a reduced print speed due to the script estimating that the printer can’t reach a high speed anyway due to acceleration limits, so it clamps it down to allow for a smooth temperature increase, and the time it takes to ramp up the nozzle heater.
The question is why it’s slowing these areas down though? If the printer can’t hit the print speed anyway, why clamp it?
The second thing, is response time of the heater. While the gcode may ask for the heater temp to be set to X it takes at least 20-30 seconds or even more in some cases for that temperature to be reached. In which case any transient features, like overhangs would not benefit, as the change in speed is faster than the hot end can adapt to. So, at best, the script just sets an average temperature that optimises for the average flow over a 20-30 second or so time window. Meaning that some areas will still be either too hot or too cold for the requested flow (eg. a fast perimeter with an overhang in the end like the benchy hull and benchy nose will be printed probably a bit cooler than needed).
Where I am getting with this basically is that adjusting the temperature is one way, but in my view is approaching the problem from the wrong end. I believe we should be striving for as consistent flow / speed as possible for the external walls, with as localised as possible change due to overhangs.
Also we should be tuning the print temperature to perform best for those external features (including the acceleration limits of the printer) and run a max flow rate test at that temperature. Then use that value to print the faster internal features as the "speed limit". Thatway, whatever feature is visible, is consistent in extrusion width, gloss and PA, while whatever feature is not visible, is printed within the limits of the hotend tuned for external surface finish.
So in the example printed above, set the external wall speed to 70mm/sec and nozzle temp to say 210c and max flow rate to whatever the nozzle can support at that temp. Then the internal features are speed clamped and the external features print at a constant and consistent speed, within the printer limits.
It would be interesting to see the gcode output of the script and visualise the temperature changes to understand better what it does. It would also be great to better understand in the areas where you've seen those differences, what the true root cause was - a test with the print speed being equal across the model and the flow and temperature setting to match as described above would yield very interesting results I believe! Also with adaptive PA that is now present on the latest nightly :)
PS. For the adaptive PA together with the klipper devs we have addressed the stuttering issue ;) the latest nightlies contain this code and klipper has this enabled since July ish this year.
It is great to see someone that shares the same passion as I do for print quality - so I'd welcome a ping to chat about this and experiment together on it :) Please do reach out if interested.
Looking at the script code, what it appears to do is create a temperature profile for the print based on the desired print speed. It then parses the gcode file and sets temperature commands to it. It then adjusts the feed rate to match that temperature, in effect slowing down the print in areas where the temperature has not been reached yet.
So basically it’s slowing down the print for the layers where the temperature has not arrived yet / in effect smoothing out feed rate changes over a period of time….
Which could be equally achieved by striving to begin with to have consistent print speeds 🤔
Hey, you did some great work! :) At 5:45 you see the imported gcode after the script altered it. It would be best if you tried paying with the script yourself and ask its creator how exactly it works. I asked him just for a basic explanation as diving deep into how he programmed it would be too much for me, haha. Yeah, that is another way - printing the outer wall slowly. We can chat. Please write your discord name to my email, most of the time I am very busy as I am always working on the other future videos, but I will find some time. :)
@@PrintingPerspectiveyeap I realised that’s the gcode output after I’ve written my comment lol! I’ve edited above.
What I don’t get is why it slows down the perimeters in those areas.
Unfortunately I don’t have a windows computer to run it :(
I’ll drop you a note to chat! Thank you!!
@@PrintingPerspectivecan’t find your email :( do ping me on the orca sub, my handle is the same as here :)
@@PrintingPerspective can’t see your email I’m afraid. And RUclips is cutting my comment when I say what my details are :( I’ve got the same name everywhere so do reach out if you can :)
very interesting. above my skill level but id like to do it someday
I totally didn't know there was a post-processing script section for orca slicer. Is that standard for all the derivatives?
I am interested more in the benefits for functional parts, for example - instead of higher fan use lower temperature
well you can try and see how it goes :)
Isn't part cooling made exactly for this? Why not control it more precisely, as there is some level of control already?
Should the script work the other way around (sorry if it already does and I didn't understand). It should limit the top flow rate to match a temperature, that is, allow the current temp value control to set the flow rate (and head speed). Use a look ahead in the file to anticipate the speed needed soon.
AWESOME!!!!!!!!!!!!!
I feel like this should be in the firmware instead of the slicer. I don't think you're really trying to hit a higher temperature, more so compensate for a thermal model that doesn't know about extrusion rate
THANKS
This could also be usefull for models which large and sudden crossection changes because this can lead to bulges in the print
I wonder if varying the fan speed would also be a solution?
if it's just a visual improvement, I wonder if this variable temp can just be applied to the outer walls of the print
It is not only visual, it still gives you a rough idea of the layer adhesion strength. :) But we shouldn't lower the temperature too much for the small sections as higher printing temps give better adhesion.
Very cool
Interesting 😮
Will this work on a MAC?
Currently, this is only for Windows.
Almost all hotends have way too much thermal mass for this to be practical for any organic shapes
It always depends on the model at the end of the day, some will see huge improvements some quite small. But now we can think of different hotend designs to work better with this.
I don't get why this isn't standard already. The fact that for small prints with thin wall that you have to use a different temperature then on larger prints should already open the question why not adapt the temperature to what is getting printed in the moment.
Yeah, seems logical, I have been waiting for this for a while.
@@PrintingPerspective Thanks for sharing this.
Wait what was that bit at the end there??
In the end screen? The script also alters printing speeds to gradually transition with temperature.
another great video
thanks! :)
Has anyone tried it? your results !
A new release is coming soon
Unfortunately the script is not available to us MAC or Linux users.
With some changes in the code, and with a deferent version of Delphi 12, the code can be complicated for different operating systems (Android, MACOS, IOS, WINDOWS, Linux)
it aught to lower the temp while going over supports so they dont adhere.
yup, there are a lot of good use cases :)
I wonder what effect variable temperature printing has on electricity consumption
hotend doesn't consume that much in the first place
@@PrintingPerspective Is it mostly the heated bed? I knew I liked the small form factor printers so much for a reason
Voron v0, Kingroon KP3S, Prusa Mini, and Bambu A1 mini are all fascinating printers to me, weirdly
Only for windows not mac
👍👍😎👍👍
hope it support linux in future so I can try it.
Too bad this is only for windows users and even tough source code is awailable its made just a language it has hard to port for other os's
First?
nice
@@PrintingPerspective notigang!
I'm running a suped up ender 3, it can move the piece at up to 675mm/s (7750mm/s2 x axis accel 5k y axis accel), and I'm getting this problem, but I can't extract the settings, since it's not running klipper (sorry, really tight budget)
I tried replicating the json file with my machine's settings, but the program refuses to accept it, can you please share your original file (in txt so the link doesn't get flagged) to see what's wrong?
Brother, please. I clearly said in the video and on GitHub the first line - "A Post Processing Script for Slic3r based Slicers and Klipper Printers."
@@PrintingPerspective sorry :(
I don't have enough money for the klipper conversion, but since this would still be able to alter the gcode itself, I thought it might still be a good tool to have...