Commit graph

356 commits

Author SHA1 Message Date
Scott Lahteine 0c7c45063b PID_ADD_EXTRUSION_RATE based on MarlinKimbra 2016-05-20 16:15:05 -07:00
Scott Lahteine 8218558953 Update comments, rename next_ping_ms, followup to #3797 2016-05-19 16:44:57 -07:00
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