4c20a2173f
- Commit history added to repo, as an easier way for people to see view the changes over time. - Grbl logo copyright license added. All rights reserved with regards to the Grbl logo. - G2/3 full circles would sometime not execute. The problem was due to numerical round-off of a trig calculation. Added a machine epsilon define to help detect and correct for this problem. Tested and should not effect general operation of arcs.
2410 lines
69 KiB
Plaintext
2410 lines
69 KiB
Plaintext
----------------
|
||
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.
|
||
|