420 Commits (94c965fad6b5ee7242559c81e156e2e4a63517de)

Author SHA1 Message Date
Bob-the-Kuhn 9651d01e1a Add Skynet/ANET A10 support 8 years ago
Scott Lahteine a9f8e518bf Fix FILAMENT_WIDTH_SENSOR infinite loop issue
Addressing #6992 and #5851
8 years ago
Scott Lahteine 6c45d0fd81 Apply maths macros and type changes ahead of HAL 8 years ago
Scott Lahteine 7769a22064 Tweaks to temperature code 8 years ago
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
8 years ago
Scott Lahteine dde8bb7c8b Fix extrude_min_temp compiler warning 8 years ago
Scott Lahteine e94f79ccea Patch some serial macros 8 years ago
Scott Lahteine b7dc4d9973 Save 92b PROGMEM, 14b SRAM with extruder auto fan 8 years ago
Scott Lahteine efc198f952 Spacing, const, comments 8 years ago
Bob-the-Kuhn c34d7a29a6 fix redefinition errors for redundant_temperature
Removing redundant_temperature from public section and leaving it in the
private section
8 years ago
Scott Lahteine b0eae68f57 Prevent bed temperature being set too high 8 years ago
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
8 years ago
Scott Lahteine 34cfbc90cd Use new attribute macros in more places 8 years ago
Scott Lahteine 8a0a5cfccc Temp-related cosmetic changes 8 years ago
Scott Lahteine b29dbbd5e4 Use uint16_t for temps 8 years ago
Scott Lahteine 11104f177b Apply const in BABYSTEPPING 8 years ago
Scott Lahteine 081bf1f879 Patch #else / #endif comments 8 years ago
Scott Lahteine 71396f77d3 Cleanups following recent commits 8 years ago
Scott Lahteine a6dafb058e Small reduction in error code size 8 years ago
Scott Lahteine a1e04942a2 Cleanup to software PWM variables 8 years ago
Brian 6cb0fa4128 Cleanup previous implementation of new quiet probing
Saves a few lines of code.
8 years ago
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
8 years ago
Scott Lahteine 6854f08d22 Shut down autotemp in disable_all_heaters 8 years ago
Scott Lahteine 2658cc707a Treat temperature as integer, when possible 8 years ago
Scott Lahteine 096b927102 Minor optimization of FILAMENT_WIDTH_SENSOR 8 years ago
Scott Lahteine 5bdb0b567d Cosmetic patches 8 years ago
Scott Lahteine ff0018e287 Format hex values as uppercase 8 years ago
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.
8 years ago
Scott Lahteine 7f950a80c0 Make ADC sensor reading frequency adjustable 8 years ago
Paweł Stawicki 44cdebb8f1 Add software spi support for max6675 8 years ago
Scott Lahteine 832064e4f2 Implementation changes to support 5 extruders 8 years ago
Scott Lahteine 699310d1d2 Fix: Thermal runaway if nonexistent bed's temp is set 8 years ago
Scott Lahteine 25a6bfa7ed Add and apply WITHIN macro 8 years ago
Scott Lahteine 499f9e04e1 Marlin: Temperature soft-PWM cleanup 8 years ago
Scott Lahteine 043be2856b Use "& 0x3F" instead of "% 64" 8 years ago
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>
8 years ago
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>
8 years ago
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>
8 years ago
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>
8 years ago
Scott Lahteine 6618346148 Patches to work around "register spill" compiler bug 8 years ago
Scott Lahteine 77491dd924 Remove extraneous whitespace 8 years ago
Scott Lahteine 2defb1d748 Use SET_INPUT_PULLUP where appropriate 8 years ago
Scott Lahteine fea0d3f20f Endstop and temp-isr general cleanup 8 years ago
Scott Lahteine aef08e8780 Compact some macro substitutions 8 years ago
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.
8 years ago
Scott Lahteine 7176de8605 Merge pull request #5814 from thinkyhead/hotend_loop_always
Make HOTEND_LOOP more consistent, let compiler optimize it
8 years ago
Scott Lahteine e44294bb4d Make HOTEND_LOOP more consistent, let compiler optimize it 8 years ago
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
8 years ago
esenapaj 069c6b38dd Remove unnecessary tabs and spaces 8 years ago
Sebastianv650 912704a0d8 Enable ISRs inside temperature ISR
to capture chars at UART at 250000 baud.
8 years ago