[feature] Adaptive / Feedforward Temperature setpoint
-
@Tinchus said in [feature] Adaptive / Feedforward Temperature setpoint:
And regarding where: I think the oposite. It should be the formware the one in charge of that because the slicer never knows the real speed of a path. Final real speed is decided by firmware, the slciewr never knows the real printing speed (and that is the reason why the time calculation on slicer are allways really off)
Thats a good point!
I made a PR for this https://github.com/Duet3D/RepRapFirmware/pull/1036
But due to memory contrains, it will not fit in the ROM of a regular Duet2 combined firmware. You need to disable other not important features to make it work e.g. Telnet and FTP.
-
@timschneider I wonder if temp increase VS speed will be ok when you change to a bigger noozle and you go slow; in that situation you would have a potential huge increment of mm3/s but a lower speed. Example: 100 MM/s speed with a 0.4 noozle . The you switch to a 0.8 nozzle and go to 80 mm/s
-
@Tinchus it is extruder speed e.g. movement of filament per sec, not travel speed so it is accounting for that. I print with 0.8mm to 1.2mm nozzles.
-
@timschneider that is what I meant. May be Im wrong so please clarify: the push request is using the new requested T parameter in terms of extrusion speed or volumentric speed? Because the firmeware actually never knows what size of nozzle you are using: if slicer request a 10 mm/s extrusion move and you are using a 0.8 nozzle volumen and needed temperature will be quite dfifferent if the slicer request the same speed but you are using a 0.4 nozzle. am I wrong?
-
@Tinchus, it's the extrusion speed. So I use 2.85 mm filament and if I use an extrusion speed of 1 mm/s, for example, it is about 6.38 mm³/s, regardless of the nozzle size. The only difference between extrusion speed and volume speed is the area of the filament, e.g. for 2.85 mm filament 6.38 mm² and thus only a factor.
-
@timschneider said in [feature] Adaptive / Feedforward Temperature setpoint:
So I use 2.85 mm filament
I thought it was just me using up everyone else's 2.85mm filament! If I ever get my Trident-ish machine finished, I've got a Titan extruder with volcano CHT nozzles (probably 1mm nozzle dia) tool earmarked for it, to get through all the old stock (after it's spent time in the filament dryer), and print big things fast! So some form of temperature feedforward would be good.
Ian
-
@timschneider As this feature has been added (https://github.com/Duet3D/RepRapFirmware/commit/b300085b44b2fe403d231a674b3b29f702c6b66f), have you got any suggestions for the tuning method that I could add to the feedforward documentation?
M309 in the Gcode dictionary has been updated to say:
Parameters
...
Tddd:eee:fff... Feedforward temperature increase coefficients. The number of coefficients provided must equal the number of heaters configured for the tool when it was created (see M563). Supported in RRF 3.6.0-beta.2 and later.
Aggg Feedforward advance time in milliseconds, maximum 100. RRF will attempt to apply the temperature and PWM adjustment this time in advance of the start of the corresponding move. This advance time may not always be achieved, for example when commencing movement from standstill. Supported in RRF 3.6.0-beta.2 and later.Notes
...
The units of T are degrees Celsius per mm/sec of filament forward movement.No notes on the A parameter.
Ian
-
@droftarts
Hi @droftarts
I use the following tuning method:- determine the lowest possible temperatur
Temp_base
for the filament, e.g. extrude with F30 (0.5 mm/secSpeed_base
) so that the filament is melting and will bond to each other - define your desired extrusion rate, e.g. 35 mm³/sec -> calculate the required extrusion speed -> around 5.5 mm/sec (
Speed_desired
) for 2.85mm filament -> F330 - Extrude the filament with the desired speed + 20% and increase the temperature of the hotend till you are able to extrude at the desired speed. Note the needed temperature for that speed
Temp_required
. The extrusion length should be at least two times your hotend length. The 20% increase is some kind of error margin for non linear extrusion and when the fan is on. - calculate the needed temperature boost with
Temp_boost = (Temp_required - Temp_base) / (Speed_desired - Speed_base)
For Example PLA
Temp_base = 190 Temp_required = 230 Speed_base = 0.5 mm/s Speed_desired = 5.5 mm/s Temp_boost = 40 / 5 => 8 => T8
Edit:
Temp_base
will be the temperature you set in your slicer for that material. - determine the lowest possible temperatur
-
@droftarts
I have updated the description so that it hopefully becomes clearer how much material has to be extruded and why you should aim for a 20% plus error margin and that you should use the temp_base for slicing. -
@dc42
thank you for implementing the temperature feedforward.
It took me a while to get it installed on a machine and test it, unfortunately I was not able to get it working. Maybe its a pure display thing, but I do not see the temperature increase I was expecting.I set
M309 P0 S0.06 T8 A100
and was extruding at 245°C with 0.6mm/sec, so I was expecting an temperature increase of 4.8°C but the temperature in DWC was still at 245°C.the following chart is showing the print process and a pretty stable temperature without the increase and decrease of the temperature feed forward.
The printer is on