-
Notifications
You must be signed in to change notification settings - Fork 8
Merge upstream #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
wolfmanjm
wants to merge
87
commits into
EliteEng:master
Choose a base branch
from
wolfmanjm:merge-upstream
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- The `x` in `$x=val` would overflow when a value larger than 255 was entered and passed to Grbl. This resulted with unintended parameters being set by the overflow value. To fix, simply check for values larger than 255 and error out.
If variable spindle is defined print S value via $G command.
Alarm if limits engaged on homing start.
and while "no errors" is enabled (G38.3, G38.5)
this allows the PRB report to be valid when in "no errors" mode and the probe fails
- Minor bug fix for variable spindle PWM output. Values smaller than the minimum RPM for the spindle would overflow the PWM value. Thanks Rob! - Created an optional minimum spindle PWM low-mark value as a compile-time option. This is for special circumstances when the PWM has to be at a certain level to be read by the spindle controller. - Refactored the new probing commands (G38.3, G38.4, G38.5) code to work better with the rest of Grbl’s systems. - Refactored mc_probe() and mc_arc() to accept the mode of the command, i.e. clockwise vs counter, toward vs away, etc. This is to make these functions independent of gcode state variables. - Removed the pull off motion in the probing cycle. This is not an official operation and was added for user simplicity, but wrongly did so. So bye bye. - Created a configure probe invert mask function to handle the different probe pin setting and probing cycle modes with a single mask. - Minor bug fix with reporting motion modes via $G. G38.2 wasn’t showing up. It now does, along with the other new probing commands. - Refactored some of the new pin configurations for the future of Grbl. -
- Rudimentary CoreXY kinematics support. Didn’t test, but homing and feed holds should work. See config.h. Please report successes and issues as we find bugs. - G40 (disable cutter comp) is now “supported”. Meaning that Grbl will no longer issue an error when typically sent in g-code program header. - Refactored coolant and spindle state setting into separate functions for future features. - Configuration option for fixing homing behavior when there are two limit switches on the same axis sharing an input pin. - Created a new “grbl.h” that will eventually be used as the main include file for Grbl. Also will help simply uploading through the Arduino IDE - Separated out the alarms execution flags from the realtime (used be called runtime) execution flag variable. Now reports exactly what caused the alarm. Expandable for new alarms later on. - Refactored the homing cycle to support CoreXY. - Applied @EliteEng updates to Mega2560 support. Some pins were reconfigured. - Created a central step to position and vice versa function. Needed for non-traditional cartesian machines. Should make it easier later. - Removed the new CPU map for the Uno. No longer going to used. There will be only one configuration to keep things uniform.
- All pins, which include limits, control command, and probe pins, can now all be configured to trigger as active-low or active-high and whether the pin has its internal pull-up resistor enabled. This should allow for just about all types of NO and NC switch configurations. - The probe pin invert setting hasn’t been added to the Grbl settings, like the others, and will have to wait until v1.0. But for now, it’s available as a compile-time option in config.h. - Fixed a variable spindle bug.
- Planner bug when moving along a diagonal back and forth on the same path. Rare for the fact that most CAM programs don’t program this type of motion, neither does jogging. Fixed in this update. - Added grbl_sim defaults for testing purposes.
- As a setup feature, users can compile-in input pin status reporting. Doesn’t do anything special, just prints the binary for the port. 0’s and 1’s indicate low and high signals on the pins. It’s a bit cryptic right now, but it’s just a start. - Added a max step rate check when writing step/mm and max rate settings. Should help avoid people misdiagnosing problems associated with going over the 30kHz step rate limit. Right now not enabled. Takes up over 100k of flash. Need that room for other things right now.
- Critical bug fix for diagonal motions that continue on the same direction or return in the exact opposite direction. This issue could cause Grbl to crash intermittently due to a numerical round-off error. Grbl versions prior to v0.9g shouldn’t have this issue. - Reorganized all of the includes used by Grbl. Centralized it into a single “grbl.h” include. This will help simplify the compiling and uploading process through the Arduino IDE. - Added an example .INO file for users to simply open and run when compiling and uploading through the IDE. More to come later.
- Re-organized source code files into a ‘grbl’ directory to lessen one step in compiling Grbl through the Arduino IDE. - Added an ‘examples’ directory with an upload .INO sketch to further simplify compiling and uploading Grbl via the Arduino IDE. - Updated the Makefile with regard to the source code no longer being in the root directory. All files generated by compiling is placed in a separate ‘build’ directory to keep things tidy. The makefile should operate in the same way as it did before.
- ‘build’ directory was not being synced by git because it was empty. Added a .gitignore file in the ‘build’ directory to force git to sync it but keep it empty. - Updated the Makefile to not erase the .gitignore.
- Overhauled the state machine and cleaned up its overall operation. This involved creating a new ‘suspend’ state for what all external commands, except real-time commands, are ignored. All hold type states enter this suspend state. - Removed ‘auto cycle start’ setting from Grbl. This was not used by users in its intended way and is somewhat redundant, as GUI manage the cycle start by streaming. It also muddled up how Grbl should interpret how and when to execute a g-code block. Removing it made everything much much simpler. - Fixed a program pause bug when used with other buffer_sync commands. - New safety door feature for OEMs. Immediately forces a feed hold and then de-energizes the machine. Resuming is blocked until the door is closed. When it is, it re-energizes the system and then resumes on the normal toolpath. - Safety door input pin is optional and uses the feed hold pin on A1. Enabled by config.h define. - Spindle and coolant re-energizing upon a safety door resume has a programmable delay time to allow for complete spin up to rpm and turning on the coolant before resuming motion. - Safety door-style feed holds can be used instead of regular feed hold (doesn’t de-energize the machine) with a ‘@‘ character. If the safety door input pin is not enabled, the system can be resumed at any time.
…e recompile when files are removed.
Makes comparison, addition of new ones easier
Header split
Moving defaults to individual files in subdirectory
- Updated new homing cycle to error out when a pull-off motion detects the limit is still active. - Created a limits_get_state() function to centralize it. It reports state as a bit-wise booleans according to axis numbering. - Updated the print uint8 functions. Generalized it to allow both base2 and base10 printouts, while allowing base2 prints with N_AXIS digits for limit state status reports. Doing this saved about 100bytes of flash as well. - Applied CoreXY status reporting bug fix by @phd0. Thanks!
- Moved cpu_map files to a cpu_map directory, like the defaults file organization.
- CoreXY motions were moving to the negative value of the intended target. Now fixed.
Merge edge branch.
Otherwise compilation fails on linux, or other case sensitive systems Signed-off-by: Michel Pollet <buserror@gmail.com>
Rename Grbl to grbl
- Added X-Carve 500mm and 1000mm default files. - Tweaked all default files. Removed obsolete AUTO_START and updated some JUNCTION_DEVIATION defaults after testing showed these needed to be reduced slightly.
- I’m now officially annoyed.
- G61 exact path is the Grbl default path control mode, so it’s now added as a supported g-code.
- New restore setting defaults command. Only wipes ‘$$’ setting in EEPROM and reloads them based on the defaults used when Grbl was compiled. Used with a `$RST` command NOTE: `$RST` is intentionally not listed in the Grbl ‘$’ help message.
- Tweaked the previous EEPROM restore implementation and added new functionality. - `$RST=$` restores the `$$` grbl settings back to firmware defaults, which are set when compiled. - `$RST=#` restores the `$#` parameters in EEPROM. At times it’s useful to clear these and start over, rather than manually writing each entry. -`$RST=*` wipe all of the data in EEPROM that Grbl uses and restores them to defaults. This includes `$$` settings, `$#` parameters, `$N` startup lines, and `$i` build info string. NOTE: This doesn’t write zeros throughout the EEPROM. It only writes where Grbl looks for data. For a complete wipe, please use the Arduino IDE’s EEPROM clear example. - Refactored the restore and wipe functions in settings.c to accommodate the new commands.
- `$RST=#` was not wiping the G30 positions from EEPROM. Minor but now fixed.
- Version bump requested by OEMs to easily determine whether the firmware supports the new EEPROM reset feature. Other than that, no significant changes.
- Control pins may be individually inverted through a CONTROL_INVERT_MASK macro. This mask is define in the cpu_map.h file.
- G38.x was not printing correctly in the $G g-code state reports. Now fixed. - Potential bug regarding volatile variables inside a struct. It has never been a problem in v0.9, but ran into this during v1.0 development. Just to be safe, the fixes are applied here. - Updated pre-built firmwares with these two bug fixes.
Fixed enable pins so three enable pins are activated/deactivated as required by ramps
Conflicts: cpu_map.h grbl/config.h grbl/limits.c
|
Why no limits switch for ramps ? |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Not sure if you are still interested in this port.
However I have merged with the current GRBL master, and added independent enables as required by RAMPS. Still no limit switches though for RAMPS.
I tested this on an Azteeg PRO which is ramps compatible and it seems to work quite well.
Feel free to ignore or use as you wish :) (I know a lot of files changed that was due to the merge where he has moved all the files).
If you prefer I can submit a pull request against your version where I just added the independent enables, and fixed some ramps issues (conflicting pins).
Thanks for doing the bulk of the work required to get it working on RAMPS (or compatibles).