[feature] Adaptive / Feedforward Temperature setpoint
-
@droftarts I was just about to post a question regarding feed forward till I found this post.
I think the feedforwwar tool doesnt cover all the issue. As mentioned here, you can print perfectly PLA at 180 degrees with excelent quality, BUT you will be restricted on how fast you can print. On the other hand, you can print PLA at 150 mm/s on a 0.8 nozzle only if you go up in your temp to 230 degrees oir little more, but as soon as you slow down you quality goes to the trash bin because of that excesive temp.The feedforward config at least to me has not solved this in my prints, I have to either choose print really fast and hot or normal/slow and "cold". My question was going to be if the feedforward command could add some type of algorithm to take into account the cubic mms being extruded instead of the printing speed, in that way you would be covering all nozzle spectrum and printing speed at the same time.
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)
-
@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.