M307 vs. M301



  • New to Duet and having trouble on initial configuration. Have gotten most of it to work, but my bed heater refuses to work. Its 120 volt with SSR set up. I am trying to use the 12v mofset output to activate the SSR. When I turn on the heater nothing happens and I can't see any voltage across the 12 v outputs. I was told by another source that the configurator I was told to use doesn't handle M301 commands properly, but should use M307. I looked up M307 to see how to get my bed on the "bang bang" setup and am now confused on how to set up the board. Any help?



  • @craig

    If you tune the heater using M303 then it will generate the PID parameters that you then use with M307. M301 lets you input the PID parameters directly if you know what they are. However, none of that matters if you want to use bang bang mode. For that, you simply use the "B" parameter in M307. So for the bed, which is heater 0 you'd just put M307 H0 B1 (or any non-zero value for B).

    HTH



  • Pretty easy. Any reason you can think of that the RepRap Configutor I was directed to by Duet 3d doesn't work?



  • I went to the Gcode console and typed M307 H0 B1 and the heater went to fault and I got a message about using the wrong channel.



  • If the M305 command for a real heater does not specify a sensor channel and the heater has not been configured yet, then it defaults to using the thermistor associated with that heater.

    What the heck does this mean?



  • Is your SSR hooked up the right way? When I first set mine up I had the polarity backwards and it wouldn't heat when I tried to tune it. I flipped the leads going into it and it's been fine ever since.



  • @craig said in M307 vs. M301:

    Pretty easy. Any reason you can think of that the RepRap Configutor I was directed to by Duet 3d doesn't work?

    The configurator will set the heaters up with M301 commands because it has not kept up with firmware changes. M307 is now the command to use for heater set-up.

    See: https://duet3d.dozuki.com/Wiki/Gcode#Section_M307_Set_or_report_heating_process_parameters

    Bang-bang mode on the bed heater often leads to Z banding in prints. PID regulates the temperature which prevents that type of Z banding in the prints, and is built into the firmware, so there's really no reason not to use it. All you have to do is turn it on and configure it.

    How many heaters does your printer use, and which connections are you using on the board for them? Which thermistor connections are you using?

    I just set up my machine with a Duet Ethernet board about a week ago.



  • @craig said in M307 vs. M301:

    If the M305 command for a real heater does not specify a sensor channel and the heater has not been configured yet, then it defaults to using the thermistor associated with that heater.

    What the heck does this mean?

    Well it kind of means what it says. The sensor channel is the "X" parameter and you can change it to use some channel other than it's default. On the same page, a bit further down it says "Xnnn Heater ADC channel, or thermocouple or PT100 adapter channel; defaults to the same value as the P parameter"



  • @mrehorstdmd My printer is a delta with 330 mm non-moving bed. It is heated by 120 volt 800w heater on an SSR. My experience is that using PID values will over switch the SSR and kill it. On my current printer I use the bang bang method with no problems.



  • As @Craig said, one should never use PID/PWM with a relay - a mechanical relay will burn the contacts if you draw a large enough current through it and make a lot of noise until it stops working; for SSR you also don't wan't PWM signals, since most of them are 0-crossing relays (they switch off when the current cross over the 0 mark - in AC), which means it can at the fastest switch off at double the frequency of your mains (since it crosses the 0 mark 2 times in each wave), and PWM runs at KHz or MHz.

    The banding issue mentioned above is specific for hot-ends, which ideally should be run with PID/PWM. For the heatbed, Bang Bang is good (that is how I run mine, even using the internal Mosfet for the heatbed, with sub 1C fluctuations).



  • @jacotheron Thanks for the confirmation and info!



  • According to the wiki, M307 has an F parameter that allows you to control the PWM frequency.



  • Quote from the Wiki ...

    "When using PID to control the bed heater, RepRapFirmware uses a low PWM frequency (10Hz) so as to be compatible with all standard types of SSR."

    https://duet3d.dozuki.com/Wiki/Choosing_a_bed_heater

    Been using an SSR in PID mode on my 240v 800 Watt bed heater for about 2 years - no probs.



  • Another confirmation: I'm using a 600MM Diameter 110/120V mains 1400 Watt heater on a delta, via an SSR. Low Voltage side of SSR is wired to Duet heater terminals (screw terminals). Heater is stuck directly to the bottom of 6mm thick 608mm diameter glass. No aluminum at all. Temps are VERY stable, and heating is quick.

    My M307 is all defaults:

    M307 H0
    Heater 0 model: gain 90.0, time constant 700.0, dead time 10.0, max PWM 1.00, calibration voltage 0.0, mode bang-bang, inverted no, frequency default

    0_1530201499812_IMG_1493.JPG


 

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.