Permalink
Commits on Oct 16, 2018
  1. Detect Estop in PRU and abort motion for arc and bezier moves.

    bigguiness authored and hzeller committed Oct 16, 2018
    Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
  2. Add spindle config parameters for Pololu SMC max-accel/max-decel

    bigguiness authored and hzeller committed Oct 16, 2018
    Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
  3. Make sure spindle is off when setting estop.

    bigguiness authored and hzeller committed Oct 16, 2018
    The Pololu SMC spindle controller needs to be sent a command to
    ensure that the spindle is off when we detect and set the estop
    condition.
    
    The spindle _will_ turn off if the hardware is set up to disable
    the spindle power when an estop is active. But, if the command is
    not sent the SMC will try to automatically reenable the spindle
    as soon as the estop is cleared.
    
    Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
  4. Add max-probe-feedrate axis configuration parameter.

    bigguiness authored and hzeller committed Oct 16, 2018
    The move_to_probe() is done using DirectDrive() steps. Due to this the
    segements may get accelerated to a speed thattt "clunks" the machine
    when the probe limit is finally detected. Allow limiting the G30 probe
    feedrate to a lower value than the axis max-feedrate.
    
    Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
  5. Add support to the PRU code to check the EStop input before each step

    bigguiness authored and hzeller committed Oct 16, 2018
    pulse. If it's detected, update the queue status and change the queue
    header state to STATE_ABORT then abort the step generation for the
    segment. If there are more segments in the queue they will also get
    aborted due to the EStop input being active.
    
    Modify the PRUMotionQueue::Enqueue() to detect the STATE_ABORT and
    return false. This indicates that the motion segment could not be
    added to the queue due to the abort condition caused by the EStop.
    
    Modify all the applicable classes so that the Enqueue failure is
    propogated back to the Planner so that CGodeMachineControl can
    detect the abort condition and then check_for_estop(). This will
    then turn all the aux outputs off, disable the motors, and set the
    homing_state to NEVER_HOMED.
    
    Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Commits on Jul 27, 2018
  1. gcode-machine-control: Allow G28 to be aborted by hardware E-Stop.

    bigguiness authored and hzeller committed Jul 27, 2018
    A G28 (goto limits) will block until all the requested limits have
    been hit and backed-off. This can be a problem sometimes, specifically:
    
    1) If an axis is wired backwards the limit will never be reached.
    2) If a normally-open limit is disconnected it will never be detected.
    3) If a mechanical issue prevents a limit from being reached.
    4) If a G28 needs to be aborted for some other reason.
    
    Modify move_to_endstop() so that the search/back-off will be aborted
    if a hardware E-Stop is detected. Then check_for_estop() at the end
    of go_home() to make sure that the homing_state_ is set correctly.
    
    Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
  2. Allow G0/G1 Z-axis moves to be clamped to the machine cube.

    hzeller committed Jul 27, 2018
    This adds a new configuration option, "clamp-to-range", that will allow
    G0/G1 moves to be parsed that are outside the machine cube space. These
    moves will be clamped to the machine cube and still produce motion.
    
    The clamp-to-range option will allow to clamp a movement before the
    range-check is testing.
    
    While clamp-to-range takes a string of desired axes to clamp to,
    for now only the Z axis is allowed if it is the only axis moving.
    This makes the most sense in 2.5D applications without accidentally
    causing undesirable work results.
    
    Based on a patch by H Hartley Sweeten <hsweeten@visionengravers.com>
Commits on Jul 21, 2018
  1. spindle-control: remove duplicate Log_debug() for PololuSMCSpindle

    bigguiness authored and hzeller committed Jul 21, 2018
    Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Commits on Jul 6, 2018
  1. gcode2ps: better names for origin inclusion options. Better reset bet…

    hzeller committed Jul 6, 2018
    …ween parses.
    
    Also: make axis configuration enum typesafe.
Commits on Jun 30, 2018
Commits on Jun 29, 2018
  1. G10 relative to machine origin; allow G90,G91 for G10; default to G54…

    hzeller committed Jun 29, 2018
    … on startup.
    
    - G10: Setting work coordinate systems with G10 was incorrectly relating
      coordinates relative to the bottom left corner of the machine cube.
      Now implemented _correct_ behavior is to have these relative to the machine
      origin, which might be a different corner depending on where the
      end-switches are.
    - G10: Allow to set work coordinate systems in absolute mode (G90) and update
      it in relative mode (G91).
    - G10: Better error messages on non-supported G10 parameters.
    - Startup: Set the work coordinate system on startup to G54 if coordinate
      system, stored in parameter #5220, is not set (it was machine coordinate
      system before, which was not correct)
    - M114: printing of coordinate system: after the machine cube.
Commits on Jun 20, 2018
  1. o added INSTALL.md (#39)

    lromor authored and hzeller committed Jun 20, 2018
    o added section in Development.md describing how to turn on the eQEP and count the output steps
Commits on Jun 16, 2018
  1. Simplify BUMPS configuration: add config-pin file.

    hzeller committed Jun 16, 2018
    To be tested. If that works, we should remove the device tree overlay.
Commits on Jun 15, 2018
  1. Remove old stream reading code now covered by GCodeStreamer.

    hzeller committed Jun 15, 2018
    Add a simple file-reading version useful for some tools.
  2. fd-mux: fix stopping program using a systemd service

    bigguiness authored and hzeller committed Jun 15, 2018
    Using systemd and a startup script to start machine-control causes two
    SIGTERM signals to be sent. The first one is caught by the sigaction
    but the current SA_RESETHAND flag causes the second one to be treated
    as a SIGKILL. This results in machine-control terminating without
    properly shutting down.
    
    Just use '0' for the sa.sa_flags so that the default signal handler
    is not restored after getting the signal.
    
    Thanks to Henner Zeller for the insight to this issue.
    
    Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Commits on Jun 14, 2018
  1. Check for signals not only happening while in select.

    hzeller committed Jun 14, 2018
    Signals can be delivered when the fd-mux is calling its handlers, so
    make sure that we properly terminate our loop if it happens there.
Commits on Jun 13, 2018
  1. gcode2ps: use G70/G71 as coordinate system display hint.

    hzeller committed Jun 13, 2018
    o Also tweak font size
    o Use the same default planner adjustment angle than machine-control.
  2. planner: only speed tune short segments (i.e. arc segments)

    bigguiness authored and hzeller committed Jun 13, 2018
    Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
  3. Add speed tuning angle to command line options

    bigguiness authored and hzeller committed Jun 13, 2018
    Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Commits on Jun 7, 2018
  1. Use enum class for E-Stop state.

    bigguiness authored and hzeller committed Jun 7, 2018
    Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
  2. Stub in a 's'tatus command for the status server. Currently this

    bigguiness authored and hzeller committed Jun 7, 2018
    just returns the E-Stop state as JSON {"estop":"status"}, where
    "status" is "hard", "soft", or "none".
  3. Draw origin marker more canonical as circle with filled 3rd quadrant.

    hzeller committed Jun 7, 2018
    (in fact, we're drawing an octagon. Close enough :) )
Commits on Jun 5, 2018
  1. Separate SpindleConfig from Spindle.

    hzeller committed Jun 5, 2018
    .. also some clean-ups here and there. Mostly in preparation to make
    it simpler to support lasers as 'spindle'.
Commits on Jun 1, 2018