Scott Lahteine
eb120e518c
Followup to new endstop interrupts feature
...
- Fix typos, verbiage
- Fix naming of `setup_endstop_interrupts`
- Some formatting, indentation, spacing
2016-11-18 21:53:45 -06:00
Scott Lahteine
98600e1433
Minor stepper cleanup
2016-11-18 01:15:57 -06:00
AnHardt
f3eee02596
Introduce endstop interrupts
...
If ENDSTOP_INTERRUPTS_FEATURE is enabled this tries to set up interrupt routines
for all used endstop pins. If this worked without errors, `endstops.update()` is called
only if one of the endstops changed its state.
The new interrupt routines do not really check the endstops and react upon them. All what they
do, is to set a flag if it makes sense to call the endstop test we are used to.
This can be used on:
* ARM (DUE) based boards - all pins can raise interrupts,
* RAMPS - all 6 endstop pins plus some other on EXT-2 can raise interrupts,
* RAMPS based boards - as long the designers did not change the pins for the endstops or at least left enough,
* all boards, if there are enough pins that can raise interrupts, and you are willing/able to swap with pins dedicated to other purpose.
2016-11-15 12:07:41 +01:00
Sebastianv650
cdc18f8c22
Remove useless line from stepper ISR
...
The flag is already set inside planner.get_current_block(). Doing it
twice isn't making it better..
2016-11-11 19:35:03 +01:00
Scott Lahteine
1864b282c5
Implement reversed CORE options
2016-11-05 23:47:51 -05:00
Scott Lahteine
00662b8635
Minor babystep cleanup patches
2016-11-03 23:31:45 -05:00
Scott Lahteine
b23d255491
Move macros above Stepper::babystep
2016-11-03 23:31:45 -05:00
Scott Lahteine
cc57d46158
Fix set_position for CoreYZ
2016-11-03 23:31:45 -05:00
Sebastianv650
f9bea7968f
BugFix for incorrect E-speed calculation
...
The extrusion speed was wrong due to a not high enough precision of
esteps to XY steps, therefore now the target float values are used to
calculate the ratio between XY movement and extrusion speed.
The e_speed_multiplier8 was replaced by an absolute multiplier called
abs_adv_steps_multiplier8, therefore one multiplication and bitshift can
be saved inside the stepper ISR. Due to this, also extruder_advance_k is
better suited inside the planner and not the stepper files any more.
2016-11-01 08:08:47 +01:00
Scott Lahteine
43df9ace4e
Merge pull request #5110 from thinkyhead/rc_z2_min_allowed
...
Support Z2 min in M119 report
2016-10-31 07:59:45 -05:00
Scott Lahteine
75dbb71dd7
Replace block.busy with a block.flag bit
2016-10-30 16:16:28 -05:00
Scott Lahteine
8cebd2a7db
Arrange Z2 min before Z2 max
2016-10-29 01:54:19 -05:00
Scott Lahteine
083d41a2c2
Remove redundant estep rate code from LIN_ADVANCE
...
As noted by https://github.com/MarlinFirmware/Marlin/pull/4971#issuecomment-252503295
2016-10-22 02:19:14 -05:00
Scott Lahteine
2cb5df8a56
Merge pull request #4984 from esenapaj/Small-fix-for-PR-#4980
...
Small fix for the PR #4980 (LIN_ADVANCE bug fix and optimization)
2016-10-10 13:30:47 -05:00
Scott Lahteine
f8199b2cc1
Merge pull request #4982 from thinkyhead/rc_abl_bugfix
...
Fix planner with kinematics, delta ABL
2016-10-10 13:24:22 -05:00
esenapaj
cfb5c24bc9
Small fix for the PR #4980 (LIN_ADVANCE bug fix and optimization)
...
・Fix a comment about timer
2016-10-10 07:48:42 +09:00
Scott Lahteine
c5cac486f5
Use a, b, c instead of lx, ly, lz
2016-10-09 14:34:24 -05:00
Scott Lahteine
3752d9aca8
Fix timer comments
2016-10-09 12:11:00 -05:00
Sebastianv650
a448cedbc5
LIN_ADVANCE bug fix and optimization
...
.) long to int: Extruder stalls at 10kHz / 20kHz step limits with long.
.) Take the delta_adv_steps calculation out of the step_loops loop. Wasted calculation performance if done inside.
.) >> 2 replaced by 3: Is divide by 8. Reason: Timer 0 runs at 16/8=2MHz, Timer 1 at 16/64=0.25MHz. ==> 2/0.25=8.
2016-10-09 11:55:02 -05:00
esenapaj
f8df88f271
Move routine of direction signal of ADVANCE and LIN_ADVANCE from Stepper::isr() to Stepper::advance_isr()
2016-10-07 02:01:29 +09:00
Scott Lahteine
ecf7cdde65
Augment planner/stepper getters/setters
2016-09-29 01:27:37 -05:00
Scott Lahteine
5fff8d148b
Clean up digital pots and microsteps
2016-09-25 11:16:22 -05:00
Scott Lahteine
cb48292338
Use fastio for literal pins
2016-09-25 06:33:38 -05:00
Scott Lahteine
eabff30e75
Improve MINIMUM_STEPPER_PULSE
2016-09-24 02:23:43 -05:00
Scott Lahteine
cc639d7d9c
Less indentation in Stepper::isr
2016-09-23 03:03:14 -05:00
Scott Lahteine
7dec8071b2
Always synchronize in Stepper::set_position
2016-09-23 03:03:14 -05:00
esenapaj
954563d603
Adjust spacing
2016-09-20 19:35:44 +09:00
esenapaj
7e9576dc5b
Extend the e_steps[] from int to long for allowing more than 32,767 E steps
...
Probably needed for long straight lines when using high microstepping
2016-09-20 19:35:44 +09:00
esenapaj
b04ed8f9c3
Fix inverted stepper signal of ADVANCED and LIN_ADVANCED
2016-09-20 19:35:44 +09:00
esenapaj
8692748ecd
Fix broken direction signal of ADVANCED and LIN_ADVANCED
...
Remove a setting proccess of E direction in advance_isr()
2016-09-20 19:35:44 +09:00
Scott Lahteine
edfaf1c582
Stepper::report_positions patch
2016-09-18 12:58:42 -05:00
Scott Lahteine
6f71bd7372
Merge pull request #4754 from thinkyhead/rc_mixing_regression
...
Unify counter_m and counter_M
2016-09-02 12:27:43 -05:00
Scott Lahteine
9bf78ef465
Fix capitalization of counter_m
2016-09-02 11:31:45 -05:00
Scott Lahteine
42b5616327
Try bool for direction instead of long
2016-09-02 11:28:48 -05:00
Scott Lahteine
d07a913f21
Tweak to stepper advance e_steps update
2016-09-02 02:06:17 -05:00
Scott Lahteine
426f662586
Apply MINIMUM_STEPPER_PULSE in stepper advance_isr
2016-08-30 14:31:48 -05:00
Scott Lahteine
8c7ee4599e
Optimize stepper advance_isr
2016-08-30 14:31:48 -05:00
Scott Lahteine
9725bcd099
Minor "optimizations" in stepper ISR
2016-08-30 14:21:43 -05:00
Scott Lahteine
4ec3d1ea58
Add some commentary to stepper ISR
2016-08-30 14:21:15 -05:00
Scott Lahteine
d9bcc7bb45
Set a bool when a stepper block is done
2016-08-30 14:20:48 -05:00
Scott Lahteine
08f717e5f7
Use bit-size typedefs for some stepper vars
2016-08-30 14:19:49 -05:00
Scott Lahteine
759234af60
MINIMUM_STEPPER_PULSE option
2016-08-27 23:58:40 -05:00
Scott Lahteine
a28e15399f
Patch stepper.cpp to allow omitting steppers
2016-08-27 20:11:17 -05:00
Scott Lahteine
2f223b8c79
Use ABC and XYZ for "3"
2016-08-21 00:10:08 -05:00
Scott Lahteine
d8f2876753
Replace some float division with multiplication
2016-07-24 13:27:50 -07:00
Scott Lahteine
f8b5749235
Replace division in planner with multiplication
2016-07-24 13:27:49 -07:00
Scott Lahteine
176b9627c7
Some cleanup ahead of BLTOUCH support
2016-07-17 13:55:38 -07:00
Scott Lahteine
05da02f0a2
Implement MIXING_EXTRUDER and SWITCHING_EXTRUDER
2016-07-17 10:53:10 -07:00
Scott Lahteine
4b4a582c4f
X_DUAL_STEPPER_DRIVERS implementation
2016-07-11 10:22:19 -07:00
Scott Lahteine
bd491818d6
Reduce storage requirements for strings, make some PGM
2016-06-27 20:36:18 -07:00
Scott Lahteine
61f34eec03
Merge pull request #4125 from jbrazio/bugfix/planner-warning
...
Fixes some compiler warnings
2016-06-22 19:34:37 -07:00
João Brázio
664232140d
Fixes somes compiler warnings
2016-06-23 03:12:55 +01:00
Sebastianv650
0c5192b288
Patch LIN_ADVANCE timing issue
...
Also the extruder stepper ISR has to keep an eye on step_loops count.
2016-06-22 19:05:14 -07:00
Scott Lahteine
8d8180e028
Parse M905 args in Marlin_main.cpp
2016-06-13 19:25:28 -07:00
Scott Lahteine
2b340f5acb
patch LIN_ADVANCE to use code_value_float
2016-06-13 18:54:25 -07:00
Scott Lahteine
aad9c0ed8d
Apply updated ISR timing code
2016-06-09 21:03:27 -07:00
Scott Lahteine
506d78b2f8
Run the advance_isr faster instead of doing multiple e-steps per interrupt
2016-06-09 21:03:27 -07:00
Scott Lahteine
6d62a4ffc8
Patch LIN_ADVANCE for style and forward-compatibility
2016-06-09 21:03:27 -07:00
Sebastianv650
fb8e880734
Add LIN_ADVANCE
2016-06-09 21:03:27 -07:00
Scott Lahteine
72c6f2923f
axis_steps_per_unit => axis_steps_per_mm
2016-06-09 17:04:51 -07:00
Scott Lahteine
e2a8961635
Use e_steps[EXTRUDERS] instead of e_steps[4]
2016-06-05 01:44:53 -07:00
Scott Lahteine
668d50f68e
Keep Stepper encapsulation, use static data and methods
2016-05-30 16:24:04 -07:00
Scott Lahteine
5172d4ba40
COREYZ stepper, planner, endstop, babysteps
2016-05-23 13:58:40 -07:00
Scott Lahteine
07c9a11c3c
Automatically set X2 stepper pins
2016-05-18 19:09:09 -07:00
Scott Lahteine
15fc93d742
Cleanup and consolidate probe conditionals for clarity
2016-05-08 12:59:43 -07:00
Scott Lahteine
6398d497b3
Ultimate followup to Stepper/Planner patch
...
- Search all symbols and apply prefixes where needed
- Encapsulate some private methods
- Inline some setters
- Make `microstep_mode` a public method
2016-05-03 17:07:37 -07:00
Scott Lahteine
96f51f400f
Planner singleton class
2016-04-30 17:26:50 -07:00
Scott Lahteine
5e4e535ce8
Stepper and Endstops as singleton objects
2016-04-30 17:26:50 -07:00
João Brázio
bcf1e027bb
Fix the redeclaration of _ENDSTOP_HIT
2016-04-17 18:37:37 +01:00
Scott Lahteine
7c16e774ca
Show all endstops on LCD in checkHitEndstops
2016-04-16 20:08:42 -07:00
Scott Lahteine
3e5312f116
CORE support for st_set_position & plan_set_position
2016-04-11 15:13:42 -07:00
Scott Lahteine
e087a99a10
Some cleanup of st_get_pos functions
2016-04-11 15:13:42 -07:00
Scott Lahteine
dc19b69697
No casting needed for SERIAL_ECHOPAIR
2016-04-07 16:33:21 -07:00
esenapaj
7950b5268a
Use SBI macro
2016-03-26 20:17:52 +09:00
Scott Lahteine
5d8036e554
Code cleanup around MOTOR_CURRENT_PWM options
2016-03-25 04:23:46 -07:00
Scott Lahteine
0da744b7b0
Further cleanup of comments, partial Doxygen-style
...
Following up on #3231
2016-03-25 00:45:56 -07:00
jbrazio
5e5d250832
Added gplv3 header to all Marlin files
2016-03-24 18:01:20 +00:00
Scott Lahteine
af32a7d5d6
M120/M121 also set endstops non-homing state
2016-03-24 03:24:23 -07:00
Scott Lahteine
c5857f96c8
Merge pull request #3182 from thinkyhead/rcbugfix_printrboard_revf
...
Add support for Printrboard RevF
2016-03-24 00:12:06 -07:00
Scott Lahteine
59483221d5
Move stepper DAC to a separate file
2016-03-19 19:24:26 -07:00
Scott Lahteine
5d0570cea0
Make digitalPotWrite depend on HAS_DIGIPOTSS
2016-03-19 19:24:26 -07:00
Stephanie
6843b78f99
Add support for Printrboard RevF
...
The PrintrBoard Rev F utilizes a mcp4728 DAC to set motor current. Printrbot's implementation utilizes 2 new M-codes to set and write the DAC settings to the DAC EEPROM: `M909` (Read DAC) and `M910` (Write DAC). `M907` is re-used to set value, `M908` for direct control.
The Pins file for the RevF board is included.
2016-03-19 16:43:37 -07:00
AnHardt
3f45a1acf9
Check probes only when deployed
...
Aim: Test probes in update_endstops only when activated
Changes:
Configurations
Add define for FIX_MOUNTED_PROBE to handle the situation where formerly ENDSTOPS_ONLY_FOR_HOMING had to be set, or lowering the nozzle below Z_PROBE_OFFSET_FROM_EXTRUDER could give an "endstop hit" message.
Add define for Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN to indicate a common situation, that we have a probe but it is connected to an endstop pin
Add some comments
Shift some entries to have related things together.
Conditionals.h
We have a probe (HAS_Z_MIN_PROBE) if one of the pins is defined AND one of the probes is defined.
SanityCheck.h
Add some tests if the probe is connected and if we have defined a probe.
stepper.cpp
Changes to test the probe only when it is deployed (z_probe_is_active).
Test update_endstops() when the probe is deployed.
MarlinMain.cpp
a. set and reset z_probe_is_active in deploy_z_probe(), stow_z_probe() and dock_sled()
b. set and reset z_probe_is_active in the case a z-servo is moved to a defined position. The only remaining unhandled servo move is in M280 where we do not end in a defined position. If you want to handle a probe use M401/402
c. skip deploying/stowing when already deployed/stowed in the dedicated deploy/stow functions.
d. Handle the new FIX_MOUNTED_PROBE in parallel to a servo driven probe/endstop.
To do: In another PR. handle all probes in deploy/stow_z_probe.
Sort out SERVO_LEVELING vs. HAS_SERVO_ENDSTOPS.
2016-03-19 02:00:08 -07:00
Scott Lahteine
4634feaeab
Merge pull request #3012 from thinkyhead/fix_command_injection
...
Use a serial line buffer to prevent queue corruption
2016-03-19 01:43:54 -07:00
Scott Lahteine
e5fd43f343
Implement BABYSTEPPING for COREXY and COREXZ
2016-03-18 18:22:53 -07:00
Scott Lahteine
8fe7420310
Use a separate serial line buffer
2016-03-18 16:46:20 -07:00
Alexander Leisentritt
4338813814
save last extruder and set stepper directions too in case the extruder changed
...
fixes MarlinFirmware/Marlin#3144 and MarlinFirmware/Marlin#3083
2016-03-16 20:20:34 +01:00
Scott Lahteine
6e1bc03d3b
Additional wrapping for #3140
2016-03-15 01:18:58 -07:00
Scott Lahteine
0c48eaf3de
Expose motor current in more configs, disable by default
2016-03-11 02:25:36 -08:00
Elijah Snyder
e8b10d2836
Adding PWM_MOTOR_CURRENT flag to help expose PWM_MOTOR_CURRENTS in Configuration_adv.h similar to DIGIPOT_MOTOR_CURRENT
2016-03-11 02:25:36 -08:00
Scott Lahteine
3fd31976c3
Reduce code in stepper.cpp with macros
2016-03-10 01:42:58 -08:00
Scott Lahteine
ff13070b59
Use _BV macros, patch up others
2016-03-06 05:51:55 -08:00
Scott Lahteine
373e8a1ad4
Fixes for COREXY and COREXZ coordinates
2016-02-15 15:59:24 -08:00
Naruto-kyun
2932602643
Update stepper.cpp
...
Forgot Z2_MIN_PIN
2016-01-15 16:50:43 +01:00
Richard Wackerbarth
7a670e3911
Improve planner & stepper PR #263
2015-12-10 07:24:37 -06:00
Scott Lahteine
644c376e84
Use binary OR with endstop bits
2015-11-12 00:03:22 -06:00
Scott Lahteine
9bdab4f3a8
Clean up "else" and other spacing
2015-11-12 00:03:21 -06:00
Scott Lahteine
0c7f7ebcfb
Styling adjustments (PR#2668 & PR#2670)
...
Keep "astyled" reformatting
2015-10-03 22:02:45 -05:00
Scott Lahteine
9f462f0cf5
Hack to address stuttering caused by ISR not finishing in time
...
(PR #138 )
When the ISR does not finish in time, the timer will
wrap in the computation of the next interrupt time.
This hack replaces the correct (past) time with a time not far in the future.
2015-09-10 08:26:17 -05:00
Christian Lefrançois
a7822e3ff7
Some renaming of Z_PROBE to Z_MIN_PROBE (PR#91)
...
* Fix a couple of renames omission and macro expansion errors.
2015-08-20 06:04:46 -05:00