Commit Graph

308 Commits

Author SHA1 Message Date
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
Richard Wackerbarth
29b456ae07 Suppress some compiler warnings 2015-08-16 06:56:47 -05:00
AnHardt
e2d69f66b2 Make Z_PROBE a Z_MIN_PROBE (PR#65)
Currently we use the probe exclusively as a device to find the build platform(bed).
For the currently supported setups this means, we use it as a additional min-endstop.
A triggered when not deployed probe disturbs the homing process for max-endstops.

Rename ENDSTOPPULLUP_ZPROBE to ENDSTOPPULLUP_ZMIN_PROBE
Rename Z_PROBE_ENDSTOP_INVERTING to Z_MIN_PROBE_ENDSTOP_INVERTING
Rename Z_PROBE_ENDSTOP to Z_MIN_PROBE_ENDSTOP
Rename DISABLE_Z_PROBE_ENDSTOP to DISABLE_Z_MIN_PROBE_ENDSTOP
Rename Z_PROBE_REPEATABILITY_TEST to Z_MIN_PROBE_REPEATABILITY_TEST
Rename Z_PROBE_ENDSTOP to Z_MIN_PROBE_ENDSTOP
Adjust comments accordingly
Remove Z_MAX  check for the probe in update_endstops().

Using an delta related idea of @clefranc from #61,
extended to the general change for all setups.

Tested with Prusa i3, max-z-endstop and permanently triggered z-probe.
Worked for @clefranc's delta.
2015-08-11 14:41:36 -05:00
AnHardt
6a6e863a47 Resolve #2581 by adding a missed ';' (PR#67) 2015-08-10 12:51:59 -05:00
Scott Lahteine
46453905d6 Apply remaining ENABLED/DISABLED conditionals 2015-08-03 16:04:48 -05:00
Richard Wackerbarth
4b9d5cd352 Use lowercase names for serial instances 2015-08-02 23:01:39 -05:00
Scott Lahteine
c35fb88094 Overridable Options - Part 8 (PR#2560)
Apply `ENABLED` / `DISABLED` macros to stepper-related files.
2015-07-31 01:05:22 -05:00
AnHardt
27d7d2ccab Correct bracketing for COREXY-XZ 2015-07-23 19:52:21 -05:00
Scott Lahteine
278aa15301 Add COUNT macro and apply 2015-07-22 18:16:05 -05:00
Scott Lahteine
000a6fce46 Extract update_endstops from stepper ISR (PR#2474) 2015-07-19 18:33:18 -05:00
Scott Lahteine
9f53e2f0c9 Implement COREXZ in stepper.cpp and planner.cpp 2015-07-19 16:17:03 -05:00
Richard Wackerbarth
e83575537a Compiler defines USBCON for USB devices (PR#2433) 2015-07-15 10:32:11 -05:00
Scott Lahteine
87a872e103 Use st_get_position_mm where possible (PR#2411) 2015-07-12 22:15:54 -05:00
Scott Lahteine
d135b15bb8 Init all endstop bits to 0 (PR#2332) 2015-06-26 07:10:22 -05:00
AnHardt
0d9d21d15f Add a semicolon to make Z_DUAL_STEPPER_DRIVERS compile again. 2015-06-01 19:51:43 +02:00
Wurstnase
9c09967803 Merge pull request #2149 from Wurstnase/enstop_bits
faster compare
2015-05-31 16:02:55 +03:00
wurstnase
0f3f7d6835 clean up double endstops 2015-05-31 14:06:13 +02:00
Scott Lahteine
d76a01194d Slight size reduction by adding idle() 2015-05-26 20:08:21 -07:00
wurstnase
94120740d8 faster compare
!(~(ab)&0x3) and ab == 0x3 are equal
2015-05-23 07:55:15 +02:00
Scott Lahteine
f919a2fed1 Merge pull request #2134 from AnHardt/preheat-all
Shift call of start_watching_heater() into setTargetHotend()
2015-05-21 18:36:28 -07:00
wurstnase
ff98b8632b new endstop bits 2015-05-21 23:16:43 +02:00
AnHardt
bc0764894a Shift call of start_watching_heater() into setTargetHotend()
to warrant watching is set or reset.

Make setTargetBed() in _lcd_preheat() dependant of TEMP_SENSOR_BED.
Use disable_all_heaters() in lcd_cooldown() and abort_on_endstop_hit.
2015-05-21 20:36:11 +02:00
wurstnase
21ff773832 rework out_bits 2015-05-17 14:33:09 +02:00
Scott Lahteine
c54a2ea042 Adjust spacing in Marlin_main.cpp and stepper.* 2015-05-17 01:47:02 -07:00
Scott Lahteine
072625ccad Update headings in Marlin_main.cpp and stepper.cpp 2015-05-17 01:44:53 -07:00
Wurstnase
1d5677cc3b add missing Z-bits 2015-05-12 09:36:19 +02:00
Wurstnase
df12e68e7d add missing Z_PROBE-bit 2015-05-12 09:33:24 +02:00
Wurstnase
b55f32f8a1 replace some bools
this PR replaces some bools with one char. this will safe 3 bytes and should also be sometimes a little bit faster.
2015-05-10 21:37:39 +02:00
Wurstnase
073e4af7e2 We don't need the old standard one. The STEP_ADD and STEP_IF_COUNTER are also good for non-Toshiba stepper driver. 2015-05-07 18:55:47 +02:00
Wurstnase
79a44a9de3 stepper.cpp macros rework
delete some tabs
2015-04-24 08:03:17 +02:00
Chris Palmer
483384aaa4 Fixed faulty comment merge 2015-04-17 09:31:53 +01:00
Chris Palmer
cc6b7cf3ce Fixed some comment spellings. 2015-04-17 09:28:08 +01:00
Chris Palmer
e4595fa24a Fixed jump in speed when using high accelerations on axes with lots of steps.
I.e., when acceleration * steps per mm > 2,000,000.
This was done by changing MultiU24X24toH16 to take a 32b bit operand.
Removed the claim that stepper.cpp uses the Leib algorithm.
2015-04-16 23:04:38 +01:00
Scott Lahteine
53be0f3399 Babystep delay 2us 2015-04-16 04:16:36 -07:00
Scott Lahteine
7336e6df07 Always define old_z, not always z2 2015-04-14 04:55:20 -07:00
Scott Lahteine
5dd87d2e74 Enable all old_z_*_endstop vars for Z_DUAL_ENDSTOPS
- Potentially addressing #1911
2015-04-14 04:05:51 -07:00
Scott Lahteine
ccddc280be Apply three more commits 2015-04-12 22:47:44 -07:00