Bed heating issue now that I'm on 3.1.1



  • Re: After Firmware update on Duet 2 Ethernet from 2.04 to 3 Error

    Hey chaps;
    Searched pulled up little in the way of this issue but the above-linked thread seemed very close to my situation. unfortunately, it didn't help any.
    I've tried running the PID autotune on both the hotend and the bed. The hotend rockets to temp then holds it strong; only in error by .8 max in either direction.

    The bed, however, crawls from room temp (25ish is what the sensor is reading when -cold-) to about 28c before it throws the "temperature rising much more slowly than the expected" fault.

    These are my heater settings in config.g;
    ; Heaters
    M308 S0 P"bedtemp" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin bedtemp
    M950 H0 C"bedheat" T0 ; create bed heater output on bedheat and map it to sensor 0
    M307 H0 B0 S1.00 ; disable bang-bang mode for the bed heater and set PWM limit
    M140 H0 ; map heated bed to heater 0
    M143 H0 S120 ; set temperature limit for heater 0 to 120C
    M308 S1 P"e0temp" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin e0temp
    M950 H1 C"e0heat" T1 ; create nozzle heater output on e0heat and map it to sensor 1
    M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit
    M301 H0 S1.00 P209.7 I17.817 D970.2 T0.4 W180 B30 ; Use PID on bed heater (may require further tuning)

    and my overrideConfig.g;
    ; config-override.g file generated in response to M500 at 2020-07-31 21:13
    ; This is a system-generated file - do not edit
    ; Delta parameters
    M665 L397.190:397.190:397.190 R156.402 H523.771 B155.0 X0.052 Y0.050 Z0.000
    M666 X0.346 Y-0.189 Z-0.157 A0.00 B0.00
    ; Heater model parameters
    M307 H0 A239.0 C708.3 D2.5 S1.00 V23.8 B0
    M301 H0 P209.7 I17.817 D970.2
    M307 H1 A340.0 C140.0 D5.5 S1.00 V0.0 B0
    ; Workplace coordinates
    G10 L2 P1 X0.00 Y0.00 Z0.00
    G10 L2 P2 X0.00 Y0.00 Z0.00
    G10 L2 P3 X0.00 Y0.00 Z0.00
    G10 L2 P4 X0.00 Y0.00 Z0.00
    G10 L2 P5 X0.00 Y0.00 Z0.00
    G10 L2 P6 X0.00 Y0.00 Z0.00
    G10 L2 P7 X0.00 Y0.00 Z0.00
    G10 L2 P8 X0.00 Y0.00 Z0.00
    G10 L2 P9 X0.00 Y0.00 Z0.00

    I'm not sure what the heck is going on, M140 proceeds the other stuff. What could I be doing wrong in trying to make this printer operate as designed?

    The printer - Tevo Little Monster with all OE hardware and PSU, minus the steppers (0.9 NEMAs), dual drive extruder and Duet2 WiFi (obviously).



  • I should also mention;

    When I perform a autotune on the bed it heats up to 115 just fine (albiet, a wee bit slow... that could just be me being impatient) and when it finishes tuning the bed is typically around 60-75ish. So I heat it up to 90 because the gap in temps should make it push full power and it heats up to the higher temp just fine and holds it strong in place. It'll do this just fine for any temperature I tell it to.

    ...until I let the printer sit for a while, come back to it, power it up then tell it to heat up to 60, it struggles to get to 28 before throwing tripping that fault.

    PS: other guides I've tried following
    https://www.youtube.com/watch?v=YpWCKNagjuI
    https://www.youtube.com/watch?v=h9Rdid-T-Gw

    The trouble with youtube stuff is most of it seems to be Marlin stuff but the 301, 303 and 307 commands seem to work with Duet's RepRap but 301 wouldn't record the PID values and obviously 500 doesn't work at all.



  • @PorscheHusky said in Bed heating issue now that I'm on 3.1.1:

    and obviously 500 doesn't work at all.

    do you have M501 in your config.g? (the full config file in your post would have answered that)

    also if you use the code formatting instead of bold it helps readability a little (4 buttons to the right of the bold button)



  • @bearer said in Bed heating issue now that I'm on 3.1.1:

    @PorscheHusky said in Bed heating issue now that I'm on 3.1.1:

    and obviously 500 doesn't work at all.

    do you have M501 in your config.g? (the full config file in your post would have answered that)

    also if you use the code formatting instead of bold it helps readability a little (4 buttons to the right of the bold button)

    Sorry, I wasn't sure of code boxes worked here like in Slack. I'll try to correct that and also upload my sys files.

    I don't think 501 is in the config. Infact, I'm 90% sure it's not there, does that act like a virtual I/O like 950 does?





  • Here are my config files
    config-override.g
    config.g



  • @PorscheHusky said in Bed heating issue now that I'm on 3.1.1:

    Here are my config files
    config-override.g
    config.g

    Hi,

    I'm one of those difficult folks that ignores warnings in files.

    I don't use config_override.g.

    Yes when tuning heaters I used M500 to save the data in that config_override.g file BUT I then copy that information into my config.g file into the appropriate locations and delete config_override.g

    Frederick



  • @fcwilt said in Bed heating issue now that I'm on 3.1.1:

    Yes when tuning heaters I used M500 to save the data in that config_override.g file BUT I then copy that information into my config.g file into the appropriate locations and delete config_override.g

    you don't even need to temporarily store it in config-override.g, you could just query the paramters an copy that into config.g from the gcode console afaik?

    and thats fine when you know what you're doing, something it seems like OP also tried doing, however only with the heater and not the delta calibration and other contents of his override file.

    given OP didn't add M501 to his config I guess thats the approach he wants to go down?



  • @bearer said in Bed heating issue now that I'm on 3.1.1:

    @fcwilt said in Bed heating issue now that I'm on 3.1.1:

    Yes when tuning heaters I used M500 to save the data in that config_override.g file BUT I then copy that information into my config.g file into the appropriate locations and delete config_override.g

    you don't even need to temporarily store it in config-override.g, you could just query the paramters an copy that into config.g from the gcode console afaik?

    and thats fine when you know what you're doing, something it seems like OP also tried doing, however only with the heater and not the delta calibration and other contents of his override file.

    given OP didn't add M501 to his config I guess thats the approach he wants to go down?

    So I did add the M501 to my root config.g as you mentioned and thanks to the links you provided. I checked before and afters of running a PID on the hotend first then the bed and it seems to be working. I'm about to try to perform a test of the bed to see if that nipped this problem in the arse; fingers crossed!
    I'm just waiting for it to cool completely as if the printer had been sitting for a few hours/days, which is about23C-25C. Dang thing takes a long time to simmer down 😛



  • @fcwilt
    I think mine will make that file regardless if I delete it or not because that's where my delta calibration params are stored as well as the bed mesh if I'm correct in assuming. So I don't mind that it's there, just so long that it's doing what it's supposed to 🙂



  • I think mine will make that file regardless if I delete it or not because that's where my delta calibration params are stored as well as the bed mesh if I'm correct in assuming.

    it will not re-create the file unless you re-do the calibration

    So I don't mind that it's there, just so long that it's doing what it's supposed to

    it wil do if you put M500 M501 in config.g, if not it'll be ignored



  • @PorscheHusky said in Bed heating issue now that I'm on 3.1.1:

    @fcwilt
    I think mine will make that file regardless if I delete it or not because that's where my delta calibration params are stored as well as the bed mesh if I'm correct in assuming. So I don't mind that it's there, just so long that it's doing what it's supposed to 🙂

    Hi,

    The bed mesh (height map) is stored in the file heightmap.csv

    And while relying on the config_override.g file is fine everything there can be moved into config.g.

    There is nothing unique about the contents of config_override.g that requires it to be in that file.

    Just FYI.

    Frederick



  • @bearer
    @fcwilt

    It's sorted! 😄 mucho thanks!
    The issue was indeed the lack of M501 in my config.g! Added that as instructed, waited for the printer to fully cool off then performed another autotune. After the autotune, I M500ed the new params and when I checked config-override, there were there!

    So I waited for the machine to cool down again then heated the bed, it was still kind of slow ramping up but once it hit 30c and no faults/safeties tripped, I about jumped the roof!
    It prints like a dream again and everything seems to be fully operational once again!
    Thanks a lot, you two! 😄

    One more thing; I elected to run PID instead of Bang-Bang because I thought that was the original issue but now that it's working, I was concerned that maybe PID may not be ideal for my hardware?
    Does PID put more stress on my components vs Bang-Bang? My Little Monster is fully stock; 24V PSU with the factory 12V silicon heated bed.



  • @PorscheHusky said in Bed heating issue now that I'm on 3.1.1:

    I was concerned that maybe PID may not be ideal for my hardware?

    elaborate? PID with a PWM frequency matching the type of heater should be fine for most setups.


  • administrators

    PID is recommended; but if you are using an SSR to control the bed heater, reduce the PWM frequency to 10Hz (Q parameter in the M950 H0 command). Using bang-bang to control the bed heater can result in Z banding.



  • @dc42 I don't think Tevo Little Monsters came from the factory with SSRs. Maybe one of these days I can crack open the PSU and have a look.

    I'm no electrician, so forgive me for any inaccuracies I may assume but I'm thinking all I'd have to look for is some external looking module inside the PSU box?



  • @bearer said in Bed heating issue now that I'm on 3.1.1:

    you don't even need to temporarily store it in config-override.g, you could just query the paramters an copy that into config.g from the gcode console afaik?
    and thats fine when you know what you're doing,...

    This is what I am doing, editing the printed parameters into the M307 in my config.g file.

    Always wonder why the Duet don't just prints the recommended M307 and planed to ask Duet3d to add it so here it is https://forum.duet3d.com/topic/17958/feature-request-please-have-m303-printing-the-recomanded-m307 . Feel free to support that request 😉