186 Commits (745d9fe1a4f8aa2c4def122f22bdc689adcdab24)

Author SHA1 Message Date
Robert F-C d5ad7a0814 Rework change to incorporate CONTROLLERFAN
Also refactor extruder auto fan logic to simplify further and now only
check every 2.5 seconds
12 years ago
Robert F-C c3cdaceab3 Merge remote-tracking branch 'upstream/Marlin_v1' into Marlin_v1 12 years ago
Simon Oliver 93f0463b21 Allow Edit menu to call fn after edit; Fix PID Ki and Kd display in menus; Actually use changed PID and Max Accel values
Add new 'callback' edit-menu types that call a function after the edit is done. Use this to display and edit Ki and Kd correctly (removing the scaling first and reapplying it after). Also use it to reset maximum stepwise acceleration rates, after updating mm/s^2 rates via menus. (Previously, changes did nothing to affect planner unless saved back to EEPROM, and the machine reset).

Add calls to updatePID() so that PID loop uses updated values whether set by gcode (it already did this), or by restoring defaults, or loading from EEPROM (it didn't do those last two). Similarly, update the maximum step/s^2 accel rates when the mm/s^2 values are changed - whether by menu edits, restore defaults, or EEPROM read.

Refactor the acceleration rate update logic, and the PID scaling logic, into new functions that can be called from wherever, including the callbacks.

Add menu items to allow the z jerk and e jerk to be viewed/edited in the Control->Motion menu, as per xy jerk.

Conflicts:
	Marlin/language.h
12 years ago
whosawhatsis fd5b7e0cec Separate PID_MAX from BANG_MAX
This allows PID_FUNCTIONAL_RANGE to use a maximum duty cycle higher
than PID_MAX. This is useful for powerful heaters to heat quickly in
bang-bang mode, but use a lower duty cycle that is easier to stabilize
in PID mode.
12 years ago
Robert F-C f1263d3f88 Further reduce code by using precompiler logic 12 years ago
Robert F-C 372e12f83f Implement automatic extruder/cold-end fan control based on temperature
This change allows fan outputs to automatically turn on/off when the
associated nozzle temperature of an extruder is above/below a threshold
temperature.
Multiple extruders can be assigned to the same pin in which case the fan
will turn on when any selected extruder is above the threshold.
It also makes the M42 command compatible with the M106/M107 command.
The majority of the logic in this change will be evaluated by the
compiler at build time (i.e, low code space requirements).
12 years ago
daid303 38ee395ac7 Replace the 1ms delay for 2 nops to get a 100ns delay. #259 12 years ago
oni303 ab09fa4bbf fixed pwm generation at pin D12 and D13 when one of them is used as FAN_PIN on Sanguino, added soft pwm entry for FAN_PIN in temperature.cpp 12 years ago
daid303 08356361ac Fixing a problem with heated beds not working without PID and BED_LIMIT_SWITCHING 12 years ago
daid303 f30b46b2a8 One more fix for #338, I really should get a heated bed to test with. 12 years ago
daid303 65c3f1ffcd Most likely fixing #338 12 years ago
daid303 55ba90ac19 Add PID functional range setting. With high powered heaters the current functional range of 10 degrees causes high overshoots as the PID needs to kick in before the temperature hits 10 degrees below target. 12 years ago
daid303 5ff5cee8ce Fix the sensitive pin definitions, there where analogue numbers in the digital pin list. Also made M42 without a P function on the LED_PIN (which was otherwise a useless pin definition) 12 years ago
daid303 3fb07d9b8d Add MINTEMP/MAXTEMP error to LCD, and fix temperature bug with more then 1 extruder. 12 years ago
daid303 82c8724b33 Fix compile with PID_DEBUG 12 years ago
daid303 52158dffcc Big temperature code update. No longer converts back and forwards between temperature and raw sample value. Reducing complexity, removing code. Also named some variables better. While keeping the safety intact and functionality the same. 12 years ago
daid303 587154c01b Fix the WATCHPERIOD implementation. It did not work correctly in a multi extruder setup, it did not work after 32 seconds after startup (int16 used as millies timestamp). And it did not work if you gave an M104 or M109 when the target was already around the target setpoint. So on average, it did not work at all. The new implementation should be robust in detecting a failure to heat up. 12 years ago
daid303 529748894c Minor changes in the temperature code for some cleanup. 12 years ago
daid303 6a9bee27cc Changed the naming of some LCD functions, so the names match better what the function does. Also moved around some prototypes for general cleanup. 12 years ago
daid303 94ea26ff46 Some minor changes on code style. And a bugfix where the counters for positioning in the stepper where wrong depending on compiler settings. (Caused strange values to reported back with M114 and endstop triggers). Also fixed compiling with FWRETRACT enabled. 12 years ago
daid303 72586eb30a Solved few warnings. 12 years ago
daid303 06b58a9c4f First cleanup. Moved all code to cpp files, so there are no dependencies on pde files. And no more odd requirement to cat files together. (Still need to fix the Makefile). Also cleaned up some defines and made defines upper case as by C coding conventions. 12 years ago
Mark Finn d197f8504b clean up and changes from testing 12 years ago
Mark Finn eb06a886c4 missed 12 years ago
Mark Finn 04631d2250 cleanup for pull 12 years ago
Mark Finn 9698f4ea64 bed pid
Conflicts:

	Marlin/Configuration.h
12 years ago
ZetaPhoenix e8c92e0a95 Missing #else in temperature.cpp prevented reading bed temp when TEMP_BED_PIN <7. Thanks to Leland Wallace for helping me track this down via "Sesame Street" coding (what is not like the other) 12 years ago
Dabble63 6b45e9f167 Add Duty Cycling to the Heater Bed 13 years ago
Erik van der Zalm e31bef31ad Limit PID autotune PWM to PID_MAX 13 years ago
Erik van der Zalm 1874cb71a6 Added option to increase the FAN PWM frequency. 13 years ago
Logan Bowers 3eacb4c16d Wrap the call to turn off the bed heater in a #if to prevent a compile error on boards that do not have a bed heater 13 years ago
Bernhard 33bb044d7c fixed catsting to (int)e in serial error messages.
see https://github.com/ErikZalm/Marlin/issues/148
13 years ago
Erik van der Zalm 67cf105bc6 Fixed AUTOTEMP (M109 S215 B260 F1 starts autotemp)
Changed SLOWDOWN. IF this does not work ok OLD_SLOWDOWN is the old algo.
13 years ago
Erik van der Zalm 8aee9d51b6 Disabled disable_heater in PID_autotune. 13 years ago
Daid 414408b2d0 Fix for wrong systax in #ifdef. 13 years ago
Erik van der Zalm cf7c8c458f Fixed MAX6675 13 years ago
Erik van der Zalm 63aec3c56e Replaced Kill by Stop. If the printer is stopped. Fix the error and use M999 to restart.
Moved the PID_dT in the Ki and Kd calculation from the configuration.h to temperature.cpp
13 years ago
Erik van der Zalm 33f5697888 PPID tune exports more constants. 13 years ago
Erik van der Zalm 15ad923310 Removed !!!. Stupid arduino bootloader can't handle this. 13 years ago
Erik van der Zalm c077316b2b Added PID autotune. (experimental)
M303 Starts autotune. Wait till the Kp Ki and Kd constants are printed.
Put these values in Configuration.h
13 years ago
haxar 79a466ca26 make analog2tempBed return a precise celsius reading for BED_USES_THERMISTOR, complementing changes to analog2temp in d15f01e 13 years ago
Erik van der Zalm b48d67ce10 Fixed homing 13 years ago
Phil Hord 740f0c7690 Add explicit #define for bogus temp override
The code to ignore the "bad thermistor reading failsafe"
suicide function depends on the existing of the PS_ON pin
feature.  But in some boards this shouldn't be the case
Fix this by adding an explicit definition to make our
intentions more clear and separable.
13 years ago
Erik van der Zalm 4fbda5c3f5 Merge remote-tracking branch 'daid/Marlin_v1' into Test 13 years ago
Daid 73344e69c1 Added temperature offset/gain settings for AD595. 13 years ago
Christian Thalhammer d309565b56 Merge remote-tracking branch 'upstream/Marlin_v1' into Marlin_v1
Conflicts:
	Marlin/Configuration.h
13 years ago
Erik van der Zalm 11518a987f merged with triffid fork 13 years ago
Christian Thalhammer 14702089ee -disable TEMP Min MAX Kill while using PS_ON Pin
ON GEN7 there is no temperature reading when power is off.. so Marlin
would kill itself. There seems to be an update from "Traumflug" on GEN7
using standby VCC for thermistors.
13 years ago
Erik van der Zalm 9f139d6e0e Added MAX6675 support. (Thanks to gregfrost)
Needs some work to remove the blocking in read max6675.
13 years ago
Michael Moon 8d0916af13 allow Marlin to actually compile with Makefile pulled from Sprinter and a few other modifications 13 years ago
Bernhard 3c1a4aac2b header file simplification 13 years ago
Bernhard 415aadf704 lcd panel bed support
advance and ultipanel not any more in default config
13 years ago
Erik van der Zalm 84d9cf7339 merging 13 years ago
Erik van der Zalm e017228569 Merged multiple extruder support.
Soft PWM. (Sanguinololu can also have PID temperature control)
Interrupt save WRITE for addresses > 0x0FF
13 years ago
Bernhard 88ee053af0 heating up santity, formarly knows as "watchdog", but renamed due to the existance of the real watchdog, works now. 13 years ago
Denis B 4fd75dc813 Working version of multiple extruders (up to 3)
- The temperature control is pretty much complete
  (not sure what to do w/ autotemp though)
  Changed the pins assignment to clearly separate bed and extruder heaters
  and temp sensors, changed a bit how termistor tables are handled.
- The steppers control is rudimentary
  (only chanages what pins it uses depending on the active_extruder var,
   but that's enough for switching extruder in the start.gcode in the
   the profiles)
- Tested only w/ RAMPS 1.4
13 years ago
Bernhard 7714b98da7 solved some compiler warnings that are now visible in arduino 1.0.
Found a couple of unused variables, that I commented.
Tried to solve the program memory warning message, and failed.
13 years ago
Bernhard 59205ac5fc preliminiary implementation for the early heating finish.
Might be replaced by something more clever, e.g. by erik, and does not yet support the second extruder or the bed.
its kind of not so cool, because you need 6 more ints.
Maybe isheating() should use the degrees directly, as it is not used in time-critical anyways.
Then it would be much easier. to have the offsets without additional variables.
13 years ago
Erik van der Zalm dd5296ad4d Fixed temperature reading bug.
(When using the lower and upper adc input bank)
13 years ago
Erik van der Zalm 959d82e81e Small temperature disable bug. 13 years ago
Erik van der Zalm 2e43f9c809 Changed min max temperature code. 13 years ago
Erik van der Zalm 6841a10446 Fixed max/min temperature bug 13 years ago
Erik van der Zalm ff69e0a772 Changed max/min temp init. Removed second uart from sabguino core 13 years ago
Bernhard Kubicek a9c7da06e3 and changed ultipanel to have the mm/sec and not mm/min
Merge branch 'Marlin_v1' of https://github.com/ErikZalm/Marlin into Marlin_v1

Conflicts:
	Marlin/Marlin.pde
	Marlin/ultralcd.h
13 years ago
Bernhard Kubicek c57906b627 fixed bug with adjusting ki in realtime. 13 years ago
Bernhard Kubicek ff592b056a heater power repair. 13 years ago
Bernhard Kubicek e9adfa27b5 re-enabled heaterpower as storage for the current storage of the heater PWM duty cycle.
the M301 now returns the current PID settings of the machine.
M105 returns heating pwm duty cylce as "@:"
13 years ago
Bernhard Kubicek ba8a53a40f Streaming.h is gone. It conflicted with PROGMEM. And saving memory is more important than nicer code, imho 13 years ago
Bernhard Kubicek ab154d5592 project progmem finished: total change with ultipanel: 2456 byte free ram initial. now: 4374 ram. 13 years ago
Bernhard Kubicek 72ace55e6a better visibility of public/private/imported variables 13 years ago
Erik van der Zalm e3af73ee0c Thermistor name problem 13 years ago
Bernhard Kubicek 79d1bfb5c0 made many possible variables static, so they cannot be used extern. 13 years ago
Bernhard Kubicek 1d171e9e52 reformating and some minor bugs/things found on the way. 13 years ago
Bernhard Kubicek 900e0c9bf2 overworked the serial responses. Quite difficult, since many texts are Pronterface protocol. 13 years ago
Bernhard Kubicek 1740a83e11 correcting commit errors. 13 years ago
Bernhard Kubicek 2afb7bd4cf refactured temperature.cpp so that there are now abstract functions to access temperatures. 13 years ago
Erik van der Zalm 2e8e8878e5 Corrected temp variables. 13 years ago
Erik van der Zalm 04d3b5537f Merge remote-tracking branch 'origin/Marlin_v1' into Marlin_v1
Conflicts:
	Marlin/Configuration.h
	Marlin/EEPROMwrite.h
	Marlin/Marlin.h
	Marlin/Marlin.pde
	Marlin/temperature.cpp
	Marlin/temperature.h
	Marlin/thermistortables.h
13 years ago
Erik van der Zalm d15f01e1b4 Temperature changes 13 years ago
Bernhard Kubicek ea86a5e10f moved the variables in the ISR, thats the most normal use case of static. 13 years ago
Bernhard Kubicek b9ea0651ec Revert "this is not working. Do you maybe know why?"
This reverts commit 8bcdb9f5f0.
13 years ago
Bernhard Kubicek 8bcdb9f5f0 this is not working. Do you maybe know why? 13 years ago
Bernhard Kubicek 40e8081623 changed end of line to windows, which seems to be the majority of developers main platform. 13 years ago
Bernhard Kubicek 00674af3a8 merge from the branch bkubicek/Marlin/zalmmerge 13 years ago
Erik van der Zalm bf879ceaa9 Added thermistor tables 13 years ago
Erik van der Zalm 094afe7c10 Merged Marlin, Marlin non gen6 and Ultimaker changes 13 years ago