Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
temperaturecontrol [2018/03/13 18:48]
66.243.238.211 Add a note about not using max31855 as read only
temperaturecontrol [2018/06/04 21:27] (current)
51.6.19.20 [Runaway detection]
Line 67: Line 67:
 A given controller board only has a given number of [[http://​en.wikipedia.org/​wiki/​Analog-to-digital_converter|ADCs]] ( analog ( temperature ) to digital ( Smoothie ) converter ) capable pins. A given controller board only has a given number of [[http://​en.wikipedia.org/​wiki/​Analog-to-digital_converter|ADCs]] ( analog ( temperature ) to digital ( Smoothie ) converter ) capable pins.
  
-On the [[smoothieboard]] for example, there are 4 thermistor inputs, labelled from **T0** to **T3**, and corresponding in the same order to the pins **0.23** to **0.26**. T0 is usually used for the hotend, and T1 for ​the bed.+On the [[smoothieboard]] for example, there are 4 thermistor inputs, labelled from **T0** ​(or th1) to **T3** ​(or th4), and corresponding in the same order to the pins **0.23** to **0.26**. T0 is usually used for the hotend, and T1 for ​the bed.
  
 Thermistor inputs are not polarized, the direction you connect them in on your board is not important. Thermistor inputs are not polarized, the direction you connect them in on your board is not important.
Line 76: Line 76:
  
  
-^ Smoothieboard thermistor input name ^ T0 ^ T1 ^ T2 ^ T3 ^ +^ Smoothieboard thermistor input name ^ T0 (th1) ^ T1 (th2) ^ T2(th3) ^ T3(th4) 
-|| Pin for configuration ​|| 0.23 || 0.24 || 0.25 || 0.26 ||+| Pin for configuration | 0.23 | 0.24 | 0.25 | 0.26 |
  
 ~~CLEARFIX~~ ~~CLEARFIX~~
Line 104: Line 104:
 <​html><​a name='​PT100'></​a></​html>​ <​html><​a name='​PT100'></​a></​html>​
  
-Note PT100 as used by the e3d amplifier is supported in current edge, but not in the current pre built binary firmware+Note PT100 as used by the e3d amplifier is supported in current edge, but not in the current pre built binary firmware.
  
-===== configuration ​and usage+===== Configuration ​and usage
  
 {{page>​PT100}} {{page>​PT100}}
Line 190: Line 190:
 The component turning the current on and off can be a [[http://​en.wikipedia.org/​wiki/​MOSFET|mosFET]] ( like on [[Smoothieboard]] ) or a [[https://​en.wikipedia.org/​wiki/​Solid-state_relay|Solid-State Relay]] for example. The component turning the current on and off can be a [[http://​en.wikipedia.org/​wiki/​MOSFET|mosFET]] ( like on [[Smoothieboard]] ) or a [[https://​en.wikipedia.org/​wiki/​Solid-state_relay|Solid-State Relay]] for example.
  
-This is controlled from the board running Smoothie using a GPIO pin+This is controlled from the board running Smoothie using a GPIO pin
  
 In the case of mosfets, on a [[Smoothieboard]],​ a given pin is connected to a given mosfet, and you have to use that specific pin to control that specific mosfet. ​ In the case of mosfets, on a [[Smoothieboard]],​ a given pin is connected to a given mosfet, and you have to use that specific pin to control that specific mosfet. ​
Line 227: Line 227:
 But as you are defining your own custom temperature controller, you have to choose what gcode will be used to control it, Smoothie doesn'​t know what exactly it's controlling. But as you are defining your own custom temperature controller, you have to choose what gcode will be used to control it, Smoothie doesn'​t know what exactly it's controlling.
  
-So for example if this is a hotend, it will look something like this for the "​standard"​ gcodes : +So for example if this is a hotend, it will look something like this for the "​standard"​ gcodes :
  
 <​code>​ <​code>​
Line 322: Line 322:
 === Watchdog === Watchdog
  
-The watchdog is a peripheral inside the microcontroller. Smoothie must tell it Â« Hey, I'm alive and I have not crashed ​» on a regular basis. ​+The watchdog is a peripheral inside the microcontroller. Smoothie must tell it « Hey, I'm alive and I have not crashed ​» on a regular basis. ​
  
 If Smoothie stops doing that, the watchdog knows Smoothie has crashed, and resets the board, which turns all heaters off.  If Smoothie stops doing that, the watchdog knows Smoothie has crashed, and resets the board, which turns all heaters off. 
Line 332: Line 332:
 === Maximum temperature detection === Maximum temperature detection
  
-You activate this safety check ( and you should ) by adding the following to your configuration : +You activate this safety check ( and you should ) by adding the following to your configuration :
  
 <​code>​ <​code>​
Line 351: Line 351:
 The most likely cause for this problem, is that a heater mosfet is stuck being always active. If this is the case, Smoothie can not control that heater anymore, and nothing the firmware can do can solve the issue, and you are on your way to a fire. The most likely cause for this problem, is that a heater mosfet is stuck being always active. If this is the case, Smoothie can not control that heater anymore, and nothing the firmware can do can solve the issue, and you are on your way to a fire.
  
-This is why you need to give Smoothie a second way to cut power : either ​by having a signal that allows you to turn the power supply off, or a solid state relay capable of cutting all power to all mosfets. See documentation bellow for how to achieve this.+This is why you need to give Smoothie a second way to cut power : either ​by having a signal that allows you to turn the power supply off, or a solid state relay capable of cutting all power to all mosfets. See documentation bellow for how to achieve this.
  
 === Runaway detection ​ === Runaway detection ​
Line 389: Line 389:
 <callout type="​warning"​ icon="​true"​ title="​Cool down timeout">​ <callout type="​warning"​ icon="​true"​ title="​Cool down timeout">​
  
-**NOTE** ​ If you set <​kbd>​runaway_cooling_timeout</​kbd>​ then understand that if you set a bed temp when the bed is already hotter than the setting it will need to cool down within the time period you set. If the bed has a lot of thermal mass then this may take a long time or actually never happen, and a timeout will occur eventually. This is why it is disabled by default. However if you do reduce the bed temperature during a print you **MUST** set this value otherwise you will get a runaway detection error if the new temp is lower then the current temp.+**NOTE** ​ If you set <​kbd>​runaway_cooling_timeout</​kbd>​ then understand that if you set a bed temp when the bed is already hotter than the setting it will need to cool down within the time period you set. If the bed has a lot of thermal mass then this may take a long time or actually never happen, and a timeout will occur eventually. This is why it is disabled by default. However if you do reduce the bed temperature during a print you **MUST** set this value otherwise you will get a runaway detection error if the new temp is lower then the current temp. This is also true of setting the hotend temperature lower while printing, then you also need to set this timeout correctly.
 </​callout>​ </​callout>​
  
Line 417: Line 417:
  
 If the Smoothieboard is being a bit too strict with detecting the temperatures,​ you can add <​kbd>​runaway_error_range</​kbd>​ as a parameter ( optional ), it is 1° by default meaning acceptable temperature detected can be +/- 1° of the set temp. If your printer tends to not stick close enough to the right temperature,​ increase this value. If the Smoothieboard is being a bit too strict with detecting the temperatures,​ you can add <​kbd>​runaway_error_range</​kbd>​ as a parameter ( optional ), it is 1° by default meaning acceptable temperature detected can be +/- 1° of the set temp. If your printer tends to not stick close enough to the right temperature,​ increase this value.
 +
 +==== Recovering from HALT state
 +
 +When such an error occurs, the machine goes into the HALT state.
 +
 +If you want to save a print that has taken long without having to start it all over again, you can try this : 
 +
 +0. Click the pause button in pronterface
 +1. Exit halt by sending $X (or M999)
 +2. Raise head by jogging
 +3. Home XY
 +4. look at last Z height in pronterface
 +5. jog head to the last known Z
 +6. Turn heaters back on wait for temp to be reached
 +7. click the resume button in Pronterface.
 +
 +**NOTE** This will not always work well as several gcodes will have been lost, so if you were on the infill it will probably be ok, if you were on the perimeter then it may be a problem.
 +
 +<callout type="​warning"​ icon="​true"​ title="​Fix the problem first">​
 +If you get an error, it means something is wrong. You shouldn'​t just keep printing as if nothing happened. You need to understand what happened and fix it before continuing, or you are risking your safety.
 +
 +This "​resume"​ information is provided only assuming you fixed the problem before resuming. Please be safe.
 +</​callout>​
  
 === Safety cutoff === Safety cutoff
Line 436: Line 459:
 However, we need to tell Smoothie to **also** turn the power off, which it can not do without a special hardware/​power-supply/​wiring setup. However, we need to tell Smoothie to **also** turn the power off, which it can not do without a special hardware/​power-supply/​wiring setup.
  
-There are two ways to do this : either have a power supply which you can instruct to shut down ( most computer ​ATX power ​supplies support this, some larger 48V supplies do too ), or have a solid state relay control the power.+There are two ways to do this : either have a power supply which you can instruct to shut down ( most computer ​ATX power ​supplies support this, some larger 48V supplies do too ), or have a solid state relay control the power.
  
 ==== Power supply controlled safety cutoff ==== Power supply controlled safety cutoff
  
-First thing we need to do is configure a switch module to be able to control the power supply : +First thing we need to do is configure a switch module to be able to control the power supply :
  
 {{page>​power-supply-control}} {{page>​power-supply-control}}
Line 464: Line 487:
 </​code>​ </​code>​
  
-Now connect the <​kbd>​1.30</​kbd> ​GPIO pin ​( for example ) to the positive signal input on the SSR, and <​kbd>​Ground</​kbd>​ ( from [[http://​smoothieware.org/​pinout|anywhere on the board]] ) to the negative signal input on the SSR.+Now connect the <​kbd>​1.30</​kbd> ​GPIO pin ​( for example ) to the positive signal input on the SSR, and <​kbd>​Ground</​kbd>​ ( from [[http://​smoothieware.org/​pinout|anywhere on the board]] ) to the negative signal input on the SSR.
 And connect the SSR's switching terminals in series with the main heater power input. And connect the SSR's switching terminals in series with the main heater power input.