Diff: doc/log/commit_log_v0.9g.txt
- Revision:
- 0:8f0d870509fe
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/log/commit_log_v0.9g.txt Mon Sep 04 12:04:13 2017 +0000
@@ -0,0 +1,2409 @@
+----------------
+Date: 2014-09-05
+Author: Sonny Jeon
+Subject: Minor bug fix and CPU pin map update.
+
+- Sometime I HATE github. This push is just here to be able to describe
+the last two pushes today that had a merging conflict and lost all of
+the commit comments before.
+
+- Setting $10 would cause $11 to be the same value. Missed a break
+statement in the switch-case. Oops! Now fixed.
+
+- CPU pin map for the future versions of Grbl introduced, but not yet
+finalized. Still working on it and it’s subject to change.
+
+- Added a new high-speed machining test g-code routine written by Todd
+Fleming. Mills a pocket at 15,000mm/min. Do not use when connected to
+your machine! You’ve been warned!
+
+
+----------------
+Date: 2014-09-05
+Author: Sonny Jeon
+Subject: Updated README.md
+
+
+----------------
+Date: 2014-09-05
+Author: Sonny Jeon
+Subject: Merge branch 'master' of https://github.com/grbl/grbl
+
+Conflicts:
+ README.md
+
+
+----------------
+Date: 2014-08-24
+Author: Sonny Jeon
+Subject: Merge pull request #472 from BinaryConstruct/edge
+
+Add defaults for OX CNC
+
+----------------
+Date: 2014-08-24
+Author: BinaryConstruct
+Subject: Add defaults for OX CNC
+
+
+----------------
+Date: 2014-08-22
+Author: Sonny Jeon
+Subject: Update README.md
+
+----------------
+Date: 2014-08-22
+Author: Sonny Jeon
+Subject: Updated build date.
+
+
+----------------
+Date: 2014-08-22
+Author: Sonny Jeon
+Subject: WPos report bug fix when MPos disabled.
+
+
+----------------
+Date: 2014-08-18
+Author: Sonny Jeon
+Subject: Update README.md
+
+----------------
+Date: 2014-08-17
+Author: Sonny Jeon
+Subject: Update README.md
+
+----------------
+Date: 2014-08-17
+Author: Sonny Jeon
+Subject: Updated bitly link to master firmware
+
+
+----------------
+Date: 2014-08-17
+Author: Sonny Jeon
+Subject: Merge branch 'master' into edge
+
+
+----------------
+Date: 2014-08-17
+Author: Sonny Jeon
+Subject: Final minor updates for master release.
+
+- Updated ShapeOko2 defaults based on machine testing of the basic
+model provided by Inventables. (or close to it.) Should be pretty
+conservative but much faster than before. For example, X and Y axes are
+set at (10x) faster at 5000mm/min. It can run much faster than this,
+but this seems like a safe speed for everyone.
+
+- Updated README for master release.
+
+- Added some new settings methods for clearing the EEPROM when changing
+versions. Needs some more work, but it should ok for master release.
+Should work on it more for the next version.
+
+
+----------------
+Date: 2014-08-13
+Author: Sonny Jeon
+Subject: Added EEPROM force clear.
+
+- When updating from v0.8, the settings will wipe the startup lines and
+build info locations so that it won’t use whatever is already there in
+the EEPROM. Parameters (coord offsets) are retained. They should be ok
+during an upgrade.
+
+
+----------------
+Date: 2014-08-13
+Author: Sonny Jeon
+Subject: Update README.md
+
+----------------
+Date: 2014-08-13
+Author: Sonny Jeon
+Subject: G28/30 bug fix. Block '$$' during cycle. SO2 defaults.
+
+- A G28/30 bug would cause it to move to machine coordinate [0,0,0] if
+no axis words were sent. It was a typo in the new g-code parser. Fixed
+and slightly re-written to be more consistent with the program flow.
+
+- Updated the ShapeOko2 defaults based on testing on the real machine.
+A little conservative, but it might change again after some more
+testing.
+
+- Now blocks ‘$$’ command during a motion, because the printout takes
+too long and can starve the segment buffer.
+
+
+----------------
+Date: 2014-08-08
+Author: Sonny Jeon
+Subject: XON/XOFF flow control variable typo.
+
+
+----------------
+Date: 2014-08-07
+Author: Sonny Jeon
+Subject: Moved Grbl Sim to its own repo.
+
+
+----------------
+Date: 2014-08-07
+Author: Sonny Jeon
+Subject: Updated licensing
+
+
+----------------
+Date: 2014-08-05
+Author: Sonny Jeon
+Subject: Update README.md
+
+----------------
+Date: 2014-08-05
+Author: Sonny Jeon
+Subject: Fixed bug related to very very low feed rates.
+
+- A very very low feed rate command like `G1 X100 F0.01` would cause
+some floating-point round-off error and freeze Grbl into an infinite
+loop. To fix it, introduced a MINIMUM_FEED_RATE parameter in config.h
+to ensure motions always complete.
+
+- MINIMUM_FEED_RATE is set at 1.0 mm/min by default. It’s recommended
+that no rates are below this value, but 0.1mm/min may be ok in some
+situations.
+
+
+----------------
+Date: 2014-08-04
+Author: Sonny Jeon
+Subject: Allow '$$' in check mode.
+
+- Now allows the ‘$$’ view Grbl settings while in check mode
+
+- Updated the version build date
+
+
+----------------
+Date: 2014-08-04
+Author: Sonny Jeon
+Subject: Update README.md
+
+----------------
+Date: 2014-08-04
+Author: Sonny Jeon
+Subject: Fixed probe position sync error.
+
+- Restored probe position syncing. Had removed a pull-off motion after
+a probe cycle completes, but ended up de-synchronizing the g-code
+parser and probing cycle positions. Putting the pull-off motion back
+fixed the problem.
+
+
+----------------
+Date: 2014-08-03
+Author: Sonny Jeon
+Subject: Update README.md
+
+----------------
+Date: 2014-08-03
+Author: Sonny Jeon
+Subject: Probing cycle and view build info bug fixes.
+
+- Probing cycle would drop into a QUEUED state, if multiple G38.2 are
+sent. It would not honor the auto cycle start flags. To fix, the auto
+cycle start state is saved at the beginning of the probing cycle and
+restored at the end, since the feed hold it uses to stop a triggered
+probe will disable the auto start flag. For now it’s a patch, rather
+than a permanent fix.
+
+- protocol_buffer_synchronize() also has a failure case. Auto cycle
+start does not get executed when the system is waiting in here, so if
+it’s in a QUEUED state already, it won’t resume. Patched here, but not
+fully resolved.
+
+- Fixed a problem with the “view build info” command. The EEPROM write
+would do weird things and corrupt the EEPROM. Not sure exactly what
+caused it, but it’s likely a compiler problem with an improperly
+defined EEPROM address. It didn’t have enough room to store a full
+string. To fix, the build info EEPROM range was increased and the max
+number of STARTUP_BLOCKS was reduced to 2 from 3.
+
+- Lastly, when a $I view build info is used for the first time, it
+would normally show an EEPROM read error, since it wasn’t cleared or
+wasn’t therein the first place. It will now not show that error. A
+patch rather than a permanent fix again.
+
+
+----------------
+Date: 2014-08-01
+Author: Sonny Jeon
+Subject: Update README.md
+
+----------------
+Date: 2014-08-01
+Author: Sonny Jeon
+Subject: Minor bug fixes.
+
+- Bug fix for step and direction invert masks not immediately being in
+effect. Now regenerates the masks when a user changes this setting.
+
+- Bug fix for probing cycle. G-code standard mandates that there is an
+error if the probe is already triggered when the cycle is commanded.
+However, Grbl may have motions to pull off a previous probing cycle in
+queue and can falsely lead to errors. To fix this, the triggered check
+is performed within the probing cycle itself, right after the planner
+buffer is synced. If there is an error, it will now alarm out as a
+probe fail.
+
+
+----------------
+Date: 2014-07-28
+Author: Sonny Jeon
+Subject: Compile in Atmel Studio fix.
+
+
+----------------
+Date: 2014-07-28
+Author: Sonny Jeon
+Subject: Update README.md
+
+----------------
+Date: 2014-07-27
+Author: Sonny Jeon
+Subject: Added build info feedback in help
+
+- `$I` prints the Grbl build info and version number. NOTE: `$I=xxx`
+stores an additional 30 character string into EEPROM, which will be
+printed with the build info the next time it’s run. This is for
+identification purposes for users that have more than one system using
+Grbl.
+
+
+----------------
+Date: 2014-07-26
+Author: Sonny Jeon
+Subject: Updates to allow Arduino IDE direct compiling.
+
+- Only minor changes were required to make the Arduino IDE compile all
+of the Grbl’s source code (correctly using the C-compiler). Tested in
+Windows and Mac and with the normal USB upload and with a programmer.
+
+
+----------------
+Date: 2014-07-26
+Author: Sonny Jeon
+Subject: Settings refactoring. Bug fixes. Misc new features.
+
+This is likely the last major change to the v0.9 code base before push
+to master. Only two minor things remain on the agenda (CoreXY support,
+force clear EEPROM, and an extremely low federate bug).
+
+- NEW! Grbl is now compile-able and may be flashed directly through the
+Arduino IDE. Only minor changes were required for this compatibility.
+See the Wiki to learn how to do it.
+
+- New status reporting mask to turn on and off what Grbl sends back.
+This includes machine coordinates, work coordinates, serial RX buffer
+usage, and planner buffer usage. Expandable to more information on user
+request, but that’s it for now.
+
+- Settings have been completely renumbered to allow for future new
+settings to be installed without having to constantly reshuffle and
+renumber all of the settings every time.
+
+- All settings masks have been standardized to mean bit 0 = X, bit 1 =
+Y, and bit 2 = Z, to reduce confusion on how they work. The invert
+masks used by the internal Grbl system were updated to accommodate this
+change as well.
+
+- New invert probe pin setting, which does what it sounds like.
+
+- Fixed a probing cycle bug, where it would freeze intermittently, and
+removed some redundant code.
+
+- Homing may now be set to the origin wherever the limit switches are.
+Traditionally machine coordinates should always be in negative space,
+but when limit switches on are on the opposite side, the machine
+coordinate would be set to -max_travel for the axis. Now you can always
+make it [0,0,0] via a compile-time option in config.h. (Soft limits
+routine was updated to account for this as well.)
+
+ - Probe coordinate message immediately after a probing cycle may now
+be turned off via a compile-time option in config.h. By default the
+probing location is always reported.
+
+- Reduced the N_ARC_CORRECTION default value to reflect the changes in
+how circles are generated by an arc tolerance, rather than a fixed arc
+segment setting.
+
+- Increased the incoming line buffer limit from 70 to 80 characters.
+Had some extra memory space to invest into this.
+
+- Fixed a bug where tool number T was not being tracked and reported
+correctly.
+
+- Added a print free memory function for debugging purposes. Not used
+otherwise.
+
+- Realtime rate report should now work during feed holds, but it hasn’t
+been tested yet.
+
+- Updated the streaming scripts with MIT-license and added the simple
+streaming to the main stream.py script to allow for settings to be sent.
+
+- Some minor code refactoring to improve flash efficiency. Reduced the
+flash by several hundred KB, which was re-invested in some of these new
+features.
+
+
+----------------
+Date: 2014-07-17
+Author: Sonny Jeon
+Subject: Update README.md
+
+----------------
+Date: 2014-07-12
+Author: Sonny Jeon
+Subject: Update README.md
+
+----------------
+Date: 2014-07-12
+Author: Sonny Jeon
+Subject: Update README.md
+
+----------------
+Date: 2014-07-12
+Author: Sonny Jeon
+Subject: Update README.md
+
+----------------
+Date: 2014-07-12
+Author: Sonny Jeon
+Subject: Updated README
+
+
+----------------
+Date: 2014-07-11
+Author: Sonny Jeon
+Subject: Updated README
+
+
+----------------
+Date: 2014-07-11
+Author: Sonny Jeon
+Subject: Merge pull request #441 from ashelly/edge-simfix
+
+Fixes for simulator in alternate configurations.
+
+----------------
+Date: 2014-07-10
+Author: ashelly
+Subject: Restore changes made only for testing.
+
+
+----------------
+Date: 2014-07-10
+Author: ashelly
+Subject: Bug fixes for timers, added some wdt support for limit debounce.
+
+- Typo in timer def,
+- Handle 8 bit timers correctly,
+- Don't skip TOP count in CTC mode
+- added SREG for atomic bit operations
+
+
+----------------
+Date: 2014-07-09
+Author: Sonny Jeon
+Subject: Merge branch 'dev' into edge
+
+Conflicts:
+ sim/simulator.c
+ sim/simulator.h
+
+
+----------------
+Date: 2014-07-09
+Author: Sonny Jeon
+Subject: Added test g-code programs.
+
+
+----------------
+Date: 2014-07-06
+Author: Sonny Jeon
+Subject: Version and build update.
+
+- Incremented from v0.9e to v0.9f due to the new g-codes, velocity
+reporting option, decimal printing refactoring, grbl-sim updates, and
+G0/G1 bug fix.
+
+- Settings version was also incremented since settings.decimal_places
+is now gone.
+
+
+----------------
+Date: 2014-07-06
+Author: Sonny Jeon
+Subject: Isolate atomic bit flag for execution.
+
+- Denoted bit_true_atomic only for sys.execute bit settings. All other
+bit_true type calls are for local variables only and don’t need atomic
+access. Still looking into other ways of setting these flags without
+requiring atomic access, but this is a patch for now.
+
+
+----------------
+Date: 2014-07-06
+Author: Sonny Jeon
+Subject: Merge pull request #436 from kfoltman/dev
+
+Fixed atomic access to flags in sys.execute.
+
+----------------
+Date: 2014-07-06
+Author: Sonny Jeon
+Subject: Syntax fix for gcode.c
+
+- Whoops! Missed a bracket and it wasn’t compiling. Now fixed.
+
+- Updated the unsupported gcodes listed at the end of the gcode.c file.
+
+
+----------------
+Date: 2014-07-06
+Author: Sonny Jeon
+Subject: G43.1/G49 tool length offset installed. Minor bug fix.
+
+- Minor bug fix that caused G92.1 not to work. The mantissa of G92.1
+was not computed correctly due to floating point round-off errors and
+the use of trunc(). Fixed it by changing the computation with round().
+
+- Installed tool length offsets with G43.1 and G49! True tool length
+offsets via G43 are not supported, because these require us to store
+tool data that we don’t have space for. But we’ve come up with a good
+solution for users that need this. Instead we are strictly using the
+dynamic version G43.1 via linuxcnc.org. Visit their website for more
+details on the command.
+
+- G43.1 operates by requiring an axis word and value to offset the
+configured tool length axis, which can be configured for any axis
+(default Z-axis) in config.h. For example, ```G43.1 Z0.5``` will offset
+the work coordinates from Z0.0 to Z-0.5.
+
+- G49 will cancel the last tool length offset value and reset it to
+zero.
+
+- Tweaked the ‘$#’ parameters report. `Probe` is now `PRB` and a new
+value `TLO` states the tool length offset value.
+
+
+----------------
+Date: 2014-07-05
+Author: Sonny Jeon
+Subject: Merge branch 'ashelly-sim-update' into dev
+
+
+----------------
+Date: 2014-07-05
+Author: Sonny Jeon
+Subject: Merge grbl-sim updates for v0.9.
+
+- Removed some conflicting code in the main Grbl firmware source.
+
+- Temporary patch for coolant and spindle control with streaming
+applied.
+
+
+----------------
+Date: 2014-07-05
+Author: Sonny Jeon
+Subject: New G43.1/G49 gcodes. Not working yet!!
+
+- Pushed this uncompleted code to merge a conflicting pull request.
+
+- New G43.1 and G49 g-codes to be installed. The beginnings of it are
+in place. These g-codes are intended to be used in conjunction with
+probing and allow GUIs to set tool length offsets without Grbl needing
+to store a tool table.
+
+- G43.1 is defined as a dynamic tool length offset that is not stored
+in memory. Rather, when commanded, these are applied to the work
+coordinates until a reset or disabled by G49. This works much like G92.
+
+
+----------------
+Date: 2014-07-05
+Author: ashelly
+Subject: formatting
+
+----------------
+Date: 2014-07-05
+Author: ashelly
+Subject: Update readme.md
+
+----------------
+Date: 2014-07-04
+Author: ashelly
+Subject: Don't need kbhit.h
+
+----------------
+Date: 2014-07-04
+Author: Adam Shelly
+Subject: minor tweaks for mingw.
+
+
+----------------
+Date: 2014-07-04
+Author: Sonny Jeon
+Subject: Realtime rate reporting. Updated decimal places.
+
+- Added a new optional compile-time feature for ‘realtime’ (within
+50ms) feed rate reporting. When querying for a status report, a new
+data value will state the current operating rate. It’s only beta at the
+moment and has some kinks to work out.
+
+- Updated the code for printing floating point values to N decimal
+places. Generalized the main floating point print code to accept a new
+decimal places value and created a set of handler functions to print
+certain floating point value types used in Grbl, like position, rates,
+coordinate offsets, etc. All of these have different decimal
+requirements and change when printed in mm or inches mode.
+
+- Number of decimal places for the different value types can be
+re-defined in config.h, but there shouldn’t be a need for this, as
+these are physically limited.
+
+- Removed the decimal places settings, as this was now obsoleted by the
+new decimal places code.
+
+- The new decimal places code also saves almost 300kB in flash space,
+as it’s more efficient.
+
+
+----------------
+Date: 2014-07-04
+Author: ashelly
+Subject: reduce diffs with dev branch
+
+
+----------------
+Date: 2014-07-04
+Author: ashelly
+Subject: Total rework of simulator for dev branch. Create separate thread for interrupt processes. Tick-accurate simulation of timers. Non-blocking character input for running in realtime mode. Decouple hardware sim from grbl code as much as possible. Expanded command line options. Provisions for cross-platform solution.
+
+
+----------------
+Date: 2014-07-03
+Author: Sonny Jeon
+Subject: Update README.md
+
+----------------
+Date: 2014-07-03
+Author: Sonny Jeon
+Subject: G18 reporting bug fix.
+
+- G18 wasn’t getting reported back to the user correctly, even though
+it has been set internally. Fixed the reporting code to reflect this
+accurately.
+
+
+----------------
+Date: 2014-07-03
+Author: Sonny Jeon
+Subject: G-code parser G0/G1 bug fix.
+
+- Although stated as invalid in the NIST g-code standard, most g-code
+parsers, including linuxcnc, allow G0 and G1 to be commanded without
+axis words present. For example, something like ‘G1 F100.0’ to preset
+the motion mode and feed rate without a motion commanded. Older CNC
+controllers actually required this for feed rate settings. This update
+should now allow this type of behavior.
+
+
+----------------
+Date: 2014-07-02
+Author: Sonny Jeon
+Subject: Minor bug fixes and updates. Line number tracking.
+
+- Line number tracking was getting truncated at 255, since it was using
+wrong variable type. Fixed it with a trunc().
+
+- Increased the max number line allowed by Grbl to 9999999 from the
+g-code standard 99999. The latter seems to be an arbitrary number, so
+we are allowing larger ones for at least one known use case scenario.
+
+- Created a new test directory to contain some testing g-code to proof
+the firmware. Only got started with one test case so far. More will be
+inserted as needed.
+
+- Some other commenting updates to clarify certain aspects of the code.
+
+
+----------------
+Date: 2014-06-26
+Author: Krzysztof Foltman
+Subject: Fixed atomic access to flags in sys.execute.
+
+This seems to fix the bug that caused Grbl to hang during some operations,
+especially jogging.
+
+
+----------------
+Date: 2014-05-31
+Author: Sonny Jeon
+Subject: Arc error-checking update.
+
+- Updated offset-mode arc error-checking to EMC2’s version: The old
+NIST definition required the radii to the current location and target
+location to differ no more than 0.002mm. This proved to be problematic
+and probably why LinuxCNC(EMC2) updated it to be 0.005mm AND 0.1%
+radius OR 0.5mm.
+
+
+----------------
+Date: 2014-05-31
+Author: Sonny Jeon
+Subject: Various minor g-code parser fixes.
+
+- Updated the mantissa calculation that checks for non-integer values
+and GXX.X commands that aren’t supported. There was a potential uint8
+overflow issue.
+
+- Fixed g-code parser bug related to not using the correct modal
+struct. G10 P0 not selecting the current coordinate system when a
+G55-59 is issued in the same line.
+
+- Fixed g-code parser bug related to not using the correct modal
+struct. Target position locations were not computed correctly when
+G90/91 distance modes were changed in the same line. It was using the
+previous state, rather than the current block.
+
+
+----------------
+Date: 2014-05-29
+Author: Sonny Jeon
+Subject: Fixed spindle/coolant/dwell state check.
+
+
+----------------
+Date: 2014-05-25
+Author: Sonny Jeon
+Subject: Major g-code parser overhaul. 100%* compliant. Other related updates.
+
+- Completely overhauled the g-code parser. It’s now 100%* compliant. (*
+may have some bugs). Being compliant, here are some of the major
+differences.
+
+- SMALLER and JUST AS FAST! A number of optimizations were found that
+sped things up and allowed for the more thorough error-checking to be
+installed without a speed hit. Trimmed a lot of ‘fat’ in the parser and
+still was able to make it significantly smaller than it was.
+
+- No default feed rate setting! Removed completely! This doesn’t exist
+in the g-code standard. So, it now errors out whenever it’s undefined
+for motions that require it (G1/2/3/38.2).
+
+- Any g-code parser error expunges the ENTIRE block. This means all
+information is lost and not passed on to the running state. Before some
+of the states would remain, which could have led to some problems.
+
+- If the g-code block passes all of the error-checks, the g-code state
+is updated and all motions are executed according to the order of
+execution.
+
+- Changes in spindle speed, when already running, will update the
+output pin accordingly. This fixes a bug, where it wouldn’t update the
+speed.
+
+- Update g-code parser error reporting. Errors now return detailed
+information of what exact went wrong. The most common errors return a
+short text description. For less common errors, the parser reports
+‘Invalid gcode ID:20’, where 20 is a error ID. A list of error code IDs
+and their descriptions will be documented for user reference elsewhere
+to save flash space.
+
+- Other notable changes:
+
+- Added a print integer routine for uint8 variables. This saved
+significant flash space by switching from a heavier universal print
+integer routine.
+
+- Saved some flash space with our own short hypotenuse calculation
+
+- Some arc computation flash and memory optimizations.
+
+
+----------------
+Date: 2014-05-18
+Author: Jens Geisler
+Subject: Merge pull request #408 from chamnit/master
+
+MIT-Licensing change.
+
+----------------
+Date: 2014-05-18
+Author: Sonny Jeon
+Subject: MIT-licensing change.
+
+
+----------------
+Date: 2014-05-18
+Author: Sonny Jeon
+Subject: MIT-licensing change
+
+
+----------------
+Date: 2014-04-28
+Author: Sonny Jeon
+Subject: Merge pull request #391 from paulkaplan/master
+
+Update Shapeoko 2 defaults
+
+----------------
+Date: 2014-04-14
+Author: Paul Kaplan
+Subject: updated shapeoko2 defaults
+
+
+----------------
+Date: 2014-03-14
+Author: Sonny Jeon
+Subject: Update README.md
+
+----------------
+Date: 2014-03-13
+Author: Sonny Jeon
+Subject: Comment corrections and function call update.
+
+
+----------------
+Date: 2014-03-13
+Author: Sonny Jeon
+Subject: Merge pull request #373 from EliteEng/dev
+
+Added Probing to Mega2560 and fixed Shapeoko2 compile error
+
+----------------
+Date: 2014-03-11
+Author: Rob Brown
+Subject: Added Probing to Mega2560 and fixed Shapeoko2 compile error
+
+
+----------------
+Date: 2014-03-07
+Author: henols
+Subject: Probing command gets stuck in hold if several g38.2 are submitted
+Ex.
+G0 X0 Y0 Z0
+G38.2 Z-10 F100
+G10 L20 P0 Z0
+G0 Z2
+G38.2 Z-1 F50
+G10 L20 P0 Z0
+G0 Z2
+G0 X0 Y0
+G38.2 Z-1 F100
+G0 Z2
+
+
+----------------
+Date: 2014-03-10
+Author: Sonny Jeon
+Subject: Merge pull request #372 from martinstingl/master
+
+Corrected units of default acceleration values
+
+----------------
+Date: 2014-03-10
+Author: Martin Stingl
+Subject: Corrected units of default acceleration values
+
+
+----------------
+Date: 2014-03-07
+Author: Sonny Jeon
+Subject: Merge pull request #368 from henols/dev
+
+Probing command gets stuck in hold if several g38.2 are submitted
+
+----------------
+Date: 2014-03-07
+Author: henols
+Subject: Probing command gets stuck in hold if several g38.2 are submitted
+Ex.
+G0 X0 Y0 Z0
+G38.2 Z-10 F100
+G10 L20 P0 Z0
+G0 Z2
+G38.2 Z-1 F50
+G10 L20 P0 Z0
+G0 Z2
+G0 X0 Y0
+G38.2 Z-1 F100
+G0 Z2
+
+
+----------------
+Date: 2014-02-28
+Author: Sonny Jeon
+Subject: G38.2 probe feature rough draft installed. Working but needs testing.
+
+- G38.2 straight probe now supported. Rough draft. May be tweaked more
+as testing ramps up.
+
+- G38.2 requires at least one axis word. Multiple axis words work too.
+When commanded, the probe cycle will move at the last ‘F’ feed rate
+specified in a straight line.
+
+- During a probe cycle: If the probe pin goes low (normal high), Grbl
+will record that immediate position and engage a feed hold. Meaning
+that the CNC machine will move a little past the probe switch point, so
+keep federates low to stop sooner. Once stopped, Grbl will issue a move
+to go back to the recorded probe trigger point.
+
+- During a probe cycle: If the probe switch does not engage by the time
+the machine has traveled to its target coordinates, Grbl will issue an
+ALARM and the user will be forced to reset Grbl. (Currently G38.3 probe
+without error isn’t supported, but would be easy to implement later.)
+
+- After a successful probe, Grbl will send a feedback message
+containing the recorded probe coordinates in the machine coordinate
+system. This is as the g-code standard on probe parameters specifies.
+
+- The recorded probe parameters are retained in Grbl memory and can be
+viewed with the ‘$#’ print parameters command. Upon a power-cycle, not
+a soft-reset, Grbl will re-zero these values.
+
+- Moved ‘$#’ command to require IDLE or ALARM mode, because it accesses
+EEPROM to fetch the coordinate system offsets.
+
+- Updated the Grbl version to v0.9d.
+
+- The probe cycle is subject to change upon testing or user-feedback.
+
+
+----------------
+Date: 2014-02-27
+Author: Sonny Jeon
+Subject: Probe cycle line numbers ifdef fixes to get it to compile.
+
+- Updated some of the ifdefs when disabling line numbers feature.
+Getting messy with this compile-time option. This will likely get
+cleaned up later.
+
+- This is just a push to get the new probing code to compile. Testing
+and optimization of the code will soon follow and be pushed next.
+
+
+----------------
+Date: 2014-02-27
+Author: Sonny Jeon
+Subject: Merge pull request #362 from robgrz/dev
+
+Minimal probing cycle working. Supports both G38.2 for error and G38.3 ...
+
+----------------
+Date: 2014-02-26
+Author: Sonny Jeon
+Subject: Added grbl planner Matlab simulator for test reference. Updated line number compile-time option.
+
+- Added a grbl planner simulation tool that was written in Matlab and
+Python. It was used to visualize the inner workings of the planner as a
+program is streamed to it. The simulation assumes that the planner
+buffer is empty, then filled, and kept filled. This is mainly for users
+to see how the planner works.
+
+- Updated some of the compile-time ifdefs when enabling line numbers.
+The leaving the un-used line numbers in the function calls eats a
+non-neglible amount of flash memory. So the new if-defs remove them.
+
+
+----------------
+Date: 2014-02-25
+Author: Robert Grzesek
+Subject: Minimal probing cycle working. Supports both G38.2 for error and G38.3 when no errors are desired.
+
+
+----------------
+Date: 2014-02-19
+Author: Sonny Jeon
+Subject: Minor updates to line number feature.
+
+- Changed line number integer types from unsigned to signed int32.
+G-code mandates values cannot exceed 99999. Negative values can be used
+to indicate certain modes.
+
+- Homing cycle line number changed to -1, as an indicator.
+
+- Fixed a reporting define for the spindle states that was broken by
+the last merge.
+
+
+----------------
+Date: 2014-02-19
+Author: Sonny Jeon
+Subject: Merge pull request #356 from robgrz/dev
+
+Line number reporting as compile-time option.
+
+----------------
+Date: 2014-02-19
+Author: Sonny Jeon
+Subject: Commenting updates. Minor bug fix with exit of soft limit event.
+
+
+----------------
+Date: 2014-02-18
+Author: Robert Grzesek
+Subject: Merge commit 'cd71a90ce8a770e0030ed6c9bac805b89724e275' into dev
+
+Conflicts:
+ limits.c
+ motion_control.c
+ report.c
+
+
+----------------
+Date: 2014-02-15
+Author: Sonny Jeon
+Subject: Homing and feed hold bug fixes.
+
+WARNING: Bugs may still exist. This branch is a work in progress and
+will be pushed to the edge branch when at beta stability. Use at your
+own risk.
+
+- Homing freezing issue fixed. Had to do with the cycle stop flag being
+set incorrectly after the homing cycles and before the pull-off
+maneuver. Now resets the stepper motors before this can happen.
+
+- Fixed an issue with a rare feed hold failure. Had to do with feed
+hold ending exactly at the end of a block. The runtime protocol now
+sets the QUEUED and IDLE states appropriately when this occurs. Still
+need to clean this code up however, as it’s patched rather than written
+well.
+
+- Updated version build via $I command.
+
+- Forgot to comment on a new feature for the last commit. Since steps
+are integers and millimeters traveled are floats, the old step segment
+generator ignored the step fraction differences in generating the
+segment velocities. Didn’t see like it would be much of a big deal, but
+there were instances that this would be a problem, especially for very
+slow feed rates. The stepper algorithm now micro-adjusts the segment
+velocities based on the step fractions not executed from the previous
+segment. This ensures that Grbl generates the velocity profiles EXACTLY
+and noticeably improves overall acceleration performance.
+
+
+----------------
+Date: 2014-02-09
+Author: Sonny Jeon
+Subject: Refactoring and lots of bug fixes. Updated homing cycle.
+
+WARNING: There are still some bugs to be worked out. Please use caution
+if you test this firmware.
+
+- Feed holds work much better, but there are still some failure
+conditions that need to be worked out. This is the being worked on
+currently and a fix is planned to be pushed next.
+
+- Homing cycle refactoring: Slight adjustment of the homing cycle to
+allow for limit pins to be shared by different axes, as long as the
+shared limit pins are not homed on the same cycle. Also, removed the
+LOCATE_CYCLE portion of the homing cycle configuration. It was
+redundant.
+
+- Limit pin sharing: (See above). To clear up one or two limit pins for
+other IO, limit pins can now be shared. For example, the Z-limit can be
+shared with either X or Y limit pins, because it’s on a separate homing
+cycle. Hard limit will still work exactly as before.
+
+- Spindle pin output fixed. The pins weren’t getting initialized
+correctly.
+
+- Fixed a cycle issue where streaming was working almost like a single
+block mode. This was caused by a problem with the spindle_run() and
+coolant_run() commands and issuing an unintended planner buffer sync.
+
+- Refactored the cycle_start, feed_hold, and other runtime routines
+into the runtime command module, where they should be handled here
+only. These were redundant.
+
+- Moved some function calls around into more appropriate source code
+modules.
+
+- Fixed the reporting of spindle state.
+
+
+----------------
+Date: 2014-02-06
+Author: Robert Grzesek
+Subject: Made line number reporting optional via config.h
+
+
+----------------
+Date: 2014-02-06
+Author: Robert Grzesek
+Subject: Initial line number reporting
+
+
+----------------
+Date: 2014-02-02
+Author: Sonny Jeon
+Subject: Update README.md
+
+----------------
+Date: 2014-01-28
+Author: Jens Geisler
+Subject: Merge pull request #337 from michmerr/edge
+
+Make sure that cycle_start state is set before simulating steps.
+
+----------------
+Date: 2014-01-28
+Author: michmerr
+Subject: Simplify setting of STATE_CYCLE and ISR interval.
+
+Set sys.state to STATE_CYCLE directly instead of calling back to
+st_wakeup().
+
+Convert get_step_time() to a constant and rename it to ISR_INTERVAL.
+
+
+----------------
+Date: 2014-01-22
+Author: michmerr
+Subject: Make sure that cycle_start state is set before simulating steps.
+
+
+----------------
+Date: 2014-01-15
+Author: Sonny Jeon
+Subject: Update README.md
+
+----------------
+Date: 2014-01-14
+Author: Sonny Jeon
+Subject: Update README.md
+
+----------------
+Date: 2014-01-10
+Author: Sonny Jeon
+Subject: Lots of re-organization and cleaning-up. Some bug fixes.
+
+- Added a new source and header file called system. These files contain
+the system commands and variables, as well as all of the system headers
+and standard libraries Grbl uses. Centralizing some of the code.
+
+- Re-organized the include headers throughout the source code.
+
+- ENABLE_M7 define was missing from config.h. Now there.
+
+- SPINDLE_MAX_RPM and SPINDLE_MIN_RPM now defined in config.h. No
+uncommenting to prevent user issues. Minimum spindle RPM now provides
+the lower, near 0V, scale adjustment, i.e. some spindles can go really
+slow so why use up our 256 voltage bins for them?
+
+- Remove some persistent variables from coolant and spindle control.
+They were redundant.
+
+- Removed a VARIABLE_SPINDLE define in cpu_map.h that shouldn’t have
+been there.
+
+- Changed the DEFAULT_ARC_TOLERANCE to 0.002mm to improve arc tracing.
+Before we had issues with performance, no longer.
+
+- Fixed a bug with the hard limits and the software debounce feature
+enabled. The invert limit pin setting wasn’t honored.
+
+- Fixed a bug with the homing direction mask. Now is like it used to
+be. At least for now.
+
+- Re-organized main.c to serve as only as the reset/initialization
+routine. Makes things a little bit clearer in terms of execution
+procedures.
+
+- Re-organized protocol.c as the overall master control unit for
+execution procedures. Not quite there yet, but starting to make a
+little more sense in how things are run.
+
+- Removed updating of old settings records. So many new settings have
+been added that it’s not worth adding the code to migrate old user
+settings.
+
+- Tweaked spindle_control.c a bit and made it more clear and consistent
+with other parts of Grbl.
+
+- Tweaked the stepper disable bit code in stepper.c. Requires less
+flash memory.
+
+
+----------------
+Date: 2014-01-05
+Author: Sonny Jeon
+Subject: Updates to some stepper algorithm commenting
+
+
+----------------
+Date: 2014-01-05
+Author: Sonny Jeon
+Subject: New build info feature. (per @Analogreality request)
+
+- New build info feature. Hidden command ‘$I’ will print the build info
+for your Grbl firmware. Users may also write an identifying message
+within it via ‘$I=‘ with up to 32 characters. (no more, or else it will
+break).
+
+- Adjusted the max number of startup lines to 3. Majority of people
+will only need one.
+
+- Fixed a compile error with spindle_control.c. A rogue #endif was
+causing problems.
+
+
+----------------
+Date: 2014-01-04
+Author: Sonny Jeon
+Subject: Variable spindle output. Resolved conflicts in last push.
+
+Resolve conflicts.
+
+
+----------------
+Date: 2014-01-04
+Author: Sonny Jeon
+Subject: Cleaned up variable spindle output (PWM). Code and config comments.
+
+- Variable spindle speed output as a configuration option. Thanks
+@EliteEng! When enabled, the Z-limit (D11) and spindle enable(D12) pins
+switch to allow access to the hardware PWM output on pin D11.
+Otherwise, everything should work as it does.
+
+- Removed option for inverting the spindle and coolant enable pins.
+This is a safety hazard, especially for the spindle. When Grbl
+initializes, all pins are momentarily low until it finishes booting. If
+an invert is enabled, this means the spindles can be energized briefly
+during this time. If users need signal inversion, it’s recommended to
+just wire in an inversion circuit instead.
+
+- Cleared out references to spindle variable output in terms of step
+signal. This isn’t complete and requires more deliberation before
+installing.
+
+- Cleared up and cleaned up some code and config comments.
+
+
+----------------
+Date: 2014-01-03
+Author: Sonny Jeon
+Subject: Merge pull request #322 from EliteEng/dev
+
+Update to fix compile error
+
+----------------
+Date: 2014-01-03
+Author: Rob Brown
+Subject: Update to fix compile error
+
+Update to fix compile error
+
+
+----------------
+Date: 2014-01-02
+Author: Sonny Jeon
+Subject: Merge pull request #318 from EliteEng/dev
+
+PWM Spindle Control and Invert Spindle & Coolant Pins
+
+----------------
+Date: 2014-01-03
+Author: Rob Brown
+Subject: Update spindle_control.c
+
+Updated spindle_control.c due to compile error.
+
+----------------
+Date: 2014-01-02
+Author: Sonny Jeon
+Subject: Fix for M7/8/9 modal group checks. Updated AMASS frequency cutoffs and code cleaned.
+
+- Updated Grbl version to 0.9c and build number.
+
+- G-code parser was missing modal group violation checks for M7/8/9
+commands. Added them.
+
+- Updated the Adaptive Multi-Axis Step Smoothing (AMASS) cutoff
+frequencies so that the trade between the 16-bit Timer1 accuracy and
+the level step smoothing are somewhat better balanced. (Smoothing isn’t
+free, but a higher accuracy timer would provide high cutoff
+frequencies.)
+
+
+----------------
+Date: 2014-01-02
+Author: Sonny Jeon
+Subject: Update README.md
+
+----------------
+Date: 2014-01-02
+Author: Rob Brown
+Subject: PWM Spindle Control and Invert Spindle & Coolant Pins
+
+PWM Spindle Control and Invert Spindle & Coolant Pins
+
+
+----------------
+Date: 2013-12-30
+Author: Sonny Jeon
+Subject: Minor bug fixes: Homing travel calculations. Cycle resuming after spindle and dwell commands.
+
+- Homing travel calculations fixed. It was computing the min travel
+rather than max.
+
+- Auto-start disable and pausing after spindle or dwell commands.
+Related to plan_synchronize() function call. Now fixed, but still need
+to work on the system state.
+
+- Pushed a fix to make this branch more Arduino IDE compatible. Removed
+extern call in nuts_bolts.c
+
+- Updated the stepper configuration option of enabling or disabling the
+new Adaptive Multi-Axis Step Smoothing Algorithm. Now works either way.
+
+- Updated some copyright info.
+
+
+----------------
+Date: 2013-12-30
+Author: Sonny Jeon
+Subject: Merge pull request #201 from Protoneer/master
+
+Made a few changes to make the code compatible with the Arduino IDE. Sorry about the tardiness!
+
+----------------
+Date: 2013-12-30
+Author: Sonny Jeon
+Subject: Incomplete push but working. Lots more stuff. More to come.
+
+- NEW! An active multi-axis step smoothing algorithm that automatically
+adjusts dependent on step frequency. This solves the long standing
+issue to aliasing when moving with multiple axes. Similar in scheme to
+Smoothieware, but more advanced in ensuring a more consistent CPU
+overhead throughout all frequencies while maintaining step exactness.
+
+- Switched from Timer2 to Timer0 for the Step Port Reset Interrupt.
+Mainly to free up hardware PWM pins.
+
+- Seperated the direction and step pin assignments, so we can now move
+them to seperate ports. This means that we can more easily support 4+
+axes in the future.
+
+- Added a setting for inverting the limit pins, as so many users have
+request. Better late than never.
+
+- Bug fix related to EEPROM calls when in cycle. The EEPROM would kill
+the stepper motion. Now protocol mandates that the system be either in
+IDLE or ALARM to access or change any settings.
+
+- Bug fix related to resuming the cycle after a spindle or dwell
+command if auto start has been disabled. This fix is somewhat temporary
+or more of a patch. Doesn’t work with a straight call-response
+streaming protocol, but works fine with serial buffer pre-filling
+streaming that most clients use.
+
+- Renamed the pin_map.h to cpu_map.h to more accurately describe what
+the file is.
+
+- Pushed an auto start bug fix upon re-initialization.
+
+- Much more polishing to do!
+
+
+----------------
+Date: 2013-12-29
+Author: Sonny Jeon
+Subject: Incomplete dev code push, but working. Lots of updates/fixes/improvements. Much still to polish.
+
+- Ugh. Github just erased my list of improvements and changes due to a
+conflict and forcing me to resolve it. Hope this goes through.
+
+- Major stepper algorithm change. Trashed the old v0.9 edge
+branch-style stepper algorithm. It’s fine, but it was susceptible to
+aliasing noise when moving very slow or very fast. It also had a bit of
+CPU overhead. It was written to solve a standing issue with v0.8
+master, where it couldn’t generate a smooth acceleration abocve
+10-15kHz. But, with new step segment buffer in v0.9c, it inadvertently
+fixed the acceleration problem with v0.8 stepper algorithm. So, what
+does it mean for you? Smoother stepper pulses and likely higher step
+frequencies.
+
+- Stepper algorithm now uses Timer1 and Timer2, instead of Timer0 and
+Timer2. Timers 0 and 2 can be swapped if there is an issue.
+
+- With the old v0.8 stepper algorithm, the STEP_DELAY_PULSE
+configuration option is also back.
+
+- NEW! Hard limit software debouncing. Grbl now employs the AVR’s
+watchdog timer as a way to monitor the hard limit pins and checking
+their states after a delay. This is a simple software debouncing
+technique and may help alleviate some of the false trigger some users
+have been complaining about. BUT, this won’t fix electric noise issues!
+
+- Fixed an issue with the new homing cycle routine where it wasn’t
+honoring the acceleration and axis speed limits depending on the homing
+cycle mask. Now does. Also, updated the homing direction mask code to
+be a little cleaner.
+
+- Moved the main part of the homing cycle control and execution to
+motion_control.c, where it fits better.
+
+- Removed the STATE_INIT system state as it was redundant. Made the
+system states into bitflags so multiple system states can be checked
+via one if statement.
+
+- Reorganized the power-up routine to work with the new system states.
+
+
+----------------
+Date: 2013-12-29
+Author: Sonny Jeon
+Subject: Merge branch 'dev' of https://github.com/grbl/grbl into dev
+
+Conflicts:
+ limits.c
+
+
+----------------
+Date: 2013-12-29
+Author: Sonny Jeon
+Subject: Merge branch 'dev' of https://github.com/grbl/grbl into dev
+
+Conflicts:
+ limits.c
+
+
+----------------
+Date: 2013-12-27
+Author: Sonny Jeon
+Subject: Merge pull request #312 from scottrcarlson/dev
+
+Fixed homing_dir_mask functionality in the re-written homing_cycle.
+
+----------------
+Date: 2013-12-27
+Author: Scott R Carlson
+Subject: Hard Limits configured for active high.
+
+Added the use of homing_dir_mask to homing_cycle
+
+
+----------------
+Date: 2013-12-10
+Author: Sonny Jeon
+Subject: Update README.md
+
+----------------
+Date: 2013-12-10
+Author: Sonny Jeon
+Subject: Revamped homing cycle. Axis limits and max travel bug fixes. Build info. Refactored config.h.
+
+- Revamped and improved homing cycle. Now tied directly into the main
+planner and stepper code, which enables much faster homing seek rates.
+Also dropped the compiled flash size by almost 1KB, meaning 1KB more
+for other features.
+
+- Refactored config.h. Removed obsolete defines and configuration
+options. Moved lots of “advanced” options into the advanced area of the
+file.
+
+- Updated defaults.h with the new homing cycle. Also updated the
+Sherline 5400 defaults and added the ShapeOko2 defaults per user
+submissions.
+
+- Fixed a bug where the individual axes limits on velocity and
+acceleration were not working correctly. Caused by abs() returning a
+int, rather than a float. Corrected with fabs(). Duh.
+
+- Added build version/date to the Grbl welcome message to help indicate
+which version a user is operating on.
+
+- Max travel settings were not being defaulted into the settings EEPROM
+correctly. Fixed.
+
+- To stop a single axis during a multi-axes homing move, the stepper
+algorithm now has a simple axis lock mask which inhibits the desired
+axes from moving. Meaning, if one of the limit switches engages before
+the other, we stop that one axes and keep moving the other.
+
+
+----------------
+Date: 2013-12-10
+Author: Sonny Jeon
+Subject: Merge pull request #301 from shapeoko/master
+
+added shapeoko2 profile
+
+----------------
+Date: 2013-12-10
+Author: Edward
+Subject: added shapeoko2 profile
+
+shapeoko 2 uses 2mm GT2 belting and 20tooth pulleys
+
+
+----------------
+Date: 2013-12-07
+Author: Sonny Jeon
+Subject: Deceleration to zero speed improvements. Update defaults.
+
+- A minor issue with deceleration ramps when close to zero velocity.
+Should be virtually unnoticeable for most CNC systems, but fixed in
+this push and accurate to physics.
+
+- Updated some of the junction deviation defaults. Because the new
+stepper algorithm can easily maximize a CNC machine’s capabilities or
+simply go much faster, this means the speed in which it enters
+junctions has to be a little more constrained. Meaning that, we have to
+slow a little bit down more so that we don’t exceed the acceleration
+limits of the stepper motors.
+
+
+----------------
+Date: 2013-12-07
+Author: Sonny Jeon
+Subject: Pushed bug fixes. Updated readme.
+
+- G18 plane select fix from XZ-plane to ZX-plane per right hand rule.
+
+- Added volatile declaration for rx_buffer_tail in serial.c. No real
+effect to operation as avr-gcc adds this upon compilation. Helps with
+porting issues when using a different compiler.
+
+
+----------------
+Date: 2013-12-07
+Author: Sonny Jeon
+Subject: Pushed limits active high option. Updated defaults.h. Misc bug fixes. Cleaned up codebase.
+
+- Pushed limit switch active high option (i.e. NC switches).
+
+- Updated defaults.h to be in-line with the new settings.
+
+- Refactored feed hold handling and step segment buffer to be more
+generalized in effort to make adding feedrate overrides easier in the
+future. Also made it a little more clean.
+
+- Fixed G18 plane select issue. Now ZX-plane, rather than XZ-plane, per
+right hand rule.
+
+- Cleaned some of the system settings by more accurately renaming some
+of the variables and removing old obsolete ones.
+
+- Declared serial.c rx_buffer_tail to be volatile. No effect, since
+avr-gcc automatically does this during compilation. Helps with porting
+when using other compilers.
+
+- Updated version number to v0.9b.
+
+- Updates to README.md
+
+
+----------------
+Date: 2013-12-04
+Author: Sonny Jeon
+Subject: Reinstated feed holds into new stepper algorithm and planner. Rough draft, but working.
+
+- Reinstated the feed hold feature with the new stepper algorithm and
+new optimized planner. It works, but will be re-factored a bit soon to
+clean up the code.
+
+- At this point, feedrate overrides may need to be installed in the
+v1.0 version of grbl, while this version will likely be pushed to the
+edge branch soon and pushed to master after the bugs have been squashed.
+
+- Measured the overall performance of the new planner and stepper
+algorithm on an oscilloscope. The new planner is about 4x faster than
+before, where it is completing a plan in around 1ms. The stepper
+algorithm itself is minutely faster, as it is a little lighter. The
+trade-off in the increased planner performance comes from the new step
+segment buffer. However, even in the worse case scenario, the step
+segment buffer generates a new segment with a typical 0.2 ms, and the
+worse case is 1ms upon a new block or replanning the active block.
+Added altogether, it’s argubly still twice as efficient as the old one.
+
+
+----------------
+Date: 2013-11-23
+Author: Sonny Jeon
+Subject: Merge pull request #289 from Travis-Snoozy/master
+
+Add support for active-high limit switches
+
+----------------
+Date: 2013-11-22
+Author: Travis Snoozy
+Subject: Add support for active-high limit switches
+
+
+----------------
+Date: 2013-11-22
+Author: Sonny Jeon
+Subject: Yet another major stepper algorithm and planner overhaul.
+
+- Overhauled the stepper algorithm and planner again. This time
+concentrating on the decoupling of the stepper ISR completely. It is
+now dumb, relying on the segment generator to provide the number of
+steps to execute and how fast it needs to go. This freed up lots of
+memory as well because it made a lot tracked variables obsolete.
+
+- The segment generator now computes the velocity profile of the
+executing planner block on the fly in floating point math, instead of
+allowing the stepper algorithm to govern accelerations in the previous
+code. What this accomplishes is the ability and framework to (somewhat)
+easily install a different physics model for generating a velocity
+profile, i.e. s-curves.
+
+- Made some more planner enhancements and increased efficiency a bit.
+
+- The changes also did not increase the compiled size of Grbl, but
+decreased it slightly as well.
+
+- Cleaned up a lot of the commenting.
+
+- Still much to do, but this push works and still is missing feedholds
+(coming next.)
+
+
+----------------
+Date: 2013-10-29
+Author: Sonny Jeon
+Subject: Another merge fix.
+
+
+----------------
+Date: 2013-10-29
+Author: Sonny Jeon
+Subject: Merge fixes.
+
+
+----------------
+Date: 2013-10-29
+Author: Sonny Jeon
+Subject: Merge branch 'dev_2' into dev
+
+Conflicts:
+ README.md
+ gcode.c
+ motion_control.c
+ planner.c
+ planner.h
+ protocol.c
+ report.c
+ settings.c
+ settings.h
+ stepper.c
+ stepper.h
+
+
+----------------
+Date: 2013-10-29
+Author: Sonny Jeon
+Subject: Merge branch 'dev_2' into dev
+
+Conflicts:
+README.md
+gcode.c
+motion_control.c
+planner.c
+planner.h
+protocol.c
+report.c
+settings.c
+settings.h
+stepper.c
+stepper.h
+
+
+----------------
+Date: 2013-10-29
+Author: Sonny Jeon
+Subject: Planner function call fix. More clean up.
+
+
+----------------
+Date: 2013-10-29
+Author: Sonny Jeon
+Subject: Updated comments. Changed stepper variable names to be more understandable. Added step locking note.
+
+- Updated config comments and stepper code comments for the new changes.
+
+- Changed stepper algorithm variable names to be more understandable in
+what they actually do.
+
+- Added a stepper lock note in default.h per user request.
+
+- Started some code layout in handling feed holds and refactoring the
+homing routine to use the main stepper algorithm instead of a seperate
+version.
+
+
+----------------
+Date: 2013-10-24
+Author: Sonny Jeon
+Subject: Cleaned up stepper and planner code.
+
+- Added some compile-time error checking. Will add more in future
+pushes to ensure settings are correct and within parameters that won't
+break anything.
+
+- Pushed some master branch changes with MEGA pin settings.
+
+- Cleaned up planner code and comments to clarify some of the new
+changes. Still much to do here.
+
+- Cleaned up the new stepper code. May need to abstract some of the
+segment buffer more to fix the feed holds (and integrate homing into
+the main stepper routine). With what's planned, this should make the
+stepper algorithm easier to attach other types of processes to it,
+where it is now tightly integrated with the planner buffer and nothing
+else.
+
+
+----------------
+Date: 2013-10-21
+Author: Sonny Jeon
+Subject: Merge pull request #279 from EliteEng/master
+
+Changed Stepper Pins
+
+----------------
+Date: 2013-10-18
+Author: Rob Brown
+Subject: Changed Stepper Pins
+
+Changed Stepper Pins so the Step Port Invert Mask matches the UNO
+
+
+----------------
+Date: 2013-10-17
+Author: Sonny Jeon
+Subject: Merge pull request #278 from EliteEng/master
+
+Update Pin Change Interrupts on Mega 2560
+
+----------------
+Date: 2013-10-17
+Author: Rob Brown
+Subject: Update Pin Change Interrupts so it works
+
+PCIE1 - Interrupt 8 on the Mega is attached to USART0 RX so when any
+serial communication was transmitted it was triggering the Reset
+Interrupt
+
+
+----------------
+Date: 2013-10-14
+Author: Sonny Jeon
+Subject: Fine tuning of new stepper algorithm with protected planner. Adaptive step prediction for segment buffer.
+
+- Cleaned up the new stepper algorithm code with more commenting and
+better logic flow.
+
+- The new segment buffer now predicts the number of steps each segment
+should have to execute over about 8 milliseconds each (based on the
+ACCELERATION_TICKS_PER_SECOND setting). So, for when the whole segment
+buffer is full, the stepper algorithm has roughly 40 milliseconds of
+steps queued before it needs to refilled by the main program.
+
+- Readjusted the max supported step rate back to 30kHz from the lower
+development 20kHz. Everything still works amazing great and the test
+CNC machine still runs twice as fast with the new stepper algorithm and
+planner.
+
+- Upped the standard serial baudrate to 115200 baud, as it is clear
+that the bottleneck is the serial interface. Will now support this, as
+well as the old 9600 baud, in new firmware builds.
+
+
+----------------
+Date: 2013-10-12
+Author: Sonny Jeon
+Subject: New stepper subsystem bug fixes.
+
+- New stepper algorithm with the new optimized planner seems to be
+working nearly twice as fast as the previous algorithm.
+
+- For one, the planner computation overhead is probably a fraction of
+what it used to be with the worst case being about half still.
+
+- Secondly, anytime the planner plans back to the first executing
+block, it no longer overwrites the block conditions and allows it to
+complete without lost steps. So no matter if the streams slows, the
+protected planner should keep the steppers moving without risk of lost
+steps (although this still needs to be tested thoroughly and may
+audibly sound weird when this happens.)
+
+- It now seems that the bottleneck is the serial baudrate (which is
+good!)
+
+
+----------------
+Date: 2013-10-09
+Author: Sonny Jeon
+Subject: Protected buffer works! Vast improvements to planner efficiency. Many things still broken with overhaul.
+
+Development push. Lots still broken.
+
+- Protected planner concept works! This is a critical precursor to
+enabling feedrate overrides in allowing the planner buffer and the
+stepper execution operate atomically. This is done through a
+intermediary segment buffer.
+
+- Still lots of work to be done, as this was a complete overhaul of the
+planner and stepper subsystems. The code can be cleaned up quite a bit,
+re-enabling some of the broken features like feed holds, and finishing
+up some of the concepts
+
+- Pushed some of the fixes from the master and edge branch to here, as
+this will likely replace the edge branch when done.
+
+
+----------------
+Date: 2013-08-25
+Author: Sonny Jeon
+Subject: Merge pull request #263 from 0xPIT/master
+
+remove mcu argument for avr-size in makefile as it is not present in GNU...
+
+----------------
+Date: 2013-08-25
+Author: 0xPIT
+Subject: remove mcu argument for avr-size in makefile as it is not present in GNU Binutils 2.22
+
+
+----------------
+Date: 2013-08-20
+Author: Sonny Jeon
+Subject: Pin map definition cleanup.
+
+
+----------------
+Date: 2013-08-19
+Author: Sonny Jeon
+Subject: Processor-independent pin mapping feature.
+
+- Cleaned up and organized pin mapping concept by @elmom.
+
+- pin_map.h allows for user-supplied pin mapping and port vector
+definitions in a centralized file. With more processor types, more
+definitions could be added.
+
+
+----------------
+Date: 2013-08-19
+Author: Sonny Jeon
+Subject: Merge pull request #260 from elmom/master
+
+Thanks for the contribution! Looks good. Will update some of the semantics shortly, but the idea is solid.
+
+----------------
+Date: 2013-08-19
+Author: Sonny Jeon
+Subject: Push old dev_2 draft to work on other things.
+
+- **NON-FUNCTIONAL**
+- Contains an old draft of separating the stepper driver direct access
+to the planner buffer. This is designed to keep the stepper and planner
+modules independent and prevent overwriting or other complications. In
+this way, feedrate override should be able to be installed as well.
+- A number of planner optimizations are installed too.
+- Not sure where the bugs are. Either in the new planner optimizations,
+new stepper module updates, or in both. Or it just could be that the
+Arduino AVR is choking with the new things it has to do.
+
+
+----------------
+Date: 2013-08-19
+Author: Sonny Jeon
+Subject: Merge pull request #229 from 0xPIT/patch-1
+
+fix command line parameter for avr-size
+
+----------------
+Date: 2013-07-21
+Author: Elmo Mäntynen
+Subject: Refactor config.h to allow defaults for chips/boards with different pin mappings
+
+
+----------------
+Date: 2013-07-21
+Author: Elmo Mäntynen
+Subject: Added pin mapping list to docs, useful for porting
+
+
+----------------
+Date: 2013-07-21
+Author: Elmo Mäntynen
+Subject: Make serial work with most chips by default
+
+
+----------------
+Date: 2013-05-16
+Author: 0xPIT
+Subject: fix command line parameter for avr-size
+
+----------------
+Date: 2013-04-05
+Author: Sonny Jeon
+Subject: Updated readme
+
+
+----------------
+Date: 2013-04-05
+Author: Sonny Jeon
+Subject: Increased g-code parser line buffer. Added line overflow feedback.
+
+- Increased g-code parser line buffer from 50 to 70 characters. Should
+fix most all issues with long arc statements, provided that they are 8
+digits(float) long only.
+
+- Added a line buffer overflow feedback error to let the user know when
+it encounters this problem. Resets the line whenever this occurs.
+(Thanks @BHSPitMonkey!)
+
+
+----------------
+Date: 2013-04-05
+Author: Sonny Jeon
+Subject: Updates to edge/dev. Line buffer increased/planner buffer decreased. Line overflow feedback.
+
+- Increased g-code parser line buffer to 70 characters (from 50) to
+prevent some long arc commands from getting truncated.
+
+- Decreased planner buffer from 18 to 17 blocks to free up memory for
+line buffer.
+
+- Added a line buffer overflow feedback error (Thanks @BHSPitMonkey!)
+
+
+----------------
+Date: 2013-03-28
+Author: Sonny Jeon
+Subject: Minor updates to code and commenting.
+
+
+----------------
+Date: 2013-03-22
+Author: Sonny Jeon
+Subject: Update README.md
+
+----------------
+Date: 2013-03-21
+Author: Sonny Jeon
+Subject: Untested! Soft limits, max travel, homing changes, new settings.
+
+- WARNING: Completely untested. Will later when there is time. Settings
+WILL be overwritten, as there are new settings.
+
+- Soft limits installed. Homing must be enabled for soft limits to work
+correctly. Errors out much like a hard limit, locking out everything
+and bringing up the alarm mode. Only difference is it forces a feed
+hold before doing so. Position is not lost.
+
+- IMPORTANT: Homing had to be updated so that soft limits work better
+with less CPU overhead. When homing completes, all axes are assumed to
+exist in negative space. If your limit switch is other side, the homing
+cycle with set this axis location to the max travel value, rather than
+zero.
+
+- Update mc_line() to accept an array, rather than individual variables.
+
+- Added an mc_auto_cycle_start() function handle this feature.
+Organization only.
+
+-
+
+
+----------------
+Date: 2013-03-19
+Author: Sonny Jeon
+Subject: Update README.md
+
+----------------
+Date: 2013-03-19
+Author: Sonny Jeon
+Subject: G-code updates for G10 L2 and L20
+
+- Updated g-codes G10 L2 and G10 L20 to the new descriptions on
+linuxcnc.org
+
+
+----------------
+Date: 2013-03-19
+Author: Sonny Jeon
+Subject: G-code updates for G10 L2 and L20.
+
+- LinuxCNC's g-code definitions changed for G10. Updated to their
+descriptions.
+
+
+----------------
+Date: 2013-03-13
+Author: Bertus Kruger
+Subject: Update planner.c
+
+Removed inline from all functions.
+
+If this is really needed is there another way that we can get
+around using it? (The Arduino IDE does not recognize it)
+
+----------------
+Date: 2013-03-13
+Author: Bertus Kruger
+Subject: Update nuts_bolts.c
+
+Removed __floatunsisf and used normal casting on line 81.
+This makes it compatible with the Arduino IDE.
+
+----------------
+Date: 2013-03-12
+Author: Sonny Jeon
+Subject: Pushed minor changes. Thanks @Protoneer!
+
+
+----------------
+Date: 2013-03-12
+Author: Sonny Jeon
+Subject: Merge pull request #200 from Protoneer/master
+
+Fixed small bug.
+
+----------------
+Date: 2013-03-13
+Author: Bertus Kruger
+Subject: Update gcode.c
+
+Removed the home_select variable.
+
+----------------
+Date: 2013-03-13
+Author: Bertus Kruger
+Subject: Update eeprom.h
+
+Fixed the function signature.
+
+----------------
+Date: 2013-03-13
+Author: Bertus Kruger
+Subject: Update eeprom.c
+
+Changed back
+
+----------------
+Date: 2013-03-12
+Author: Bertus Kruger
+Subject: Update gcode.c
+
+home_select defined out of scope. Moved it outside the switch
+so the rest of the switch can see it properly.
+
+----------------
+Date: 2013-03-12
+Author: Bertus Kruger
+Subject: Update eeprom.c
+
+Function eeprom_put_char's parameters did not align with the .h file.
+
+----------------
+Date: 2013-03-01
+Author: Sonny Jeon
+Subject: Bug fix to-do note on soft limit checks. Not yet completed.
+
+
+----------------
+Date: 2013-03-01
+Author: Sonny Jeon
+Subject: Minor changes and added notes to soft limits routines.
+
+- Changed up mc_line to accept an array rather than individual x,y,z
+coordinates. Makes some of the position data handling more effective,
+especially for a 4th-axis later on.
+
+- Changed up some soft limits variable names.
+
+
+----------------
+Date: 2013-02-26
+Author: Sonny Jeon
+Subject: Merge pull request #193 from bungao/soft_limts
+
+integrating soft limits
+
+----------------
+Date: 2013-02-26
+Author: Jens Geisler
+Subject: bugfix: uninitiallized curr_block->new_entry_speed_sqr lead to step loss
+in some cases
+
+----------------
+Date: 2013-02-26
+Author: bungao
+Subject: integrating soft limits
+
+
+----------------
+Date: 2013-02-22
+Author: Sonny Jeon
+Subject: Added some prelimary notes to new changes.
+
+
+----------------
+Date: 2013-02-22
+Author: Sonny Jeon
+Subject: Push additional updates from @jgeisler0303
+
+
+----------------
+Date: 2013-02-22
+Author: Jens Geisler
+Subject: changed atomic access for updating the acceleration profile
+the stepper interrupt is only halted when necessary and for the shortest
+time possible (8% cycle time)
+
+----------------
+Date: 2013-02-20
+Author: Sonny Jeon
+Subject: Merge pull request #188 from jgeisler0303/new_planner
+
+New planner commits merge into dev branch.
+
+----------------
+Date: 2013-02-20
+Author: Sonny Jeon
+Subject: Update README.md
+
+----------------
+Date: 2013-02-20
+Author: Jens Geisler
+Subject: added counter for planner steps
+
+----------------
+Date: 2013-02-20
+Author: Jens Geisler
+Subject: implemented a mixture of Sonny's MATLAB and my previous grbl planner
+ontop of the edge planner
+examples run byte for byte identical old and new version
+
+----------------
+Date: 2013-01-18
+Author: Sonny Jeon
+Subject: Merge pull request #169 from silasb/fix-execute-bit-on-files
+
+Removing executable bit on the files
+
+----------------
+Date: 2013-01-18
+Author: Sonny Jeon
+Subject: Merge bug fixes from recent v0.8c push. Added readme for Grbl Sim.
+
+
+----------------
+Date: 2013-01-18
+Author: Sonny Jeon
+Subject: Merge pull request #167 from tmpvar/simulator-mac
+
+Fix sim makefile so it works on mac
+
+----------------
+Date: 2013-01-18
+Author: Elijah Insua
+Subject: Fix sim makefile so it works on mac
+
+These changes include a path separator fix and the removal of --gc-sections which causes ld failures, and is not needed on a pc.
+
+This patch also changes how a compiler is selected. The makefile will now select the system compiler , which should work fine
+under mingw and linux.
+
+
+----------------
+Date: 2013-01-17
+Author: Silas Baronda
+Subject: Removing executable bit on the files
+
+
+----------------
+Date: 2013-01-17
+Author: Sonny Jeon
+Subject: Merge pull request #112 from jgeisler0303/simulator
+
+Grbl Simulator. Oh yeah.
+
+----------------
+Date: 2013-01-17
+Author: Jens Geisler
+Subject: relaunch ontop of latest grbl edge
+code very messy but tested
+
+----------------
+Date: 2013-01-09
+Author: Sonny Jeon
+Subject: Merge pull request #160 from daapp/edge
+
+Replace some constants with N_AXIS.
+
+----------------
+Date: 2013-01-10
+Author: Alexander Danilov
+Subject: Replace some constants with N_AXIS.
+
+
+----------------
+Date: 2013-01-06
+Author: Sonny Jeon
+Subject: Fixed bug with homing and polling at the same time. Updated readme.
+
+
+----------------
+Date: 2013-01-06
+Author: Sonny Jeon
+Subject: Minor changes.
+
+- Changed some names up and removed a plan_reset() function that is
+never used.
+
+
+----------------
+Date: 2012-12-21
+Author: Sonny Jeon
+Subject: Readme link to edge build 2012-12-21
+
+
+----------------
+Date: 2012-12-21
+Author: Sonny Jeon
+Subject: Updated README. Max step rate back at 30kHz. Acceleration minor bug fix.
+
+- Returned the max step rate to 30kHz. The new arc algorithm works uses
+so much less CPU overhead, because the segments are longer, that the
+planner has no problem computing through them.
+
+- Fixed an issue with the acceleration independence scaling. Should now
+work with accelerations above 400mm/sec^2 or so.
+
+- Updated README
+
+
+----------------
+Date: 2012-12-19
+Author: Sonny Jeon
+Subject: Arc mm_per_segment removed, now in terms of tolerance. Stepper ramp counter variable type corrected.
+
+- Arc mm_per_segment parameter was removed and replaced with an
+arc_tolerance parameter, which scales all arc segments automatically to
+radius, such that the line segment error doesn't exceed the tolerance.
+Significantly improves arc performance through larger radius arc,
+because the segments are much longer and the planner buffer has more to
+work with.
+
+- Moved n_arc correction from the settings to config.h. Mathematically
+this doesn't need to be a setting anymore, as the default config value
+will work for all known CNC applications. The error does not accumulate
+as much anymore, since the small angle approximation used by the arc
+generation has been updated to a third-order approximation and how the
+line segment length scale with radius and tolerance now. Left in
+config.h for extraneous circumstances.
+
+- Corrected the st.ramp_count variable (acceleration tick counter) to a
+8-bit vs. 32-bit variable. Should make the stepper algorithm just a
+touch faster overall.
+
+
+----------------
+Date: 2012-12-16
+Author: Sonny Jeon
+Subject: Slow trailing steps fix. Added more defaults.
+
+- Fixed an issue (hopefully) with slow trailing steps after a
+triangular velocity profile move. Sets the trapezoid tick cycle counter
+to the correct value for an accurate reproduction of the deceleration
+curve. Keeps it from arriving too early to the target position, which
+causes the slow trailing steps.
+
+- Added Zen Toolworks 7x7 to default settings.
+
+- Updated readme with new edge build.
+
+
+----------------
+Date: 2012-12-16
+Author: Sonny Jeon
+Subject: Max velocity axes independence installed. Fixed intermittent slow trailing steps. Timer0 disable fix.
+
+- Maximum velocity for each axis is now configurable in settings. All
+rapids/seek move at these maximums. All feed rates(including rapids)
+may be limited and scaled down so that no axis does not exceed their
+limits.
+
+- Moved around auto-cycle start. May change later, but mainly to ensure
+the planner buffer is completely full before cycle starting a streaming
+program. Otherwise it should auto-start when there is a break in the
+serial stream.
+
+- Reverted old block->max_entry_speed_sqr calculations. Feedrate
+overrides not close to ready at all.
+
+- Fixed intermittent slow trailing steps for some triangle velocity
+profile moves. The acceleration tick counter updating was corrected to
+be exact for that particular transition. Should be ok for normal
+trapezoidal profiles.
+
+- Fixed the Timer0 disable after a step pulse falling edge. Thanks
+@blinkenlight!
+
+
+----------------
+Date: 2012-12-14
+Author: Sonny Jeon
+Subject: Acceleration independence installed. Initial re-work of planner for feedrate overrides.
+
+NOTE: This push is a work-in-progress and there are known bugs that
+need to be fixed, like homing acceleration being incompatible. Released
+for testing. Settings will definitely be overwritten, as new settings
+were needed.
+
+- Acceleration independence installed in planner. Each axis can now
+have different accelerations and Grbl will maximize the accelerations
+depending on the direction its moving. Very useful for users like on
+the ShapeOko with vastly different Z-axis properties.
+
+- More planner optimizations and re-factoring. Slightly improved some
+of the older calculations, but new acceleration calculations offset
+these improvements. Overall no change in processing speed.
+
+- Removed planner nominal length checks. It was arguable whether or not
+this improved planner efficiency, especially in the worst case scenario
+of arcs.
+
+- Updated readme and changed to markdown format.
+
+
+----------------
+Date: 2012-12-12
+Author: Sonny Jeon
+Subject: Update README.md
+
+----------------
+Date: 2012-12-12
+Author: Sonny Jeon
+Subject: Changed README to markdown
+
+
+----------------
+Date: 2012-12-12
+Author: Sonny Jeon
+Subject: Added download links to README.
+
+
+----------------
+Date: 2012-12-12
+Author: Sonny Jeon
+Subject: Moved compiled builds to different repo.
+
+
+----------------
+Date: 2012-12-11
+Author: Sonny Jeon
+Subject: Added builds folder.
+
+Because the Downloads section has been removed, added a builds folder
+for users to download pre-compiled firmware without needing to compile
+it themselves.
+
+
+----------------
+Date: 2012-12-11
+Author: Sonny Jeon
+Subject: Added builds folder.
+
+In light of the downloads section in Github being removed, added a
+builds folder for all of the .hex files. Hopefully these won't be
+removed either.
+
+
+----------------
+Date: 2012-12-11
+Author: Sonny Jeon
+Subject: Planner optimizations.
+
+- Improved planner execution speed by 5% or more. Re-factored most of
+the calculations in terms of the square of velocity. This removed a lot
+of sqrt() calculations for every planner_recalculate.
+
+
+----------------
+Date: 2012-12-10
+Author: Sonny Jeon
+Subject: (Another) Planner bug fix.
+
+- Oops again. Thought the new planner changes made things much better,
+but there was a bug. Improvements we on the order of 20% execution time
+reduction, rather than half. The increase to 30kHz Ranade timer
+frequency also increased the overall overhead, so the total planner
+change? Zero. But, it's still better.
+
+
+----------------
+Date: 2012-12-10
+Author: Sonny Jeon
+Subject: Planner bug fix.
+
+- Oops! Misplace an if-then statement. Should work as advertised now.
+(Hopefully)
+
+
+----------------
+Date: 2012-12-10
+Author: Sonny Jeon
+Subject: Planner execution time halved and bug fixes. Increased step rate limit to 30kHz.
+
+- Planner execute speed has been more than halved from 4ms to 1.9ms
+when computing a plan for a single line segment during arc generation.
+This means that Grbl can now run through an arc (or complex curve)
+twice as fast as before without starving the buffer. For 0.1mm arc
+segments, this means about the theoretical feed rate limit is about
+3000mm/min for arcs now.
+
+- Increased the Ranade timer frequency to 30kHz, as there doesn't seem
+to be any problems with increasing the frequency. This means that the
+maximum step frequency is now back at 30kHz.
+
+- Added Zen Toolworks 7x7 defaults.
+
+
+----------------
+Date: 2012-12-08
+Author: Sonny Jeon
+Subject: New stepper algorithm. Optimized planner.
+
+- Brand-new stepper algorithm. Based on the Pramod Ranade inverse time
+algorithm, but modified to ensure step events are exact. Currently
+limited to about 15kHz step rates, much more to be done to enable 30kHz
+again.
+
+- Removed Timer1. Stepper algorithm now uses Timer0 and Timer2.
+
+- Much improved step generation during accelerations. Smoother. Allows
+much higher accelerations (and speeds) than before on the same machine.
+
+- Cleaner algorithm that is more easily portable to other CPU types.
+
+- Streamlined planner calculations. Removed accelerate_until and
+final_rate variables from block buffer since the new stepper algorithm
+is that much more accurate.
+
+- Improved planner efficiency by about 15-20% during worst case
+scenarios (arcs).
+
+- New config.h options to tune new stepper algorithm.
+