Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Commits on Feb 1, 2012
  1. Sonny Jeon

    printFloat rounding fix. Affected settings. Recommend using new build.

    chamnit authored
    printFloat was printing incorrectly and adding a value of 5 to every
    float instead of 0.0005 when rounding to 3 decimal places. The printed
    settings values do not accurately portray the actual stored value.
    Recommend using newly posted build.
Commits on Jan 28, 2012
  1. Sonny Jeon

    Updated streaming scripts. Compiler compatibility for _delay_ms().

    chamnit authored
    - Moved obsolete streaming scripts to folder for reference.
    
    - Added a more complex Python streaming script which uses the serial
    buffer as an additional streaming buffer.
    
    - Removed all references to a _delay_ms(variable) to allow for better
    porting across different compilers.
Commits on Jan 18, 2012
  1. Sonny Jeon

    Update readme.textile

    chamnit authored
  2. Sonny Jeon

    Merge pull request #47 from chamnit/v0_7

    chamnit authored
    Merging chamnit/v0_7 to grbl/master
  3. Sonny Jeon
Commits on Jan 16, 2012
  1. Sonny Jeon

    Propagated premature step end bug fix from the edge branch. Updated p…

    chamnit authored
    …rintFloat() function.
    
    - Will not be uploading a hex build of this, unless asked.
Commits on Dec 10, 2011
  1. Sonny Jeon

    Various minor updates and variable definition corrections. Removed de…

    chamnit authored
    …precated acceleration manager.
    
    - Removed deprecated acceleration manager (non-functional since v0.7b)
    - Updated variable types and function headers. - Updated stepper
    interrupt to ISR() from SIGNAL()+sei(). - General code cleanup.
Commits on Nov 19, 2011
  1. Sonny Jeon
  2. Sonny Jeon
Commits on Nov 11, 2011
  1. Sonny Jeon
Commits on Oct 12, 2011
  1. Sonny Jeon
  2. Sonny Jeon

    Third time's a charm! No more deceleration issues! Updated grbl versi…

    chamnit authored
    …on and settings. General cleanup.
    
    - Fleshed out the original idea to completely remove the long slope at
    the end of deceleration issue. This third time should absolutely
    eliminate it.
    - Changed the acceleration setting to kept as mm/min^2 internally,
    since this was creating unneccessary additional computation in the
    planner. Human readable value kept at mm/sec^2.
    - Updated grbl version 0.7d and settings version to 4. NOTE: Please
    check settings after update. These may have changed, but shouldn't.
    - Before updating the new features (pause, e-stop, federate override,
    etc), the edge branch will soon be merged with the master, barring any
    immediate issues that people may have, and the edge branch will be the
    testing ground for the new grbl version 0.8.
Commits on Oct 7, 2011
  1. Sonny Jeon
  2. Sonny Jeon

    Minor update to further eliminate the ole long slope deceleration iss…

    chamnit authored
    …ue. New update note!
    
    - Added another way to further ensure the long slope deceleration issue
    is eliminated. If the stepper rate change is too great near zero, the
    stepper rate is adjusted at half increments to the end of travel,
    creating a smooth transition. - If the new STEPPER_IDLE_LOCK_TIME is
    set as zero, this delay is not compiled at compile-time. - NOTE: The
    next update is likely going to be major, involving a full re-write of
    the stepper.c program to integrate a simple way to apply pauses,
    jogging, e-stop, and feedrate overrides. The interface should be
    flexible enough to be easily modified for use with either hardware
    switches or software commands. Coming soon.
Commits on Sep 29, 2011
  1. Sonny Jeon

    Added complete stop delay at the end of all motion. Moved grbl prepro…

    chamnit authored
    …cessor script into a new repository.
    
    Added a very short (25 ms) user-definable delay before the steppers are
    disabled at the motors are disabled and grbl goes idle. This ensures
    any residual inertia at the end of the last motion does not cause the
    axes to drift and grbl to lose its position when manually entering
    g-code or when performing a tool change and starting the next
    operation.
Commits on Sep 26, 2011
  1. Sonny Jeon

    Updated some comments and fixed a bug in the new stepper logic.

    chamnit authored
    - The stepper logic was not initiating the decelerations for certain
    cases. Just re-arranged the logic to fix it.
Commits on Sep 24, 2011
  1. Sonny Jeon

    Fixed long slope at deceleration issue. Moved things into config.h. N…

    chamnit authored
    …ew MINIMUM_PLANNER_SPEED parameter.
    
    - The long standing issue of a long slope at deceleration is likely
    fixed. The stepper program was not tracking and timing the end of
    acceleration and start of deceleration exactly and now is fixed to
    start and stop on time. Also, to ensure a better acceleration curve fit
    used by the planner, the stepper program delays the start of the
    accelerations by a half trapezoid tick to employ the midpoint rule. -
    Settings version 3 migration (not fully tested, but should work) -
    Added a MINIMUM_PLANNER_SPEED user-defined parameter to planner to let
    a user change this if problems arise for some reason. - Moved all
    user-definable #define parameters into config.h with clear comments on
    what they do and recommendations of how to change them. - Minor
    housekeeping.
Commits on Sep 18, 2011
  1. Sonny Jeon

    Fixed minor bugs in planner. Increased max dwell time. Long slope bug…

    chamnit authored
    … stop-gap solution note.
    
    - Fixed the planner TODO regarding minimum nominal speeds. Re-arranged
    calculations to be both more efficient and guaranteed to be greater
    than zero. - Missed a parenthesis location on the rate_delta
    calculation. Should fix a nearly in-perceptible issue with incorrect
    acceleration ramping in diagonal directions. - Increased maximum dwell
    time from 6.5sec to an 18hour max. A crazy amount more, but that's how
    the math works out. - Converted the internal feedrate values to mm/min
    only, as it was switching between mm/min to mm/sec and back to mm/min.
    Also added a feedrate > 0 check in gcode.c. - Identified the long slope
    at the end of rapid de/ac-celerations noted by stephanix. Problem with
    the numerical integration truncation error between the exact solution
    of estimate_acceleration_distance and how grbl actually performs the
    acceleration ramps discretely. Increasing the
    ACCELERATION_TICKS_PER_SECOND in config.h helps fix this problem.
    Investigating further.
Commits on Sep 16, 2011
  1. Sonny Jeon

    More '%' modulo opertor removals and some housecleaning.

    chamnit authored
    - Serial functions contained quite a few modulo operations that would
    be executed with high frequency when streaming. AVR processors are very
    slow when operating these. In one test on the Arduino forums, it showed
    about a 15x slow down compared to a simple if-then statement. -
    Clarified some variable names and types and comments.
Commits on Sep 14, 2011
  1. Sonny Jeon

    Further planner improvements and misc minor bug fixes. Memory savings…

    chamnit authored
    … and increased buffer size.
    
    - Update grbl version and settings version to automatically reset
    eeprom. FYI, this will reset your grbl settings. - Saved
    3*BLOCK_BUFFER_SIZE doubles in static memory by removing obsolete
    variables: speed_x, speed_y, and speed_z. - Increased buffer size
    conservatively to 18 from 16. (Probably can do 20). - Removed expensive!
    modulo operator from block indexing function. Reduces significant
    computational overhead. - Re-organized some sqrt() calls to be more
    efficient during time critical planning cases, rather than non-time
    critical. - Minor bug fix in planner max junction velocity logic. -
    Simplified arc logic and removed need to multiply for CW or CCW
    direction.
Commits on Sep 7, 2011
  1. Sonny Jeon

    Optimized planner re-write. Significantly faster. Full arc support en…

    chamnit authored
    …abled by rotation matrix approach.
    
    - Significant improvements in the planner. Removed or reordered
    repetitive and expensive calculations by order of importance:
    recalculating unchanged blocks, trig functions [sin(), cos(), tan()],
    sqrt(), divides, and multiplications. Blocks long enough for nominal
    speed to be guaranteed to be reached ignored by planner. Done by
    introducing two uint8_t flags per block. Reduced computational overhead
    by an order of magnitude.   - Arc motion generation completely
    re-written and optimized. Now runs with acceleration planner. Removed
    all but one trig function (atan2) from initialization. Streamlined
    computations. Segment target locations generated by vector
    transformation and small angle approximation. Arc path correction
    implemented for accumulated error of approximation and single precision
    calculation of Arduino. Bug fix in message passing.
Commits on Sep 5, 2011
  1. Sonny Jeon

    Minor update for memory savings in ring buffer and fleshed out commen…

    chamnit authored
    …ting.
    
    No changes in functionality. Path vectors moved from ring buffer to
    local planner static variables to save 3*(BUFFER_SIZE - 1) doubles in
    memory. Detailed comments. Really need to stop micro-updating. Should be
    the last until a planner optimization (ala Jens Geisler) has been
    completed.
Commits on Sep 4, 2011
  1. Sonny Jeon

    More minor bug fixes in planner.

    chamnit authored
    Reverse planner was over-writing the initial/buffer tail entry speed,
    which reset the forward planner and caused it to lose track of its
    speed. Should now accelerate into short linear segments much nicer now.
  2. Sonny Jeon

    Minor bug fixes in planner.

    chamnit authored
Commits on Sep 3, 2011
  1. Sonny Jeon

    Add G02/03 arc conversion/pre-processor script and example streaming …

    chamnit authored
    …script
    
    Beta pre-processor script used to clean and streamline g-code for
    streaming and converts G02/03 arcs into linear segments. Allows for full
    acceleration support if the pre-processed g-code is then streamed to
    grill, sans G02/03 arcs. Added a simple example streaming script for
    Python users.
  2. Sonny Jeon

    Significantly improved junction control and fixed computation bugs in…

    chamnit authored
    … planner
    
    - Junction jerk now re-defined as junction_deviation. The distance from
    the junction to the edge of a circle tangent to both previous and
    current path lines. The circle radii is used to compute the maximum
    junction velocity by centripetal acceleration. More robust and
    simplified way to compute jerk.   - Fixed bugs related to entry and exit
    factors. They were computed based on the current nominal speeds but not
    when computing exit factors for neighboring blocks. Removed factors and
    replaced with entry speeds only. Factors now only computed for stepper
    trapezoid rate conversions.  - Misc: Added min(), next_block_index,
    prev_block_index functions for clarity.
Commits on Aug 16, 2011
  1. Sonny Jeon

    Moved comment and block delete handling into protocol.c from gcode.c.…

    chamnit authored
    … Fixes bug when comment and block delete are not isolated. Blank lines ignored.
    
    Comments, block delete characters, and blank lines are no longer passed
    to the gcode parser and should free up some memory by ignoring these
    characters. Gcode parser now expects clean gcode only. There was a bug
    if there were block deletes or comments not in the first character (i.e.
    spindle on/off for proofing geode without turning it on, or a NXX
    followed by a comment). This should fix it by bypassing the problem.
    Left a commented line for easily turning on and off block deletes for a
    later feature, if desired.
  2. Sonny Jeon

    Revert ea5b894^..HEAD

    chamnit authored
  3. Sonny Jeon

    Moved comment and block delete handling into protocol.c from gcode.c.…

    chamnit authored
    … Fixes bug when comment and block delete are not isolated. Blank lines ignored.
    
    Comments, block delete characters, and blank lines are no longer passed
    to the gcode parser and should free up some memory by ignoring these
    characters. Gcode parser now expects clean gcode only. There was a bug
    if there were block deletes or comments not in the first character (i.e.
    spindle on/off for proofing geode without turning it on, or a NXX
    followed by a comment). This should fix it by bypassing the problem.
    Left a commented line for easily turning on and off block deletes for a
    later feature, if desired.
  4. Sonny Jeon

    Revert 517a0f6^..HEAD

    chamnit authored
  5. Sonny Jeon

    Revert "Moved comment and block delete handling to be done in protoco…

    chamnit authored
    …l.c rather than gcode.c. Prevents these from being held in memory. Also, fixes bug when comments and block delete character are mixed with g-code."
    
    This reverts commit ea5b894.
  6. Sonny Jeon

    Revert fdc90f1^..HEAD

    chamnit authored
Commits on Aug 15, 2011
  1. Sonny Jeon
  2. Sonny Jeon

    Moved comment and block delete handling to be done in protocol.c rath…

    chamnit authored
    …er than gcode.c. Prevents these from being held in memory. Also, fixes bug when comments and block delete character are mixed with g-code.
Commits on Aug 2, 2011
  1. Simen Svale Skogsrud
Something went wrong with that request. Please try again.