blob: bb9f107dee6eb2488f4d1b09522357db235a2de0 [file] [log] [blame]
Luigi Santivetti69972f92019-11-12 22:55:40 +00001----------------
2Date: 2014-09-05
3Author: Sonny Jeon
4Subject: Minor bug fix and CPU pin map update.
5
6- Sometime I HATE github. This push is just here to be able to describe
7the last two pushes today that had a merging conflict and lost all of
8the commit comments before.
9
10- Setting $10 would cause $11 to be the same value. Missed a break
11statement in the switch-case. Oops! Now fixed.
12
13- CPU pin map for the future versions of Grbl introduced, but not yet
14finalized. Still working on it and it’s subject to change.
15
16- Added a new high-speed machining test g-code routine written by Todd
17Fleming. Mills a pocket at 15,000mm/min. Do not use when connected to
18your machine! You’ve been warned!
19
20
21----------------
22Date: 2014-09-05
23Author: Sonny Jeon
24Subject: Updated README.md
25
26
27----------------
28Date: 2014-09-05
29Author: Sonny Jeon
30Subject: Merge branch 'master' of https://github.com/grbl/grbl
31
32Conflicts:
33 README.md
34
35
36----------------
37Date: 2014-08-24
38Author: Sonny Jeon
39Subject: Merge pull request #472 from BinaryConstruct/edge
40
41Add defaults for OX CNC
42
43----------------
44Date: 2014-08-24
45Author: BinaryConstruct
46Subject: Add defaults for OX CNC
47
48
49----------------
50Date: 2014-08-22
51Author: Sonny Jeon
52Subject: Update README.md
53
54----------------
55Date: 2014-08-22
56Author: Sonny Jeon
57Subject: Updated build date.
58
59
60----------------
61Date: 2014-08-22
62Author: Sonny Jeon
63Subject: WPos report bug fix when MPos disabled.
64
65
66----------------
67Date: 2014-08-18
68Author: Sonny Jeon
69Subject: Update README.md
70
71----------------
72Date: 2014-08-17
73Author: Sonny Jeon
74Subject: Update README.md
75
76----------------
77Date: 2014-08-17
78Author: Sonny Jeon
79Subject: Updated bitly link to master firmware
80
81
82----------------
83Date: 2014-08-17
84Author: Sonny Jeon
85Subject: Merge branch 'master' into edge
86
87
88----------------
89Date: 2014-08-17
90Author: Sonny Jeon
91Subject: Final minor updates for master release.
92
93- Updated ShapeOko2 defaults based on machine testing of the basic
94model provided by Inventables. (or close to it.) Should be pretty
95conservative but much faster than before. For example, X and Y axes are
96set at (10x) faster at 5000mm/min. It can run much faster than this,
97but this seems like a safe speed for everyone.
98
99- Updated README for master release.
100
101- Added some new settings methods for clearing the EEPROM when changing
102versions. Needs some more work, but it should ok for master release.
103Should work on it more for the next version.
104
105
106----------------
107Date: 2014-08-13
108Author: Sonny Jeon
109Subject: Added EEPROM force clear.
110
111- When updating from v0.8, the settings will wipe the startup lines and
112build info locations so that it won’t use whatever is already there in
113the EEPROM. Parameters (coord offsets) are retained. They should be ok
114during an upgrade.
115
116
117----------------
118Date: 2014-08-13
119Author: Sonny Jeon
120Subject: Update README.md
121
122----------------
123Date: 2014-08-13
124Author: Sonny Jeon
125Subject: G28/30 bug fix. Block '$$' during cycle. SO2 defaults.
126
127- A G28/30 bug would cause it to move to machine coordinate [0,0,0] if
128no axis words were sent. It was a typo in the new g-code parser. Fixed
129and slightly re-written to be more consistent with the program flow.
130
131- Updated the ShapeOko2 defaults based on testing on the real machine.
132A little conservative, but it might change again after some more
133testing.
134
135- Now blocks ‘$$’ command during a motion, because the printout takes
136too long and can starve the segment buffer.
137
138
139----------------
140Date: 2014-08-08
141Author: Sonny Jeon
142Subject: XON/XOFF flow control variable typo.
143
144
145----------------
146Date: 2014-08-07
147Author: Sonny Jeon
148Subject: Moved Grbl Sim to its own repo.
149
150
151----------------
152Date: 2014-08-07
153Author: Sonny Jeon
154Subject: Updated licensing
155
156
157----------------
158Date: 2014-08-05
159Author: Sonny Jeon
160Subject: Update README.md
161
162----------------
163Date: 2014-08-05
164Author: Sonny Jeon
165Subject: Fixed bug related to very very low feed rates.
166
167- A very very low feed rate command like `G1 X100 F0.01` would cause
168some floating-point round-off error and freeze Grbl into an infinite
169loop. To fix it, introduced a MINIMUM_FEED_RATE parameter in config.h
170to ensure motions always complete.
171
172- MINIMUM_FEED_RATE is set at 1.0 mm/min by default. It’s recommended
173that no rates are below this value, but 0.1mm/min may be ok in some
174situations.
175
176
177----------------
178Date: 2014-08-04
179Author: Sonny Jeon
180Subject: Allow '$$' in check mode.
181
182- Now allows the ‘$$’ view Grbl settings while in check mode
183
184- Updated the version build date
185
186
187----------------
188Date: 2014-08-04
189Author: Sonny Jeon
190Subject: Update README.md
191
192----------------
193Date: 2014-08-04
194Author: Sonny Jeon
195Subject: Fixed probe position sync error.
196
197- Restored probe position syncing. Had removed a pull-off motion after
198a probe cycle completes, but ended up de-synchronizing the g-code
199parser and probing cycle positions. Putting the pull-off motion back
200fixed the problem.
201
202
203----------------
204Date: 2014-08-03
205Author: Sonny Jeon
206Subject: Update README.md
207
208----------------
209Date: 2014-08-03
210Author: Sonny Jeon
211Subject: Probing cycle and view build info bug fixes.
212
213- Probing cycle would drop into a QUEUED state, if multiple G38.2 are
214sent. It would not honor the auto cycle start flags. To fix, the auto
215cycle start state is saved at the beginning of the probing cycle and
216restored at the end, since the feed hold it uses to stop a triggered
217probe will disable the auto start flag. For now it’s a patch, rather
218than a permanent fix.
219
220- protocol_buffer_synchronize() also has a failure case. Auto cycle
221start does not get executed when the system is waiting in here, so if
222it’s in a QUEUED state already, it won’t resume. Patched here, but not
223fully resolved.
224
225- Fixed a problem with the “view build info” command. The EEPROM write
226would do weird things and corrupt the EEPROM. Not sure exactly what
227caused it, but it’s likely a compiler problem with an improperly
228defined EEPROM address. It didn’t have enough room to store a full
229string. To fix, the build info EEPROM range was increased and the max
230number of STARTUP_BLOCKS was reduced to 2 from 3.
231
232- Lastly, when a $I view build info is used for the first time, it
233would normally show an EEPROM read error, since it wasn’t cleared or
234wasn’t therein the first place. It will now not show that error. A
235patch rather than a permanent fix again.
236
237
238----------------
239Date: 2014-08-01
240Author: Sonny Jeon
241Subject: Update README.md
242
243----------------
244Date: 2014-08-01
245Author: Sonny Jeon
246Subject: Minor bug fixes.
247
248- Bug fix for step and direction invert masks not immediately being in
249effect. Now regenerates the masks when a user changes this setting.
250
251- Bug fix for probing cycle. G-code standard mandates that there is an
252error if the probe is already triggered when the cycle is commanded.
253However, Grbl may have motions to pull off a previous probing cycle in
254queue and can falsely lead to errors. To fix this, the triggered check
255is performed within the probing cycle itself, right after the planner
256buffer is synced. If there is an error, it will now alarm out as a
257probe fail.
258
259
260----------------
261Date: 2014-07-28
262Author: Sonny Jeon
263Subject: Compile in Atmel Studio fix.
264
265
266----------------
267Date: 2014-07-28
268Author: Sonny Jeon
269Subject: Update README.md
270
271----------------
272Date: 2014-07-27
273Author: Sonny Jeon
274Subject: Added build info feedback in help
275
276- `$I` prints the Grbl build info and version number. NOTE: `$I=xxx`
277stores an additional 30 character string into EEPROM, which will be
278printed with the build info the next time it’s run. This is for
279identification purposes for users that have more than one system using
280Grbl.
281
282
283----------------
284Date: 2014-07-26
285Author: Sonny Jeon
286Subject: Updates to allow Arduino IDE direct compiling.
287
288- Only minor changes were required to make the Arduino IDE compile all
289of the Grbl’s source code (correctly using the C-compiler). Tested in
290Windows and Mac and with the normal USB upload and with a programmer.
291
292
293----------------
294Date: 2014-07-26
295Author: Sonny Jeon
296Subject: Settings refactoring. Bug fixes. Misc new features.
297
298This is likely the last major change to the v0.9 code base before push
299to master. Only two minor things remain on the agenda (CoreXY support,
300force clear EEPROM, and an extremely low federate bug).
301
302- NEW! Grbl is now compile-able and may be flashed directly through the
303Arduino IDE. Only minor changes were required for this compatibility.
304See the Wiki to learn how to do it.
305
306- New status reporting mask to turn on and off what Grbl sends back.
307This includes machine coordinates, work coordinates, serial RX buffer
308usage, and planner buffer usage. Expandable to more information on user
309request, but that’s it for now.
310
311- Settings have been completely renumbered to allow for future new
312settings to be installed without having to constantly reshuffle and
313renumber all of the settings every time.
314
315- All settings masks have been standardized to mean bit 0 = X, bit 1 =
316Y, and bit 2 = Z, to reduce confusion on how they work. The invert
317masks used by the internal Grbl system were updated to accommodate this
318change as well.
319
320- New invert probe pin setting, which does what it sounds like.
321
322- Fixed a probing cycle bug, where it would freeze intermittently, and
323removed some redundant code.
324
325- Homing may now be set to the origin wherever the limit switches are.
326Traditionally machine coordinates should always be in negative space,
327but when limit switches on are on the opposite side, the machine
328coordinate would be set to -max_travel for the axis. Now you can always
329make it [0,0,0] via a compile-time option in config.h. (Soft limits
330routine was updated to account for this as well.)
331
332 - Probe coordinate message immediately after a probing cycle may now
333be turned off via a compile-time option in config.h. By default the
334probing location is always reported.
335
336- Reduced the N_ARC_CORRECTION default value to reflect the changes in
337how circles are generated by an arc tolerance, rather than a fixed arc
338segment setting.
339
340- Increased the incoming line buffer limit from 70 to 80 characters.
341Had some extra memory space to invest into this.
342
343- Fixed a bug where tool number T was not being tracked and reported
344correctly.
345
346- Added a print free memory function for debugging purposes. Not used
347otherwise.
348
349- Realtime rate report should now work during feed holds, but it hasn’t
350been tested yet.
351
352- Updated the streaming scripts with MIT-license and added the simple
353streaming to the main stream.py script to allow for settings to be sent.
354
355- Some minor code refactoring to improve flash efficiency. Reduced the
356flash by several hundred KB, which was re-invested in some of these new
357features.
358
359
360----------------
361Date: 2014-07-17
362Author: Sonny Jeon
363Subject: Update README.md
364
365----------------
366Date: 2014-07-12
367Author: Sonny Jeon
368Subject: Update README.md
369
370----------------
371Date: 2014-07-12
372Author: Sonny Jeon
373Subject: Update README.md
374
375----------------
376Date: 2014-07-12
377Author: Sonny Jeon
378Subject: Update README.md
379
380----------------
381Date: 2014-07-12
382Author: Sonny Jeon
383Subject: Updated README
384
385
386----------------
387Date: 2014-07-11
388Author: Sonny Jeon
389Subject: Updated README
390
391
392----------------
393Date: 2014-07-11
394Author: Sonny Jeon
395Subject: Merge pull request #441 from ashelly/edge-simfix
396
397Fixes for simulator in alternate configurations.
398
399----------------
400Date: 2014-07-10
401Author: ashelly
402Subject: Restore changes made only for testing.
403
404
405----------------
406Date: 2014-07-10
407Author: ashelly
408Subject: Bug fixes for timers, added some wdt support for limit debounce.
409
410- Typo in timer def,
411- Handle 8 bit timers correctly,
412- Don't skip TOP count in CTC mode
413- added SREG for atomic bit operations
414
415
416----------------
417Date: 2014-07-09
418Author: Sonny Jeon
419Subject: Merge branch 'dev' into edge
420
421Conflicts:
422 sim/simulator.c
423 sim/simulator.h
424
425
426----------------
427Date: 2014-07-09
428Author: Sonny Jeon
429Subject: Added test g-code programs.
430
431
432----------------
433Date: 2014-07-06
434Author: Sonny Jeon
435Subject: Version and build update.
436
437- Incremented from v0.9e to v0.9f due to the new g-codes, velocity
438reporting option, decimal printing refactoring, grbl-sim updates, and
439G0/G1 bug fix.
440
441- Settings version was also incremented since settings.decimal_places
442is now gone.
443
444
445----------------
446Date: 2014-07-06
447Author: Sonny Jeon
448Subject: Isolate atomic bit flag for execution.
449
450- Denoted bit_true_atomic only for sys.execute bit settings. All other
451bit_true type calls are for local variables only and don’t need atomic
452access. Still looking into other ways of setting these flags without
453requiring atomic access, but this is a patch for now.
454
455
456----------------
457Date: 2014-07-06
458Author: Sonny Jeon
459Subject: Merge pull request #436 from kfoltman/dev
460
461Fixed atomic access to flags in sys.execute.
462
463----------------
464Date: 2014-07-06
465Author: Sonny Jeon
466Subject: Syntax fix for gcode.c
467
468- Whoops! Missed a bracket and it wasn’t compiling. Now fixed.
469
470- Updated the unsupported gcodes listed at the end of the gcode.c file.
471
472
473----------------
474Date: 2014-07-06
475Author: Sonny Jeon
476Subject: G43.1/G49 tool length offset installed. Minor bug fix.
477
478- Minor bug fix that caused G92.1 not to work. The mantissa of G92.1
479was not computed correctly due to floating point round-off errors and
480the use of trunc(). Fixed it by changing the computation with round().
481
482- Installed tool length offsets with G43.1 and G49! True tool length
483offsets via G43 are not supported, because these require us to store
484tool data that we don’t have space for. But we’ve come up with a good
485solution for users that need this. Instead we are strictly using the
486dynamic version G43.1 via linuxcnc.org. Visit their website for more
487details on the command.
488
489- G43.1 operates by requiring an axis word and value to offset the
490configured tool length axis, which can be configured for any axis
491(default Z-axis) in config.h. For example, ```G43.1 Z0.5``` will offset
492the work coordinates from Z0.0 to Z-0.5.
493
494- G49 will cancel the last tool length offset value and reset it to
495zero.
496
497- Tweaked the ‘$#’ parameters report. `Probe` is now `PRB` and a new
498value `TLO` states the tool length offset value.
499
500
501----------------
502Date: 2014-07-05
503Author: Sonny Jeon
504Subject: Merge branch 'ashelly-sim-update' into dev
505
506
507----------------
508Date: 2014-07-05
509Author: Sonny Jeon
510Subject: Merge grbl-sim updates for v0.9.
511
512- Removed some conflicting code in the main Grbl firmware source.
513
514- Temporary patch for coolant and spindle control with streaming
515applied.
516
517
518----------------
519Date: 2014-07-05
520Author: Sonny Jeon
521Subject: New G43.1/G49 gcodes. Not working yet!!
522
523- Pushed this uncompleted code to merge a conflicting pull request.
524
525- New G43.1 and G49 g-codes to be installed. The beginnings of it are
526in place. These g-codes are intended to be used in conjunction with
527probing and allow GUIs to set tool length offsets without Grbl needing
528to store a tool table.
529
530- G43.1 is defined as a dynamic tool length offset that is not stored
531in memory. Rather, when commanded, these are applied to the work
532coordinates until a reset or disabled by G49. This works much like G92.
533
534
535----------------
536Date: 2014-07-05
537Author: ashelly
538Subject: formatting
539
540----------------
541Date: 2014-07-05
542Author: ashelly
543Subject: Update readme.md
544
545----------------
546Date: 2014-07-04
547Author: ashelly
548Subject: Don't need kbhit.h
549
550----------------
551Date: 2014-07-04
552Author: Adam Shelly
553Subject: minor tweaks for mingw.
554
555
556----------------
557Date: 2014-07-04
558Author: Sonny Jeon
559Subject: Realtime rate reporting. Updated decimal places.
560
561- Added a new optional compile-time feature for ‘realtime’ (within
56250ms) feed rate reporting. When querying for a status report, a new
563data value will state the current operating rate. It’s only beta at the
564moment and has some kinks to work out.
565
566- Updated the code for printing floating point values to N decimal
567places. Generalized the main floating point print code to accept a new
568decimal places value and created a set of handler functions to print
569certain floating point value types used in Grbl, like position, rates,
570coordinate offsets, etc. All of these have different decimal
571requirements and change when printed in mm or inches mode.
572
573- Number of decimal places for the different value types can be
574re-defined in config.h, but there shouldn’t be a need for this, as
575these are physically limited.
576
577- Removed the decimal places settings, as this was now obsoleted by the
578new decimal places code.
579
580- The new decimal places code also saves almost 300kB in flash space,
581as it’s more efficient.
582
583
584----------------
585Date: 2014-07-04
586Author: ashelly
587Subject: reduce diffs with dev branch
588
589
590----------------
591Date: 2014-07-04
592Author: ashelly
593Subject: 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.
594
595
596----------------
597Date: 2014-07-03
598Author: Sonny Jeon
599Subject: Update README.md
600
601----------------
602Date: 2014-07-03
603Author: Sonny Jeon
604Subject: G18 reporting bug fix.
605
606- G18 wasn’t getting reported back to the user correctly, even though
607it has been set internally. Fixed the reporting code to reflect this
608accurately.
609
610
611----------------
612Date: 2014-07-03
613Author: Sonny Jeon
614Subject: G-code parser G0/G1 bug fix.
615
616- Although stated as invalid in the NIST g-code standard, most g-code
617parsers, including linuxcnc, allow G0 and G1 to be commanded without
618axis words present. For example, something like ‘G1 F100.0’ to preset
619the motion mode and feed rate without a motion commanded. Older CNC
620controllers actually required this for feed rate settings. This update
621should now allow this type of behavior.
622
623
624----------------
625Date: 2014-07-02
626Author: Sonny Jeon
627Subject: Minor bug fixes and updates. Line number tracking.
628
629- Line number tracking was getting truncated at 255, since it was using
630wrong variable type. Fixed it with a trunc().
631
632- Increased the max number line allowed by Grbl to 9999999 from the
633g-code standard 99999. The latter seems to be an arbitrary number, so
634we are allowing larger ones for at least one known use case scenario.
635
636- Created a new test directory to contain some testing g-code to proof
637the firmware. Only got started with one test case so far. More will be
638inserted as needed.
639
640- Some other commenting updates to clarify certain aspects of the code.
641
642
643----------------
644Date: 2014-06-26
645Author: Krzysztof Foltman
646Subject: Fixed atomic access to flags in sys.execute.
647
648This seems to fix the bug that caused Grbl to hang during some operations,
649especially jogging.
650
651
652----------------
653Date: 2014-05-31
654Author: Sonny Jeon
655Subject: Arc error-checking update.
656
657- Updated offset-mode arc error-checking to EMC2’s version: The old
658NIST definition required the radii to the current location and target
659location to differ no more than 0.002mm. This proved to be problematic
660and probably why LinuxCNC(EMC2) updated it to be 0.005mm AND 0.1%
661radius OR 0.5mm.
662
663
664----------------
665Date: 2014-05-31
666Author: Sonny Jeon
667Subject: Various minor g-code parser fixes.
668
669- Updated the mantissa calculation that checks for non-integer values
670and GXX.X commands that aren’t supported. There was a potential uint8
671overflow issue.
672
673- Fixed g-code parser bug related to not using the correct modal
674struct. G10 P0 not selecting the current coordinate system when a
675G55-59 is issued in the same line.
676
677- Fixed g-code parser bug related to not using the correct modal
678struct. Target position locations were not computed correctly when
679G90/91 distance modes were changed in the same line. It was using the
680previous state, rather than the current block.
681
682
683----------------
684Date: 2014-05-29
685Author: Sonny Jeon
686Subject: Fixed spindle/coolant/dwell state check.
687
688
689----------------
690Date: 2014-05-25
691Author: Sonny Jeon
692Subject: Major g-code parser overhaul. 100%* compliant. Other related updates.
693
694- Completely overhauled the g-code parser. It’s now 100%* compliant. (*
695may have some bugs). Being compliant, here are some of the major
696differences.
697
698- SMALLER and JUST AS FAST! A number of optimizations were found that
699sped things up and allowed for the more thorough error-checking to be
700installed without a speed hit. Trimmed a lot of ‘fat’ in the parser and
701still was able to make it significantly smaller than it was.
702
703- No default feed rate setting! Removed completely! This doesn’t exist
704in the g-code standard. So, it now errors out whenever it’s undefined
705for motions that require it (G1/2/3/38.2).
706
707- Any g-code parser error expunges the ENTIRE block. This means all
708information is lost and not passed on to the running state. Before some
709of the states would remain, which could have led to some problems.
710
711- If the g-code block passes all of the error-checks, the g-code state
712is updated and all motions are executed according to the order of
713execution.
714
715- Changes in spindle speed, when already running, will update the
716output pin accordingly. This fixes a bug, where it wouldn’t update the
717speed.
718
719- Update g-code parser error reporting. Errors now return detailed
720information of what exact went wrong. The most common errors return a
721short text description. For less common errors, the parser reports
722‘Invalid gcode ID:20’, where 20 is a error ID. A list of error code IDs
723and their descriptions will be documented for user reference elsewhere
724to save flash space.
725
726- Other notable changes:
727
728- Added a print integer routine for uint8 variables. This saved
729significant flash space by switching from a heavier universal print
730integer routine.
731
732- Saved some flash space with our own short hypotenuse calculation
733
734- Some arc computation flash and memory optimizations.
735
736
737----------------
738Date: 2014-05-18
739Author: Jens Geisler
740Subject: Merge pull request #408 from chamnit/master
741
742MIT-Licensing change.
743
744----------------
745Date: 2014-05-18
746Author: Sonny Jeon
747Subject: MIT-licensing change.
748
749
750----------------
751Date: 2014-05-18
752Author: Sonny Jeon
753Subject: MIT-licensing change
754
755
756----------------
757Date: 2014-04-28
758Author: Sonny Jeon
759Subject: Merge pull request #391 from paulkaplan/master
760
761Update Shapeoko 2 defaults
762
763----------------
764Date: 2014-04-14
765Author: Paul Kaplan
766Subject: updated shapeoko2 defaults
767
768
769----------------
770Date: 2014-03-14
771Author: Sonny Jeon
772Subject: Update README.md
773
774----------------
775Date: 2014-03-13
776Author: Sonny Jeon
777Subject: Comment corrections and function call update.
778
779
780----------------
781Date: 2014-03-13
782Author: Sonny Jeon
783Subject: Merge pull request #373 from EliteEng/dev
784
785Added Probing to Mega2560 and fixed Shapeoko2 compile error
786
787----------------
788Date: 2014-03-11
789Author: Rob Brown
790Subject: Added Probing to Mega2560 and fixed Shapeoko2 compile error
791
792
793----------------
794Date: 2014-03-07
795Author: henols
796Subject: Probing command gets stuck in hold if several g38.2 are submitted
797Ex.
798G0 X0 Y0 Z0
799G38.2 Z-10 F100
800G10 L20 P0 Z0
801G0 Z2
802G38.2 Z-1 F50
803G10 L20 P0 Z0
804G0 Z2
805G0 X0 Y0
806G38.2 Z-1 F100
807G0 Z2
808
809
810----------------
811Date: 2014-03-10
812Author: Sonny Jeon
813Subject: Merge pull request #372 from martinstingl/master
814
815Corrected units of default acceleration values
816
817----------------
818Date: 2014-03-10
819Author: Martin Stingl
820Subject: Corrected units of default acceleration values
821
822
823----------------
824Date: 2014-03-07
825Author: Sonny Jeon
826Subject: Merge pull request #368 from henols/dev
827
828Probing command gets stuck in hold if several g38.2 are submitted
829
830----------------
831Date: 2014-03-07
832Author: henols
833Subject: Probing command gets stuck in hold if several g38.2 are submitted
834Ex.
835G0 X0 Y0 Z0
836G38.2 Z-10 F100
837G10 L20 P0 Z0
838G0 Z2
839G38.2 Z-1 F50
840G10 L20 P0 Z0
841G0 Z2
842G0 X0 Y0
843G38.2 Z-1 F100
844G0 Z2
845
846
847----------------
848Date: 2014-02-28
849Author: Sonny Jeon
850Subject: G38.2 probe feature rough draft installed. Working but needs testing.
851
852- G38.2 straight probe now supported. Rough draft. May be tweaked more
853as testing ramps up.
854
855- G38.2 requires at least one axis word. Multiple axis words work too.
856When commanded, the probe cycle will move at the last ‘F’ feed rate
857specified in a straight line.
858
859- During a probe cycle: If the probe pin goes low (normal high), Grbl
860will record that immediate position and engage a feed hold. Meaning
861that the CNC machine will move a little past the probe switch point, so
862keep federates low to stop sooner. Once stopped, Grbl will issue a move
863to go back to the recorded probe trigger point.
864
865- During a probe cycle: If the probe switch does not engage by the time
866the machine has traveled to its target coordinates, Grbl will issue an
867ALARM and the user will be forced to reset Grbl. (Currently G38.3 probe
868without error isn’t supported, but would be easy to implement later.)
869
870- After a successful probe, Grbl will send a feedback message
871containing the recorded probe coordinates in the machine coordinate
872system. This is as the g-code standard on probe parameters specifies.
873
874- The recorded probe parameters are retained in Grbl memory and can be
875viewed with the ‘$#’ print parameters command. Upon a power-cycle, not
876a soft-reset, Grbl will re-zero these values.
877
878- Moved ‘$#’ command to require IDLE or ALARM mode, because it accesses
879EEPROM to fetch the coordinate system offsets.
880
881- Updated the Grbl version to v0.9d.
882
883- The probe cycle is subject to change upon testing or user-feedback.
884
885
886----------------
887Date: 2014-02-27
888Author: Sonny Jeon
889Subject: Probe cycle line numbers ifdef fixes to get it to compile.
890
891- Updated some of the ifdefs when disabling line numbers feature.
892Getting messy with this compile-time option. This will likely get
893cleaned up later.
894
895- This is just a push to get the new probing code to compile. Testing
896and optimization of the code will soon follow and be pushed next.
897
898
899----------------
900Date: 2014-02-27
901Author: Sonny Jeon
902Subject: Merge pull request #362 from robgrz/dev
903
904Minimal probing cycle working. Supports both G38.2 for error and G38.3 ...
905
906----------------
907Date: 2014-02-26
908Author: Sonny Jeon
909Subject: Added grbl planner Matlab simulator for test reference. Updated line number compile-time option.
910
911- Added a grbl planner simulation tool that was written in Matlab and
912Python. It was used to visualize the inner workings of the planner as a
913program is streamed to it. The simulation assumes that the planner
914buffer is empty, then filled, and kept filled. This is mainly for users
915to see how the planner works.
916
917- Updated some of the compile-time ifdefs when enabling line numbers.
918The leaving the un-used line numbers in the function calls eats a
919non-neglible amount of flash memory. So the new if-defs remove them.
920
921
922----------------
923Date: 2014-02-25
924Author: Robert Grzesek
925Subject: Minimal probing cycle working. Supports both G38.2 for error and G38.3 when no errors are desired.
926
927
928----------------
929Date: 2014-02-19
930Author: Sonny Jeon
931Subject: Minor updates to line number feature.
932
933- Changed line number integer types from unsigned to signed int32.
934G-code mandates values cannot exceed 99999. Negative values can be used
935to indicate certain modes.
936
937- Homing cycle line number changed to -1, as an indicator.
938
939- Fixed a reporting define for the spindle states that was broken by
940the last merge.
941
942
943----------------
944Date: 2014-02-19
945Author: Sonny Jeon
946Subject: Merge pull request #356 from robgrz/dev
947
948Line number reporting as compile-time option.
949
950----------------
951Date: 2014-02-19
952Author: Sonny Jeon
953Subject: Commenting updates. Minor bug fix with exit of soft limit event.
954
955
956----------------
957Date: 2014-02-18
958Author: Robert Grzesek
959Subject: Merge commit 'cd71a90ce8a770e0030ed6c9bac805b89724e275' into dev
960
961Conflicts:
962 limits.c
963 motion_control.c
964 report.c
965
966
967----------------
968Date: 2014-02-15
969Author: Sonny Jeon
970Subject: Homing and feed hold bug fixes.
971
972WARNING: Bugs may still exist. This branch is a work in progress and
973will be pushed to the edge branch when at beta stability. Use at your
974own risk.
975
976- Homing freezing issue fixed. Had to do with the cycle stop flag being
977set incorrectly after the homing cycles and before the pull-off
978maneuver. Now resets the stepper motors before this can happen.
979
980- Fixed an issue with a rare feed hold failure. Had to do with feed
981hold ending exactly at the end of a block. The runtime protocol now
982sets the QUEUED and IDLE states appropriately when this occurs. Still
983need to clean this code up however, as it’s patched rather than written
984well.
985
986- Updated version build via $I command.
987
988- Forgot to comment on a new feature for the last commit. Since steps
989are integers and millimeters traveled are floats, the old step segment
990generator ignored the step fraction differences in generating the
991segment velocities. Didn’t see like it would be much of a big deal, but
992there were instances that this would be a problem, especially for very
993slow feed rates. The stepper algorithm now micro-adjusts the segment
994velocities based on the step fractions not executed from the previous
995segment. This ensures that Grbl generates the velocity profiles EXACTLY
996and noticeably improves overall acceleration performance.
997
998
999----------------
1000Date: 2014-02-09
1001Author: Sonny Jeon
1002Subject: Refactoring and lots of bug fixes. Updated homing cycle.
1003
1004WARNING: There are still some bugs to be worked out. Please use caution
1005if you test this firmware.
1006
1007- Feed holds work much better, but there are still some failure
1008conditions that need to be worked out. This is the being worked on
1009currently and a fix is planned to be pushed next.
1010
1011- Homing cycle refactoring: Slight adjustment of the homing cycle to
1012allow for limit pins to be shared by different axes, as long as the
1013shared limit pins are not homed on the same cycle. Also, removed the
1014LOCATE_CYCLE portion of the homing cycle configuration. It was
1015redundant.
1016
1017- Limit pin sharing: (See above). To clear up one or two limit pins for
1018other IO, limit pins can now be shared. For example, the Z-limit can be
1019shared with either X or Y limit pins, because it’s on a separate homing
1020cycle. Hard limit will still work exactly as before.
1021
1022- Spindle pin output fixed. The pins weren’t getting initialized
1023correctly.
1024
1025- Fixed a cycle issue where streaming was working almost like a single
1026block mode. This was caused by a problem with the spindle_run() and
1027coolant_run() commands and issuing an unintended planner buffer sync.
1028
1029- Refactored the cycle_start, feed_hold, and other runtime routines
1030into the runtime command module, where they should be handled here
1031only. These were redundant.
1032
1033- Moved some function calls around into more appropriate source code
1034modules.
1035
1036- Fixed the reporting of spindle state.
1037
1038
1039----------------
1040Date: 2014-02-06
1041Author: Robert Grzesek
1042Subject: Made line number reporting optional via config.h
1043
1044
1045----------------
1046Date: 2014-02-06
1047Author: Robert Grzesek
1048Subject: Initial line number reporting
1049
1050
1051----------------
1052Date: 2014-02-02
1053Author: Sonny Jeon
1054Subject: Update README.md
1055
1056----------------
1057Date: 2014-01-28
1058Author: Jens Geisler
1059Subject: Merge pull request #337 from michmerr/edge
1060
1061Make sure that cycle_start state is set before simulating steps.
1062
1063----------------
1064Date: 2014-01-28
1065Author: michmerr
1066Subject: Simplify setting of STATE_CYCLE and ISR interval.
1067
1068Set sys.state to STATE_CYCLE directly instead of calling back to
1069st_wakeup().
1070
1071Convert get_step_time() to a constant and rename it to ISR_INTERVAL.
1072
1073
1074----------------
1075Date: 2014-01-22
1076Author: michmerr
1077Subject: Make sure that cycle_start state is set before simulating steps.
1078
1079
1080----------------
1081Date: 2014-01-15
1082Author: Sonny Jeon
1083Subject: Update README.md
1084
1085----------------
1086Date: 2014-01-14
1087Author: Sonny Jeon
1088Subject: Update README.md
1089
1090----------------
1091Date: 2014-01-10
1092Author: Sonny Jeon
1093Subject: Lots of re-organization and cleaning-up. Some bug fixes.
1094
1095- Added a new source and header file called system. These files contain
1096the system commands and variables, as well as all of the system headers
1097and standard libraries Grbl uses. Centralizing some of the code.
1098
1099- Re-organized the include headers throughout the source code.
1100
1101- ENABLE_M7 define was missing from config.h. Now there.
1102
1103- SPINDLE_MAX_RPM and SPINDLE_MIN_RPM now defined in config.h. No
1104uncommenting to prevent user issues. Minimum spindle RPM now provides
1105the lower, near 0V, scale adjustment, i.e. some spindles can go really
1106slow so why use up our 256 voltage bins for them?
1107
1108- Remove some persistent variables from coolant and spindle control.
1109They were redundant.
1110
1111- Removed a VARIABLE_SPINDLE define in cpu_map.h that shouldn’t have
1112been there.
1113
1114- Changed the DEFAULT_ARC_TOLERANCE to 0.002mm to improve arc tracing.
1115Before we had issues with performance, no longer.
1116
1117- Fixed a bug with the hard limits and the software debounce feature
1118enabled. The invert limit pin setting wasn’t honored.
1119
1120- Fixed a bug with the homing direction mask. Now is like it used to
1121be. At least for now.
1122
1123- Re-organized main.c to serve as only as the reset/initialization
1124routine. Makes things a little bit clearer in terms of execution
1125procedures.
1126
1127- Re-organized protocol.c as the overall master control unit for
1128execution procedures. Not quite there yet, but starting to make a
1129little more sense in how things are run.
1130
1131- Removed updating of old settings records. So many new settings have
1132been added that it’s not worth adding the code to migrate old user
1133settings.
1134
1135- Tweaked spindle_control.c a bit and made it more clear and consistent
1136with other parts of Grbl.
1137
1138- Tweaked the stepper disable bit code in stepper.c. Requires less
1139flash memory.
1140
1141
1142----------------
1143Date: 2014-01-05
1144Author: Sonny Jeon
1145Subject: Updates to some stepper algorithm commenting
1146
1147
1148----------------
1149Date: 2014-01-05
1150Author: Sonny Jeon
1151Subject: New build info feature. (per @Analogreality request)
1152
1153- New build info feature. Hidden command ‘$I’ will print the build info
1154for your Grbl firmware. Users may also write an identifying message
1155within it via ‘$I=‘ with up to 32 characters. (no more, or else it will
1156break).
1157
1158- Adjusted the max number of startup lines to 3. Majority of people
1159will only need one.
1160
1161- Fixed a compile error with spindle_control.c. A rogue #endif was
1162causing problems.
1163
1164
1165----------------
1166Date: 2014-01-04
1167Author: Sonny Jeon
1168Subject: Variable spindle output. Resolved conflicts in last push.
1169
1170Resolve conflicts.
1171
1172
1173----------------
1174Date: 2014-01-04
1175Author: Sonny Jeon
1176Subject: Cleaned up variable spindle output (PWM). Code and config comments.
1177
1178- Variable spindle speed output as a configuration option. Thanks
1179@EliteEng! When enabled, the Z-limit (D11) and spindle enable(D12) pins
1180switch to allow access to the hardware PWM output on pin D11.
1181Otherwise, everything should work as it does.
1182
1183- Removed option for inverting the spindle and coolant enable pins.
1184This is a safety hazard, especially for the spindle. When Grbl
1185initializes, all pins are momentarily low until it finishes booting. If
1186an invert is enabled, this means the spindles can be energized briefly
1187during this time. If users need signal inversion, it’s recommended to
1188just wire in an inversion circuit instead.
1189
1190- Cleared out references to spindle variable output in terms of step
1191signal. This isn’t complete and requires more deliberation before
1192installing.
1193
1194- Cleared up and cleaned up some code and config comments.
1195
1196
1197----------------
1198Date: 2014-01-03
1199Author: Sonny Jeon
1200Subject: Merge pull request #322 from EliteEng/dev
1201
1202Update to fix compile error
1203
1204----------------
1205Date: 2014-01-03
1206Author: Rob Brown
1207Subject: Update to fix compile error
1208
1209Update to fix compile error
1210
1211
1212----------------
1213Date: 2014-01-02
1214Author: Sonny Jeon
1215Subject: Merge pull request #318 from EliteEng/dev
1216
1217PWM Spindle Control and Invert Spindle & Coolant Pins
1218
1219----------------
1220Date: 2014-01-03
1221Author: Rob Brown
1222Subject: Update spindle_control.c
1223
1224Updated spindle_control.c due to compile error.
1225
1226----------------
1227Date: 2014-01-02
1228Author: Sonny Jeon
1229Subject: Fix for M7/8/9 modal group checks. Updated AMASS frequency cutoffs and code cleaned.
1230
1231- Updated Grbl version to 0.9c and build number.
1232
1233- G-code parser was missing modal group violation checks for M7/8/9
1234commands. Added them.
1235
1236- Updated the Adaptive Multi-Axis Step Smoothing (AMASS) cutoff
1237frequencies so that the trade between the 16-bit Timer1 accuracy and
1238the level step smoothing are somewhat better balanced. (Smoothing isn’t
1239free, but a higher accuracy timer would provide high cutoff
1240frequencies.)
1241
1242
1243----------------
1244Date: 2014-01-02
1245Author: Sonny Jeon
1246Subject: Update README.md
1247
1248----------------
1249Date: 2014-01-02
1250Author: Rob Brown
1251Subject: PWM Spindle Control and Invert Spindle & Coolant Pins
1252
1253PWM Spindle Control and Invert Spindle & Coolant Pins
1254
1255
1256----------------
1257Date: 2013-12-30
1258Author: Sonny Jeon
1259Subject: Minor bug fixes: Homing travel calculations. Cycle resuming after spindle and dwell commands.
1260
1261- Homing travel calculations fixed. It was computing the min travel
1262rather than max.
1263
1264- Auto-start disable and pausing after spindle or dwell commands.
1265Related to plan_synchronize() function call. Now fixed, but still need
1266to work on the system state.
1267
1268- Pushed a fix to make this branch more Arduino IDE compatible. Removed
1269extern call in nuts_bolts.c
1270
1271- Updated the stepper configuration option of enabling or disabling the
1272new Adaptive Multi-Axis Step Smoothing Algorithm. Now works either way.
1273
1274- Updated some copyright info.
1275
1276
1277----------------
1278Date: 2013-12-30
1279Author: Sonny Jeon
1280Subject: Merge pull request #201 from Protoneer/master
1281
1282Made a few changes to make the code compatible with the Arduino IDE. Sorry about the tardiness!
1283
1284----------------
1285Date: 2013-12-30
1286Author: Sonny Jeon
1287Subject: Incomplete push but working. Lots more stuff. More to come.
1288
1289- NEW! An active multi-axis step smoothing algorithm that automatically
1290adjusts dependent on step frequency. This solves the long standing
1291issue to aliasing when moving with multiple axes. Similar in scheme to
1292Smoothieware, but more advanced in ensuring a more consistent CPU
1293overhead throughout all frequencies while maintaining step exactness.
1294
1295- Switched from Timer2 to Timer0 for the Step Port Reset Interrupt.
1296Mainly to free up hardware PWM pins.
1297
1298- Seperated the direction and step pin assignments, so we can now move
1299them to seperate ports. This means that we can more easily support 4+
1300axes in the future.
1301
1302- Added a setting for inverting the limit pins, as so many users have
1303request. Better late than never.
1304
1305- Bug fix related to EEPROM calls when in cycle. The EEPROM would kill
1306the stepper motion. Now protocol mandates that the system be either in
1307IDLE or ALARM to access or change any settings.
1308
1309- Bug fix related to resuming the cycle after a spindle or dwell
1310command if auto start has been disabled. This fix is somewhat temporary
1311or more of a patch. Doesn’t work with a straight call-response
1312streaming protocol, but works fine with serial buffer pre-filling
1313streaming that most clients use.
1314
1315- Renamed the pin_map.h to cpu_map.h to more accurately describe what
1316the file is.
1317
1318- Pushed an auto start bug fix upon re-initialization.
1319
1320- Much more polishing to do!
1321
1322
1323----------------
1324Date: 2013-12-29
1325Author: Sonny Jeon
1326Subject: Incomplete dev code push, but working. Lots of updates/fixes/improvements. Much still to polish.
1327
1328- Ugh. Github just erased my list of improvements and changes due to a
1329conflict and forcing me to resolve it. Hope this goes through.
1330
1331- Major stepper algorithm change. Trashed the old v0.9 edge
1332branch-style stepper algorithm. It’s fine, but it was susceptible to
1333aliasing noise when moving very slow or very fast. It also had a bit of
1334CPU overhead. It was written to solve a standing issue with v0.8
1335master, where it couldn’t generate a smooth acceleration abocve
133610-15kHz. But, with new step segment buffer in v0.9c, it inadvertently
1337fixed the acceleration problem with v0.8 stepper algorithm. So, what
1338does it mean for you? Smoother stepper pulses and likely higher step
1339frequencies.
1340
1341- Stepper algorithm now uses Timer1 and Timer2, instead of Timer0 and
1342Timer2. Timers 0 and 2 can be swapped if there is an issue.
1343
1344- With the old v0.8 stepper algorithm, the STEP_DELAY_PULSE
1345configuration option is also back.
1346
1347- NEW! Hard limit software debouncing. Grbl now employs the AVR’s
1348watchdog timer as a way to monitor the hard limit pins and checking
1349their states after a delay. This is a simple software debouncing
1350technique and may help alleviate some of the false trigger some users
1351have been complaining about. BUT, this won’t fix electric noise issues!
1352
1353- Fixed an issue with the new homing cycle routine where it wasn’t
1354honoring the acceleration and axis speed limits depending on the homing
1355cycle mask. Now does. Also, updated the homing direction mask code to
1356be a little cleaner.
1357
1358- Moved the main part of the homing cycle control and execution to
1359motion_control.c, where it fits better.
1360
1361- Removed the STATE_INIT system state as it was redundant. Made the
1362system states into bitflags so multiple system states can be checked
1363via one if statement.
1364
1365- Reorganized the power-up routine to work with the new system states.
1366
1367
1368----------------
1369Date: 2013-12-29
1370Author: Sonny Jeon
1371Subject: Merge branch 'dev' of https://github.com/grbl/grbl into dev
1372
1373Conflicts:
1374 limits.c
1375
1376
1377----------------
1378Date: 2013-12-29
1379Author: Sonny Jeon
1380Subject: Merge branch 'dev' of https://github.com/grbl/grbl into dev
1381
1382Conflicts:
1383 limits.c
1384
1385
1386----------------
1387Date: 2013-12-27
1388Author: Sonny Jeon
1389Subject: Merge pull request #312 from scottrcarlson/dev
1390
1391Fixed homing_dir_mask functionality in the re-written homing_cycle.
1392
1393----------------
1394Date: 2013-12-27
1395Author: Scott R Carlson
1396Subject: Hard Limits configured for active high.
1397
1398Added the use of homing_dir_mask to homing_cycle
1399
1400
1401----------------
1402Date: 2013-12-10
1403Author: Sonny Jeon
1404Subject: Update README.md
1405
1406----------------
1407Date: 2013-12-10
1408Author: Sonny Jeon
1409Subject: Revamped homing cycle. Axis limits and max travel bug fixes. Build info. Refactored config.h.
1410
1411- Revamped and improved homing cycle. Now tied directly into the main
1412planner and stepper code, which enables much faster homing seek rates.
1413Also dropped the compiled flash size by almost 1KB, meaning 1KB more
1414for other features.
1415
1416- Refactored config.h. Removed obsolete defines and configuration
1417options. Moved lots of “advanced” options into the advanced area of the
1418file.
1419
1420- Updated defaults.h with the new homing cycle. Also updated the
1421Sherline 5400 defaults and added the ShapeOko2 defaults per user
1422submissions.
1423
1424- Fixed a bug where the individual axes limits on velocity and
1425acceleration were not working correctly. Caused by abs() returning a
1426int, rather than a float. Corrected with fabs(). Duh.
1427
1428- Added build version/date to the Grbl welcome message to help indicate
1429which version a user is operating on.
1430
1431- Max travel settings were not being defaulted into the settings EEPROM
1432correctly. Fixed.
1433
1434- To stop a single axis during a multi-axes homing move, the stepper
1435algorithm now has a simple axis lock mask which inhibits the desired
1436axes from moving. Meaning, if one of the limit switches engages before
1437the other, we stop that one axes and keep moving the other.
1438
1439
1440----------------
1441Date: 2013-12-10
1442Author: Sonny Jeon
1443Subject: Merge pull request #301 from shapeoko/master
1444
1445added shapeoko2 profile
1446
1447----------------
1448Date: 2013-12-10
1449Author: Edward
1450Subject: added shapeoko2 profile
1451
1452shapeoko 2 uses 2mm GT2 belting and 20tooth pulleys
1453
1454
1455----------------
1456Date: 2013-12-07
1457Author: Sonny Jeon
1458Subject: Deceleration to zero speed improvements. Update defaults.
1459
1460- A minor issue with deceleration ramps when close to zero velocity.
1461Should be virtually unnoticeable for most CNC systems, but fixed in
1462this push and accurate to physics.
1463
1464- Updated some of the junction deviation defaults. Because the new
1465stepper algorithm can easily maximize a CNC machine’s capabilities or
1466simply go much faster, this means the speed in which it enters
1467junctions has to be a little more constrained. Meaning that, we have to
1468slow a little bit down more so that we don’t exceed the acceleration
1469limits of the stepper motors.
1470
1471
1472----------------
1473Date: 2013-12-07
1474Author: Sonny Jeon
1475Subject: Pushed bug fixes. Updated readme.
1476
1477- G18 plane select fix from XZ-plane to ZX-plane per right hand rule.
1478
1479- Added volatile declaration for rx_buffer_tail in serial.c. No real
1480effect to operation as avr-gcc adds this upon compilation. Helps with
1481porting issues when using a different compiler.
1482
1483
1484----------------
1485Date: 2013-12-07
1486Author: Sonny Jeon
1487Subject: Pushed limits active high option. Updated defaults.h. Misc bug fixes. Cleaned up codebase.
1488
1489- Pushed limit switch active high option (i.e. NC switches).
1490
1491- Updated defaults.h to be in-line with the new settings.
1492
1493- Refactored feed hold handling and step segment buffer to be more
1494generalized in effort to make adding feedrate overrides easier in the
1495future. Also made it a little more clean.
1496
1497- Fixed G18 plane select issue. Now ZX-plane, rather than XZ-plane, per
1498right hand rule.
1499
1500- Cleaned some of the system settings by more accurately renaming some
1501of the variables and removing old obsolete ones.
1502
1503- Declared serial.c rx_buffer_tail to be volatile. No effect, since
1504avr-gcc automatically does this during compilation. Helps with porting
1505when using other compilers.
1506
1507- Updated version number to v0.9b.
1508
1509- Updates to README.md
1510
1511
1512----------------
1513Date: 2013-12-04
1514Author: Sonny Jeon
1515Subject: Reinstated feed holds into new stepper algorithm and planner. Rough draft, but working.
1516
1517- Reinstated the feed hold feature with the new stepper algorithm and
1518new optimized planner. It works, but will be re-factored a bit soon to
1519clean up the code.
1520
1521- At this point, feedrate overrides may need to be installed in the
1522v1.0 version of grbl, while this version will likely be pushed to the
1523edge branch soon and pushed to master after the bugs have been squashed.
1524
1525- Measured the overall performance of the new planner and stepper
1526algorithm on an oscilloscope. The new planner is about 4x faster than
1527before, where it is completing a plan in around 1ms. The stepper
1528algorithm itself is minutely faster, as it is a little lighter. The
1529trade-off in the increased planner performance comes from the new step
1530segment buffer. However, even in the worse case scenario, the step
1531segment buffer generates a new segment with a typical 0.2 ms, and the
1532worse case is 1ms upon a new block or replanning the active block.
1533Added altogether, it’s argubly still twice as efficient as the old one.
1534
1535
1536----------------
1537Date: 2013-11-23
1538Author: Sonny Jeon
1539Subject: Merge pull request #289 from Travis-Snoozy/master
1540
1541Add support for active-high limit switches
1542
1543----------------
1544Date: 2013-11-22
1545Author: Travis Snoozy
1546Subject: Add support for active-high limit switches
1547
1548
1549----------------
1550Date: 2013-11-22
1551Author: Sonny Jeon
1552Subject: Yet another major stepper algorithm and planner overhaul.
1553
1554- Overhauled the stepper algorithm and planner again. This time
1555concentrating on the decoupling of the stepper ISR completely. It is
1556now dumb, relying on the segment generator to provide the number of
1557steps to execute and how fast it needs to go. This freed up lots of
1558memory as well because it made a lot tracked variables obsolete.
1559
1560- The segment generator now computes the velocity profile of the
1561executing planner block on the fly in floating point math, instead of
1562allowing the stepper algorithm to govern accelerations in the previous
1563code. What this accomplishes is the ability and framework to (somewhat)
1564easily install a different physics model for generating a velocity
1565profile, i.e. s-curves.
1566
1567- Made some more planner enhancements and increased efficiency a bit.
1568
1569- The changes also did not increase the compiled size of Grbl, but
1570decreased it slightly as well.
1571
1572- Cleaned up a lot of the commenting.
1573
1574- Still much to do, but this push works and still is missing feedholds
1575(coming next.)
1576
1577
1578----------------
1579Date: 2013-10-29
1580Author: Sonny Jeon
1581Subject: Another merge fix.
1582
1583
1584----------------
1585Date: 2013-10-29
1586Author: Sonny Jeon
1587Subject: Merge fixes.
1588
1589
1590----------------
1591Date: 2013-10-29
1592Author: Sonny Jeon
1593Subject: Merge branch 'dev_2' into dev
1594
1595Conflicts:
1596 README.md
1597 gcode.c
1598 motion_control.c
1599 planner.c
1600 planner.h
1601 protocol.c
1602 report.c
1603 settings.c
1604 settings.h
1605 stepper.c
1606 stepper.h
1607
1608
1609----------------
1610Date: 2013-10-29
1611Author: Sonny Jeon
1612Subject: Merge branch 'dev_2' into dev
1613
1614Conflicts:
1615README.md
1616gcode.c
1617motion_control.c
1618planner.c
1619planner.h
1620protocol.c
1621report.c
1622settings.c
1623settings.h
1624stepper.c
1625stepper.h
1626
1627
1628----------------
1629Date: 2013-10-29
1630Author: Sonny Jeon
1631Subject: Planner function call fix. More clean up.
1632
1633
1634----------------
1635Date: 2013-10-29
1636Author: Sonny Jeon
1637Subject: Updated comments. Changed stepper variable names to be more understandable. Added step locking note.
1638
1639- Updated config comments and stepper code comments for the new changes.
1640
1641- Changed stepper algorithm variable names to be more understandable in
1642what they actually do.
1643
1644- Added a stepper lock note in default.h per user request.
1645
1646- Started some code layout in handling feed holds and refactoring the
1647homing routine to use the main stepper algorithm instead of a seperate
1648version.
1649
1650
1651----------------
1652Date: 2013-10-24
1653Author: Sonny Jeon
1654Subject: Cleaned up stepper and planner code.
1655
1656- Added some compile-time error checking. Will add more in future
1657pushes to ensure settings are correct and within parameters that won't
1658break anything.
1659
1660- Pushed some master branch changes with MEGA pin settings.
1661
1662- Cleaned up planner code and comments to clarify some of the new
1663changes. Still much to do here.
1664
1665- Cleaned up the new stepper code. May need to abstract some of the
1666segment buffer more to fix the feed holds (and integrate homing into
1667the main stepper routine). With what's planned, this should make the
1668stepper algorithm easier to attach other types of processes to it,
1669where it is now tightly integrated with the planner buffer and nothing
1670else.
1671
1672
1673----------------
1674Date: 2013-10-21
1675Author: Sonny Jeon
1676Subject: Merge pull request #279 from EliteEng/master
1677
1678Changed Stepper Pins
1679
1680----------------
1681Date: 2013-10-18
1682Author: Rob Brown
1683Subject: Changed Stepper Pins
1684
1685Changed Stepper Pins so the Step Port Invert Mask matches the UNO
1686
1687
1688----------------
1689Date: 2013-10-17
1690Author: Sonny Jeon
1691Subject: Merge pull request #278 from EliteEng/master
1692
1693Update Pin Change Interrupts on Mega 2560
1694
1695----------------
1696Date: 2013-10-17
1697Author: Rob Brown
1698Subject: Update Pin Change Interrupts so it works
1699
1700PCIE1 - Interrupt 8 on the Mega is attached to USART0 RX so when any
1701serial communication was transmitted it was triggering the Reset
1702Interrupt
1703
1704
1705----------------
1706Date: 2013-10-14
1707Author: Sonny Jeon
1708Subject: Fine tuning of new stepper algorithm with protected planner. Adaptive step prediction for segment buffer.
1709
1710- Cleaned up the new stepper algorithm code with more commenting and
1711better logic flow.
1712
1713- The new segment buffer now predicts the number of steps each segment
1714should have to execute over about 8 milliseconds each (based on the
1715ACCELERATION_TICKS_PER_SECOND setting). So, for when the whole segment
1716buffer is full, the stepper algorithm has roughly 40 milliseconds of
1717steps queued before it needs to refilled by the main program.
1718
1719- Readjusted the max supported step rate back to 30kHz from the lower
1720development 20kHz. Everything still works amazing great and the test
1721CNC machine still runs twice as fast with the new stepper algorithm and
1722planner.
1723
1724- Upped the standard serial baudrate to 115200 baud, as it is clear
1725that the bottleneck is the serial interface. Will now support this, as
1726well as the old 9600 baud, in new firmware builds.
1727
1728
1729----------------
1730Date: 2013-10-12
1731Author: Sonny Jeon
1732Subject: New stepper subsystem bug fixes.
1733
1734- New stepper algorithm with the new optimized planner seems to be
1735working nearly twice as fast as the previous algorithm.
1736
1737- For one, the planner computation overhead is probably a fraction of
1738what it used to be with the worst case being about half still.
1739
1740- Secondly, anytime the planner plans back to the first executing
1741block, it no longer overwrites the block conditions and allows it to
1742complete without lost steps. So no matter if the streams slows, the
1743protected planner should keep the steppers moving without risk of lost
1744steps (although this still needs to be tested thoroughly and may
1745audibly sound weird when this happens.)
1746
1747- It now seems that the bottleneck is the serial baudrate (which is
1748good!)
1749
1750
1751----------------
1752Date: 2013-10-09
1753Author: Sonny Jeon
1754Subject: Protected buffer works! Vast improvements to planner efficiency. Many things still broken with overhaul.
1755
1756Development push. Lots still broken.
1757
1758- Protected planner concept works! This is a critical precursor to
1759enabling feedrate overrides in allowing the planner buffer and the
1760stepper execution operate atomically. This is done through a
1761intermediary segment buffer.
1762
1763- Still lots of work to be done, as this was a complete overhaul of the
1764planner and stepper subsystems. The code can be cleaned up quite a bit,
1765re-enabling some of the broken features like feed holds, and finishing
1766up some of the concepts
1767
1768- Pushed some of the fixes from the master and edge branch to here, as
1769this will likely replace the edge branch when done.
1770
1771
1772----------------
1773Date: 2013-08-25
1774Author: Sonny Jeon
1775Subject: Merge pull request #263 from 0xPIT/master
1776
1777remove mcu argument for avr-size in makefile as it is not present in GNU...
1778
1779----------------
1780Date: 2013-08-25
1781Author: 0xPIT
1782Subject: remove mcu argument for avr-size in makefile as it is not present in GNU Binutils 2.22
1783
1784
1785----------------
1786Date: 2013-08-20
1787Author: Sonny Jeon
1788Subject: Pin map definition cleanup.
1789
1790
1791----------------
1792Date: 2013-08-19
1793Author: Sonny Jeon
1794Subject: Processor-independent pin mapping feature.
1795
1796- Cleaned up and organized pin mapping concept by @elmom.
1797
1798- pin_map.h allows for user-supplied pin mapping and port vector
1799definitions in a centralized file. With more processor types, more
1800definitions could be added.
1801
1802
1803----------------
1804Date: 2013-08-19
1805Author: Sonny Jeon
1806Subject: Merge pull request #260 from elmom/master
1807
1808Thanks for the contribution! Looks good. Will update some of the semantics shortly, but the idea is solid.
1809
1810----------------
1811Date: 2013-08-19
1812Author: Sonny Jeon
1813Subject: Push old dev_2 draft to work on other things.
1814
1815- **NON-FUNCTIONAL**
1816- Contains an old draft of separating the stepper driver direct access
1817to the planner buffer. This is designed to keep the stepper and planner
1818modules independent and prevent overwriting or other complications. In
1819this way, feedrate override should be able to be installed as well.
1820- A number of planner optimizations are installed too.
1821- Not sure where the bugs are. Either in the new planner optimizations,
1822new stepper module updates, or in both. Or it just could be that the
1823Arduino AVR is choking with the new things it has to do.
1824
1825
1826----------------
1827Date: 2013-08-19
1828Author: Sonny Jeon
1829Subject: Merge pull request #229 from 0xPIT/patch-1
1830
1831fix command line parameter for avr-size
1832
1833----------------
1834Date: 2013-07-21
1835Author: Elmo Mäntynen
1836Subject: Refactor config.h to allow defaults for chips/boards with different pin mappings
1837
1838
1839----------------
1840Date: 2013-07-21
1841Author: Elmo Mäntynen
1842Subject: Added pin mapping list to docs, useful for porting
1843
1844
1845----------------
1846Date: 2013-07-21
1847Author: Elmo Mäntynen
1848Subject: Make serial work with most chips by default
1849
1850
1851----------------
1852Date: 2013-05-16
1853Author: 0xPIT
1854Subject: fix command line parameter for avr-size
1855
1856----------------
1857Date: 2013-04-05
1858Author: Sonny Jeon
1859Subject: Updated readme
1860
1861
1862----------------
1863Date: 2013-04-05
1864Author: Sonny Jeon
1865Subject: Increased g-code parser line buffer. Added line overflow feedback.
1866
1867- Increased g-code parser line buffer from 50 to 70 characters. Should
1868fix most all issues with long arc statements, provided that they are 8
1869digits(float) long only.
1870
1871- Added a line buffer overflow feedback error to let the user know when
1872it encounters this problem. Resets the line whenever this occurs.
1873(Thanks @BHSPitMonkey!)
1874
1875
1876----------------
1877Date: 2013-04-05
1878Author: Sonny Jeon
1879Subject: Updates to edge/dev. Line buffer increased/planner buffer decreased. Line overflow feedback.
1880
1881- Increased g-code parser line buffer to 70 characters (from 50) to
1882prevent some long arc commands from getting truncated.
1883
1884- Decreased planner buffer from 18 to 17 blocks to free up memory for
1885line buffer.
1886
1887- Added a line buffer overflow feedback error (Thanks @BHSPitMonkey!)
1888
1889
1890----------------
1891Date: 2013-03-28
1892Author: Sonny Jeon
1893Subject: Minor updates to code and commenting.
1894
1895
1896----------------
1897Date: 2013-03-22
1898Author: Sonny Jeon
1899Subject: Update README.md
1900
1901----------------
1902Date: 2013-03-21
1903Author: Sonny Jeon
1904Subject: Untested! Soft limits, max travel, homing changes, new settings.
1905
1906- WARNING: Completely untested. Will later when there is time. Settings
1907WILL be overwritten, as there are new settings.
1908
1909- Soft limits installed. Homing must be enabled for soft limits to work
1910correctly. Errors out much like a hard limit, locking out everything
1911and bringing up the alarm mode. Only difference is it forces a feed
1912hold before doing so. Position is not lost.
1913
1914- IMPORTANT: Homing had to be updated so that soft limits work better
1915with less CPU overhead. When homing completes, all axes are assumed to
1916exist in negative space. If your limit switch is other side, the homing
1917cycle with set this axis location to the max travel value, rather than
1918zero.
1919
1920- Update mc_line() to accept an array, rather than individual variables.
1921
1922- Added an mc_auto_cycle_start() function handle this feature.
1923Organization only.
1924
1925-
1926
1927
1928----------------
1929Date: 2013-03-19
1930Author: Sonny Jeon
1931Subject: Update README.md
1932
1933----------------
1934Date: 2013-03-19
1935Author: Sonny Jeon
1936Subject: G-code updates for G10 L2 and L20
1937
1938- Updated g-codes G10 L2 and G10 L20 to the new descriptions on
1939linuxcnc.org
1940
1941
1942----------------
1943Date: 2013-03-19
1944Author: Sonny Jeon
1945Subject: G-code updates for G10 L2 and L20.
1946
1947- LinuxCNC's g-code definitions changed for G10. Updated to their
1948descriptions.
1949
1950
1951----------------
1952Date: 2013-03-13
1953Author: Bertus Kruger
1954Subject: Update planner.c
1955
1956Removed inline from all functions.
1957
1958If this is really needed is there another way that we can get
1959around using it? (The Arduino IDE does not recognize it) 
1960
1961----------------
1962Date: 2013-03-13
1963Author: Bertus Kruger
1964Subject: Update nuts_bolts.c
1965
1966Removed __floatunsisf and used normal casting on line 81.
1967This makes it compatible with the Arduino IDE.
1968
1969----------------
1970Date: 2013-03-12
1971Author: Sonny Jeon
1972Subject: Pushed minor changes. Thanks @Protoneer!
1973
1974
1975----------------
1976Date: 2013-03-12
1977Author: Sonny Jeon
1978Subject: Merge pull request #200 from Protoneer/master
1979
1980Fixed small bug.
1981
1982----------------
1983Date: 2013-03-13
1984Author: Bertus Kruger
1985Subject: Update gcode.c
1986
1987Removed the home_select variable.
1988
1989----------------
1990Date: 2013-03-13
1991Author: Bertus Kruger
1992Subject: Update eeprom.h
1993
1994Fixed the function signature.
1995
1996----------------
1997Date: 2013-03-13
1998Author: Bertus Kruger
1999Subject: Update eeprom.c
2000
2001Changed back
2002
2003----------------
2004Date: 2013-03-12
2005Author: Bertus Kruger
2006Subject: Update gcode.c
2007
2008home_select defined out of scope. Moved it outside the switch
2009so the rest of the switch can see it properly. 
2010
2011----------------
2012Date: 2013-03-12
2013Author: Bertus Kruger
2014Subject: Update eeprom.c
2015
2016Function eeprom_put_char's parameters did not align with the .h file.
2017
2018----------------
2019Date: 2013-03-01
2020Author: Sonny Jeon
2021Subject: Bug fix to-do note on soft limit checks. Not yet completed.
2022
2023
2024----------------
2025Date: 2013-03-01
2026Author: Sonny Jeon
2027Subject: Minor changes and added notes to soft limits routines.
2028
2029- Changed up mc_line to accept an array rather than individual x,y,z
2030coordinates. Makes some of the position data handling more effective,
2031especially for a 4th-axis later on.
2032
2033- Changed up some soft limits variable names.
2034
2035
2036----------------
2037Date: 2013-02-26
2038Author: Sonny Jeon
2039Subject: Merge pull request #193 from bungao/soft_limts
2040
2041integrating soft limits
2042
2043----------------
2044Date: 2013-02-26
2045Author: Jens Geisler
2046Subject: bugfix: uninitiallized curr_block->new_entry_speed_sqr lead to step loss
2047in some cases
2048
2049----------------
2050Date: 2013-02-26
2051Author: bungao
2052Subject: integrating soft limits
2053
2054
2055----------------
2056Date: 2013-02-22
2057Author: Sonny Jeon
2058Subject: Added some prelimary notes to new changes.
2059
2060
2061----------------
2062Date: 2013-02-22
2063Author: Sonny Jeon
2064Subject: Push additional updates from @jgeisler0303
2065
2066
2067----------------
2068Date: 2013-02-22
2069Author: Jens Geisler
2070Subject: changed atomic access for updating the acceleration profile
2071the stepper interrupt is only halted when necessary and for the shortest
2072time possible (8% cycle time)
2073
2074----------------
2075Date: 2013-02-20
2076Author: Sonny Jeon
2077Subject: Merge pull request #188 from jgeisler0303/new_planner
2078
2079New planner commits merge into dev branch.
2080
2081----------------
2082Date: 2013-02-20
2083Author: Sonny Jeon
2084Subject: Update README.md
2085
2086----------------
2087Date: 2013-02-20
2088Author: Jens Geisler
2089Subject: added counter for planner steps
2090
2091----------------
2092Date: 2013-02-20
2093Author: Jens Geisler
2094Subject: implemented a mixture of Sonny's MATLAB and my previous grbl planner
2095ontop of the edge planner
2096examples run byte for byte identical old and new version
2097
2098----------------
2099Date: 2013-01-18
2100Author: Sonny Jeon
2101Subject: Merge pull request #169 from silasb/fix-execute-bit-on-files
2102
2103Removing executable bit on the files
2104
2105----------------
2106Date: 2013-01-18
2107Author: Sonny Jeon
2108Subject: Merge bug fixes from recent v0.8c push. Added readme for Grbl Sim.
2109
2110
2111----------------
2112Date: 2013-01-18
2113Author: Sonny Jeon
2114Subject: Merge pull request #167 from tmpvar/simulator-mac
2115
2116Fix sim makefile so it works on mac
2117
2118----------------
2119Date: 2013-01-18
2120Author: Elijah Insua
2121Subject: Fix sim makefile so it works on mac
2122
2123These changes include a path separator fix and the removal of --gc-sections which causes ld failures, and is not needed on a pc.
2124
2125This patch also changes how a compiler is selected. The makefile will now select the system compiler , which should work fine
2126under mingw and linux.
2127
2128
2129----------------
2130Date: 2013-01-17
2131Author: Silas Baronda
2132Subject: Removing executable bit on the files
2133
2134
2135----------------
2136Date: 2013-01-17
2137Author: Sonny Jeon
2138Subject: Merge pull request #112 from jgeisler0303/simulator
2139
2140Grbl Simulator. Oh yeah.
2141
2142----------------
2143Date: 2013-01-17
2144Author: Jens Geisler
2145Subject: relaunch ontop of latest grbl edge
2146code very messy but tested
2147
2148----------------
2149Date: 2013-01-09
2150Author: Sonny Jeon
2151Subject: Merge pull request #160 from daapp/edge
2152
2153Replace some constants with N_AXIS.
2154
2155----------------
2156Date: 2013-01-10
2157Author: Alexander Danilov
2158Subject: Replace some constants with N_AXIS.
2159
2160
2161----------------
2162Date: 2013-01-06
2163Author: Sonny Jeon
2164Subject: Fixed bug with homing and polling at the same time. Updated readme.
2165
2166
2167----------------
2168Date: 2013-01-06
2169Author: Sonny Jeon
2170Subject: Minor changes.
2171
2172- Changed some names up and removed a plan_reset() function that is
2173never used.
2174
2175
2176----------------
2177Date: 2012-12-21
2178Author: Sonny Jeon
2179Subject: Readme link to edge build 2012-12-21
2180
2181
2182----------------
2183Date: 2012-12-21
2184Author: Sonny Jeon
2185Subject: Updated README. Max step rate back at 30kHz. Acceleration minor bug fix.
2186
2187- Returned the max step rate to 30kHz. The new arc algorithm works uses
2188so much less CPU overhead, because the segments are longer, that the
2189planner has no problem computing through them.
2190
2191- Fixed an issue with the acceleration independence scaling. Should now
2192work with accelerations above 400mm/sec^2 or so.
2193
2194- Updated README
2195
2196
2197----------------
2198Date: 2012-12-19
2199Author: Sonny Jeon
2200Subject: Arc mm_per_segment removed, now in terms of tolerance. Stepper ramp counter variable type corrected.
2201
2202- Arc mm_per_segment parameter was removed and replaced with an
2203arc_tolerance parameter, which scales all arc segments automatically to
2204radius, such that the line segment error doesn't exceed the tolerance.
2205Significantly improves arc performance through larger radius arc,
2206because the segments are much longer and the planner buffer has more to
2207work with.
2208
2209- Moved n_arc correction from the settings to config.h. Mathematically
2210this doesn't need to be a setting anymore, as the default config value
2211will work for all known CNC applications. The error does not accumulate
2212as much anymore, since the small angle approximation used by the arc
2213generation has been updated to a third-order approximation and how the
2214line segment length scale with radius and tolerance now. Left in
2215config.h for extraneous circumstances.
2216
2217- Corrected the st.ramp_count variable (acceleration tick counter) to a
22188-bit vs. 32-bit variable. Should make the stepper algorithm just a
2219touch faster overall.
2220
2221
2222----------------
2223Date: 2012-12-16
2224Author: Sonny Jeon
2225Subject: Slow trailing steps fix. Added more defaults.
2226
2227- Fixed an issue (hopefully) with slow trailing steps after a
2228triangular velocity profile move. Sets the trapezoid tick cycle counter
2229to the correct value for an accurate reproduction of the deceleration
2230curve. Keeps it from arriving too early to the target position, which
2231causes the slow trailing steps.
2232
2233- Added Zen Toolworks 7x7 to default settings.
2234
2235- Updated readme with new edge build.
2236
2237
2238----------------
2239Date: 2012-12-16
2240Author: Sonny Jeon
2241Subject: Max velocity axes independence installed. Fixed intermittent slow trailing steps. Timer0 disable fix.
2242
2243- Maximum velocity for each axis is now configurable in settings. All
2244rapids/seek move at these maximums. All feed rates(including rapids)
2245may be limited and scaled down so that no axis does not exceed their
2246limits.
2247
2248- Moved around auto-cycle start. May change later, but mainly to ensure
2249the planner buffer is completely full before cycle starting a streaming
2250program. Otherwise it should auto-start when there is a break in the
2251serial stream.
2252
2253- Reverted old block->max_entry_speed_sqr calculations. Feedrate
2254overrides not close to ready at all.
2255
2256- Fixed intermittent slow trailing steps for some triangle velocity
2257profile moves. The acceleration tick counter updating was corrected to
2258be exact for that particular transition. Should be ok for normal
2259trapezoidal profiles.
2260
2261- Fixed the Timer0 disable after a step pulse falling edge. Thanks
2262@blinkenlight!
2263
2264
2265----------------
2266Date: 2012-12-14
2267Author: Sonny Jeon
2268Subject: Acceleration independence installed. Initial re-work of planner for feedrate overrides.
2269
2270NOTE: This push is a work-in-progress and there are known bugs that
2271need to be fixed, like homing acceleration being incompatible. Released
2272for testing. Settings will definitely be overwritten, as new settings
2273were needed.
2274
2275- Acceleration independence installed in planner. Each axis can now
2276have different accelerations and Grbl will maximize the accelerations
2277depending on the direction its moving. Very useful for users like on
2278the ShapeOko with vastly different Z-axis properties.
2279
2280- More planner optimizations and re-factoring. Slightly improved some
2281of the older calculations, but new acceleration calculations offset
2282these improvements. Overall no change in processing speed.
2283
2284- Removed planner nominal length checks. It was arguable whether or not
2285this improved planner efficiency, especially in the worst case scenario
2286of arcs.
2287
2288- Updated readme and changed to markdown format.
2289
2290
2291----------------
2292Date: 2012-12-12
2293Author: Sonny Jeon
2294Subject: Update README.md
2295
2296----------------
2297Date: 2012-12-12
2298Author: Sonny Jeon
2299Subject: Changed README to markdown
2300
2301
2302----------------
2303Date: 2012-12-12
2304Author: Sonny Jeon
2305Subject: Added download links to README.
2306
2307
2308----------------
2309Date: 2012-12-12
2310Author: Sonny Jeon
2311Subject: Moved compiled builds to different repo.
2312
2313
2314----------------
2315Date: 2012-12-11
2316Author: Sonny Jeon
2317Subject: Added builds folder.
2318
2319Because the Downloads section has been removed, added a builds folder
2320for users to download pre-compiled firmware without needing to compile
2321it themselves.
2322
2323
2324----------------
2325Date: 2012-12-11
2326Author: Sonny Jeon
2327Subject: Added builds folder.
2328
2329In light of the downloads section in Github being removed, added a
2330builds folder for all of the .hex files. Hopefully these won't be
2331removed either.
2332
2333
2334----------------
2335Date: 2012-12-11
2336Author: Sonny Jeon
2337Subject: Planner optimizations.
2338
2339- Improved planner execution speed by 5% or more. Re-factored most of
2340the calculations in terms of the square of velocity. This removed a lot
2341of sqrt() calculations for every planner_recalculate.
2342
2343
2344----------------
2345Date: 2012-12-10
2346Author: Sonny Jeon
2347Subject: (Another) Planner bug fix.
2348
2349- Oops again. Thought the new planner changes made things much better,
2350but there was a bug. Improvements we on the order of 20% execution time
2351reduction, rather than half. The increase to 30kHz Ranade timer
2352frequency also increased the overall overhead, so the total planner
2353change? Zero. But, it's still better.
2354
2355
2356----------------
2357Date: 2012-12-10
2358Author: Sonny Jeon
2359Subject: Planner bug fix.
2360
2361- Oops! Misplace an if-then statement. Should work as advertised now.
2362(Hopefully)
2363
2364
2365----------------
2366Date: 2012-12-10
2367Author: Sonny Jeon
2368Subject: Planner execution time halved and bug fixes. Increased step rate limit to 30kHz.
2369
2370- Planner execute speed has been more than halved from 4ms to 1.9ms
2371when computing a plan for a single line segment during arc generation.
2372This means that Grbl can now run through an arc (or complex curve)
2373twice as fast as before without starving the buffer. For 0.1mm arc
2374segments, this means about the theoretical feed rate limit is about
23753000mm/min for arcs now.
2376
2377- Increased the Ranade timer frequency to 30kHz, as there doesn't seem
2378to be any problems with increasing the frequency. This means that the
2379maximum step frequency is now back at 30kHz.
2380
2381- Added Zen Toolworks 7x7 defaults.
2382
2383
2384----------------
2385Date: 2012-12-08
2386Author: Sonny Jeon
2387Subject: New stepper algorithm. Optimized planner.
2388
2389- Brand-new stepper algorithm. Based on the Pramod Ranade inverse time
2390algorithm, but modified to ensure step events are exact. Currently
2391limited to about 15kHz step rates, much more to be done to enable 30kHz
2392again.
2393
2394- Removed Timer1. Stepper algorithm now uses Timer0 and Timer2.
2395
2396- Much improved step generation during accelerations. Smoother. Allows
2397much higher accelerations (and speeds) than before on the same machine.
2398
2399- Cleaner algorithm that is more easily portable to other CPU types.
2400
2401- Streamlined planner calculations. Removed accelerate_until and
2402final_rate variables from block buffer since the new stepper algorithm
2403is that much more accurate.
2404
2405- Improved planner efficiency by about 15-20% during worst case
2406scenarios (arcs).
2407
2408- New config.h options to tune new stepper algorithm.
2409