Skip to content
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
wants to merge 36 commits into
base: master
Choose a base branch
from
Open

Update text header in grblUpload.ino #1474

wants to merge 36 commits into from

Conversation

ondabeach
Copy link

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.

chamnit and others added 30 commits August 27, 2015 21:37
- 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.
chamnit and others added 6 commits August 2, 2017 09:14
- 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
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants