blob: 5d536a3c09f1391dad056eacb9176b902c9c0bd0 [file] [log] [blame]
Luigi Santivetti69972f92019-11-12 22:55:40 +00001----------------
2Date: 2012-01-17
3Author: Sonny Jeon
4Subject: Update readme.textile
5
6----------------
7Date: 2012-01-17
8Author: Sonny Jeon
9Subject: Merge pull request #47 from chamnit/v0_7
10
11Merging chamnit/v0_7 to grbl/master
12
13----------------
14Date: 2012-01-17
15Author: Sonny Jeon
16Subject: Merge chamnit/v0_7 with grbl/master
17
18
19----------------
20Date: 2012-01-17
21Author: Sonny Jeon
22Subject: Update readme.textile
23
24----------------
25Date: 2012-01-17
26Author: Sonny Jeon
27Subject: Merge pull request #39 from chamnit/edge
28
29Merging chamnit/grbl edge v0.8a to grbl/grbl edge
30
31----------------
32Date: 2012-01-15
33Author: Sonny Jeon
34Subject: Propagated premature step end bug fix from the edge branch. Updated printFloat() function.
35
36- Will not be uploading a hex build of this, unless asked.
37
38
39----------------
40Date: 2012-01-15
41Author: Sonny Jeon
42Subject: Fix bug with premature step end. Refactored _delay_ms() and square() for better portability.
43
44- Fixed a premature step end bug dating back to Simen's 0.7b edge
45version is fixed, from which this code is forked from. Caused by Timer2
46constantly overflowing calling the Step Reset Interrupt every 128usec.
47Now Timer2 is always disabled after a step end and should free up some
48cycles for the main program. Could be more than one way to fix this
49problem. I'm open to suggestions.
50
51- _delay_ms() refactored to accept only constants to comply with
52current compilers. square() removed since not available with some
53compilers.
54
55
56----------------
57Date: 2012-01-10
58Author: Sonny Jeon
59Subject: Extended position reporting with both home and work coordinates. Home position now retained after reset. Other minor changes/fixes.
60
61- Grbl now tracks both home and work (G92) coordinate systems and does
62live updates when G92 is called.
63- Rudimentary home and work position status reporting. Works but still
64under major construction.
65- Updated the main streaming script. Has a disabled periodic timer for
66querying status reports, disabled only because the Python timer doesn't
67consistently restart after the script exits. Add here only for user
68testing.
69- Fixed a bug to prevent an endless serial_write loop during status
70reports.
71- Refactored the planner variables to make it more clear what they are
72and make it easier for clear them.
73
74
75----------------
76Date: 2012-01-09
77Author: Sonny Jeon
78Subject: Corrected a minor streaming script character counting bug.
79
80----------------
81Date: 2012-01-09
82Author: Sonny Jeon
83Subject: Updated line in streaming script.
84
85----------------
86Date: 2012-01-06
87Author: Sonny Jeon
88Subject: Position reporting, refactored system variables, serial print fixes, updated streaming scripts.
89
90- Added machine position reporting to status queries. This will be
91further developed with part positioning/offsets and maintaining
92location upon reset.
93
94- System variables refactored into a global struct for better
95readability.
96
97- Removed old obsolete Ruby streaming scripts. These were no longer
98compatible. Updated Python streaming scripts.
99
100- Fixed printFloat() and other printing functions.
101
102- Decreased planner buffer back to 18 blocks and increased TX serial
103buffer to 64 bytes. Need the memory space for future developments.
104
105- Begun adding run-time modes to grbl, where block delete toggle, mm/in
106reporting modes, jog modes, etc can be set during runtime. Will be
107fleshed out and placed into EEPROM when everything is added.
108
109
110----------------
111Date: 2011-12-10
112Author: Sonny Jeon
113Subject: Various minor updates and variable definition corrections. Removed deprecated acceleration manager.
114
115- Removed deprecated acceleration manager (non-functional since v0.7b)
116- Updated variable types and function headers. - Updated stepper
117interrupt to ISR() from SIGNAL()+sei(). - General code cleanup.
118
119
120----------------
121Date: 2011-12-08
122Author: Sonny Jeon
123Subject: Initial v0.8 ALPHA commit. Features multi-tasking run-time command execution (feed hold, cycle start, reset, status query). Extensive re-structuring of code for future features.
124
125- ALPHA status. - Multitasking ability with run-time command executions
126for real-time control and feedback. - Decelerating feed hold and resume
127during operation. - System abort/reset, which immediately kills all
128movement and re-initializes grbl. - Re-structured grbl to easily allow
129for new features: Status reporting, jogging, backlash compensation. (To
130be completed in the following releases.) - Resized TX/RX serial buffers
131(32/128 bytes) - Increased planner buffer size to 20 blocks. - Updated
132documentation.
133
134
135----------------
136Date: 2011-11-19
137Author: Sonny Jeon
138Subject: Updated README and reordered branch versions.
139
140
141----------------
142Date: 2011-11-19
143Author: Sonny Jeon
144Subject: Re-ordered stepper idle function to first disable interrupt.
145
146----------------
147Date: 2011-11-11
148Author: Sonny Jeon
149Subject: Corrected clearing of target and position variable for the go home routine. Thanks Jens!
150
151----------------
152Date: 2011-10-11
153Author: Sonny Jeon
154Subject: Delete a new work file shouldn't have been synced.
155
156
157----------------
158Date: 2011-10-11
159Author: Sonny Jeon
160Subject: Third time's a charm! No more deceleration issues! Updated grbl version and settings. General cleanup.
161
162- Fleshed out the original idea to completely remove the long slope at
163the end of deceleration issue. This third time should absolutely
164eliminate it.
165- Changed the acceleration setting to kept as mm/min^2 internally,
166since this was creating unneccessary additional computation in the
167planner. Human readable value kept at mm/sec^2.
168- Updated grbl version 0.7d and settings version to 4. NOTE: Please
169check settings after update. These may have changed, but shouldn't.
170- Before updating the new features (pause, e-stop, federate override,
171etc), the edge branch will soon be merged with the master, barring any
172immediate issues that people may have, and the edge branch will be the
173testing ground for the new grbl version 0.8.
174
175
176----------------
177Date: 2011-10-07
178Author: Sonny Jeon
179Subject: Forgot something! Comments on what the last change does.
180
181
182----------------
183Date: 2011-10-06
184Author: Sonny Jeon
185Subject: Minor update to further eliminate the ole long slope deceleration issue. New update note!
186
187- Added another way to further ensure the long slope deceleration issue
188is eliminated. If the stepper rate change is too great near zero, the
189stepper rate is adjusted at half increments to the end of travel,
190creating a smooth transition. - If the new STEPPER_IDLE_LOCK_TIME is
191set as zero, this delay is not compiled at compile-time. - NOTE: The
192next update is likely going to be major, involving a full re-write of
193the stepper.c program to integrate a simple way to apply pauses,
194jogging, e-stop, and feedrate overrides. The interface should be
195flexible enough to be easily modified for use with either hardware
196switches or software commands. Coming soon.
197
198
199----------------
200Date: 2011-09-29
201Author: Sonny Jeon
202Subject: Added complete stop delay at the end of all motion. Moved grbl preprocessor script into a new repository.
203
204Added a very short (25 ms) user-definable delay before the steppers are
205disabled at the motors are disabled and grbl goes idle. This ensures
206any residual inertia at the end of the last motion does not cause the
207axes to drift and grbl to lose its position when manually entering
208g-code or when performing a tool change and starting the next
209operation.
210
211
212----------------
213Date: 2011-09-25
214Author: Sonny Jeon
215Subject: Updated some comments and fixed a bug in the new stepper logic.
216
217- The stepper logic was not initiating the decelerations for certain
218cases. Just re-arranged the logic to fix it.
219
220
221----------------
222Date: 2011-09-24
223Author: Sonny Jeon
224Subject: Fixed long slope at deceleration issue. Moved things into config.h. New MINIMUM_PLANNER_SPEED parameter.
225
226- The long standing issue of a long slope at deceleration is likely
227fixed. The stepper program was not tracking and timing the end of
228acceleration and start of deceleration exactly and now is fixed to
229start and stop on time. Also, to ensure a better acceleration curve fit
230used by the planner, the stepper program delays the start of the
231accelerations by a half trapezoid tick to employ the midpoint rule. -
232Settings version 3 migration (not fully tested, but should work) -
233Added a MINIMUM_PLANNER_SPEED user-defined parameter to planner to let
234a user change this if problems arise for some reason. - Moved all
235user-definable #define parameters into config.h with clear comments on
236what they do and recommendations of how to change them. - Minor
237housekeeping.
238
239
240----------------
241Date: 2011-09-18
242Author: Sonny J
243Subject: Fixed minor bugs in planner. Increased max dwell time. Long slope bug stop-gap solution note.
244
245- Fixed the planner TODO regarding minimum nominal speeds. Re-arranged
246calculations to be both more efficient and guaranteed to be greater
247than zero. - Missed a parenthesis location on the rate_delta
248calculation. Should fix a nearly in-perceptible issue with incorrect
249acceleration ramping in diagonal directions. - Increased maximum dwell
250time from 6.5sec to an 18hour max. A crazy amount more, but that's how
251the math works out. - Converted the internal feedrate values to mm/min
252only, as it was switching between mm/min to mm/sec and back to mm/min.
253Also added a feedrate > 0 check in gcode.c. - Identified the long slope
254at the end of rapid de/ac-celerations noted by stephanix. Problem with
255the numerical integration truncation error between the exact solution
256of estimate_acceleration_distance and how grbl actually performs the
257acceleration ramps discretely. Increasing the
258ACCELERATION_TICKS_PER_SECOND in config.h helps fix this problem.
259Investigating further.
260
261
262----------------
263Date: 2011-09-15
264Author: Sonny J
265Subject: More '%' modulo opertor removals and some housecleaning.
266
267- Serial functions contained quite a few modulo operations that would
268be executed with high frequency when streaming. AVR processors are very
269slow when operating these. In one test on the Arduino forums, it showed
270about a 15x slow down compared to a simple if-then statement. -
271Clarified some variable names and types and comments.
272
273
274----------------
275Date: 2011-09-13
276Author: Sonny J
277Subject: Further planner improvements and misc minor bug fixes. Memory savings and increased buffer size.
278
279- Update grbl version and settings version to automatically reset
280eeprom. FYI, this will reset your grbl settings. - Saved
2813*BLOCK_BUFFER_SIZE doubles in static memory by removing obsolete
282variables: speed_x, speed_y, and speed_z. - Increased buffer size
283conservatively to 18 from 16. (Probably can do 20). - Removed expensive!
284modulo operator from block indexing function. Reduces significant
285computational overhead. - Re-organized some sqrt() calls to be more
286efficient during time critical planning cases, rather than non-time
287critical. - Minor bug fix in planner max junction velocity logic. -
288Simplified arc logic and removed need to multiply for CW or CCW
289direction.
290
291
292----------------
293Date: 2011-09-06
294Author: Sonny J
295Subject: Optimized planner re-write. Significantly faster. Full arc support enabled by rotation matrix approach.
296
297- Significant improvements in the planner. Removed or reordered
298repetitive and expensive calculations by order of importance:
299recalculating unchanged blocks, trig functions [sin(), cos(), tan()],
300sqrt(), divides, and multiplications. Blocks long enough for nominal
301speed to be guaranteed to be reached ignored by planner. Done by
302introducing two uint8_t flags per block. Reduced computational overhead
303by an order of magnitude. - Arc motion generation completely
304re-written and optimized. Now runs with acceleration planner. Removed
305all but one trig function (atan2) from initialization. Streamlined
306computations. Segment target locations generated by vector
307transformation and small angle approximation. Arc path correction
308implemented for accumulated error of approximation and single precision
309calculation of Arduino. Bug fix in message passing.
310
311
312----------------
313Date: 2011-09-04
314Author: Sonny J
315Subject: Minor update for memory savings in ring buffer and fleshed out commenting.
316
317No changes in functionality. Path vectors moved from ring buffer to
318local planner static variables to save 3*(BUFFER_SIZE - 1) doubles in
319memory. Detailed comments. Really need to stop micro-updating. Should be
320the last until a planner optimization (ala Jens Geisler) has been
321completed.
322
323
324----------------
325Date: 2011-09-04
326Author: Sonny J
327Subject: More minor bug fixes in planner.
328
329Reverse planner was over-writing the initial/buffer tail entry speed,
330which reset the forward planner and caused it to lose track of its
331speed. Should now accelerate into short linear segments much nicer now.
332
333
334----------------
335Date: 2011-09-03
336Author: Sonny J
337Subject: Minor bug fixes in planner.
338
339
340----------------
341Date: 2011-09-03
342Author: Sonny J
343Subject: Add G02/03 arc conversion/pre-processor script and example streaming script
344
345Beta pre-processor script used to clean and streamline g-code for
346streaming and converts G02/03 arcs into linear segments. Allows for full
347acceleration support if the pre-processed g-code is then streamed to
348grill, sans G02/03 arcs. Added a simple example streaming script for
349Python users.
350
351
352----------------
353Date: 2011-09-03
354Author: Sonny J
355Subject: Significantly improved junction control and fixed computation bugs in planner
356
357- Junction jerk now re-defined as junction_deviation. The distance from
358the junction to the edge of a circle tangent to both previous and
359current path lines. The circle radii is used to compute the maximum
360junction velocity by centripetal acceleration. More robust and
361simplified way to compute jerk. - Fixed bugs related to entry and exit
362factors. They were computed based on the current nominal speeds but not
363when computing exit factors for neighboring blocks. Removed factors and
364replaced with entry speeds only. Factors now only computed for stepper
365trapezoid rate conversions. - Misc: Added min(), next_block_index,
366prev_block_index functions for clarity.
367
368
369----------------
370Date: 2011-08-15
371Author: Sonny J
372Subject: Moved comment and block delete handling into protocol.c from gcode.c. Fixes bug when comment and block delete are not isolated. Blank lines ignored.
373
374Comments, block delete characters, and blank lines are no longer passed
375to the gcode parser and should free up some memory by ignoring these
376characters. Gcode parser now expects clean gcode only. There was a bug
377if there were block deletes or comments not in the first character (i.e.
378spindle on/off for proofing geode without turning it on, or a NXX
379followed by a comment). This should fix it by bypassing the problem.
380Left a commented line for easily turning on and off block deletes for a
381later feature, if desired.
382
383
384----------------
385Date: 2011-08-15
386Author: Sonny J
387Subject: Revert ea5b8942db2616e93fc0478922010c3bab7c0481^..HEAD
388
389
390----------------
391Date: 2011-08-15
392Author: Sonny J
393Subject: Moved comment and block delete handling into protocol.c from gcode.c. Fixes bug when comment and block delete are not isolated. Blank lines ignored.
394
395Comments, block delete characters, and blank lines are no longer passed
396to the gcode parser and should free up some memory by ignoring these
397characters. Gcode parser now expects clean gcode only. There was a bug
398if there were block deletes or comments not in the first character (i.e.
399spindle on/off for proofing geode without turning it on, or a NXX
400followed by a comment). This should fix it by bypassing the problem.
401Left a commented line for easily turning on and off block deletes for a
402later feature, if desired.
403
404
405----------------
406Date: 2011-08-15
407Author: Sonny J
408Subject: Revert 517a0f659a06182c89cafe27ee371edccad777a4^..HEAD
409
410
411----------------
412Date: 2011-08-15
413Author: Sonny J
414Subject: Revert "Moved comment and block delete handling to be done in protocol.c rather than gcode.c. Prevents these from being held in memory. Also, fixes bug when comments and block delete character are mixed with g-code."
415
416This reverts commit ea5b8942db2616e93fc0478922010c3bab7c0481.
417
418
419----------------
420Date: 2011-08-15
421Author: Sonny J
422Subject: Revert fdc90f1821f1f5edb7756fcddce75b4b4fbf6bbf^..HEAD
423
424
425----------------
426Date: 2011-08-15
427Author: chamnit
428Subject: Removed comment and block delete handling from gcode.c. Parser expects clean gcode.
429
430----------------
431Date: 2011-08-15
432Author: chamnit
433Subject: Moved comment and block delete handling to be done in protocol.c rather than gcode.c. Prevents these from being held in memory. Also, fixes bug when comments and block delete character are mixed with g-code.