Skip to content

Commit b3a53a4

Browse files
committed
v1.0 Beta Release.
- Tons of new stuff in this release, which is fairly stable and well tested. However, much more is coming soon! - Real-time parking motion with safety door. When this compile option is enabled, an opened safety door will cause Grbl to automatically feed hold, retract, de-energize the spindle/coolant, and parks near Z max. After the door is closed and resume is commanded, this reverses and the program continues as if nothing happened. This is also highly configurable. See config.h for details. - New spindle max and min rpm ‘$’ settings! This has been requested often. Grbl will output 5V when commanded to turn on the spindle at its max rpm, and 0.02V with min rpm. The voltage and the rpm range are linear to each other. This should help users tweak their settings to get close to true rpm’s. - If the new max rpm ‘$’ setting is set = 0 or less than min rpm, the spindle speed PWM pin will act like a regular on/off spindle enable pin. On pin D11. - BEWARE: Your old EEPROM settings will be wiped! The new spindle rpm settings require a new settings version, so Grbl will automatically wipe and restore the EEPROM with the new defaults. - Control pin can now be inverted individually with a CONTROL_INVERT_MASK in the cpu_map header file. Not typical for users to need this, but handy to have. - Fixed bug when Grbl receive too many characters in a line and overflows. Previously it would respond with an error per overflow character and another acknowledge upon an EOL character. This broke the streaming protocol. Now fixed to only respond with an error after an EOL character. - Fixed a bug with the safety door during an ALARM mode. You now can’t home or unlock the axes until the safety door has been closed. This is for safety reasons (obviously.) - Tweaked some the Mega2560 cpu_map settings . Increased segment buffer size and fixed the spindle PWM settings to output at a higher PWM frequency. - Generalized the delay function used by G4 delay for use by parking motion. Allows non-blocking status reports and real-time control during re-energizing of the spindle and coolant. - Added spindle rpm max and min defaults to default.h files. - Added a new print float for rpm values.
1 parent 3a68c22 commit b3a53a4

36 files changed

Lines changed: 883 additions & 509 deletions

README.md

Lines changed: 12 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
![GitHub Logo](/doc/media/Grbl Logo 250px.png)
22

33

4+
***
5+
6+
This is the development branch for Grbl v1.0's upcoming release. In general, the new features here are beta, so use with caution. If you'd like to help, please report any bugs or oddities that you find! Thanks!
7+
48
***
59

610
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.
@@ -24,67 +28,21 @@ Grbl includes full acceleration management with look ahead. That means the contr
2428
### Official Supporters of the Grbl CNC Project
2529
[![Carbide3D](http://carbide3d.com/files/logo_240px.png)](http://carbide3d.com) [![Inventables](https://dzevsq2emy08i.cloudfront.net/paperclip/press_image_uploads/62/low_res/inventables-logo.png)](http://inventables.com)
2630

31+
2732
***
2833

29-
_**Master Branch:**_
30-
* [Grbl v0.9j Atmega328p 16mhz 115200baud with generic defaults](http://bit.ly/1I8Ey4S) _(2015-07-17)_
31-
* [Grbl v0.9j Atmega328p 16mhz 115200baud with ShapeOko2 defaults](http://bit.ly/1OjUSia) _(2015-07-17)_
32-
- **IMPORTANT INFO WHEN UPGRADING TO GRBL v0.9 :**
33-
- Baudrate is now **115200** (Up from 9600).
34-
- Homing cycle updated. Located based on switch trigger, rather than release point.
35-
- 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.
36-
37-
_**Archives:**_
38-
* [Grbl v0.9i Atmega328p 16mhz 115200baud with generic defaults](http://bit.ly/1EiviDk)
39-
* [Grbl v0.9i Atmega328p 16mhz 115200baud with ShapeOko2 defaults](http://bit.ly/1NYIfKl)
40-
* [Grbl v0.9g Atmega328p 16mhz 115200baud with generic defaults](http://bit.ly/1m8E1Qa)
41-
* [Grbl v0.9g Atmega328p 16mhz 115200baud with ShapeOko2 defaults](http://bit.ly/1kOAzig)
42-
* [Grbl v0.8c Atmega328p 16mhz 9600baud](http://bit.ly/SSdCJE)
43-
* [Grbl v0.7d Atmega328p 16mhz 9600baud](http://bit.ly/ZhL15G)
44-
* [Grbl v0.6b Atmega328p 16mhz 9600baud](http://bit.ly/VD04A5)
45-
* [Grbl v0.51 Atmega328p 16mhz 9600baud](http://bit.ly/W75BS1)
46-
* [Grbl v0.6b Atmega168 16mhz 9600baud](http://bit.ly/SScWnE)
47-
* [Grbl v0.51 Atmega168 16mhz 9600baud](http://bit.ly/VXyrYu)
34+
##Update Summary for v1.0b
35+
- **IMPORTANT:** Your EEPROM will be wiped and restored with new settings. This is due to the addition of two new spindle speed '$' settings.
4836

37+
- New safety door parking motion as a compile-option. Grbl will retract, disable the spindle/coolant, and park near Z max. When resumed, it will perform these task in reverse order and continue the program. Highly configurable. See config.h for details.
4938

50-
***
39+
- New '$' Grbl settings for max and min spindle rpm. Allows for tweaking the PWM output to more closely match true spindle rpm. When max rpm is set to zero or less than min rpm, the PWM pin D11 will act like a simple enable on/off output.
40+
41+
- A few bug fixes and lots of refactoring to make the code more efficient and flexible.
5142

52-
##Update Summary for v0.9j
53-
- **Restore EEPROM feature:** A new set of restore EEPROM features to help OEMs and users reset their Grbl installation to the build defaults. See Configuring Grbl Wiki for details.
54-
55-
##Update Summary for v0.9i
56-
- **IMPORTANT:**
57-
- **Homing cycle updated. Locates based on trigger point, rather than release point.**
58-
- **System tweaks: $14 cycle auto-start has been removed. No more QUEUE state.**
59-
- **New G-Codes**
60-
- **CoreXY Support**
61-
- **Safety Door Support**
62-
- **Full Limit and Control Pin Configurability**
63-
- **Additional Compile-Time Feature Options**
64-
65-
##Update Summary for v0.9h from v0.8
66-
- **IMPORTANT:**
67-
- **Default serial baudrate is now 115200! (Up from 9600)**
68-
- **Z-limit(D12) and spindle enable(D11) pins have switched to support variable spindle!**
69-
- **Super Smooth Stepper Algorithm**
70-
- **Stability and Robustness Updates**
71-
- **(x4)+ Faster Planner**
72-
- **Compile-able via Arduino IDE!**
73-
- **G-Code Parser Overhaul**
74-
- **Independent Acceleration and Velocity Settings**
75-
- **Soft Limits**
76-
- **Probing**
77-
- **Dynamic Tool Length Offsets**
78-
- **Improved Arc Performance**
79-
- **CPU Pin Mapping**
80-
- **New Grbl SIMULATOR! (by @jgeisler and @ashelly)**
81-
- **Configurable Real-time Status Reporting**
82-
- **Updated Homing Routine**
83-
- **Optional Limit Pin Sharing**
84-
- **Optional Variable Spindle Speed Output**
85-
- **Additional Compile-Time Feature Options**
8643

8744
-
45+
8846
```
8947
List of Supported G-Codes in Grbl v0.9 Master:
9048
- Non-Modal Commands: G4, G10L2, G10L20, G28, G30, G28.1, G30.1, G53, G92, G92.1

grbl/config.h

Lines changed: 49 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@
102102
#define N_DECIMAL_RATEVALUE_INCH 1 // Rate or velocity value in in/min
103103
#define N_DECIMAL_RATEVALUE_MM 0 // Rate or velocity value in mm/min
104104
#define N_DECIMAL_SETTINGVALUE 3 // Decimals for floating point setting values
105+
#define N_DECIMAL_RPMVALUE 0 // RPM value in rotations per min.
105106

106107
// If your machine has two limits switches wired in parallel to one axis, you will need to enable
107108
// this feature. Since the two switches are sharing a single pin, there is no way for Grbl to tell
@@ -138,9 +139,8 @@
138139

139140
// After the safety door switch has been toggled and restored, this setting sets the power-up delay
140141
// between restoring the spindle and coolant and resuming the cycle.
141-
// NOTE: Delay value is defined in milliseconds from zero to 65,535.
142-
#define SAFETY_DOOR_SPINDLE_DELAY 4000
143-
#define SAFETY_DOOR_COOLANT_DELAY 1000
142+
#define SAFETY_DOOR_SPINDLE_DELAY 4.0 // Float (seconds)
143+
#define SAFETY_DOOR_COOLANT_DELAY 1.0 // Float (seconds)
144144

145145
// Enable CoreXY kinematics. Use ONLY with CoreXY machines.
146146
// IMPORTANT: If homing is enabled, you must reconfigure the homing cycle #defines above to
@@ -238,19 +238,14 @@
238238
// The hardware PWM output on pin D11 is required for variable spindle output voltages.
239239
#define VARIABLE_SPINDLE // Default enabled. Comment to disable.
240240

241-
// Used by the variable spindle output only. These parameters set the maximum and minimum spindle speed
242-
// "S" g-code values to correspond to the maximum and minimum pin voltages. There are 256 discrete and
243-
// equally divided voltage bins between the maximum and minimum spindle speeds. So for a 5V pin, 1000
244-
// max rpm, and 250 min rpm, the spindle output voltage would be set for the following "S" commands:
245-
// "S1000" @ 5V, "S250" @ 0.02V, and "S625" @ 2.5V (mid-range). The pin outputs 0V when disabled.
246-
#define SPINDLE_MAX_RPM 1000.0 // Max spindle RPM. This value is equal to 100% duty cycle on the PWM.
247-
#define SPINDLE_MIN_RPM 0.0 // Min spindle RPM. This value is equal to (1/256) duty cycle on the PWM.
248241

249242
// Used by variable spindle output only. This forces the PWM output to a minimum duty cycle when enabled.
250-
// When disabled, the PWM pin will still read 0V. Most users will not need this option, but it may be
251-
// useful in certain scenarios. This setting does not update the minimum spindle RPM calculations. Any
252-
// spindle RPM output lower than this value will be set to this value.
253-
// #define MINIMUM_SPINDLE_PWM 5 // Default disabled. Uncomment to enable. Integer (0-255)
243+
// The PWM pin will still read 0V when the spindle is disabled. Most users will not need this option, but
244+
// it may be useful in certain scenarios. This minimum PWM settings coincides with the spindle rpm minimum
245+
// setting, like rpm max to max PWM. So the variable spindle pin will not output the voltage range between
246+
// 0V for disabled and the voltage set by the minimum PWM for minimum rpm.
247+
// NOTE: Compute duty cycle at the minimum PWM by this equation: (% duty cycle)=(SPINDLE_MINIMUM_PWM/256)*100
248+
// #define SPINDLE_MINIMUM_PWM 5 // Default disabled. Uncomment to enable. Integer (0-255)
254249

255250
// By default on a 328p(Uno), Grbl combines the variable spindle PWM and the enable into one pin to help
256251
// preserve I/O pins. For certain setups, these may need to be separate pins. This configure option uses
@@ -383,6 +378,40 @@
383378
// NOTE: This option has no effect if SOFTWARE_DEBOUNCE is enabled.
384379
// #define HARD_LIMIT_FORCE_STATE_CHECK // Default disabled. Uncomment to enable.
385380

381+
// Adjusts homing cycle search and locate scalars. These are the multipliers used by Grbl's
382+
// homing cycle to ensure the limit switches are engaged and cleared through each phase of
383+
// the cycle. The search phase uses the axes max-travel setting times the SEARCH_SCALAR to
384+
// determine distance to look for the limit switch. Once found, the locate phase begins and
385+
// uses the homing pull-off distance setting times the LOCATE_SCALAR to pull-off and re-engage
386+
// the limit switch.
387+
// NOTE: Both of these values must be greater than 1.0 to ensure proper function.
388+
// #define HOMING_AXIS_SEARCH_SCALAR 1.5 // Uncomment to override defaults in limits.c.
389+
// #define HOMING_AXIS_LOCATE_SCALAR 10.0 // Uncomment to override defaults in limits.c.
390+
391+
392+
// Enables and configures parking motion methods upon a safety door state. Primarily for OEMs
393+
// that desire this feature for their integrated machines. At the moment, Grbl assumes that
394+
// the parking motion only involves one axis, although the parking implementation was written
395+
// to be easily refactored for any number of motions on different axes by altering the parking
396+
// source code. At this time, Grbl only supports parking one axis (typically the Z-axis) that
397+
// moves in the positive direction upon retracting and negative direction upon restoring position.
398+
// The motion executes with a slow pull-out retraction motion, power-down, and a fast park.
399+
// Restoring to the resume position follows these set motions in reverse: fast restore to
400+
// pull-out position, power-up with a time-out, and plunge back to the original position at the
401+
// slower pull-out rate.
402+
// NOTE: Still a work-in-progress. Machine coordinates must be in all negative space and
403+
// does not work with HOMING_FORCE_SET_ORIGIN enabled. Parking motion also moves only in
404+
// positive direction.
405+
// #define PARKING_ENABLE // Default disabled. Uncomment to enable
406+
407+
// Configure options for the parking motion, if enabled.
408+
#define PARKING_AXIS Z_AXIS // Define which axis that performs the parking motion
409+
#define PARKING_TARGET -5.0 // Parking axis target. In mm, as machine coordinate [-max_travel,0].
410+
#define PARKING_RATE -1.0 // Parking fast rate after pull-out. In mm/min or (-1.0) for seek rate.
411+
#define PARKING_PULLOUT_RATE 250.0 // Pull-out/plunge slow feed rate in mm/min.
412+
#define PARKING_PULLOUT_INCREMENT 5.0 // Spindle pull-out and plunge distance in mm. Incremental distance.
413+
// Must be positive value or equal to zero.
414+
386415

387416
// ---------------------------------------------------------------------------------------
388417
// COMPILE-TIME ERROR CHECKING OF DEFINE VALUES:
@@ -399,6 +428,12 @@
399428
#error "USE_SPINDLE_DIR_AS_ENABLE_PIN may only be used with a 328p processor"
400429
#endif
401430

431+
#if defined(PARKING_ENABLE)
432+
#if defined(HOMING_FORCE_SET_ORIGIN)
433+
#error "HOMING_FORCE_SET_ORIGIN is not supported with PARKING_ENABLE at this time."
434+
#endif
435+
#endif
436+
402437
// ---------------------------------------------------------------------------------------
403438

404439

grbl/coolant_control.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ void coolant_stop()
4242

4343
void coolant_set_state(uint8_t mode)
4444
{
45+
if (sys.abort) { return; } // Block during abort.
46+
4547
if (mode == COOLANT_FLOOD_ENABLE) {
4648
COOLANT_FLOOD_PORT |= (1 << COOLANT_FLOOD_BIT);
4749

grbl/cpu_map/cpu_map_atmega2560.h

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,11 @@
3333
#define SERIAL_UDRE USART0_UDRE_vect
3434

3535
// Increase Buffers to make use of extra SRAM
36-
//#define RX_BUFFER_SIZE 256
37-
//#define TX_BUFFER_SIZE 128
38-
//#define BLOCK_BUFFER_SIZE 36
39-
//#define LINE_BUFFER_SIZE 100
36+
//#define RX_BUFFER_SIZE 256
37+
//#define TX_BUFFER_SIZE 128
38+
//#define BLOCK_BUFFER_SIZE 36
39+
//#define LINE_BUFFER_SIZE 100
40+
//#define SEGMENT_BUFFER_SIZE 10
4041

4142
// Define step pulse output pins. NOTE: All step bit pins must be on the same port.
4243
#define STEP_DDR DDRA
@@ -107,8 +108,8 @@
107108
#define CONTROL_INT PCIE2 // Pin change interrupt enable pin
108109
#define CONTROL_INT_vect PCINT2_vect
109110
#define CONTROL_PCMSK PCMSK2 // Pin change interrupt register
110-
#define CONTROL_MASK ((1<<RESET_BIT)|(1<<FEED_HOLD_BIT)|(1<<CYCLE_START_BIT)|(1<<SAFETY_DOOR_BIT))
111-
#define CONTROL_INVERT_MASK CONTROL_MASK // May be re-defined to only invert certain control pins.
111+
#define CONTROL_MASK ((1<<RESET_BIT)|(1<<FEED_HOLD_BIT)|(1<<CYCLE_START_BIT)|(1<<SAFETY_DOOR_BIT))
112+
#define CONTROL_INVERT_MASK CONTROL_MASK // May be re-defined to only invert certain control pins.
112113

113114
// Define probe switch input pin.
114115
#define PROBE_DDR DDRK
@@ -121,18 +122,19 @@
121122
#ifdef VARIABLE_SPINDLE
122123
// Advanced Configuration Below You should not need to touch these variables
123124
// Set Timer up to use TIMER4B which is attached to Digital Pin 7
124-
#define PWM_MAX_VALUE 65535.0
125+
#define PWM_MAX_VALUE 1024.0 // Translates to about 1.9 kHz PWM frequency at 1/8 prescaler
125126
#define TCCRA_REGISTER TCCR4A
126127
#define TCCRB_REGISTER TCCR4B
127-
#define OCR_REGISTER OCR4B
128-
129-
#define COMB_BIT COM4B1
130-
#define WAVE0_REGISTER WGM40
131-
#define WAVE1_REGISTER WGM41
132-
#define WAVE2_REGISTER WGM42
133-
#define WAVE3_REGISTER WGM43
128+
#define OCR_REGISTER OCR4B
129+
#define COMB_BIT COM4B1
134130

131+
// 1/8 Prescaler, 16-bit Fast PWM mode
132+
#define TCCRA_INIT_MASK ((1<<WGM40) | (1<<WGM41))
133+
#define TCCRB_INIT_MASK ((1<<WGM42) | (1<<WGM43) | (1<<CS41))
134+
#define OCRA_REGISTER OCR4A // 16-bit Fast PWM mode requires top reset value stored here.
135+
#define OCRA_TOP_VALUE 0x0400 // PWM counter reset value. Should be the same as PWM_MAX_VALUE in hex.
136+
135137
#define SPINDLE_PWM_DDR DDRH
136-
#define SPINDLE_PWM_PORT PORTH
137-
#define SPINDLE_PWM_BIT 4 // MEGA2560 Digital Pin 97
138+
#define SPINDLE_PWM_PORT PORTH
139+
#define SPINDLE_PWM_BIT 4 // MEGA2560 Digital Pin 7
138140
#endif // End of VARIABLE_SPINDLE

grbl/cpu_map/cpu_map_atmega328p.h

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -116,8 +116,8 @@
116116
#define CONTROL_INT PCIE1 // Pin change interrupt enable pin
117117
#define CONTROL_INT_vect PCINT1_vect
118118
#define CONTROL_PCMSK PCMSK1 // Pin change interrupt register
119-
#define CONTROL_MASK ((1<<RESET_BIT)|(1<<FEED_HOLD_BIT)|(1<<CYCLE_START_BIT)|(1<<SAFETY_DOOR_BIT))
120-
#define CONTROL_INVERT_MASK CONTROL_MASK // May be re-defined to only invert certain control pins.
119+
#define CONTROL_MASK ((1<<RESET_BIT)|(1<<FEED_HOLD_BIT)|(1<<CYCLE_START_BIT)|(1<<SAFETY_DOOR_BIT))
120+
#define CONTROL_INVERT_MASK CONTROL_MASK // May be re-defined to only invert certain control pins.
121121

122122
// Define probe switch input pin.
123123
#define PROBE_DDR DDRC
@@ -129,16 +129,15 @@
129129
// Start of PWM & Stepper Enabled Spindle
130130
#ifdef VARIABLE_SPINDLE
131131
// Advanced Configuration Below You should not need to touch these variables
132-
#define PWM_MAX_VALUE 255.0
133-
#define TCCRA_REGISTER TCCR2A
134-
#define TCCRB_REGISTER TCCR2B
135-
#define OCR_REGISTER OCR2A
132+
#define PWM_MAX_VALUE 255.0 // Don't change. 328p fast PWM mode fixes top value as 255.
133+
#define TCCRA_REGISTER TCCR2A
134+
#define TCCRB_REGISTER TCCR2B
135+
#define OCR_REGISTER OCR2A
136+
#define COMB_BIT COM2A1
136137

137-
#define COMB_BIT COM2A1
138-
#define WAVE0_REGISTER WGM20
139-
#define WAVE1_REGISTER WGM21
140-
#define WAVE2_REGISTER WGM22
141-
#define WAVE3_REGISTER WGM23
138+
// 1/8 Prescaler, 8-bit Fast PWM mode. Translates to about 7.8kHz PWM frequency.
139+
#define TCCRA_INIT_MASK ((1<<WGM20) | (1<<WGM21))
140+
#define TCCRB_INIT_MASK (1<<CS21)
142141

143142
// NOTE: On the 328p, these must be the same as the SPINDLE_ENABLE settings.
144143
#define SPINDLE_PWM_DDR DDRB

grbl/defaults/defaults_generic.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@
4040
#define DEFAULT_X_MAX_TRAVEL 200.0 // mm
4141
#define DEFAULT_Y_MAX_TRAVEL 200.0 // mm
4242
#define DEFAULT_Z_MAX_TRAVEL 200.0 // mm
43+
#define DEFAULT_SPINDLE_RPM_MAX 1000.0 // rpm
44+
#define DEFAULT_SPINDLE_RPM_MIN 0.0 // rpm
4345
#define DEFAULT_STEP_PULSE_MICROSECONDS 10
4446
#define DEFAULT_STEPPING_INVERT_MASK 0
4547
#define DEFAULT_DIRECTION_INVERT_MASK 0

grbl/defaults/defaults_oxcnc.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@
4141
#define DEFAULT_X_MAX_TRAVEL 500.0 // mm
4242
#define DEFAULT_Y_MAX_TRAVEL 750.0 // mm
4343
#define DEFAULT_Z_MAX_TRAVEL 80.0 // mm
44+
#define DEFAULT_SPINDLE_RPM_MAX 1000.0 // rpm
45+
#define DEFAULT_SPINDLE_RPM_MIN 0.0 // rpm
4446
#define DEFAULT_STEP_PULSE_MICROSECONDS 10
4547
#define DEFAULT_STEPPING_INVERT_MASK 0
4648
#define DEFAULT_DIRECTION_INVERT_MASK 0

grbl/defaults/defaults_shapeoko.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@
4848
#define DEFAULT_X_MAX_TRAVEL 200.0 // mm
4949
#define DEFAULT_Y_MAX_TRAVEL 200.0 // mm
5050
#define DEFAULT_Z_MAX_TRAVEL 200.0 // mm
51+
#define DEFAULT_SPINDLE_RPM_MAX 10000.0 // rpm
52+
#define DEFAULT_SPINDLE_RPM_MIN 0.0 // rpm
5153
#define DEFAULT_STEP_PULSE_MICROSECONDS 10
5254
#define DEFAULT_STEPPING_INVERT_MASK 0
5355
#define DEFAULT_DIRECTION_INVERT_MASK ((1<<Y_AXIS)|(1<<Z_AXIS))

grbl/defaults/defaults_shapeoko2.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@
4747
#define DEFAULT_X_MAX_TRAVEL 290.0 // mm
4848
#define DEFAULT_Y_MAX_TRAVEL 290.0 // mm
4949
#define DEFAULT_Z_MAX_TRAVEL 100.0 // mm
50+
#define DEFAULT_SPINDLE_RPM_MAX 10000.0 // rpm
51+
#define DEFAULT_SPINDLE_RPM_MIN 0.0 // rpm
5052
#define DEFAULT_STEP_PULSE_MICROSECONDS 10
5153
#define DEFAULT_STEPPING_INVERT_MASK 0
5254
#define DEFAULT_DIRECTION_INVERT_MASK ((1<<X_AXIS)|(1<<Z_AXIS))

grbl/defaults/defaults_shapeoko3.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@
4646
#define DEFAULT_X_MAX_TRAVEL 425.0 // mm
4747
#define DEFAULT_Y_MAX_TRAVEL 465.0 // mm
4848
#define DEFAULT_Z_MAX_TRAVEL 80.0 // mm
49+
#define DEFAULT_SPINDLE_RPM_MAX 10000.0 // rpm
50+
#define DEFAULT_SPINDLE_RPM_MIN 0.0 // rpm
4951
#define DEFAULT_STEP_PULSE_MICROSECONDS 10
5052
#define DEFAULT_STEPPING_INVERT_MASK 0
5153
#define DEFAULT_DIRECTION_INVERT_MASK ((1<<X_AXIS)|(1<<Z_AXIS))

0 commit comments

Comments
 (0)