Change max. hotend PWM during heating phase?

  • Hello together,

    ever since I finally threw out the old Printrboard on my GRR Neo and replaced it with a Duet Wifi (which I should have done much sooner btw...), I have been fussing around with two things:

    • getting the steppers' motion silent (GRR seems to have used some rather weird motors there...) and
    • minimizing the oscillation of the temperature of the E3d lite6 hotend.

    By now it seems I have finally solved both problems - the motor issue thanks to several hints here and thanks to the new firmware (in case someone needs it - "M569 ... T1:1:0.5:6 C65974" yields the best results so far), and the hotend oscillation after dozens of unsuccessful attempts by rather severely decreasing the max PWM value by using the M307 S... parameter, and this brings me to my question:

    By reducing the max. PWM to 0.25, I managed to reduce the temperature swing from ±3...4°C (which was the best I could get out of both automatic as well as manual tweaking PID parameters) to ±0,7...1°C.

    The drawback is that it takes now some 8...10 minutes for the Neo to heat up.

    So here is my question: is it somehow possible to configure the Duet in such a way that you e.g. use a max. PWM of 0.5 for up to 180°C and then go on with a PWM of 0.25?

    (I am aware that I somewhat contradict the idea behind the PID management of the hotend with this question, but as mentioned above I miserably failed getting it to work like that - regardless what I do, PID always either fires too hard when it recognizes a temperature drop or it reacts too slow when temperature is reached)

    Best regards

  • Moderator

    You can do this in your start gcode if you like. The M307 commands don't have to stay contained to the config.g

    M307 xxxxx ; PID values to get you up to 180 fast
    G10 P0 S180 ; set temp of tool to 180
    M116 ; wait for temp
    M307 yyyyy ; PID values for stable temps during print
    G10 P0 S200 ; set temp of tool to print temp
    M116 ; wait for temp

  • Wow - that went fast. Thanks a lot, I'll try that!

  • administrators

    Did you run M303 H1 heater tuning to establish the correct M307 parameters for your hot end?

    • If you didn't, do it and save the results.
    • If you did it but the temperature still oscillates a little, increase the D parameter in the M307 command, which is in config.g or in config-override.g depending on how you saved it. Try increasing it by 30% or 50%.

  • @Phaedrux:
    Thanks again - it works perfectly. I removed the second step however - this is handled by the gcode of the print itself:

    M307 xxxxx ; PID values for quick heating
    G10 P0 S180 ; set temp of tool to 180°C
    M116 ; wait for temp
    M307 yyyyy ; PID values for stable temps during print
    ; final temp is supplied by part gcode

    sure, I played a lot with autotune but for some reason did not get any satisfying results with the Duet that combined a quick heat-up and a stable print temperature. I do not remember though if I changed D that much - I will try that.

    Interestingly, the autotune of the old Printrboard had yielded a better result, which is why I fell back to setting the PID values with M301 for a while and simply used what the Printrboard autotune had told me on the Duet as well, but I had to resort to setting an M307 setting to define a maximum PWM since the duet does not seem to provide another way to set this - and then overwrite this setting partly with M301. (On the Printrboard I could define the max. PID drive in the firmware eeprom.)
    This did not work perfectly though (unsure why - maybe due to different response times of Duet vs. Printrboard?). But for now and with Phaedrux' trick I finally have a setting I feel comfortable with.

    By the way - thanks a lot for including the german translation I had sent you into the PanelDue firmware 🙂

  • Moderator

    @neodue glad it worked out

Log in to reply