Heater Feedforward doesn't appear to have any effect?
-
I'm running 3.4.6, and I'm trying to tune heater feedforward. I believe I am enabling it correctly, I have T0 selected, I send
M309 SX.XX
, wait for the heater to stabilize, then command an extruder move. We are using 1.75mm filament with a 0.6mm nozzle, and in testing we have been able to get 20mm3/s+, which I believe is around 8-9mm/s for linear extruder movement.Initially, I was using the dashboard to command 10mm/s linear extruder movement, but after it consistently dipped to the same temp I dropped the feedrate to 5mm/s linear, thinking it was just our hotend that is unable to keep up. The problem persisted though, as the temperature consistently drops to the same value (0.7C below the set point over 100mm@5mm/s). According to the docs, the value for S should be between 0 and 1 if I'm reading it correctly. I tried values starting at 0.1 all the way up to 1.
I even tried values above 1 (which did not throw an error, which confused me, since I did not expect it to allow values over 1), all the way up to 100. I even checked the output of
M309
to make sure the >1 values were set, and they were. Is this intentional? Am I misinterpreting the documentation?I'm fairly certain the heaters are powerful enough to at least affect the minimum temp, they are two 50 watt slice engineering heaters, and the firmware warns about the max temp at full power on startup.
-
-
@curieos said in Heater Feedforward doesn't appear to have any effect?:
they are two 50 watt slice engineering heaters
Is that on a single tool, or one heater per tool?
https://docs.duet3d.com/User_manual/Reference/Gcodes#m309-set-or-report-heater-feedforward
-
@Phaedrux it's two heaters per tool, though they are connected in parallel (to the same output), so in this configuration, for T0, I only need one coefficient.
-
I wonder how the feedforward should work, when you only send an extrusion command via console?
My understanding is, that it's part of the gcode planner and acts before the actual feed happens.
IMHO that's not possible with a single command from the console? -
@curieos the effectiveness of heater feedforward will depend on how closely the heater is coupled to the nozzle and thermistor.
If you don't enable heater feedforward, how soon after you start extruding does the heater temperature drop, and how far does it drop?
Please share your config.g file.
-
@dc42 I'm not sure of a great way to time how long it takes to drop, but it feels like it takes the same amount of time to drop with or without. It drops 0.7C with or without feedforward when the hotend is at 200C with 100mm@5mm/s. We have volcano length diamondbacks in Takoto HE20s. The temp sensor is closely coupled with the nozzle, and the two heaters straddle them.
Here are the relevant parts of the config:
M308 S1 P"20.temp0" Y"pt1000" ; sensor 1 (toolboard) M950 H1 C"20.out0" T1 ; create heater 1 and map sensor 1 (toolboard) M307 H1 B0 S0.80 ; disable bang-bang mode for heater and set PWM limit M143 H1 S320 ; set temperature limit for heater 1 to 320C M308 S2 P"21.temp0" Y"pt1000" ; sensor 2 (toolboard) M950 H2 C"21.out0" T2 ; create heater 2 and map sensor 2 (toolboard) M307 H2 B0 S0.80 ; disable bang-bang mode for heater and set PWM limit M143 H2 S320 ; set temperature limit for heater 2 to 320C ; Fans M950 F0 C"20.out2" Q500 ; create fan 0 on pin 1.out6 and set its frequency M106 P0 H1 T45 ; set fan 0 value. Thermostatic control is turned on M950 F1 C"21.out2" Q500 ; create fan 1 on pin 1.out7 and set its frequency M106 P1 H2 T45 ; set fan 1 value. Thermostatic control is turned on M950 F2 C"0.out0" Q25000 ; (BERDAIR) create fan 2 on pin 0.out0 and set its frequency M106 P2 C"Airpump primary" S0 H-1 ; (BERDAIR) set fan 2 name and value. Thermostatic control is turned off M950 F3 C"0.out1" Q25000 ; (BERDAIR) create fan 3 on pin 0.out1 and set its frequency M106 P3 C"Airpump secondary" S0 H-1 ; (BERDAIR) set fan 3 name and value. Thermostatic control is turned off ; Tools M563 P0 D0 H1 F2 S"Left" ; define tool 0 G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets M568 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C M591 D0 P3 C"20.io1.in" S1 ; extruder 0 filament monitor M563 P1 D1 X3 H2 F3 S"Right" ; define tool 1 G10 P1 U-0.6 Y0.3 Z0 ; set tool 1 axis offsets M568 P1 R0 S0 ; set initial tool 1 active and standby temperatures to 0C M591 D1 P3 C"21.io1.in" S1 ; extruder 1 filament monitor
And the parameters saved to config override:
M307 H1 R4.462 K0.544:0.030 D4.44 E1.35 S0.80 B0 V26.4 M307 H2 R4.176 K0.478:0.112 D4.35 E1.35 S0.80 B0 V26.2
edit: My guess at how long it takes to drop is roughly 10-12 seconds, given it takes about half of the extrusion time to drop fully. It's also fairly sluggish to recover until the extrusion stops. If you need a better estimate than this, I can time it with a stop watch on my phone, I'm just not sure if that will be very accurate for comparison since, again, it feels about the same with or without.
-
@dc42 Does feedforward only work in job files? Should I expect it to work in macros or via the interface buttons?