Haha I made the suggestion ages ago to adjust heat based on volumetric flow rate here and in Prusa Slicer forums and more people than not basically told me I was being stupid lol. I will check it out as that would be huge especially with filaments like TPU which I print with a lot.
I think nonlinear extrusion is still valuable especially with TPU.
I am currently running 3.5 RC2 but I have had frustrations with nonlinear extrusion for ages and several different versions.
Posts made by yoshimitsuspeed
-
RE: Nonlinear extrusion
-
Nonlinear extrusion
I have been using nonlinear extrusion for years with mixed results. I have gotten setups dialed in better than running without it but it always felt like it wasn't consistent.
I have been using this calculator.I tried setting it up doing static extrusion tests marking 100mm on the filament then extruding 100mm.
I found a better method has been to see where a print is under/over extruding then tweak those tables.I started to feel like sometimes trying to increase extrusion by using a lower number at higher flow rates actually decreased the flow.
Tonight I think I finally confirmed this with the volumetric flow readout on the Duet web display. I was printing something that should have been 5mm3/s.
I started with a moderately aggressive NE number. Like say 100 at 0mm3/s and 78 at 6mm3/s (this is for TPU BTW).
The display showed something like 5.1mm3/s
So I went to an aggressive number. Something like 68 at 6mm3/s and the number Duet was reporting went down to 5mm3/s.
So then I clicked through the history and started selecting various ones I had tried before and finally found one that bumped it up to 5.3mm3/s. This was a less extreme ratio than at least one but I think several of the others I tried. Reverse engineering the numbers I think around 72 at 6mm3/s.I can test this more soon but it makes me think maybe this isn't working like it should and maybe that is why it has been such a struggle for me to dial in these settings.
All of the threads I have found on this are either very old and include these two calculators often discussed, or are newer and really don't have much information.
I will admit that the math goes a little beyond me so I need a calculator or an easy way for me to get from seeing under extrusion at a flow rate and understanding how to change values to address it.
One thing that would be amazing is if there was actually an interface in the web interface where you could just enter values to create a curve then it just does the math in the background. Even better if there was a way to link it to slicer profiles or something but that's probably getting complicated unless the slicers worked to integrate something there too IDK.Anyway I love the concept and when it works it is amazing but it feels about like 50% science and 50% pulling the lever on a slot machine. Or maybe I'm just doing it totally wrong.
-
RE: duet for 4+ axis lathe
Thanks for the input.
There wouldn't be any easy way to use a Duet board controlled by LinuxCNC or something like that would there?
-
RE: duet for 4+ axis lathe
@T3P3Tony
Yes you are talking about constant surface speed and that would be critical to a properly functioning turning setup. But it's not what I was talking about.
I guess what I was reading about must be what @dc42 is talking about. -
RE: duet for 4+ axis lathe
It's my understanding that RRF doesn't do constant state or infinite rotation type operations, or something related to the spindle . As I remember from what I have read that seems to be the big hangup but I feel like I read of other things that sounded less than ideal as well.
Also to clarify, this would be using a stepper or servo motor on the spindle with a toothed belt or similar so spindle angle is fixed to the motor to be able to do threading and operations like that, and hopefully eventually fifth axis machining. So it wouldn't just be "set spindle voltage or PWM to approximate RPM" but would be operations that precisely tie the spindle moves to other axis moves.
Of course now I am trying to find the threads or places I found this being discussed and can't find it.Ah here is one. So I guess the issue is less regarding defined rotation operations but theoretically infinite or continuous rotation operations.
-
duet for 4+ axis lathe
I have been toying with the idea of making a lathe with a 3D printed toolchanger and ultimately I would love to make it 4 or 5 axis but that would be a long ways down the road.
Reading the posts here it sound like Duet might just not be acceptable but I am running Duet boards on my printers and I would love to stay as much as possible in this ecosystem. I would also love to build it around a board like the 6HC and avoid buying controllers, drives, etc, If I'm going to use a single board I would love for it to be Duet.Is there any way to get away from RRF if it won't be acceptable for this?
I am most familiar with using linuxcnc for non 3D printer stuff so that would definitely be my prefered route if going outside the Duet web interface.
So for example would there be any way to set up a 6HC board to be run by linuxcnc?
Or other similar alternatives that would work better and overcome the mentioned shortcomings of RRF? -
RE: Proper gcode for multiple drives and extruders
@deckingman
I have different 592 and 572 settings for various materials. Particularly different TPU materials and profiles. So I have those profiles saved in my slicer custom Gcode.Also the way these call out D instead of E makes it a little confusing as well. With commands like 567 that call out E it seems to accept the value:value format for multiple extruders but I haven't seen anything that shows how to address ones that call out D0, D1, etc.
It would make a lot more sense if it all used E value:value
-
Proper gcode for multiple drives and extruders
I have an IDEX machine and I want to know the right way to set pressure advance and nonlinear extrusion for all configurations.
I have it set up so that tool 1 is the left print head, tool 2 the right print head, and tool 3 set up as duplicate where both heads print identically with a fixed offset from each other.
I am a little confused how the gcode should look for this.
Tool 1 prints as drive 0 and tool 2 as drive 1. Then tool 3 prints with drive 0 and 1.So if I am making adjustments in the console how should that look.
Like let's say I am printing with tool 1 using drive 0 I assume it's just something like this?
M592 D0 A-0.125378 B0.197786
M572 D0 S.2
Then for tool 2 it would just change to D1 correct?Then for tool 3 where it is using drive/extruder/heater 0 and 1 is where I'm really confused.
Like would I do
M592 D0 A-0.125378 B0.197786
M592 D1 A-0.125378 B0.197786
Or
M592 D0 A-0.125378 B0.197786:M592 D0 A-0.125378 B0.197786
Or something else?Then in Prusa Slicer in my filament custom gcode section how would I do the gcode to apply the proper nonlinear extrusion and pressure advance for all configurations?
To clarify, if I am using a given filament profile and select "extruder 1" in filament settings and all extruders to 1 in print settings it applies the correct nonlinear extrusion to drive 1, and same with extruder 2, but then if I select "extruder 3" in Prusa Slicer having it apply nonlinear extrusion and pressure advance to drive 0 and 1.
At least at the moment I don't think I would ever need to run a different parameter for drive 1 for tool 1 or tool 3. If I can specify in one place that D0 gets the same nonlinear extrusion and pressure advance whether tool 1 or tool 3 is selected that should be fine.Thanks
-
RE: Volumetric temp change
It's kind of mind boggling to me that people keep talking about trying to prove the concept.
Like am I really the only one who changes temp manually during printing to maximize performance? I mean not on a regular basis but in special situations.
Like if you have a big model that you want to print fast you can set it to print nice and hot and fast.
Then if there are a couple detail areas that are getting too hot you just turn the temp and if needed feed down in those areas.It works really well. It would just be nice to be able to automate it and if it was then it would add a lot of capability to printing. It's weird to me this concept seems so foreign or unheard of.
-
RE: Volumetric temp change
@droftarts I would love to do or be involved with something like that.
I am at the level of coding where I can oftentimes do what I want to do with instructions. I am a little more advanced when it comes to things like firmware code, gcode, Linux, and a couple other things but still not advanced. I feel like it would take more time than I feel like I could afford to spend trying to work that out completely on my own.
Do you know of any resources that might point me in the right direction and make it relatively easy for me to do?I have wondered the same thing about trying to code something straight into Prusa Slicer but again I am a little too unfamiliar with the territory to try to dig into it on my own. I feel like it would probably be pretty easy to do but I have yet to find any interest in doing it. I also feel like within Prusa most of the code is probably already there considering it already monitors and controls volumetric speed. It seems like you could probably almost steal something like the Dynamic overhang speed code and just change overlap to volumetric flow and the enterable parameters to desired change in temp. Or something like that.
But again I feel like I'd be getting in a little over my head on my own. I guess if I got bored I could at least get the PS or Super Slicer source code and start poking around. Hasn't made it that high up the priority list though. -
RE: Volumetric temp change
@dc42
I am a little unclear on how the feed forward functions. It is designed to predict temp drop or rise when rapid flow changes happen but will ultimately aim for the target temp ultimately correct?
Or is it or could it be used to add an adjustment real time to heat more at higher flow rates and less at lower? -
RE: Volumetric temp change
@dc42
It has been so long since I ran normal heaters I don't remember how they compare but I run Maxiwatt cylindrical heaters and I am confident they change temp fast enough to make this work.
One thing to recognize is that there is a decent bit of give to most the parameters. The acceptable temp window is pretty big so moving to stay within that window gives a lot of range to float. But being able to move that window could allow faster printing with better low speed quality.
Also things take a bit of time to cause a problem. For example if I'm running TPU at 250 and it gets really slow it will print fine for 10 more seconds or more before it starts popping or bubbling. So if there is a spot that slowed down for less than 10 seconds it could just not do a temp change, or signal a temp change but would be fine if the temp didn't change much.
Similarly if it then went back to max volumetric flow rate and was at say 215 it would take a few seconds before it started under extruding. Even if it under extruded for a couple seconds it wouldn't be the end of the world. Especially since my external perimeters are at a slightly lower volumetric flow rate so any under extrusion would be momentary on internal paths.Doing a quick test changing temp from 200C to 210 my setup took about 5 seconds to get to 205 and 8-9 to get to 210. And then 210-200 about 8 seconds to get to 205 and 15 to get to 200. Filament going through it should cool and drop faster.
If we could add a 10 or even 5 second look ahead I think the temp could easily stay within an acceptable window over a wide range of speeds pretty much all the time. Any potential deviation unacceptably outside that window probably at most for a couple seconds and only in places with more extreme rapid volumetric changes which would likely be something like infill. -
Volumetric temp change
I am wondering if there would be an easy way to get the nozzle temp to change based on volumetric flow rate. I made this suggestion in the Prusa requests because the slicer seems like the most logical place to implement it but it got no response.
I print a lot of production TPU where speed is important and where you can gain a good bit of speed if you turn the temp up a bit but when it gets to low volumetric flow areas it overheats the filament.
To implement in the slicer I was imagining something basically like defining a low and a high. So say at 4mm3/s temp=210 and at 10mm3/s temp=250
Then ideally I was thinking something like a ten second advance and smoothing. So say the temp is the average for volumetric flow over 10 seconds and if the flow changes enough to warrant a temp change it triggers that change 10 seconds in advance so that the nozzle has some time to change temps.I'm not sure how far Duet looks ahead in the code or how much of this might be possible through the board but I am curious to know what might be possible. If it was possible for me to manually or in custom Gcode tell the firmware something like 4mm3/s temp=210 and at 10mm3/s temp=250. This would work for my production parts.
And or I would be curious if there would be something similar like the ability to activate a mode that read the gcode temp and then just added some kind of modifier like say a nominal flow rate of 6mm3/s and a +-15% temp change over +-15% volumetric flow change or something like that? -
RE: Optimizing IDEX machine and Prusa Slicer
Oops mixed up left and right extruders in second to last post but trying to edit now is getting flagged as spam.
-
RE: Optimizing IDEX machine and Prusa Slicer
The next big issue is that the extrusion factor sliders don't appear to work in duplicate mode. It sounds like they are over ridden by M567 in the T2 firmware code.
If there was one clear bug/improvement from all this so far it would be that the extrusion factor sliders should not be overridden by the M567 code and that the sliders need to be able to adjust extruder 0 and extruder 1 independently while in duplicate mode.
I thought I found a workaround by manually entering something like M567 P2 E1.02:1.0 into the console and I thought this was working but now I am wondering.
Either it was not working and I have just been running spools close enough in diameter to work fine, or it is working if I enter this before starting a print but it does not seem to be changing extrusion on the fly.For example last night I was running a duplicate print and Extruder 0 was under extruding. I started the print at M567 P2 E1:1 so while running I tried M567 P2 E1.01:1.0 and say no noticeable change, then bumped it to M567 P2 E1.02:1.0, and still saw no noticeable change. A change in the extrusion factor sliders from 100% to 102% would have made a huge difference so I started wondering if M567 in the console or at least on the fly is even doing anything at all.
-
RE: Optimizing IDEX machine and Prusa Slicer
It's hard for me to give this the attention it needs with everything else I have going on but I will try to keep posting info here as I'm not even exactly sure what specific bug/improvement requests are needed to properly address these issues.
To go back and try to consolidate some important info.
Tool 0 is right extruder.
M563 P0 S"Left" D0 H1 F0 L3 ; define tool 0
G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets
G10 P0 S0 R0 ; set initial tool 0 active and standby temperatures to 0CTool 1 is left extruder.
M563 P1 S"Right" D1 H2 X3 F2 L6 ; define tool 1
G10 P1 X0 Y0.5 Z-.05 ; set tool 0 axis offsets Moved Y from 0.6
G10 P1 S0 R0 ; set initial tool 0 active and standby temperatures to 0CTool 2 is duplicate
; Create a tool that prints 2 copies of the object using both carriages
M563 P2 S"Duplicate" D0:1 H1:2 X0:3 F0:2 L3:6 ; tool 2 uses both extruders, hot end heaters and fans, and maps X to both X and U
G10 P2 X57 Y0 U-57 S0 R0 ; set tool offsets and temperatures
M567 P2 E1:1 ; set mix ratio 100% on both extrudersFor simplifying the math on the duplicate mode I made the center of the bed the origin. So after everything homes, extruder 1 should go to +57 and extruder 2 -57.
; Create a tool that prints 2 copies of the object using both carriages
M563 P2 S"Duplicate" D0:1 H1:2 X0:3 F0:2 L3:6 ; tool 2 uses both extruders, hot end heaters and fans, and maps X to both X and U
G10 P2 X57 Y0 U-57 S0 R0 ; set tool offsets and temperatures
M567 P2 E1:1 ; set mix ratio 100% on both extrudersI also have M116 "wait for tool heaters to reach operating temp" disabled in my toolchange files. My extruders heat up so fast I don't want it waiting on every toolchange during printing. Unfortunately this seems to disable wait for heat up when a print starts as well.
I guess first I will go back to small wins.
Changing slicer start code from M104 to M568 was a big improvement and at least sets both heater temps.
There are still two problems with this.
If I set tool 2 manually before starting the duplicate print the printer will home but will not go to it's x57 u-57 duplicate position before printing. Instead it stays at it's homed position and then when it starts printing will go past the endstops and chatter the belts as it drives into the stops.If I select tool 0 or tool 1 manually I can set heater 1 and heater 2 to active in T0 and T1 and set those to the temp I want to preheat.
So let's say for example I set T0 H1 and T1 H2 to 220C and set both heaters to active but with T0 selected so both heaters heat to 220. Now say first layer temp for the print is 240.
When I start a duplicate print this does properly home and then sends print heads to X57 U-57 like it should. Unfortunately with tool 0 selected before printing only heater 1 will switch to T2 settings.
So the printer homes, then moves both print heads to proper duplicate positions but this whole time only heater 1 is heating to 240, heater 2 still on it's T1 setting of 220.
As soon as the print actually starts heater 2 does at that point switch to T2 settings and starts heating to 240.
This workflow is working as a workaround but sucks.
Needing to remember to do this whole process of setting T0, then manually activating both heaters really sucks and if I forget and t2 is selected it crashes the machine.
Similarly if I resolve the T2 crashing problem it would still be best if T0 or T1 was selected that it would properly switch to T2 and have both heaters heating before homing starts. -
RE: Optimizing IDEX machine and Prusa Slicer
No other thoughts on the extrusion ratio issue? Should I report any of these as bugs or feature requests? It seems to me like the extrusion rate sliders should work in IDEX mode but according to what everyone is saying it seems like that is not currently possible.
-
RE: Optimizing IDEX machine and Prusa Slicer
Also as an update I have found an acceptable workflow by setting filament diameter in Prusa Slicer to the larger of the two filaments and then using M567 P2 E1:0.985 for example to fine tune the balance. This does work and isn't a huge pain though it would be really nice if I could use the sliders in the interface instead.
I do also have one other question.
Can I install a filament sensor on each extruder and running in duplicate mode have it stop the print if either stops or runs out? Or would there be any foreseeable issues like we are seeing with extrusion ratio? -
RE: Optimizing IDEX machine and Prusa Slicer
I am slowly trying to work through issues in order of biggest priority and time likely required to solve.
I still haven't gotten around to figuring out what's going wrong when I have T2 duplicate selected before starting a print. It is easy enough to just select T0 or T1 then start.This is leaving me with another annoying issue though and I think it might be more related to Prusa Slicer but I am wondering if there is anything I can do about it.
If I have say T0/heater 1 active and T1 in standby or off when I start the print the new M568 command does set temp for T2 H1 and H2 however T1/H1 stays in standby.
I haven't paid close enough attention but I think I remember it waiting to heat sometimes, but last time as I was watching it did not, it went straight to printing. In this example I had everything set to 220 before starting the print and first layer temp of 240. As soon as it gets to the T2 command T1 starts heating and in this case since it was already at 220 everything started fine.The issue seems to be that the earlier G10 S240 P2, and M568 codes don't switch Heater 1 and Heater 2 into active mode so only the active heater starts heating.
It seems to me like P2 should switch both to active and heating. Is there something I can do about this on the firmware/Duet side of things?; generated by PrusaSlicer 2.6.0-alpha5+win64 on 2023-04-18 at 17:46:12 UTC
;
; external perimeters extrusion width = 0.76mm
; perimeters extrusion width = 0.80mm
; infill extrusion width = 0.65mm
; solid infill extrusion width = 0.80mm
; top infill extrusion width = 0.72mm
; first layer extrusion width = 0.80mmM201 X9000 Y9000 Z500 E10000 ; sets maximum accelerations, mm/sec^2
M203 X30000 Y30000 Z720 E7200 ; sets maximum feedrates, mm / min
M204 P1500 T1500 ; sets acceleration (P, T), mm/sec^2
M566 X600.00 Y600.00 Z12.00 E150.00 ; sets the jerk limits, mm/min
M107
G10 S240 P2 ; set temperature
;TYPE:Custom
G21 ;metric values
G90 ;absolute positioning
M568 S240 ; set extruder temp
M140 S30 ; set bed temp
G28 ; home all axes
G1 Z5 F5000 ; lift nozzle
;T1
;X222
;E20G10 S240 P2 ; set temperature
M116 ; wait for temperature to be reached
G21 ; set units to millimeters
G90 ; use absolute coordinates
M83 ; use relative distances for extrusion
T2
; Filament gcode
M592 D0 A-0.013507 B0.002903
M572 D0 S0.02
M107 -
RE: Optimizing IDEX machine and Prusa Slicer
@dc42 said in Optimizing IDEX machine and Prusa Slicer:
@yoshimitsuspeed said in Optimizing IDEX machine and Prusa Slicer:
I guess if that like the sliders is overridden by M567 then I guess using M567 via the console would be the best current working solution?
To calculate the required extrusion, assuming that the G1 command only has a single E value, RRF first applies the M567 mix ratio to get the requested extrusion on each extruder. Then, if the move is a normal printing move (not an extruder-only move) it multiplies those values by the extrusion factors set by M221. So M567 does not override M221.
Does this mean that M221 does something different than the sliders in the web interface do? Or is there something else preventing my extrusion sliders from functioning properly? Because if I move those while printing in duplicate mode IE tool 2 the sliders don't do anything. Or at least the don't give independent control. I haven't tried sliding both to the same setting at the same time to see if I could increase or decrease flow on both extruders at the same time but if I set one at 99 and one at 101, or if I set one at zero and the other at 200 there is no change in extrusion.