Commit graph

264 commits

Author SHA1 Message Date
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
Scott Lahteine ccddc280be Apply three more commits 2015-04-12 22:47:44 -07:00
Scott Lahteine 27cb90da8b IsStopped / IsRunning inline 2015-04-08 00:56:19 -07:00
Scott Lahteine e502144eda Fixup formatting of last commit 2015-04-06 21:28:14 -07:00
Richard Miles 1a5293c2ce Prevents MINTEMP / MAXTEMP when no heaters present
This commit checks whether or not HEATER_0 is in use, and if not, skips
the MIN / MAX temperature checks.
2015-04-05 22:27:14 +01:00
Scott Lahteine b0f198c153 heater_index above its use 2015-04-04 06:18:08 -07:00
Scott Lahteine 60f8e0386f More thermal runaway states 2015-04-04 05:45:36 -07:00
Scott Lahteine f9dbd73652 Fix tr_target_temperature type - float! 2015-04-04 05:25:53 -07:00
Scott Lahteine a3e129e091 Merge pull request #1801 from thinkyhead/fixup_probing
Minor optimizations
2015-04-03 22:30:01 -07:00
Natealus a6ba40ae48 Compiling error temperature.cpp with multiple extruders defined
It wouldn't compile because of this line in temperature.cpp it turns out
it was just a stray ( that didn't line up with the previous lines so I
just made it in line with the rest and it compiled fine.
2015-04-03 23:09:31 -06:00
Scott Lahteine fc3c76fc16 Fix #1800 2015-04-03 22:04:42 -07:00
Scott Lahteine 9ba55baa5b Track target temperature separately for each heater 2015-04-03 19:42:40 -07:00
Scott Lahteine 528e32a1d4 Fix timeout in thermal_runaway when temperature is set higher 2015-04-03 19:34:55 -07:00
Scott Lahteine b98ebd517e disable / enable_all_steppers functions 2015-04-03 19:25:22 -07:00
Scott Lahteine c756b4cf07 Comment tweak 2015-04-02 06:11:03 -07:00
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
2015-04-02 05:10:14 -07:00
AnHardt 488666832b Remove the previously introduced () 2015-04-01 13:40:05 +02:00
AnHardt 3f2e863206 Improve conditions for HAS_TEMP
and use them in temperuture.h

Flattened the if structure - the preprocessor is doing the work - not the Arduino. Arduino.
2015-04-01 02:56:14 +02:00
AnHardt 85f8a26ba4 Fix MIN&MAX temperatures again
replaced GE0 with th matching GEX in the second row.
added some ()
2015-04-01 00:48:04 +02:00
Scott Lahteine 571652c49b Fix LCD click
- Make the default LCD click sound more pleasant
- Fix warnings about bed temperature runaway
2015-03-31 01:41:24 -07:00
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.
2015-03-30 01:58:46 +02:00
Scott Lahteine ba871e46bf Fix compiler warnings
- Patched up for most included configurations
2015-03-27 20:29:05 -07:00
Scott Lahteine df02b992b0 Fix redundant_temperatrure_raw setting 2015-03-27 16:37:22 -07:00
Scott Lahteine ce485175eb Give all temp arrays 4 indices 2015-03-27 16:11:28 -07:00
Scott Lahteine 410f64782a Always 4 temp sensors 2015-03-26 16:22:21 -07:00
Scott Lahteine ad05a726c1 Merge pull request #1691 from AnHardt/PID_dt
Move definition of PIDdT back to temperature.h
2015-03-25 21:22:39 -07:00
AnHardt f680e509c4 Enclosed error-messages for TEMP_SENSOR_1_AS_REDUNDANT in PSTR() 2015-03-25 23:26:06 +01:00
AnHardt ac81b4084f Make variables and function static. 2015-03-25 21:37:15 +01:00
AnHardt 01cc97a3c3 Corected condition for PIDdT 2015-03-25 12:08:23 +01:00
AnHardt 94330705c7 Move definition of PIDdT back to temperature.h
make it unconditional
remove all definitions in the 'Configuration.h's
remove form 'Conditionals.h'
2015-03-25 11:51:41 +01:00
AnHardt dd0067afa6 Fix MAX6675 again and introduce set_current_temp_raw()
to make the temperature-code work again with Arduino 1.0.6.

Sorry could not make an extra block on base level.
2015-03-25 11:08:24 +01:00
Scott Lahteine 0d81abe1c9 Merge branch 'Development' into config_testing
Latest upstream commits
2015-03-23 21:13:04 -07:00
Scott Lahteine fc53e43de6 Don't test raw temp for MAX6675
- Remove test of raw temp for thermistor 0 when using MAX6675
- Longer `raw_temp_value` array for `TEMP_SENSOR_1_AS_REDUNDANT`
2015-03-23 20:55:48 -07:00
Scott Lahteine 1fac388664 Revert measurement loop 2015-03-23 15:18:22 -07:00
Scott Lahteine 6bdee87be3 Cleanup temperature code
- Get rid of unused temp states in the ISR, resulting in more frequent
temperature reading with fewer sensors
- Shrink code slightly in min/max testing
2015-03-23 00:27:29 -07:00
Scott Lahteine 15eb5d35a2 Merge branch 'Development' into config_testing
Latest upstream commits
2015-03-21 15:42:45 -07:00
Scott Lahteine 3703694e30 Fix temperature min/max test
- Base tests on all thermistors/thermocouples, not just heater 0
2015-03-21 14:23:43 -07:00
Scott Lahteine 63d5d28085 Merge branch 'Development' into config_testing
Latest upstream changes
2015-03-20 04:15:18 -07:00
Scott Lahteine 670006b919 Remove invariant code from Configurations
- Add `Conditionals.h` with calculated configuration values
- Add `SanityCheck.h` with checks for configuration errors
- Remove equivalent code from all configurations
- Move error checks from some sources to `SanityCheck.h` also
- Fix initialization of count_direction in stepper.cpp
2015-03-19 22:22:23 -07:00
AnHardt 47c1ea72af Merge https://github.com/kieranc/Marlin into PIDdebug
Conflicts:
	Marlin/temperature.cpp

Cleaned merge conflict.

Codeposition had changed.
Variable pid_input had vanished.

Signed-off-by: AnHardt <github@kitelab.de>
2015-03-20 00:07:36 +01:00
AnHardt 28b1c37dea Fix for #1612 2015-03-15 21:35:33 +01:00
Scott Lahteine bb4cb1b15a Merge pull request #1606 from thinkyhead/cleanup_stepper
Cleanup of stepper.cpp
2015-03-15 06:05:08 -07:00
Scott Lahteine c37f7d15c9 - Rename WRITE_E_STEP for consistency
- Add BIT and TEST macros
- Add _APPLY_ macros to stepper.cpp to help with consolidation
- Consolidate code in stepper.cpp using macros
- Apply standards in stepper.cpp
- Use >= 0 instead of > -1 as a better semantic
- Replace DUAL_Y_CARRIAGE with Y_DUAL_STEPPER_DRIVERS
2015-03-14 04:28:22 -07:00
Scott Lahteine cb57fc727d Declare pid_output for PIDBEDTEMP 2015-03-13 20:19:51 -07:00
Scott Lahteine 3d6deb9bdf Simplify manage_heater
- Make separate get_pid_output(e) and get_pid_output_bed() function
- Reduce size of manage_heater function
- Hopefully work around linker errors
2015-03-13 19:49:41 -07:00
Scott Lahteine e3ca9137b5 Fix missing temp_error declarations
- Fix for #1591 replacing #1595
2015-03-11 16:38:42 -07:00
AnHardt 3024f6c706 Undubble MSG_MIN &MSG MAX 2015-03-06 00:25:44 +01:00
Scott Lahteine dfb38874f8 Some suggested changes for #1555 2015-03-03 00:48:20 -08:00
Scott Lahteine 1a7b0d9a37 Redo HAS_* macros to fix define error 2015-02-26 01:14:59 -08:00
Scott Lahteine 864dddc878 Macros to the top, a few HAS_* macros 2015-02-26 00:33:30 -08:00
Scott Lahteine fd1ea9d56f Move literal strings to language files 2015-02-24 23:03:08 -08:00
Scott Lahteine aa9c1f1bed Better name for ADC macro 2015-02-24 05:38:10 -08:00
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)
2015-02-24 04:46:11 -08:00
Scott Lahteine e3fd3e8fa4 Fix typos in checkExtruderAutoFans 2015-02-20 00:08:59 -08:00
Natealus ea9e49b20d ARRAY_BY_EXTRUDERS 4th hotend PID parameters 2015-02-12 00:56:47 -07:00
kieranc 0a19109476 Enable PID debugging for heated bed 2015-02-10 14:11:44 +01:00
Natealus f4b0a40abb Additional fixes to temperature.cpp and found another missing line
Looks like INVERT_E3_DIR was missing in the configuration.h also as I
did a test compile with 4 extruders and Azteeg X3 Pro defined. So I also
added those lines too. Additional formatting to make the comments line
up better in that section.
2015-02-08 15:43:58 -07:00
Natealus 697ee2dc50 Compiling errors with 4 Extruders defined
Here were a few changes that I had to make/add lines for the 4th hotend.
A compiling problem in the Temperature.cpp and missing lines in
configuration.h and configuration_adv.h. I added these lines in all of
the example configs too.
2015-02-08 01:05:05 -07:00
MagoKimbra 3021f7f743 Fix PID_dT
Add PID_dT in temeprature.cpp
2015-01-25 17:56:14 +01:00
MagoKimbra ef5959a705 Fix Temperature
Githun insert this line when i merge with actual Branch development...
2015-01-24 13:49:29 +01:00
MagoKimbra 3d4ee6c868 Merge branch '4th-extruders' of https://github.com/MagoKimbra/Marlin into 4th-extruders
Conflicts:
	Marlin/temperature.cpp
2015-01-24 13:41:15 +01:00
MagoKimbra 986e723eeb Add 4th extruder 2015-01-24 13:37:58 +01:00
Scott Lahteine f16bdd2ff2 Borrow from Ultimaker to fix MAX6675 SPI conflict
Changes to temperature.cpp from Ultimaker fork, intended to address
#1226 and #1227
2015-01-24 03:49:15 -08:00
MagoKimbra 0ebf896070 Add 4th extruder 2015-01-23 23:13:06 +01:00
Mark Hindess 0ce252ba7a This ifdef is for bed code so should use bed constants for testing.
Without this fix, the code wont compile with extruder but without bed
runaway protection defined.
2015-01-23 16:30:13 +00:00
daid 53f971095d Revert "Reduce PROGMEM warnings" 2015-01-16 16:48:22 +01:00
galexander1 d4880a9e60 Revert "Move Sd library out into library" 2015-01-15 18:52:10 -05:00
Bo Herrmannsen 4b51b5a46d Merge pull request #1357 from odewdney/SDlib
Move Sd library out into library
2015-01-15 10:56:07 +01:00
odewdney f84ff4ba7d Move SD Fat library out of main src 2015-01-13 13:31:55 +00:00
Bo Herrmannsen ab074dac17 Merge pull request #1344 from grob6000/independent_pid
Independent PID parameters for each extruder
2015-01-13 12:10:37 +01:00
Bo Herrmannsen d4a665694a Merge pull request #1350 from odewdney/Development
Reduce PROGMEM warnings
2015-01-13 11:26:50 +01:00
odewdney 538859669d Removing compiler warnings for progmem 2015-01-11 18:14:21 +00:00
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.
2015-01-11 13:50:17 +11:00
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)
2015-01-10 16:35:12 +11:00
Dino Del Favero 038fccd7a1 I have added some code in the "temperature.cpp" for have the possibility of control the time of the states with the heater drived by relays, with this feature now it is possible use PID function in conjunction with relay to control the temperature. I have made some tests and the temperature stay always in the range of +-1°C from the setted temp.
There is the possibility of turn on this features adding "#define SLOW_PWM_HEATERS" in Configuration.h
2015-01-06 18:32:17 +01:00
Philippe L 30248214c7 temp runaway: proper cast to prevent any overflow. 2015-01-04 14:23:31 +01:00
Alexander Hirzel ae12ad0d6c Fix typo, PID_BED_POWER -> MAX_BED_POWER 2015-01-02 01:38:03 -05:00
alexborro 80b17ab573 Merge pull request #1285 from drf5n/PID_CI_v2
temperature.cpp: Fix typo of MAX_BED_PID to MAX_BED_POWER.
2015-01-01 22:56:21 -02:00
David Forrest 625860f086 temperature.cpp: Fix typo of PID_MAX to MAX_BED_POWER for the bed. 2015-01-01 19:24:42 -05:00
David Forrest 6583bb781d temperature.cpp: Fix typo of MAX_BED_PID to MAX_BED_POWER. 2015-01-01 19:11:42 -05:00
Bo Herrmannsen 0d957872a0 Merge pull request #1234 from gregrebholz/issue_1069
Fixes #1069.  Added "auto fan" checks to PID_autotune.
2014-12-28 10:12:08 +01:00
David Forrest 984177c40c temperature.cpp:Add PID Conditional integration on heated bed. 2014-12-27 15:26:09 -05:00
David Forrest c9b8435749 heater.c: Limit PID I term with conditional integration. 2014-12-27 15:26:09 -05:00
Greg Rebholz 7ecb7cbd46 Added "auto fan" checks to PID_autotune 2014-12-23 23:50:00 -05:00
Denis Chertykov b086394178 Fix syntax errors in #ifdef. 2014-12-20 19:33:43 +03:00
Scott Lahteine f83d0f2a68 Defines for electronics boards
Added boards.h which contains defines for all the board numbers, plus
some shorthand macros for less typing.
2014-12-18 13:59:31 -08:00
Erik van der Zalm 058e446531 Merge pull request #1037 from filipmu/Filament-Sensor
Support for a filament diameter sensor
2014-10-11 22:56:01 +02:00
Filip Mulier 62db9848d3 Improvements and bug fixes in sensor delay buffer for filament sensor code
Improvement to avoid reinitializing delay buffer with every print. Fixed
issues in buffer indexing and memory out of bounds due to floating point
imprecision.  Simplified the code by avoiding conversion to standard
diameter and 1cu mm extrusion, which caused complications in determining
mm extruded.
2014-08-16 06:50:13 -05:00
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.
2014-08-06 19:30:57 -05:00
Grogyan 82606354dd Update temperature.cpp
Enables both SD card and MAX6675 to talk with each other
Fixes also issue #750
2014-07-05 17:17:17 +12:00
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.
2014-06-30 15:22:49 -03:00