-
Notifications
You must be signed in to change notification settings - Fork 3.1k
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
Update text header in grblUpload.ino #1474
Open
ondabeach
wants to merge
36
commits into
grbl:master
Choose a base branch
from
gnea:edge
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 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
- 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.
- Fixed a bug where it would not compile when USE_LINE_NUMBERS was enabled.
- Parking motion would intermittently complete the queued tool path upon resuming in certain scenarios. Now fixed.
- G28 and G30’s behavior has been updated from the old NIST g-code standard to LinuxCNC’s. Previously when an intermediate motion was programmed, the NIST standard would move all axes to the final G28/30 stored coordinates. LinuxCNC states it only moves the axes specified in the command. For example, suppose G28’s stored position is (x,y,z) = (1,2,3) for simplicity, and we want to do an automated z-axis tool retraction and then park at the x,y location. `G28 G91 Z5` will first move the Z axis 5mm(or inches) up, then move Z to position 3 in machine coordinates. Next, the command `G28 G91 X0 Y0` would skip the intermediate move since distance is zero, but then move only the x and y axes to machine coordinates 1 and 2, respectively. The z-axis wouldn’t move in this case, since it wasn’t specified. This change is intended to make Grbl more LinuxCNC compatible while making commands, like the shown tool retraction, much easier to implement.
- G38.x was not printing correctly in the $G g-code state reports. Now fixed. - When investigating the above issue, it was noticed that G38.x wouldn’t show at all, but instead a G0 would be printed. This was unlike the v0.9j master build. It turned out volatile variables do not like to be defined inside a C struct. These are undefined on how to be handled. Once pulled out, all weird issues went away. - Also changed two ‘sizeof()’ statements in the mc_probe() and probe_state_monitor() functions to be more robust later on. - Updated the commit logs to individual files for each minor release. Forgot to update the generating script to account for this.
- New pin state realtime reporting feature. Instead of `Lim:000` for limit state reports, the new feature shows `Pin:000|0|0000`, or something similar. The `|` delimited fields indicate xyz limits, probe, and control pin states, where 0 is always not triggered, and 1 is triggered. Invert masks ARE accounted for. Each field may be enabled or disabled via the `$10` status report setting. The probe and control pin flags are bits 5 and 6, respectively. - Remove the now deprecated `REPORT_CONTROL_PIN_STATE` option in config.h - The old limit pin reports `Lim:000` may be re-enabled by commenting out `REPORT_ALL_PIN_STATES` in config.h. - Incremented the version letter (v1.0c) to indicate the change in reporting style. - Replaced all bit_true_atomic and bit_false_atomic macros with function calls. This saved a couple hundred bytes of flash.
- Planner was under-estimating maximum speeds through straight junctions in certain cases. The calculations have been updated to be more accurate. - Strange sizeof() bug in the most recent releases. Manifested as an alarm upon a power up even when homing was disabled. Fixed by declaring sizeof() with struct types, rather than variable names, even though they were validated to give the same value. - Spindle speed zero should disable the spindle. Now fixed. - New configuration option for inverting certain limit pins. Handy for mixed NO and NC switch machines. See config.h for details.
- Soft limit errors were stuck in a feed hold without notifying the user why it was in a hold. When resumed, the soft limit error would kick in. Issue should be fixed to behave as intended. To automatically hold and issue a soft limit alarm once the machine has come to a stop.
- Soft limit errors were stuck in a feed hold without notifying the user why it was in a hold. When resumed, the soft limit error would kick in. Issue should be fixed to behave as intended to automatically hold and issue a soft limit alarm once the machine has come to a stop.
- Removed all of the 328p-related code, which seemed to clean up things quite a bit without all those ifdefs everywhere. - Since the 328p was very memory and flash limited, lots of compile-time options were disabled by default. These have been now been enabled by default. As they are considered generally helpful and does not significantly impact how Grbl runs. - For example, status reports can now report back real time feed rate and line number being executed. Variable spindle is standard with a separate spindle enable pin. Grbl will now check if a user setting has exceeded the maximum step frequency and report an error, if so. And finally, M7 flood coolant is enabled. - In addition, all buffers have been significantly increased to take advantage of the additional memory available. The planner buffer can plan up to 36 motions. The serial buffers have been doubled in size (256/128 bytes RX/TX). And the longest line Grbl can accept is 256 bytes, per the g-code standard (Grbl 328p is limited to 80). - Removed the cpu_map folder, since this version is strictly Mega2560.
- Incremented version to v1.0d, but more changes to come before release. - EEPROM strings were linked to the LINE_BUFFER_SIZE, which were increased from 80 to 256. This caused a problem with EEPROM storage and would corrupt any existing data there. Now fixed to preserve the data there by limiting the size read or written to EEPROM to 80 characters. - When EEPROM string length is exceeded, Grbl will respond with a “Line length exceeded” error. - Re-added a couple of compile-time options: realtime line numbers and rate reporting. This is to ensure backward support for GUIs for the time being. These removal options will go away eventually before they become hard-coded in. (They will be toggle-able with the status report mask in settings though.)
- New sleep safety feature. If powered components (spindle/coolant) are enabled and if there is no motion, incoming data, or commands, Grbl will start a short sleep countdown. Upon elapse, Grbl will depower and enter a sleep state. If parking is enabled, sleep will also park the machine. Only a reset will exit sleep and the job will be unrecoverable. This is purely a safety feature to address serial disconnection problems. - Re-organized the cpu-map and default files and put them back into single files. Makes it easier for OEMs to just drop in their configuration files for a custom build. - Introduced a single-file configuration method for OEMs. See config.h for details. Basically just add the cpu_map and default files to the bottom of config.h. - Moved the control pin invert mask to config.h - Refactored some cpu_map defines to be more descriptive of what they belong to. - Added invert coolant pins options to config.h - Added a new realtime status report. Only a proposal at this time, and the old classic report is enabled by default. Comment out the USE_CLASSIC_REALTIME_REPORT define in config.h to use the new report. Please note that the new report is not finalized and is subject to change.
- Typo in protocol.c caused a safety door to lock out the system during an alarm. The correct character should keep that from happening and bring back the original door/alarm behavior.
- Planner model update. Improves performance for machines with different accelerations on each axes. Particularly for 3D carving. - Print float update to print 13 (from 10) characters. Help reduce print errors for unusually long floating point values.
- Grbl would become unresponsive, if a safety door is reset when active and then homed immediately after. A system variable was not properly restored. Now fixed.
- v1.1e - Ported all current changes from the main Grbl 328p repo to the Mega2560 branch. Main differences are increased planner, RX, TX, and line buffers. And an optional sleep timeout feature. - WARNING: Code compiles, but has not been tested.
- Spindle PWM is set with a 16-bit value, rather than 8-bit on a 328p. Updated stepper.c to reflect this change.
- Applied an alarm handling bug fix that would not show the correct alarm code, nor clear the alarm. It would occasionally go into an infinite loop and would usually happen during a homing cycle fail.
- [fix] Spindle enable pin behavior corrected to be independent of the PWM output. There was some crossover behavior. - [fix] Tool numbers are now tracking and reporting correctly. - [fix] G-code parser error when G0 is commanded without a feed rate word while in inverse time mode. - [fix] Config file was missing an option for probing behavior. - [doc] Updated documentation.
Changes based on @jekhor’s work Uses D8 as the spindle pin
- See details in mainstream commits from 1/14/17 to 7/17/17.
Add Ramps 1.4 Board Support. Note: This is highly experimental and your mileage may vary. This will be polished soon.
[fix] RAMPS soft-reset control pin interfered with Z-enable. Shifted all control pins by plus one on the analog pins. RAMPS defines these pins as belonging to the AUX 2 port, which is assumed to be unused.
- See main branch commit log for details.
…ctly because step_port_invert_mask[] (new with the RAMPS modifications) wasn't reset to 0 when it should have been. this made a mess.
Fixes gremlin where changing step and direction inversion masks made a mess
[new] Altered the way default settings are stored and restored. Saved about 300 bytes(!) of flashed size. Should free up enough for certain configurations of CoreXY machines. [fix] When the optional M7 mist coolant IO was enabled, coolant overrides was not disabling correctly. [fix] Coolant override states was not restored correctly after a parking motion in certain situations. It would restore programmed state, rather than current overridden state. [fix] Now allow coolant overrides to operate during jogging motion. [fix] Invert control pin mask typo. [new] Added a new build info feedback mechanism for enabling the safety door input pin.
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.
Hi guys, thanks a million for this great work! One thing I did see is the header text in the grblUpload.ino still says Uno etc instead of mega only. Just a bit confusing for people that work with uno/nano controllers and also a mega ones.
Tks again, Steve.