v1.1f. Parking override control. Spindle enable pin option.
[ver] v1.1f update due to tweaks to interface from new parking override control. [new] Parking motion override control via new `M56 P0` and `M56 P1` command, which disables and enables the parking motion, respectively. Requires ENABLE_PARKING_OVERRIDE_CONTROL and PARKING_ENABLE enabled in config.h. Primarily for OEMs. [new] `M56` appears in the $G report when enabled. [new] Five new build info identification letters. Some were missing and a couple are new. Updated the CSV and documentation to reflect these new items. [new] Spindle enable pin configuration option to alter its behavior based on how certain lasers work. By default, Grbl treats the enable pin separately and leaves it on when S is 0. The new option turns the enable pin on and off with S>0 and S=0. This only is in effect when a user enables the USE_SPINDLE_DIR_AS_ENABLE_PIN option. [fix] M4 is now allowed to work when USE_SPINDLE_DIR_AS_ENABLE_PIN is enabled. Previously this was blocked and was problematic for laser folks using M4. [fix] Properly declared system variables as extern. Not sure how that went unnoticed or why it worked up until now but it has. [fix] EXTREMELY RARE. When AMASS is intentionally disabled and sent a motion command that is _one step_ in length, Grbl would not actuate the step due to numerical round-off. Applied a fix to prevent the round-off issue. [fix] Added a compile-time check for AMASS settings to make sure that the numerical round-off issue doesn’t effect it. This would only happen if someone set AMASS max levels to zero. It does not effect AMASS with its current defaults. [fix] Wrapped the mc_parking_motion() function in an ifdef for porting purposes. [fix] Fixed an issue when in inverse time mode and G0’s would require a F word. This was not correct. [fix] Added a note in the defaults.h file that MAX_TRAVEL values must be positive. Some users were setting this negative and it was causing issues.
This commit is contained in:
parent
67ab9280d9
commit
e455764079
19 changed files with 259 additions and 102 deletions
|
|
@ -62,11 +62,9 @@ The real-time control commands, `~` cycle start/resume, `!` feed hold, `^X` sof
|
|||
One important note are the override command characters. These are defined in the extended-ASCII character space and are generally not type-able on a keyboard. A GUI must be able to send these 8-bit values to support overrides.
|
||||
|
||||
#### EEPROM Issues
|
||||
EEPROM access on the Arduino AVR CPUs turns off all of the interrupts while the CPU reads and writes to EEPROM. This poses a problem for certain features in Grbl, particularly if a user is streaming and running a g-code program, since it can pause the main step generator interrupt from executing on time. Most of the EEPROM access is restricted by Grbl when it's in certain states, but there are some things that developers need to know.
|
||||
EEPROM access on the Arduino AVR CPUs turns off all of the interrupts while the CPU _writes_ to EEPROM. This poses a problem for certain features in Grbl, particularly if a user is streaming and running a g-code program, since it can pause the main step generator interrupt from executing on time. Most of the EEPROM access is restricted by Grbl when it's in certain states, but there are some things that developers need to know.
|
||||
|
||||
* Settings should not be streamed with the character-counting streaming protocols. Only the simple send-response protocol works. This is because during the EEPROM write, the AVR CPU also shuts-down the serial RX interrupt, which means data can get corrupted or lost.
|
||||
|
||||
* When changing work coordinates or accessing the `G28`/`G30` predefined positions, Grbl has to fetch them from EEPROM. There is a small chance this access can pause the stepper or serial receive interrupt long enough to cause motion issues, but since it only fetches 12 bytes at a time at 2 cycles per fetch, the chances are very small that this will do anything to how Grbl runs. We just suggest keeping an eye on this and report to us any issues you might think are related to this.
|
||||
* Settings should not be streamed with the character-counting streaming protocols. Only the simple send-response protocol works. This is because during the EEPROM write, the AVR CPU also shuts-down the serial RX interrupt, which means data can get corrupted or lost. This is safe with the send-response protocol, because it's not sending data after commanding Grbl to save data.
|
||||
|
||||
For reference:
|
||||
* Grbl's EEPROM write commands: `G10 L2`, `G10 L20`, `G28.1`, `G30.1`, `$x=`, `$I=`, `$Nx=`, `$RST=`
|
||||
|
|
@ -429,6 +427,10 @@ Feedback messages provide non-critical information on what Grbl is doing, what i
|
|||
| **`Z`** | Homing force origin enabled |
|
||||
| **`H`** | Homing single axis enabled |
|
||||
| **`L`** | Two limit switches on axis enabled |
|
||||
| **`D`** | Spindle direction pin used as enable pin |
|
||||
| **`0`** | Spindle enable off when speed is zero enabled |
|
||||
| **`S`** | Software limit pin debouncing enabled |
|
||||
| **`R`** | Parking override control enabled |
|
||||
| **`A`** | Allow feed rate overrides in probe cycles |
|
||||
| **`*`** | Restore all EEPROM disabled |
|
||||
| **`$`** | Restore EEPROM `$` settings disabled |
|
||||
|
|
@ -436,6 +438,7 @@ Feedback messages provide non-critical information on what Grbl is doing, what i
|
|||
| **`I`** | Build info write user string disabled |
|
||||
| **`E`** | Force sync upon EEPROM write disabled |
|
||||
| **`W`** | Force sync upon work coordinate offset change disabled |
|
||||
| **`L`** | Homing initialization auto-lock disabled |
|
||||
|
||||
- `[echo:]` : Indicates an automated line echo from a command just prior to being parsed and executed. May be enabled only by a config.h option. Often used for debugging communication issues. A typical line echo message is shown below. A separate `ok` will eventually appear to confirm the line has been parsed and executed, but may not be immediate as with any line command containing motions.
|
||||
```
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue