Commit Graph

354 Commits

Author SHA1 Message Date
Scott Lahteine
58339aea5f Merge pull request #3769 from jbrazio/bugfix/iteration-invokes-undef-behavior
Bugfix: iteration invokes undefined behavior
2016-05-15 20:36:25 -07:00
Scott Lahteine
2f14934c65 Fix checkExtruderAutoFans
Make sure to only set the fan state once when extruders share a fan
2016-05-15 18:54:37 -07:00
João Brázio
ecd490ed49
Bugfix: iteration invokes undefined behavior 2016-05-15 22:45:08 +01:00
Scott Lahteine
4d6bb52b26 Don't try to enable unused auto fans
Addressing #3743
2016-05-14 14:46:14 -07:00
Scott Lahteine
9b92bb8f31 Set the initial state based on target temperature 2016-05-08 17:25:44 -07:00
Scott Lahteine
6b13c430ae The TRReset state is not needed with fall-through 2016-05-08 17:01:46 -07:00
Scott Lahteine
c2522ce1f5 Fallthru in thermal runaway test when TRState changes 2016-05-08 16:51:33 -07:00
esenapaj
9186be7b83 Fix compilation error in debugging code
Fix compilation error in Thermal Runaway debugging code
2016-05-09 01:57:21 +09:00
Scott Lahteine
084f6b5b44 Temperature singleton class 2016-05-04 19:42:12 -07:00
Scott Lahteine
85e732d5fd Fix BABYSTEPPING, add it to Travis test 2016-05-02 20:01:00 -07:00
Scott Lahteine
60c6efb75c Merge pull request #3653 from thinkyhead/rc_bed_temp_watch_merge
Introduce temp watch protection for the bed
2016-05-01 13:58:28 -07:00
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
2016-05-01 13:12:51 -07:00
Scott Lahteine
96f51f400f Planner singleton class 2016-04-30 17:26:50 -07:00
Scott Lahteine
5e4e535ce8 Stepper and Endstops as singleton objects 2016-04-30 17:26:50 -07:00
Scott Lahteine
3db5a75f30 Merge pull request #3568 from thinkyhead/rc_various_fixes
General code cleanup, improved naming, etc.
2016-04-19 20:53:38 -07:00
Scott Lahteine
8a2587f017 Read size for MAX6675 from sizeof(max6675_temp) 2016-04-19 19:57:32 -07:00
Scott Lahteine
ba84d8d091 Allow setting PIDTEMP and PIDTEMPBED together or apart 2016-04-19 18:09:29 -07:00
Scott Lahteine
a26d70e932 Apply indentation to gcode_M303, PID_autotune 2016-04-18 19:04:45 -07:00
Scott Lahteine
ba66336503 Output error for disabled M303 2016-04-18 19:03:45 -07:00
Scott Lahteine
8429ae6beb Merge pull request #3525 from thinkyhead/rc_fix_pid_params_per_extruder
Fix broken PID_PARAMS_PER_EXTRUDER
2016-04-16 19:49:42 -07:00
Scott Lahteine
d4a848c72a Fix broken PID_PARAMS_PER_EXTRUDER
As noted by @FalloutBe in #3519
2016-04-16 19:19:40 -07:00
esenapaj
832e1c1f2a Follow-up and fix for the PR #3453(ELAPSED / PENDING for rollover-safe time checking)
・Add more "UL" suffix
・Restore removed "UL" suffix
2016-04-17 07:50:02 +09:00
Scott Lahteine
c5a8755cc0 Fix a messed up ELAPSED instance 2016-04-11 18:48:27 -07:00
Scott Lahteine
386140f361 Test time difference in safe way 2016-04-10 18:09:31 -07:00
Scott Lahteine
d7cbb2eec9 Merge pull request #3403 from jbrazio/feature/stopwatch
Print job timer rework
2016-04-07 19:18:03 -07:00
Scott Lahteine
865dcf3fb4 Fix FILAMENT_WIDTH_SENSOR measurement
Only measure and store filament width when E is going forward.
2016-04-06 19:48:04 -07:00
João Brázio
eb61051556 Rework the print job timer to use the stopwatch class 2016-04-06 04:34:03 +01:00
Scott Lahteine
d24f14a799 Add HAS_TEMP_HOTEND define 2016-04-03 16:18:49 -07:00
Scott Lahteine
1a79b13b7a FILAMENT_SENSOR -> FILAMENT_WIDTH_SENSOR 2016-03-29 20:54:31 -07:00
Scott Lahteine
ab412a2153 PIDTEMPBED on #endif 2016-03-25 23:50:28 -07:00
Scott Lahteine
5955a3063f Sanity check PIDTEMPBED plus BED_LIMIT_SWITCHING 2016-03-25 23:50:28 -07:00
Scott Lahteine
0da744b7b0 Further cleanup of comments, partial Doxygen-style
Following up on #3231
2016-03-25 00:45:56 -07:00
jbrazio
5e5d250832 Added gplv3 header to all Marlin files 2016-03-24 18:01:20 +00:00
Scott Lahteine
04fa9d4f47 Make Autotune options into Menu Edit Items 2016-03-24 02:00:08 -07:00
WPBack
e3f583a3be Fixes for PID AutoTune from menu
Fixes for #3189

Setting a temp is still missing
2016-03-24 01:47:30 -07:00
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.
2016-03-24 01:46:37 -07:00
Scott Lahteine
06332f20be Merge pull request #3113 from jbrazio/bugfix/3061-stop-print-time-counter
Stop print timer with M105/M109
2016-03-20 17:05:07 -07:00
Scott Lahteine
4bbea5124d Support for multiple PWM fans 2016-03-19 03:10:18 -07:00
Scott Lahteine
2ef49a9d53 Wrap DEFAULT_Ki, DEFAULT_Kd, PID_dT
Addition to #3140
2016-03-15 03:49:44 -07:00
Scott Lahteine
1c384930f3 Merge pull request #3140 from thinkyhead/rc_fix_macro_expansion
Wrap macros to prevent bad expansions
2016-03-15 00:25:34 -07:00
Scott Lahteine
30c3a21d1f Merge pull request #3112 from thinkyhead/rc_support_MAX31855 2016-03-13 03:30:48 -07:00
Scott Lahteine
f9ded2a7c4 Wrap macros to prevent bad expansions 2016-03-12 22:38:55 -08:00
jbrazio
a645860431 All print timer related activity now uses print_job_start(), print_job_timer() or print_job_stop() 2016-03-12 07:16:39 +00:00
Scott Lahteine
81aab828e2 Fix a "Heating failed" error
Addressing #3085. If the target_temperature is set directly it never invokes or disables the timer set in `start_watching_heater`, so after _stopping a print_ or turning off _all heaters_ you could get a “Heating failed” error.
2016-03-11 05:07:48 -08:00
Scott Lahteine
27f244ba2c Support MAX31855 as Temperature Sensor -3 2016-03-10 02:49:54 -08:00
jbrazio
986b508ff7 Print timer now stops when it sees the last extruder temperature being shutdown 2016-03-08 18:11:02 +00:00
Scott Lahteine
ff13070b59 Use _BV macros, patch up others 2016-03-06 05:51:55 -08:00
Scott Lahteine
209f5f21e0 Use macros where possible
Apply `constrain`, `NOMORE`, `NOLESS` and `CRITICAL_SECTION` macros
wherever possible.
2016-03-06 05:51:55 -08:00
Scott Lahteine
3a3d358df9 Fix Printrboard with LCD (redo)
Based on #2860 - rebased for RCBugFix
2016-03-05 22:13:00 -08:00
Blue-Marlin
0631541166 Fix disable_all_heaters() for MAX6675 2016-03-02 14:17:23 +01:00
AnHardt
57da1b8497 Host parseble output for M109, M190 and M303
Make the output of M105 more similar to Repetier.
Make the text-print pert of M105 an extra function to make it reusable. `print_heaterstates()`
Use `print_heaterstates()` in M019, M190 and M303
2015-12-07 15:37:53 -06:00
Richard Wackerbarth
956418c674 Kc is also a multi-PID parameter 2015-11-23 06:08:01 -06:00
Scott Lahteine
dbd4c17096 Init Kp, Ki, Kd to 0 2015-11-12 00:03:22 -06:00
Scott Lahteine
b4af4441c5 Clean up watchdog impl. 2015-11-12 00:03:22 -06:00
Scott Lahteine
9bdab4f3a8 Clean up "else" and other spacing 2015-11-12 00:03:21 -06:00
Richard Wackerbarth
25d636c9e0 Compiler issues (PR#2696) 2015-11-11 23:52:11 -06:00
AnHardt
47401ec97b MSG_EXTRUDER_SWITCHED_OFF was renamed to MSG_REDUNDANCY
in language.h, but was not renamed here. If TEMP_SENSOR_1 is enabled as redundant then
an error is thrown that MSG_EXTRUDER_SWITCHED_OFF is not defined.

Originaly by @12dstring
2015-10-08 10:45:11 -05:00
Scott Lahteine
0c7f7ebcfb Styling adjustments (PR#2668 & PR#2670)
Keep "astyled" reformatting
2015-10-03 22:02:45 -05:00
Scott Lahteine
bc50db9cf6 Implement PID_ADD_EXTRUSION_RATE 2015-09-12 07:53:20 -05:00
Scott Lahteine
51e89a269c Overridable Options - Part 9 (PR#2561)
Apply `ENABLED` / `DISABLED` macros to temperature-related files.
2015-07-31 01:05:55 -05:00
AnHardt
d17f7ebc8a Multiply WATCH_TEMP_PERIOD by 1000UL (PR#2535)
instead of 1000.  Else we get errors with times over 32 seconds.
2015-07-27 20:30:53 -05:00
Scott Lahteine
e4c01f1c7e Simplify init with ARRAY_BY_EXTRUDERS1 macro (PR#2507) 2015-07-26 20:40:27 -05:00
Scott Lahteine
77e80ef367 Require extruders for thermal code 2015-07-16 16:36:30 -05:00
Scott Lahteine
3bde4f4855 Require temp sensor for bed thermal protection 2015-07-16 16:36:30 -05:00
ayberkozgur
7268d46508 Always calculate extruder temperature PID d term (PR#2432) 2015-07-13 13:22:26 -05:00
Scott Lahteine
a274769f4f Clean up spacing and comments
Also clean up some trailing spaces in a few other sources
2015-06-15 20:20:31 -05:00
Scott Lahteine
1d94d098bf Formatting tweaks as part of fixing issue 1497 2015-06-14 19:57:27 -05:00
Scott Lahteine
e602c28ad9 Set auto fan pins to OUTPUT during init
Fixes the problem of these pins being left in INPUT state, as described
in #1497
2015-06-14 19:57:27 -05:00
MagoKimbra
eb81982fcd Fix error next command in autotune (PR#2274)
Now send only temperature for T or B, but not send OK.
Host interprets the line to show the right temperature, but not in
response to M105 then stop and send commands until it ends the autotune.
2015-06-12 07:10:38 -05:00
AnHardt
b1404a0743 fix thermal protection state machine target temp. V2
If the target temperature is changed then it would always stay in the reset state.
Thanks to @tonokip.

Replaces #2119
2015-06-02 12:26:21 +02:00
Jonathan Bastien-Filiatrault
e86f2342c0 Separate the maximum integral power for the bed from PID_INTEGRAL_DRIVE_MAX / PID_MAX.
My PID_INTEGRAL_DRIVE_MAX was at 96, which was insufficient for my bed
to reach its intended temperature. The head requires a low maximum power since
I run on 24 volts and it has a somewhat low thermal mass.
2015-05-28 11:48:04 -04:00
AnHardt
da246f5cb1 Activate BED_MINTEMP error.
And call _temp_error() directly for ERR_MAXTEMP_BED to avoid the only one time use of bed_max_temp_error().

Includes #2156.
2015-05-25 13:23:19 +02:00
AnHardt
959da98d8e Call kill() only once when triggered by a temperature error
to avoid stack overflow when called from interrupt.

Some clean up for calls of disable_all_heaters().
'disable_all_heaters()' is called in kill() and again when 'killed' is already set inside _temp_error().
2015-05-25 12:44:03 +02:00
Scott Lahteine
063881b5bd Fix a couple of doubled semicolons 2015-05-21 18:15:29 -07:00
Scott Lahteine
00716d0ca0 Small start_watching_heater adjustment 2015-05-21 16:44:49 -07:00
AnHardt
4422365a53 Merge branch 'Development' of https://github.com/MarlinFirmware/Marlin into _temp_error 2015-05-20 23:34:39 +02:00
AnHardt
4113762062 Merge pull request #2130 from AnHardt/kill2
Add a string parameter to kill()
2015-05-20 23:32:51 +02:00
AnHardt
120d4c7a8c Merge remote-tracking branch 'origin/kill2' into _temp_error 2015-05-20 21:25:32 +02:00
AnHardt
cb6e82dc60 Change from kill() to kill(const char *)
in temperature.cpp
2015-05-20 21:22:48 +02:00
AnHardt
9d13942278 Use new kill() with parameter. 2015-05-20 21:18:52 +02:00
AnHardt
2990c6c45f Use new kill_() for _temp_error()
instead of stop(). We really want to require a reset and no chance to set a new temperature.
2015-05-20 14:03:14 +02:00
AnHardt
70163dafb9 Use _temp_error() for all errors thrown by different mechanisms
Now ending in an endless loop.
Tidy up the output format.
We now get:
ERRORTEXT ", system stopped! Heater_ID: " HEATERID

Where ERRORTEXT can be:
"Heating failed"
"Thermal Runaway"
"MAXTEMP triggered"
"MINTEMP triggered"
and soon
"Thermal Jump"

HEATERID can be
0, 1, 2 ,3 , "bed"

This messages are always followed by the common:
"Printer stopped due to errors. Fix the error and use M999 to restart. (Temperature is reset. Set it after restarting)"
2015-05-18 20:26:25 +02:00
AnHardt
97ca1b3f4d Name magic value 20 to MAX_OVERSHOOT_PID_AUTOTUNE
to make it better findable.
2015-05-18 14:15:29 +02:00
Scott Lahteine
f65833931d Formatting tweaks 2015-05-13 02:02:19 -07:00
Scott Lahteine
d693e0f378 Use WATCH_TEMP_INCREASE + TEMP_HYSTERESIS + 1 as difference limit 2015-05-12 18:30:38 -07:00
Scott Lahteine
6697a8f375 Watch the heater a little longer 2015-05-12 18:22:47 -07:00
Scott Lahteine
5693a6e3c9 Fix heating error message 2015-05-12 18:17:13 -07:00
Scott Lahteine
8332a15899 Fix testing of runaway options in temperature.cpp 2015-05-10 23:03:24 -07:00
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
2015-05-10 22:52:01 -07:00
Scott Lahteine
9b3d4380d3 Only watch the heater that was set 2015-05-10 20:26:45 -07:00
Scott Lahteine
28c87ec81b Disable all heaters on temp error 2015-05-08 23:17:25 -07:00
Scott Lahteine
54deb9eea3 Enable WATCH_TEMP_PERIOD by default 2015-05-08 22:36:02 -07:00
Scott Lahteine
deedb00c18 Document WATCH_TEMP_PERIOD 2015-05-08 22:25:51 -07:00
Scott Lahteine
a120bf3fe4 Latest upstream commits 2015-04-27 22:40:19 -07:00
Scott Lahteine
ae53b3cdc3 Fix the M303 S-1 report text 2015-04-27 22:25:00 -07:00
Scott Lahteine
0fca084ea6 Make EEPROM reproducible in GCode
With these changes the output of `M503 S0` is all you need to restore
the EEPROM. Building on this it is straightforward to save and restore
the EEPROM state using the SD card or external GCode file.

- Added `M145` to set “heatup states” for the LCD menu
- Added `M420` to toggle Mesh Bed Leveling
- Added `M421` to set a single Mesh coordinate
- Extended `Config_PrintSettings` with added M codes
- Cleaned up some comments here and there
2015-04-26 20:56:33 -07:00
paclema
581685a231 Added new PID autotune info, to make easy copy & paste results to marlin 2015-04-17 11:15:09 +02:00
Scott Lahteine
09d60e0128 Naming and code comments 2015-04-13 17:17:36 -07:00
Scott Lahteine
257a907456 Fix typo in next_bed_check_ms 2015-04-12 23:17:28 -07:00
Scott Lahteine
e4b1e8651b next_ vars faster than previous_
- Change some `previous_` time vars to `next_` so an add only happens
at intervals
- Fix `HEATER_0_USES_MAX6675` polling too frequently, or not at all
2015-04-12 23:06:50 -07:00