Commit Graph

28 Commits

Author SHA1 Message Date
Markus Hitter 5f9ae5b087 Implement M82/M83 and handle relative movements entirely different.
Instead of converting them to absolute first, then back to
relative and having all the fuzz with working on the queue's
start vs. working at the queue's end, mark a movement as relative
and use this directly.
2012-05-11 13:50:33 +02:00
Markus Hitter 72185f776b home.c: fix a typo. 2011-12-06 13:50:36 +01:00
Markus Hitter 4e5f51f01e Store distances in the TARGET strucure in micrometers for all axes.
This extends the previous commit from X to Y, Z and E.
2011-11-17 13:48:36 +01:00
Markus Hitter c96ea0c773 Store distances in the TARGET structure always in micrometers.
This is a intrusive patch and for now, it's done for the X axis only.
To make comparison with the former approach easier ...

The advantages of this change:

- Converting from mm to steps in gcode_parse.c and back in dda.c
  wastes cycles and accuracy.

- In dda.c, UM_PER_STEP simply goes away, so distance calculations
  work now with STEPS_PER_MM > 500 just fine. 1/16 microstepping
  on threaded rods (Z axis) becomes possible.

- Distance calculations (feedrate, acceleration, ...) become much
  simpler.

- A wide range of STEPS_PER_M can now be handled at reasonable
  (4 decimal digit) accuracy with a simple macro. Formerly,
  we were limited to 500 steps/mm, now we can do 4'096 steps/mm
  and could easily raise this another digit.

Disadvantages:

- STEPS_PER_MM is gone in config.h, using STEPS_PER_M is required,
  because the preprocessor refuses to compare numbers with decimal
  points in them.

- The DDA has to store the position in steps anyways to avoid
  rounding errors.
2011-11-17 13:48:26 +01:00
Markus Hitter f216ff5e0b home.c: catch by brnrd: inconsistency with Z_MIN_PIN and Z_MAX_PIN.
If both were defined, it was different from handling of X and Y.
Thanks, brnrd.
2011-10-28 13:22:12 +02:00
Markus Hitter d0972036ca home.c: catched by brnrd: two missing &.
Thanks, brnrd.
2011-10-28 13:22:09 +02:00
Markus Hitter 2f04a9e58c Update current_position only as needed.
This saves almost 200 bytes and 100 runs of
update_current_position() per second.
2011-10-23 19:51:54 +02:00
Markus Hitter 414e0f7258 home.c: home_..._positive requires both, ..._MAX_PIN and ..._MAX. 2011-10-23 19:51:52 +02:00
Markus Hitter 27a247646c home.c: make queueing home movements while the machine is running work
current_position is the position at the start of the queue,
startpoint is the position at the end of the queue and we add
at the end, obviously.
2011-10-23 19:51:50 +02:00
Markus Hitter 129bdc64bc home.c: introduce SLOW_HOMING 2011-10-23 19:51:48 +02:00
Markus Hitter f2fea37eb8 home.c: remove now obsolete power-on stuff.
This went obsolete, as homing movements are enqueued now.
2011-10-23 19:51:43 +02:00
Ben Gamari 45124316e3 Rework endstop homing.
The DDA is now used for motion control.

Note from Traumflug: thanks a lot for this excellent patch, Ben.
2011-10-23 19:51:40 +02:00
Markus Hitter 3b4953a631 Remove a bunch of duplicate x_enable() etc.. 2011-10-05 14:13:22 +02:00
Markus Hitter b45969e57a Introduce stepper_enable() and stepper_disable().
This allows to heat up with disables steppers, even if all steppers
share a common enable pin.
2011-10-05 14:13:21 +02:00
Bas Laarhoven a8d21ebb92 Changed 'denoise' into more commonly used term 'debounce'. 2011-08-16 13:45:48 +02:00
Michael Moon fd93109b63 enable power and motors before homing, set position to n_MIN when hitting MIN limits if set 2011-06-26 17:41:21 +10:00
Michael Moon b37a5d435e home Z to max if possible by default 2011-04-09 09:15:48 +10:00
Michael Moon f4e4788892 wait for queue to empty before homing 2011-04-09 09:15:22 +10:00
Michael Moon 0dc7d77885 Massive Doxygen documentation addition
'make doc' then point your browser at doc/html/

Needs plenty of cleanup and polishing, but the main bulk is here

even documents your configuration! ;)
2011-03-22 01:34:36 +11:00
Markus Amsler 7a15fb6df2 homing: delay is in microseconds. 2011-02-27 22:40:03 +01:00
Markus Amsler 994acb58c3 homing: enable axis before moving. 2011-02-27 22:31:27 +01:00
Michael Moon 8188ff3593 merge intercom-protocol into master 2011-02-21 16:01:27 +11:00
Markus Amsler 7aff5623ef home: delay is in micro seconds 2011-02-21 15:52:14 +11:00
Michael Moon c6122eda74 add G161/G162 commands, upgrade home.c to provide negative/positive homing calls for G161/G162 2011-02-20 14:10:53 +11:00
Michael Moon 4426c69274 individual functions to home each axis 2011-02-20 13:39:07 +11:00
Michael Moon 940d474c6c home to max should now return to zero after homing 2011-02-15 10:10:29 +11:00
Michael Moon 4da63d31ff fix homing code 2011-02-08 17:53:42 +11:00
Michael Moon 0110af2ede preliminary homing code- not linked into anything yet 2011-02-08 17:52:51 +11:00