664854b9df
- Critical fix for M0 program pause. Due to its recent change, it would cause Grbl to suspend but wouldn’t notify the user of why Grbl was not doing anything. The state would show IDLE and a cycle start would resume it. Grbl now enters a HOLD state to better indicate the state change. - Critical fix for M2 and M30 program end. As with M0, the state previously would show IDLE while suspended. Grbl now does not suspend upon program end and leaves job control to the GUI. Grbl simply reports a `[Pgm End]` as a feedback message and resets certain g-code modes. - M2/30 g-code reseting fix. Previously Grbl would soft-reset after an M2/30, but this was not complaint to the (linuxcnc) g-code standard. It simply resets [G1,G17,G90,G94,G40,G54,M5,M9,M48] and keeps all other modes the same. - M0/M2/M30 check-mode fix. It now does not suspend the machine during check-mode. - Minor bug fix related to commands similar to G90.1, but not G90.1, not reporting an unsupported command. - Homing cycle refactoring. To help reduce the chance of users misunderstanding their limit switch wiring, Grbl only moves a short distance for the locate cycles only. In addition, the homing cycle pulls-off the limit switch by the pull-off distance to re-engage and locate home. This should improve its accuracy. - HOMING_FORCE_ORIGIN now sets the origin to the pull-off location, rather than where the limit switch was triggered. - Updated default junction deviation to 0.01mm. Recent tests showed that this improves Grbl’s cornering behavior a bit. - Added the ShapeOko3 defaults. - Added new feedback message `[Pgm End]` for M2/30 notification. - Limit pin reporting is now a $10 status report option. Requested by OEMs to help simplify support troubleshooting. |
||
---|---|---|
build | ||
doc | ||
grbl | ||
.gitignore | ||
COPYING | ||
Makefile | ||
README.md |
![GitHub Logo](/doc/media/Grbl Logo 250px.png)
Grbl is a no-compromise, high performance, low cost alternative to parallel-port-based motion control for CNC milling. It will run on a vanilla Arduino (Duemillanove/Uno) as long as it sports an Atmega 328.
The controller is written in highly optimized C utilizing every clever feature of the AVR-chips to achieve precise timing and asynchronous operation. It is able to maintain up to 30kHz of stable, jitter free control pulses.
It accepts standards-compliant g-code and has been tested with the output of several CAM tools with no problems. Arcs, circles and helical motion are fully supported, as well as, all other primary g-code commands. Macro functions, variables, and most canned cycles are not supported, but we think GUIs can do a much better job at translating them into straight g-code anyhow.
Grbl includes full acceleration management with look ahead. That means the controller will look up to 18 motions into the future and plan its velocities ahead to deliver smooth acceleration and jerk-free cornering.
-
Licensing: Grbl is free software, released under the GPLv3 license.
-
For more information and help, check out our Wiki pages! If you find that the information is out-dated, please to help us keep it updated by editing it or notifying our community! Thanks!
-
Lead Developer [2011 - Current]: Sungeun(Sonny) K. Jeon, Ph.D. (USA) aka @chamnit
-
Lead Developer [2009 - 2011]: Simen Svale Skogsrud (Norway). aka The Originator/Creator/Pioneer/Father of Grbl.
Official Supporters of the Grbl CNC Project
Master Branch:
- Grbl v0.9i Atmega328p 16mhz 115200baud with generic defaults (2015-03-29)
- Grbl v0.9i Atmega328p 16mhz 115200baud with ShapeOko2 defaults (2015-03-29)
- IMPORTANT INFO WHEN UPGRADING TO GRBL v0.9i:
- Baudrate is now 115200 (Up from 9600).
- Variable spindle is now enabled by default. Z-limit(D12) and spindle enable(D11) have switched to access the hardware PWM on D11. Homing will not work if you do not re-wire your Z-limit switch to D12.
Archives:
- Grbl v0.9g Atmega328p 16mhz 115200baud with generic defaults
- Grbl v0.9g Atmega328p 16mhz 115200baud with ShapeOko2 defaults
- Grbl v0.8c Atmega328p 16mhz 9600baud
- Grbl v0.7d Atmega328p 16mhz 9600baud
- Grbl v0.6b Atmega328p 16mhz 9600baud
- Grbl v0.51 Atmega328p 16mhz 9600baud
- Grbl v0.6b Atmega168 16mhz 9600baud
- Grbl v0.51 Atmega168 16mhz 9600baud
##Update Summary for v0.9i from v0.9h
- IMPORTANT:
- Z-limit(D12) and spindle enable(D11) pins have switched to support variable spindle!
- System tweaks: $14 cycle auto-start has been removed. No more QUEUE state.
- New G-Codes: Additional probing cycle commands G38.3, G38.4, G38.5 now supported. G40 cutter radius compensation cancel. G91.1 arc IJK distance mode incremental.
- CoreXY Support: Grbl now supports CoreXY kinematics on an introductory-level. Most functions have been verified to work, but there may be bugs here or there. Please report any problems you find!
- Safety Door Support: Safety door switches are now supported. Grbl will force a feed hold, shutdown the spindle and coolant, and wait until the door switch has closed and the user has issued a resume. Upon resuming, the spindle and coolant will re-energize after a configurable delay and continue. Useful for OEMs that require this feature.
- Full Limit and Control Pin Configurability: Limits and control pins operation can now be interpreted by Grbl however you'd like, with the internal pull-up resistors enabled or disabled, or reading a high or low as a trigger. This should cover all wiring and NO or NC switch scenarios.
- Additional Compile-Time Feature Options: Limit/control pin state reporting, force power-up alarm state, GUI reporting mode, and more.
##Update Summary for v0.9h from v0.8
-
IMPORTANT: Default serial baudrate is now 115200! (Up from 9600)
-
Super Smooth Stepper Algorithm
-
Stability and Robustness Updates
-
(x4)+ Faster Planner
-
Compile-able via Arduino IDE!
-
G-Code Parser Overhaul
-
Independent Acceleration and Velocity Settings
-
Soft Limits
-
Probing
-
Dynamic Tool Length Offsets
-
Improved Arc Performance
-
CPU Pin Mapping
-
New Grbl SIMULATOR! (by @jgeisler and @ashelly)
-
Configurable Real-time Status Reporting
-
Updated Homing Routine
-
Optional Limit Pin Sharing
-
Optional Variable Spindle Speed Output
-
Additional Compile-Time Feature Options
List of Supported G-Codes in Grbl v0.9i Master:
- Non-Modal Commands: G4, G10L2, G10L20, G28, G30, G28.1, G30.1, G53, G92, G92.1
- Motion Modes: G0, G1, G2, G3, G38.2, G38.3, G38.4, G38.5, G80
- Feed Rate Modes: G93, G94
- Unit Modes: G20, G21
- Distance Modes: G90, G91
- Arc IJK Distance Modes: G91.1
- Plane Select Modes: G17, G18, G19
- Tool Length Offset Modes: G43.1, G49
- Cutter Compensation Modes: G40
- Coordinate System Modes: G54, G55, G56, G57, G58, G59
- Program Flow: M0, M1, M2, M30*
- Coolant Control: M7*, M8, M9
- Spindle Control: M3, M4, M5
- Valid Non-Command Words: F, I, J, K, L, N, P, R, S, T, X, Y, Z
Grbl is an open-source project and fueled by the free-time of our intrepid administrators and altruistic users. If you'd like to donate, all proceeds will be used to help fund supporting hardware and testing equipment. Thank you!