1
0
mirror of https://github.com/MarlinFirmware/Marlin.git synced 2024-11-27 22:08:02 +00:00
Commit Graph

478 Commits

Author SHA1 Message Date
Scott Lahteine
193a0e9273
pid_autotune parity with 2.0.x 2017-11-03 03:26:47 -05:00
Rowan Meara
39cc36d3f1 [1.1.x] M303 thermal runaway protection (#8209)
* Added M303 thermal runaway protection

Currently, thermal runaway protection is not available during M303.
Therefore, if someone plugs the thermistors in incorrectly and goes to
autotune their printer, the printer temperature could runaway and damage
could occur.

* Replace removed line, clarifying its logic
2017-11-03 03:16:39 -05:00
Rowan Meara
9850ba0cbd [1.1.x] Fix M303 thermal protection #8103 (#8126)
* Fixed M303 thermal protection

The temperature sanity checking logic was not being applied during M303
(pid autotuning) because instead of setting a target temperature, it
directly manipulated the pwm values.  When PIDTEMP/PIDTEMPBED is
enabled, PWM values rather than the target temperature determine whether
the heater is on.  I changed this to look directly at the PWM amount
when pid is enabled.

* Turn off heaters on M303 error

Currently, PID autotuning stops if it overshoots the temperature by 20C
or if if the temperature does not change for 20 minutes and it times
out.  I added calls to disable the heaters in these scenarios.

* Removed unnecessary if statement.

Added changes suggested by GMagician.

* Update temperature.cpp

* Update temperature.cpp

* Update temperature.cpp
2017-10-29 04:34:47 -05:00
Scott Lahteine
662105c1b6 ADC sensor fix inspired by 'Evgen2' on Twitter 2017-10-14 02:39:13 -05:00
Scott Lahteine
bbb94b8f68 babystepping tweak 2017-09-27 00:12:20 -05:00
Scott Lahteine
e337df2e98 Miscellaneous tweaks to serial outputs, code cleanups 2017-08-23 18:32:58 -05:00
Scott Lahteine
b0173ccdb9 Drop extra initializers for vars initialized by EEPROM code 2017-07-20 22:57:49 -05:00
João Brázio
2065591daf Add support for BQ heated bed kit with Hephestos 2 2017-07-07 03:10:38 -05:00
Bob-the-Kuhn
9651d01e1a Add Skynet/ANET A10 support 2017-06-24 19:07:03 -05:00
Scott Lahteine
a9f8e518bf Fix FILAMENT_WIDTH_SENSOR infinite loop issue
Addressing #6992 and #5851
2017-06-23 14:53:01 -05:00
Scott Lahteine
6c45d0fd81 Apply maths macros and type changes ahead of HAL 2017-06-19 22:57:42 -05:00
Scott Lahteine
7769a22064 Tweaks to temperature code 2017-06-15 15:25:23 -05:00
Thomas Moore
e47029199e Remove ADVANCED_PAUSE_FEATURE requirement for PROBING_HEATERS_OFF (#7000)
* Remove ADVANCED_PAUSE_FEATURE requirement for PROBING_HEATERS_OFF

* Add HEATER_IDLE_HANDLER conditional
2017-06-12 00:22:31 -05:00
Scott Lahteine
dde8bb7c8b Fix extrude_min_temp compiler warning 2017-06-10 20:07:36 -05:00
Scott Lahteine
e94f79ccea Patch some serial macros 2017-06-09 17:17:23 -05:00
Scott Lahteine
b7dc4d9973 Save 92b PROGMEM, 14b SRAM with extruder auto fan 2017-06-07 16:07:38 -05:00
Scott Lahteine
efc198f952 Spacing, const, comments 2017-06-07 16:07:38 -05:00
Bob-the-Kuhn
c34d7a29a6 fix redefinition errors for redundant_temperature
Removing redundant_temperature from public section and leaving it in the
private section
2017-06-03 16:40:14 -05:00
Scott Lahteine
b0eae68f57 Prevent bed temperature being set too high 2017-05-28 11:11:17 -05:00
Thomas Moore
fb5e0ffe16 Unify M600 and M125 pause features (#6407)
* Unify M600 and M125 pause features
* Cleanup per thinkyhead's comments
* Rename filament_change_menu_response to advanced_pause_menu_response
* Include HAS_BED_PROBE in QUIET_PROBING
* Update gMax example file
* is_idle() is out of scope without the braces
* Convert FT-i3-2020 to Advance Pause names...
* Allow pause even if not printing
2017-05-26 13:01:02 -05:00
Scott Lahteine
34cfbc90cd Use new attribute macros in more places 2017-05-22 17:38:58 -05:00
Scott Lahteine
8a0a5cfccc Temp-related cosmetic changes 2017-05-21 04:49:25 -05:00
Scott Lahteine
b29dbbd5e4 Use uint16_t for temps 2017-05-21 04:48:53 -05:00
Scott Lahteine
11104f177b Apply const in BABYSTEPPING 2017-05-09 12:37:23 -05:00
Scott Lahteine
081bf1f879 Patch #else / #endif comments 2017-05-09 12:37:23 -05:00
Scott Lahteine
71396f77d3 Cleanups following recent commits 2017-05-08 14:23:01 -05:00
Scott Lahteine
a6dafb058e Small reduction in error code size 2017-05-08 13:58:09 -05:00
Scott Lahteine
a1e04942a2 Cleanup to software PWM variables 2017-05-08 13:51:45 -05:00
Brian
6cb0fa4128 Cleanup previous implementation of new quiet probing
Saves a few lines of code.
2017-05-08 08:13:46 -04:00
Brian
faa270071d Improve BLTOUCH_HEATERS_OFF functionality
- rename to PROBING_HEATERS_OFF
 - move heater pausing functionality into thermalManager
   - add variables, pause(), ispaused(), other functions
 - add fan pausing functionality -> PROBING_FANS_OFF
 - add probing_pause() wrapper
 - move pausing into do_homing_move() and do_probe_move() to minimize quiet time and so other probe types can benefit
 - example configs
2017-05-07 16:22:08 -04:00
Scott Lahteine
6854f08d22 Shut down autotemp in disable_all_heaters 2017-05-03 20:54:26 -05:00
Scott Lahteine
2658cc707a Treat temperature as integer, when possible 2017-05-03 17:27:25 -05:00
Scott Lahteine
096b927102 Minor optimization of FILAMENT_WIDTH_SENSOR 2017-04-26 06:24:23 -05:00
Scott Lahteine
5bdb0b567d Cosmetic patches 2017-04-26 06:24:23 -05:00
Scott Lahteine
ff0018e287 Format hex values as uppercase 2017-04-21 21:42:41 -05:00
benlye
0a2f60fab4 Make spi.h inclusion conditional
spi.h is only needed if HEATER_0_USES_MAX6675 is defined, so making its inclusion conditional on HEATER_0_USES_MAX6675 being defined.
2017-04-15 16:22:42 +01:00
Scott Lahteine
7f950a80c0 Make ADC sensor reading frequency adjustable 2017-04-09 22:18:21 -05:00
Paweł Stawicki
44cdebb8f1 Add software spi support for max6675 2017-04-09 06:44:53 -05:00
Scott Lahteine
832064e4f2 Implementation changes to support 5 extruders 2017-04-07 10:46:37 -05:00
Scott Lahteine
699310d1d2 Fix: Thermal runaway if nonexistent bed's temp is set 2017-04-02 11:48:10 -05:00
Scott Lahteine
25a6bfa7ed Add and apply WITHIN macro 2017-03-31 09:27:48 -05:00
Scott Lahteine
499f9e04e1 Marlin: Temperature soft-PWM cleanup 2017-03-29 06:37:27 -05:00
Scott Lahteine
043be2856b Use "& 0x3F" instead of "% 64" 2017-03-24 04:13:50 -05:00
Stefan Brüns
6a040a6967 SOFT_PWM: Do not switch off heaters twice on pwm_count wraparound
After wraparound, pwm_count <= pwm_mask holds, thus soft_pwm_X <= pwm_count
guarantees soft_pwm_X < pwm_mask is true, and the heater will be switched
off in the first branch.
Do not evaluate the pwm conditions a second time, this reduces the
instruction count (4 instructions per PWM) and text size (6 byte).

Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
2017-03-24 04:13:50 -05:00
Stefan Brüns
0a74774af1 soft_pwm: avoid useless refetches of pwm_count
The compiler is not able to reuse the value of pwm_count, but reloads it
on every evaluation, if is stored in a static variable, as it cannot prove
it will be unchanged. A variable with local scope may not be modified from
the outside, so its value can be reused.
Doing so reduces text size and instruction count.

Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
2017-03-24 04:13:50 -05:00
Stefan Brüns
35a55d5757 SOFT_PWM: Implement dithering if SOFT_PWM_SCALE is 1 or more
If dithering is enabled, the remainder of the soft_pwm_X duty value at
turnoff time is added to the next cycle. If e.g. the duty is set to 9 and
SCALE is set to 2, the PWM will be active for 8 counts for 3 cycles and
12 counts on each fourth cycle, i.e. the average is 9 cycles.

This compensates the resolution loss at higher scales and allows running
fans with SOFT_PWM with significantly reduced noise.

Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
2017-03-24 04:13:36 -05:00
Stefan Brüns
2aed66a955 temperature: Fix SOFT_PWM off by one
A 128 step PWM has 127 intervals (0/127 ... 127/127 duty). Currently, a
PWM setting of 1/127 is active for 2/128, i.e. double the expected time,
or, in general n+1/128 instead of n/127.
Fixes issue#6003.

Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
2017-03-24 04:13:36 -05:00
Scott Lahteine
6618346148 Patches to work around "register spill" compiler bug 2017-03-18 11:35:21 -05:00
Scott Lahteine
77491dd924 Remove extraneous whitespace 2017-03-18 03:17:39 -05:00
Scott Lahteine
2defb1d748 Use SET_INPUT_PULLUP where appropriate 2017-03-07 23:43:33 -06:00
Scott Lahteine
fea0d3f20f Endstop and temp-isr general cleanup 2017-03-06 02:07:07 -06:00
Scott Lahteine
aef08e8780 Compact some macro substitutions 2017-03-06 02:07:07 -06:00
Sebastianv650
271ced7341 Prevent re-entering of temperature ISR
If Marlin is inside the temperature ISR, the stepper ISR is enabled. If
a stepper event is now happening Marlin will proceed with the stepper
ISR. Now, at the end of the stepper ISR, the temperatre ISR gets enabled
again. While Marlin proceed the rest of the temperature ISR, it's now
vulnerable to a second ISR call.
2017-02-14 07:52:03 -06:00
Scott Lahteine
7176de8605 Merge pull request #5814 from thinkyhead/hotend_loop_always
Make HOTEND_LOOP more consistent, let compiler optimize it
2017-02-12 04:13:14 -06:00
Scott Lahteine
e44294bb4d Make HOTEND_LOOP more consistent, let compiler optimize it 2017-02-12 02:50:38 -06:00
Bob-the-Kuhn
0369f97ec1 guaranteed BLTouch detection
To guarantee that the 5mS pulse from a BLTouch is recognized you need to
have the endstops.update() routine run twice in that 5mS period.

At 200 steps per mm, my system has problems  below a feedrate of 120 mm
per minute.

Two things were done to guarantee the two updates within 5mS:
1) In interrupt mode, a check was added to the temperature ISR.  If the
endstop interrupt flag/counter is active then it'll kick off the endstop
update routine every 1mS until the flag/counter is zero.  This
flag/counter is decremented by the temperature ISR AND by the stepper
ISR.

2) In poling mode, code was added to the stepper ISR that will make sure
the ISR runs about every 1.5mS.  The "extra" ISR runs only check the
endstops.  This was done by grabbing the intended ISR delay and, if it's
over 2.0mS, splitting the intended delay into multiple smaller delays.
The first delay can be up to 2.0mS, the next ones 1.5mS (as needed) and
the last no less than 0.5mS.

=========================================

BLTouch error state recovery

If BLTouch already active when deploying the probe then try to reset it
& clear the probe.

If that doesn't fix it then declare an error.

Also added BLTouch init routine to startup section
2017-02-11 12:01:34 -06:00
esenapaj
069c6b38dd Remove unnecessary tabs and spaces 2016-12-16 00:21:32 +09:00
Sebastianv650
912704a0d8 Enable ISRs inside temperature ISR
to capture chars at UART at 250000 baud.
2016-11-28 20:08:50 +01:00
Scott Lahteine
00662b8635 Minor babystep cleanup patches 2016-11-03 23:31:45 -05:00
Scott Lahteine
24f6612551 Reduce and optimize endstop_monitor code 2016-10-31 08:08:03 -05:00
Bob-the-Kuhn
c7f1f0dae6 Add endstop monitor & make pins report pretty 2016-10-31 08:08:02 -05:00
Scott Lahteine
9cbedab91b Use DPM where possible 2016-10-26 18:38:32 -05:00
Scott Lahteine
b6aa894893 Rename auto fan pins and add auto fan flags 2016-10-26 17:51:26 -05:00
Benoit Miller
2aa12d78dc Only issue MAXTEMP when heating 2016-10-24 17:09:29 -04:00
esenapaj
70e287ca8c Extend measuring range of thermocouple for MAX31855 2016-10-23 10:22:39 +09:00
Scott Lahteine
f888597197 Reduce, clean up code for mintemp/maxtemp tests 2016-10-22 10:31:03 -05:00
Scott Lahteine
ad64723354 Move MAX_EXTRUDERS to pins.h 2016-10-22 10:07:51 -05:00
esenapaj
385bd8a4a3 Fix freezing and MINTEMP Error with MAX31855 thermocouple 2016-10-16 07:33:14 +09:00
Scott Lahteine
d41f2bdbd8 Merge pull request #4991 from thinkyhead/rc_max31855_fix
Patches for Stepper DAC and MAX31855
2016-10-10 20:12:06 -05:00
Scott Lahteine
149b8d9e4b Handle MAX31855 error conditions 2016-10-09 17:12:50 -05:00
Scott Lahteine
1e551c0688 Revert "Squashed - Removal of PID functional range" 2016-10-09 16:27:45 -05:00
Scott Lahteine
3752d9aca8 Fix timer comments 2016-10-09 12:11:00 -05:00
Scott Lahteine
00261cbfcb Merge pull request #4933 from thinkyhead/rc_drop_pid_func_range
Squashed - Removal of PID functional range
2016-10-07 15:07:55 -05:00
Scott Lahteine
c63cb45268 Fix thermal runaway timeout 2016-10-05 08:42:39 -05:00
Scott Lahteine
d80a79eb77 Use right-shift instead of / 2, why not? 2016-10-02 07:01:40 -05:00
Rerouter
02fe9cf558 Removal of functional range constraint
Also lined up the >> 1 and / 2 mentioned earlier in the unconstrained I term issue,
2016-10-02 07:01:40 -05:00
Scott Lahteine
761593b74b Cleanup some vars, use of min/max 2016-10-02 06:34:56 -05:00
Rerouter
1a2f1d4974 Update temperature.cpp 2016-09-28 17:36:53 +10:00
Scott Lahteine
16461900c2 Fix for HEATERS_PARALLEL 2016-09-24 05:34:40 -05:00
Scott Lahteine
076f3a8284 unsigned char => uint8_t 2016-09-24 05:23:40 -05:00
Scott Lahteine
6ac9d895ca Tweak Filament Width variables 2016-09-10 13:29:25 -05:00
Scott Lahteine
e9bfca5870 Additional comments for Temperature::isr 2016-08-27 20:12:22 -05:00
Scott Lahteine
37ac540a26 Fix unsigned/signed comparison in fanPin loop 2016-08-24 21:34:30 -05:00
Scott Lahteine
27b80b1dd1 Merge pull request #4667 from thinkyhead/rc_M211_sw_endstop_switch
M211: Enable/Disable Software Endstops
2016-08-21 06:44:00 -05:00
Scott Lahteine
2f223b8c79 Use ABC and XYZ for "3" 2016-08-21 00:10:08 -05:00
Scott Lahteine
01d4703429 PREVENT_DANGEROUS_EXTRUDE => PREVENT_COLD_EXTRUSION
Also improve the documentation of this and related options, and set
EXTRUDE_MINTEMP to 170 everywhere.
2016-08-20 23:35:27 -05:00
Scott Lahteine
3a0a94b21a Always init configured fan pins 2016-08-13 20:38:40 -07:00
Scott Lahteine
c63003ed3e Use matching auto-fan flags 2016-08-13 20:38:40 -07:00
Scott Lahteine
3475fd7b0f Init PWM-able auto fan pins with SET_OUTPUT 2016-08-13 20:38:40 -07:00
Scott Lahteine
abf9696db1 Loop fan-pins based on array size 2016-08-13 20:05:32 -07:00
Scott Lahteine
e88575c8ec Init next_auto_fan_check_ms to zero 2016-08-13 20:05:32 -07:00
Scott Lahteine
b63d70b186 Fix serial output for MBL, M303 2016-08-10 18:49:52 -07:00
Scott Lahteine
b7b5b50a84 Throw bed min temp error only if heating 2016-08-08 22:49:22 -07:00
Scott Lahteine
d3ba878f70 Drop intermediate float in HEATER_0_USES_MAX6675 test 2016-08-08 22:49:22 -07:00
Scott Lahteine
3e8f9ecd1c Extend min/max_temp_error for the bed 2016-08-08 22:49:21 -07:00
AnHardt
aa9b52b2e7 MISO is an input 2016-08-08 20:09:57 +02:00
AnHardt
9ab94bd2c1 fix-babysrepping 2016-08-02 21:06:42 +02:00
Scott Lahteine
63fd1f49a6 PID_EXTRUSION_SCALING, disabled by default 2016-07-31 17:49:34 -07:00
AnHardt
e4942d2163 Switch SD2cadrLib to fastio
Replace all fastDigitalRead/Write() with READ/WRITE()

Define SCK_PIN, MISO_PIN, MOSI_PIN in pins.h if not already defined in the pins_*.h files.

Remove these conditional pin definitions from the pin-files. They are now always defined.

Define separate sets of SPI-pins for AT90USB with and without Teensy support in fastio.h.
Likely this was the main reason for all that confusion about the AT90USB-SPI pins.
2016-07-27 12:40:44 +02:00
Scott Lahteine
2d378fac1b No need to include thermistortables.h in Configuration.h 2016-07-25 22:43:50 -07:00