Commit graph

218 commits

Author SHA1 Message Date
Tim Moore 8ce84fa44f Add temperature-based auto power options (#14397) 2019-06-27 16:28:07 -05:00
Eric Ptak 8934b32f1b Fysetc AIO II / Cheetah STM32F1 (#14407) 2019-06-26 00:40:29 -05:00
mikeshub 1db7013e3b Fix and improve PID loops (#14373)
- Windup guarding was missing. The kludge in place of windup guard is removed. D term filter calculations are simplified to require fewer `float` calculations. Sign change for D term output to make debugging output clearer.
- Use "no overshoot" for bed PID tuning.
2019-06-22 16:52:56 -05:00
Ludy 2290b269dc Unused variable (#14301) 2019-06-18 00:15:41 -05:00
Ludy bd494a6bd6 Update defines for patched temperature macros (#14161) 2019-05-28 17:43:31 -05:00
doggyfan e09d8811c1 Apply grace period to thermistor failure testing (#14167) 2019-05-28 15:36:03 -05:00
Scott Lahteine 605ec0a478 Fix thermistor table warning 2019-05-26 01:30:20 -05:00
Scott Lahteine 48d1bd29cb Shift m before compare to 0 2019-05-25 15:22:15 -05:00
doggyfan 594f6b14be Limit user thermistor to 999, fix thermistor table macro (#14080) 2019-05-21 21:31:05 -05:00
Pavel4e5 3cd19a8ec0 Improve Zonestar keypad responsiveness (#14056) 2019-05-18 20:52:55 -05:00
Scott Lahteine ad4ffa1d2f
Use C++ language supported 'nullptr' (#13944) 2019-05-09 11:45:55 -05:00
Ludy a504366138 Fix probe fan compiling error (#13930) 2019-05-07 14:14:12 -05:00
Stephan 483822f3aa Fix some THERMAL_PROTECTION_CHAMBER issues (#13678) 2019-05-06 19:55:01 -05:00
doggyfan 23a8707ef1 Configurable Thermistor (#13888) 2019-05-06 18:51:06 -05:00
Scott Lahteine 9853331b34 Fix temp init, loosen ADC grace period 2019-05-05 22:55:03 -05:00
Giuliano Zaro e2a77ed881 Bring chamber temp to completion (#13837) 2019-05-04 22:51:47 -05:00
InsanityAutomation 3fcab8dbf1 Option to disable fans during pause (#13820) 2019-05-04 15:50:44 -05:00
Scott Lahteine 2f32a6612d Clean up Temperature::set_fans_paused 2019-05-04 14:36:59 -05:00
Thomas Moore ee243e4edf Fix mixing extruder filament change (#13803) 2019-05-01 21:55:58 -05:00
Kajetan Rzepecki 875e673a8c Add HAL-based thermal protection grace period for all heaters (#13778) 2019-04-21 20:50:32 -05:00
Kajetan Rzepecki 5f70c876ae Fix _temp_error-related compile error (#13768) 2019-04-20 13:57:38 -05:00
Scott Lahteine bddb776ddb Add chamber max-temp check
Followup to #13756
2019-04-19 22:18:55 -05:00
Marcio Teixeira d0c1eee53b Add extra max-temp safety checks (#13756) 2019-04-19 21:37:12 -05:00
Stephan 84273557f9 Move and update heated chamber settings (#13671)
Co-Authored-By: the-real-orca <stephan.veigl@gmail.com>
2019-04-12 15:38:10 -05:00
Roxy-3D 9cee81d47e Option to show babysteps total since G28 (#13580) 2019-04-06 18:04:34 -05:00
Kajetan Rzepecki c9079165ee Fix MAX6675 readout with Hardware SPI (#13530) 2019-03-30 22:31:49 -05:00
Chris Pepper ffc2c2d7c5 Move FAST_PWM_FAN code to HALs (#13491) 2019-03-26 01:03:23 -05:00
Sam Lane a8fa275dc6 Fix Fan 0 responding to all fan speeds (#13444) 2019-03-23 23:00:31 -05:00
Scott Lahteine 49cf92dc36
Extended condition macros (#13419)
Allow `ENABLED`, `DISABLED`, `PIN_EXISTS`, and `BUTTON_EXISTS` to take multiple arguments. Also add:
- Alias `ANY(...)` for `!DISABLED(...)`
- Alias `ANY_PIN(...)` for `PIN_EXISTS(a) || PIN_EXISTS(b) ...`
- Alias `EITHER(A,B)` for `ANY(...)`
- Alias `ALL(...)` and `BOTH(A,B)` for `ENABLED(...)`
- `NONE(...)` for `DISABLED(...)`
2019-03-16 23:43:06 -05:00
Ludy 59353546e8 Fix BUTTON_EXISTS and misplaced comma (#13411)
Fixes #13410 and redeclaration of `BUTTON_EXISTS`
2019-03-16 11:59:12 -05:00
Scott Lahteine 67bee06e43 No patch needed for non-libmaple analogWrite
See https://github.com/pinchies/Marlin/pull/1#issuecomment-471388743
2019-03-13 07:21:10 -05:00
Scott Lahteine f89b375fb9
Fixes and improvements for PWM pins (#13383) 2019-03-13 06:51:15 -05:00
Scott Lahteine 0375e92847 Followup to serial rework
As mentioned in #13370
2019-03-11 16:46:04 -05:00
Scott Lahteine 1f7e220387 Make HAL ISR macros function-like 2019-03-10 20:44:27 -05:00
Scott Lahteine 3419099f0a Clean up whitespace 2019-03-10 19:09:28 -05:00
MoellerDi c36989c39e Fix chamber temperature measurement (#13350) 2019-03-10 09:51:13 -05:00
Scott Lahteine 33a08fc6f7 Fix typos from temperature rework
Followup to #12201
2019-03-10 08:28:16 -05:00
Reece Kibble dbead66988 Allows user to set (almost) any PWM frequency (#12638) 2019-03-08 02:15:42 -06:00
3dlabsio 645ca7af7a M141 Heated Chamber, Temperature rework (#12201) 2019-03-07 02:09:39 -06:00
Scott Lahteine cfdb38eda4
Allow SERIAL_ECHOPAIR to take up to 12 pairs (#13311) 2019-03-05 06:46:19 -06:00
Scott Lahteine 2212da453a
Distinguish between analog/digital auto fans (#13298) 2019-03-05 00:41:31 -06:00
Chris Pepper 38bef9da91 Report auto temp to both serial ports, if available (#13301) 2019-03-03 21:03:48 -06:00
Scott Lahteine 599cdc3f0f Remove dead code from get_pid_output
See #12981
2019-03-03 05:45:20 -06:00
kAdonis 05c2f80826 Fix bug in wait-for-heatup (#13290) 2019-03-02 16:29:10 -06:00
Scott Lahteine 7fde3ed915 Skip hysteresis check when temp is already close to target
To eliminate a long delay during pause, park, and filament change
2019-02-28 14:35:19 -06:00
InsanityAutomation eb4bf93ea4 Add more Babystep options (#13262) 2019-02-27 04:38:56 -06:00
Scott Lahteine 64253e1a58 Followup to serial reform
Reference #13250
2019-02-25 00:20:36 -06:00
Scott Lahteine e15354e387
Simplify serial port redirect (#13234) 2019-02-23 22:53:01 -06:00
Scott Lahteine 0feeef2604 Update copyright in headers 2019-02-12 15:30:11 -06:00
Giuliano Zaro 773fa5c40f Fix define used when PID is off (#13119)
Replaced `PID_MAX` with `BANG_MAX` since it should be the correct define to be used when PID is not enabled.
2019-02-11 17:29:17 -06:00
LinFor 7ee35c2611 PID_MENU option to save PROGMEM in LCD menus (#13095) 2019-02-10 04:03:18 -06:00
AnHardt 0e37fe8776 Apply minimum C in M303 (#13113)
Apply minimum `C` in `M303`. `PID_autotune()` needs to be called with a 'C'ycles-parameter >2 to give meaningful (different from 0) PID-factors. Therefore silently raise C to 3. Fixing one aspect of #13104
2019-02-10 03:54:45 -06:00
Scott Lahteine 3c49396370
Fix compile error with DUE + MAX6675 (#13086) 2019-02-05 22:56:13 -06:00
Nicolas G 6fb4001b58 Add option to disable fan speed slowing in M303 (#13066) 2019-02-04 00:12:41 -06:00
Jiri 24fffb8d93 Fix undefined lcd_tmpfan_speed on NO_LCD_MENUS (#13006) 2019-01-24 16:34:40 -06:00
Ludy acf266fe78 Fix a compile warning, etc. (#12955) 2019-01-19 18:47:29 -06:00
Scott Lahteine 712e23c383 Fix up some whitespace 2019-01-17 18:05:36 -06:00
mikeshub 7fde8d9d1e Add CreatorPro / Makerbot / QIDI / etc and Mightboard RevE support (#12855)
- Fix a bug in MAXxxxx thermocouple temp reporting.
- Add support for 3-wire HD44780.
- Add support for PCA9533 RGB driver.
- Add configuration examples for FlashForge CreatorPro.
2019-01-14 14:29:55 -06:00
InsanityAutomation 082f6a27de ADAPTIVE_FAN_SLOWING extension to hotend thermal protection (#12853) 2019-01-12 00:41:48 -06:00
Scott Lahteine 459f4fef60 Fix Temperature::init bug with HEATER_4_PIN 2019-01-11 22:54:26 -06:00
Marcio Teixeira 60cb36bef3 Misc. improvements (#12747)
* Make ExtUI respect MAXTEMP limits
  - Temperatures are now clamped by MAXTEMP limits rather than arbitrary values.
* Speed up USB init, add status
  - Speed up USB initialization
  - Show status message if init failed
* Enable status messages for EXTENSIBLE_UI
* Adjust max limit to MAX_TEMP - 15
* Misc. tweaks to formatting, const, etc.
2019-01-01 15:17:48 -06:00
Scott Lahteine 9d59a9c840 Followup to #12691 (typo) 2018-12-20 16:38:32 -06:00
Roman Moravčík 4dad489a50 [2.0.x] Limit PID autotune target to maxtemp-15 (#12691) 2018-12-20 15:55:30 -06:00
Scott Lahteine c986239837
A single SERIAL_ECHO macro type (#12557) 2018-11-29 16:58:58 -06:00
Scott Lahteine 03ef2d6c82
Fix "paused" message and M125 called by M25 (#12551) 2018-11-28 19:28:31 -06:00
Scott Lahteine 09d6db491a Fix wait_for_bed compile error 2018-11-25 18:05:41 -06:00
Sinisa Culic 8a0992d921 Fast PWM for controller fan (#12485) 2018-11-23 16:03:39 -06:00
Ludy 1f93d2bcf7 Fix LCD compile error, etc. (#12472) 2018-11-18 20:39:49 -06:00
Marcio Teixeira c1e17037e5 Various fixes for MarlinUI and ExtUI (#12439) 2018-11-17 22:21:44 -06:00
Giuliano Zaro d3605cfc26 Don't start watching heaters when target is 0 (#12453) 2018-11-17 21:53:52 -06:00
Mateusz Krawczuk ca21ac6b9b Support two MAX6675 thermocouples (#8686) 2018-11-16 18:20:33 -06:00
Scott Lahteine d2bb53702a
Optimize target_extruder, ignore T with mixing (#12432)
* Optimize target_extruder, ignore T with mixing
* Give G-code Tn parity with tool_change
2018-11-14 17:33:04 -06:00
Scott Lahteine d82c350de7
Miscellaneous LCD code renaming, reordering (#12430)
* Move special characters to language.h
* Apply some naming standards
* Clean up menu item draw functions
* Rename some Temperature methods
* UI => ExtUI
2018-11-14 13:13:51 -06:00
Scott Lahteine a0c795b097
Encapsulate common display code in a singleton (#12395)
* Encapsulate common LCD code in a singleton
* Depend more UBL code on UBL_DEVEL_DEBUGGING
  - Since most users don't need the debugging on at all times, this helps reduce the default build size for UBL by over 2K, a little closer to fitting on 128K boards.
2018-11-11 12:16:24 -06:00
Scott Lahteine 6093df11dc
Allow G26 to use the active extruder (#12387)
* Make lcd_quick_feedback argument optional
* Add click_to_cancel option to wait_for_hotend/bed
* Have G26 use the active nozzle and wait_for_hotend/bed
* Use wait_for_release in UBL G29
* Add 'T' parameter to G26 for an initial tool-change
2018-11-10 18:07:38 -06:00
Ludy 5ba6607181 Fix keypad-related compile error (#12306) 2018-11-02 22:29:32 -05:00
Giuliano Zaro 323c088356 Restore LED light color after pid tuning (#12082) 2018-11-01 22:04:19 -05:00
Marcio Teixeira 71e19baf69 Fix kill => disable_all_heaters => print_job_timer.stop (#12146)
- Remove `print_job_timer.stop()` from `disable_all_heaters`
- Call `print_job_timer.stop()` for relevant `disable_all_heaters()`.
- Split up `kill()` for watchdog interrupt safety
2018-10-18 21:20:56 -05:00
Giuliano Zaro d43d4e4219 Refactor PRINTER_EVENT_LEDS, apply to M303 (#12038)
Co-Authored-By: Giuliano Zaro <gmagician@users.noreply.github.com>
2018-10-10 21:25:43 -05:00
Scott Lahteine d556dc1865
Fix and improve EEPROM storage (#12054)
* Clean up Temperature PID
* Improve EEPROM read/write/validate
* Group `SINGLENOZZLE` saved settings
* Group planner saved settings
* Group filament change saved settings
* Group skew saved settings
* Group `FWRETRACT` saved settings
2018-10-10 09:45:20 -05:00
InsanityAutomation 74cd6cb4fc Single nozzle filament change (#11994) 2018-10-07 17:06:14 -05:00
Scott Lahteine d6b0fbd771
Use uint8_t for all fan speeds (#12032) 2018-10-07 15:34:41 -05:00
Scott Lahteine 11ac75edcb
Use PGM_P for PSTR pointers (#11977) 2018-09-30 23:44:33 -05:00
Scott Lahteine d89d8fe852 Fix Busy State in temperature.cpp
Fix #11954
2018-09-29 17:03:35 -05:00
Scott Lahteine e4389f7d23
Standard methods to wait for heating (#11949) 2018-09-29 01:44:47 -05:00
Scott Lahteine 1718eff54a Code changes supporting up to 6 extruders 2018-09-16 22:32:53 -05:00
Scott Lahteine b220a825a7 Fix raw_filwidth_value error 2018-09-12 04:31:55 -05:00
AnHardt 530a13ab6c [2.0.x] SECURITYFIX missing max temp error when PID is used (#11717) 2018-09-05 01:41:45 -05:00
Dave Johnson c64199941e Compile only selected PIO environment (#11519) 2018-08-14 03:28:52 -05:00
Andy Shaw 624986d423 Ensure ADC conversion is complete before reading (#11336)
The current Marlin implementation relies on a timer interrupt to start the ADC conversion and read it. However in some circumstances the interrupt can be delayed resulting in insufficient time being available for the ADC conversion. This results in a bad reading and false temperature fluctuations. These changes make sure that the conversion is complete (by checking the ADC hardware via the HAL) before reading a value.

See: https://github.com/MarlinFirmware/Marlin/issues/11323
2018-07-26 03:59:19 -05:00
Scott Lahteine 22ebbc091f Tweak some SoftPWM code 2018-07-25 18:09:31 -05:00
etagle 1367df2875 Replace double with float, optimize calculation 2018-07-04 22:28:56 -05:00
Scott Lahteine 3fd1f32b73 Fix ADC key and chamber temp 2018-06-10 20:11:40 -05:00
Scott Lahteine 3701869e6c Add HAL_timer_start for AVR, use stepper timer to time pulses 2018-06-09 22:30:13 -05:00
Scott Lahteine 853a9056ac Long thermistor tables need special consideration 2018-05-28 06:28:34 -05:00
Scott Lahteine 1ce97f1f6d
Faster (bisect) search in thermistor tables (#10883) 2018-05-27 23:27:51 -05:00
Bob Kuhn d557c84a71 [2.0.x] Error for FAST_PWM_FAN with 32 bit CPU (#10798) 2018-05-20 11:37:55 -05:00
etagle 569df3fc0c Fix interrupt-based endstop detection
- Also implemented real endstop reading on interrupt.
2018-05-20 07:10:24 -05:00
etagle a11eb50a3e Refactor and optimize Stepper/Planner
Better encapsulation and considerably reduce stepper jitter
2018-05-20 06:23:58 -05:00
etagle 0566badcef Add memory barrier, optimal interrupt on-off
Disabling an ISR on ARM has 3 instructions of latency. A Memory barrier is REQUIRED to ensure proper and predictable disabling. Memory barriers are expensive, so avoid disabling if already disabled (See https://mcuoneclipse.com/2015/10/16/nvic-disabling-interrupts-on-arm-cortex-m-and-the-need-for-a-memory-barrier-instruction/)
2018-05-20 02:39:34 -05:00