87 Commits (167f4aa0cc4da91741df12aaa50389bfcdedab30)

Author SHA1 Message Date
Scott Lahteine 182c8d7f8f Dyze High Temp Thermistor Support 9 years ago
Scott Lahteine ee0983ab57 Further reduction when HOTENDS == 1 9 years ago
Scott Lahteine b72238f406 Invariant get_pid_output with HOTENDS < 2 9 years ago
Scott Lahteine dcb8ec32ee Fix compile error with watch_bed_next_ms 9 years ago
Scott Lahteine cd441ce652 SINGLENOZZLE: EXTRUDERS versus HOTENDS 9 years ago
Scott Lahteine 85512e9372 Drop FORCE_INLINE from temperature.h
`FORCE_INLINE` seems to have no effect on code generation with standard
optimization.
9 years ago
Scott Lahteine 78fb02a5ad Apply static to Temperature class 9 years ago
Scott Lahteine 0e55c06f7d Rename CORE_AXIS_3 to NORMAL_AXIS 9 years ago
Scott Lahteine 5172d4ba40 COREYZ stepper, planner, endstop, babysteps 9 years ago
Scott Lahteine 6b13c430ae The TRReset state is not needed with fall-through 9 years ago
Scott Lahteine b65ea98d6b Localize babystepping in the Temperature class
So that `ultralcd.cpp` doesn’t need to worry about the details.
9 years ago
esenapaj 1a97442d19 Follow-up the PR #3643(Temperature singleton)
Follow-up the PR #3643(Temperature singleton)

・Change from fanSpeedSoftPwm[0] to thermalManager.fanSpeedSoftPwm[0] in planner.cpp
It fix compilation error when FAN_SOFT_PWM is enabled.

・Remove declaration of setExtruderAutoFanState() in temperature.h
Because that function was abolished.

・Change from babystepsTodo to thermalManager.babystepsTodo in ultralcd.cpp
It fix compilation errors when BABYSTEPPING is enabled.
9 years ago
Scott Lahteine 084f6b5b44 Temperature singleton class 9 years ago
Scott Lahteine 60c6efb75c Merge pull request #3653 from thinkyhead/rc_bed_temp_watch_merge
Introduce temp watch protection for the bed
9 years ago
gralco 908229dbb3 Introduce temp watch protection for the bed
When setting the bed temp via M140/M190 if the thermistor does not read an increase of WATCH_BED_TEMP_INCREASE degrees by WATCH_BED_TEMP_PERIOD seconds then it will throw "Error:Heating failed, system stopped! Heater_ID: bed" and call the kill() function.

Conflicts:
	Marlin/Configuration_adv.h
9 years ago
Scott Lahteine 96f51f400f Planner singleton class 9 years ago
Scott Lahteine ba66336503 Output error for disabled M303 9 years ago
Scott Lahteine d4a848c72a Fix broken PID_PARAMS_PER_EXTRUDER
As noted by @FalloutBe in #3519
9 years ago
esenapaj f9e1a0ee6c suppress warnings 9 years ago
Scott Lahteine 1a79b13b7a FILAMENT_SENSOR -> FILAMENT_WIDTH_SENSOR 9 years ago
Scott Lahteine 0da744b7b0 Further cleanup of comments, partial Doxygen-style
Following up on #3231
9 years ago
jbrazio 5e5d250832 Added gplv3 header to all Marlin files 9 years ago
Scott Lahteine 04fa9d4f47 Make Autotune options into Menu Edit Items 9 years ago
WPBack e3f583a3be Fixes for PID AutoTune from menu
Fixes for #3189

Setting a temp is still missing
9 years ago
WPBack 3b3e8a02b5 Initial implementation of PID Autotune Menu Items
Adds the parameter U to M303. If U1 is included , it will use the
PID-values from the auto-tune.
9 years ago
Scott Lahteine 0c7f7ebcfb Styling adjustments (PR#2668 & PR#2670)
Keep "astyled" reformatting
9 years ago
Scott Lahteine 51e89a269c Overridable Options - Part 9 (PR#2561)
Apply `ENABLED` / `DISABLED` macros to temperature-related files.
10 years ago
AnHardt 9b0fa9c309 Changed dependency of start_watching_heater() in setTargetHotend() to THERMAL_PROTECTION_HOTENDS 10 years ago
AnHardt bc0764894a Shift call of start_watching_heater() into setTargetHotend()
to warrant watching is set or reset.

Make setTargetBed() in _lcd_preheat() dependant of TEMP_SENSOR_BED.
Use disable_all_heaters() in lcd_cooldown() and abort_on_endstop_hit.
10 years ago
Scott Lahteine 2445ae3d3a Combine thermal runaway and watch-period
- Make thermal protection for all hotends and/or bed into simple
switches
- Now enable `WATCH_TEMP_PERIOD` when `THERMAL_PROTECTION_HOTENDS` is
enabled
- Move detailed thermal parameters to `Configuration_adv.h`
- Add sanity checks to warn about old configurations
- Change `WATCH_TEMP_PERIOD` to seconds instead of milliseconds
10 years ago
Scott Lahteine 9b3d4380d3 Only watch the heater that was set 10 years ago
Scott Lahteine 54deb9eea3 Enable WATCH_TEMP_PERIOD by default 10 years ago
Scott Lahteine 09d60e0128 Naming and code comments 10 years ago
Scott Lahteine 4c7af484f8 Merge pull request #1787 from thinkyhead/fixup_tr
Fix: thermal_runaway_protection triggered by target temperature increase
10 years ago
Scott Lahteine c747becec1 Merge pull request #1796 from thinkyhead/pidbed_temp_eeprom
Add PIDTEMPBED to EEPROM
10 years ago
Scott Lahteine 713953d8c1 Upstream commits, allow no extruder in M105 10 years ago
Scott Lahteine 424d5495e4 Add PIDTEMPBED to EEPROM 10 years ago
Scott Lahteine 0e8182bbf2 Additional pin tests, cleanup 10 years ago
Scott Lahteine e96df67630 Clarify thermal_runaway_protection
- Add comments documenting `thermal_runaway_protection`
- Add an enum for the thermal runaway states
- Add macros for temperature helper functions
- Fix a glitch with the z probe sled in homeaxis
10 years ago
AnHardt 7b2550a604 Times can't be negative.
cardreader.cpp needs temperature.h for autotempShutdown() when
AUTOTEMP is defined but warns about unused variables.
Unpublished variables by putting them in to temperature.cpp.
10 years ago
Scott Lahteine fe29bdd72b Also fix temperature externs 10 years ago
Scott Lahteine 9c9726d469 Cleanup of temperature code
- Reduce calls to millis()
- General cleanup of manage_heaters
- General cleanup of pid autotune
- Formatting here & there
- Macros to clean up and shrink ISR code (reduced by ~364 lines)
10 years ago
MagoKimbra 986e723eeb Add 4th extruder 10 years ago
grob6000 bf2c923db5 Make multiple PID parameters a config option
* Adds config parameter `PID_PARAMS_PER_EXTRUDER` - allows single PID
parameters to be used where this would be preferable (e.g. dual
identical extruders)
* When disabled, will use `float Kp, Ki, Kd, Kc;` as before.
Preprocessor macros used to switch between.
* ultralcd.cpp defines extra menus for extra parameters only where
required
* M301 reports `e:xx` only if independent pid parameters enabled
* EEPROM structure still leaves space for 3 extruders worth, when undef
will save single parameter to all extruder positions, but only read the
first
* Switching off saves approx 330 B with no LCD enabled, 2634B with LCD
(RRD) enabled: this is significant.
* LCD modifications should be tested.
10 years ago
grob6000 37c7e8300f Independent PID parameters for each extruder
* Variables Kp, Ki, Kd, Kc now arrays of size EXTRUDERS
* M301 gains (optional, default=0) E parameter to define which
extruder's settings to modify. Tested, works with Repetier Host's EEPROM
config window, albeit only reads/updates settings for E0.
* All Kp, Ki, Kd, Kc parameters saved in EEPROM (version now v14), up to
3 extruders supported (same as Marlin in general)
10 years ago
Greg Rebholz 7ecb7cbd46 Added "auto fan" checks to PID_autotune 10 years ago
Denis Chertykov b086394178 Fix syntax errors in #ifdef. 10 years ago
Filip Mulier 85649a4549 Real-time filament diameter measurement and control
This feature allows the printer to read the filament diameter
automatically and adjust the printer in real time.  Added code to read
an analog voltage that represents a filament diameter measurement.  This
measurement is delayed in a ring buffer to compensate for sensors that
are a distance away from the extruder.  The measurement is used to
adjust the volumetric_multiplier for the extruder.  Some additional g
codes (M404, M405, M406, M407) are used to set parameters and turn
on/off the control. g code M221 is updated.  Pins for RAMPS1.4, RAMBO,
and Printrboard are identified for analog input.  The configuration file
is updated with relevant user parameters.
11 years ago
alexborro 43c298a7a9 Add "Thermal Runaway Protection" feature
This is a feature to protect your printer from burn up in flames if it
has a thermistor coming off place (this happened to a friend of mine
recently and motivated me writing this feature).

The issue: If a thermistor come off, it will read a lower temperature
than actual. The system will turn the heater on forever, burning up the
filament and anything
else around.

After the temperature reaches the target for the first time, this
feature will start measuring for how long the current temperature stays
below the target minus _HYSTERESIS (set_temperature -
THERMAL_RUNAWAY_PROTECTION_HYSTERESIS).

If it stays longer than _PERIOD, it means the thermistor temperature
cannot catch up with the target, so something *may be* wrong. Then, to
be on the safe side, the system will he halt.

Bear in mind the count down will just start AFTER the first time the
thermistor temperature is over the target, so you will have no problem
if your extruder heater takes 2 minutes to hit the target on heating.
11 years ago
Cylindric d819c55395 Various typo fixes - only in comments, no code changes. 11 years ago