Commit Graph

119 Commits

Author SHA1 Message Date
Todd Fleming
ee65b9a7e2 Merge tag 'v1.1f.20170131' 2017-03-11 10:09:48 -05:00
Todd Fleming
ed82dd90b6 Merge tag 'v1.1e.20170114' 2017-03-11 09:33:28 -05:00
Sonny Jeon
f51268e855 Additional build info in the $I printout.
- [new] Added total available planner buffer blocks (15 shown, but
there are 16. one is used by the ring buffer and to execute system
motions) and serial RX buffer bytes. This information is useful for
GUIs to setup and optimize their streaming protocols easily.

[doc] Updated the interface document to reflect the change.
2017-01-31 18:46:20 -07:00
Sonny Jeon
beaa40583c Tidying up parking override control implementation
[new] Added a default configuration for the parking override control
upon a reset or power-up. By default, parking is enabled, but this may
be disabled via a config.h option.

[fix] Parking override control should be checking if the command word
is passed, rather than the value.
2017-01-29 11:35:51 -07:00
chamnit
e455764079 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.
2017-01-28 17:13:06 -07:00
Todd Fleming
31a83558ad comment error: PWM1_CH6 secondary is P2.5. 2017-01-18 22:13:10 -05:00
Todd Fleming
b1d83c2892 Clean up dummy regs 2017-01-17 14:46:12 -05:00
Todd Fleming
3ebbfa4dd3 Soft reset on DTR change 2017-01-16 14:20:52 -05:00
Todd Fleming
6b1e180e66 $140, $141, $142 current control 2017-01-15 17:09:59 -05:00
Todd Fleming
2b5d6a9871 Flash memory 2017-01-14 23:54:36 -05:00
Sonny Jeon
67ab9280d9 Tool number bug fix. Updated documentation.
- [fix] Tool numbers were not being tracked and reported correctly. Now
shows tool number values in $G when programmed.

- [fix] Added a max tool number value check to the g-code parser.

- [doc] Added a new error code for invalid tool number. Updated CSV and
interface documents.

- [doc] Added a implementation note for buffer state in status reports.
Don’t rely on this data for streaming.
2017-01-14 13:54:14 -07:00
Todd Fleming
f67c21a431 tuning 2017-01-14 15:12:07 -05:00
Todd Fleming
4e9d5f78b4 spindle pwm 2017-01-12 19:28:38 -05:00
Todd Fleming
6f13d0d18b Tuning 2017-01-11 15:25:19 -05:00
Todd Fleming
9c312eef84 debugging 2017-01-11 11:41:47 -05:00
Todd Fleming
c7a4b77e47 rx buffer size = 1024 2017-01-10 17:03:14 -05:00
Todd Fleming
408d820b9f usb serial 2017-01-09 19:58:14 -05:00
Todd Fleming
a27feeab51 Oops. need part of settings_init(). 2017-01-09 06:38:22 -05:00
Todd Fleming
3ab9e6bd6e Don't error from missing eeprom 2017-01-09 06:26:29 -05:00
Todd Fleming
5eb4fdacdd Fix interrupt enable restore bug 2017-01-09 06:25:52 -05:00
Todd Fleming
5bd05fbe14 stepper bug 2017-01-09 04:06:46 -05:00
Todd Fleming
53ebacb6e4 Set ISR priorities 2017-01-08 20:48:25 -05:00
Todd Fleming
8a28b4d098 Fix stepper cycles calc 2017-01-08 18:46:58 -05:00
Todd Fleming
d4cbac2a5c Port stepper 2017-01-08 16:12:24 -05:00
Todd Fleming
fdf6e31218 delay_us, delay_ms 2017-01-07 23:30:48 -05:00
Todd Fleming
4ec14b6ec6 Current control 2017-01-07 18:31:12 -05:00
Unknown
34a4c93ccc Whoops 2017-01-07 15:55:23 -05:00
Unknown
eabf9d2cfd Made easier to switch uart channels. 2017-01-07 15:51:42 -05:00
Unknown
da6227c27d First cut at serial modification for ARM. Uses a CMSIS driver for now. 2017-01-07 15:47:45 -05:00
Todd Fleming
35aef077c6 motion_control.c: add PARKING_ENABLE condition 2017-01-06 14:46:39 -05:00
Todd Fleming
c00263c5f3 Revert changes to serial.c 2017-01-06 13:32:17 -05:00
Todd Fleming
72dc1c3f9b system.c: preserve interrupt enable 2017-01-05 20:03:54 -05:00
Unknown
c93491fb64 Started serial replacement 2017-01-04 22:07:31 -05:00
Todd Fleming
fb5ba4cfb9 limit pins 2017-01-04 20:48:59 -05:00
Todd Fleming
bbbdb60076 step, dir, enable ports 2017-01-04 19:04:38 -05:00
Todd Fleming
f5a117d0ba Copy DEFAULTS_GENERIC and CPU_MAP_ATMEGA328P 2017-01-04 18:03:07 -05:00
Todd Fleming
c8c76e0e85 Move hacks from smoother/main to grbl/main 2017-01-04 13:50:50 -05:00
Todd Fleming
4ba78b416f Brett's changes 2017-01-04 13:43:06 -05:00
Sonny Jeon
30c0f79afd Spindle enable pin with variable spindle option fix.
- [fix] When USE_SPINDLE_DIR_AS_ENABLE_PIN is enabled in config.h, the
enable pin was not being set when spindle speed is zero. This behavior
should now be fixed.
2017-01-03 10:10:35 -07:00
Todd Fleming
03787d2b28 make globals extern 2017-01-02 22:15:41 -05:00
Todd Fleming
137d36cce5 true and false may already be defined 2017-01-02 22:09:05 -05:00
Sonny Jeon
864d1306b9 Fixed homing fail alarm handling. Re-integrated software debouncing.
- [bug] Fixed a homing fail issue, where the alarm was not being set
right, not cleared correctly. It would report the wrong code and enter
an infinite alarm loop. This was due to how alarm codes were altered a
while back. Now updated and fixed to show the right codes.

- [feature] Re-installed optional software debouncing for hard limit
switches. By request.
2016-12-19 22:18:23 -07:00
Sonny Jeon
d5ed3bdb81 Addressed optional PWM min value issue. Updated docs.
- [fix] Spindle PWM minimum value had some typos. Fixed the macros to
compile correctly. Only effects users that enable SPINDLE_MINIMUM_PWM.
The name changed to SPINDLE_PWM_MIN_VALUE for consistency sake.

- Updated the laser documentation.
2016-12-18 19:17:55 -07:00
Sonny Jeon
91d6de90bd Updated documentation. Cleaned up a bit.
- [doc] Updated the markdown documents for the v1.1 release.

- [doc] Removed references to classic GUI mode.
2016-12-10 23:13:28 -07:00
Sonny Jeon
490d3f1220 Removed classic GUI interface. Fixed typo with line number support.
- [config] Permanently removed classic GUI interface support. This
unintentionally created a problem where some users/GUI devs used this
compatibility mode and did not update to the new interface. So, there
were two interfaces in use, rather than just one like it was intended.
This removal should help everyone by forcing all GUIs to update and
updated GUI not having to support yet another interface.

- Fixed typo with line number support in jog mode.
2016-12-08 23:17:45 -07:00
chamnit
94083e8314 Fixed unintended laser mode pausing. Updated documentation. Min SS OVR lowered to 10%.
- [laser] Tested a working version and pushed the wrong one for the
last! 20161203 was pausing upon every spindle speed change. That’s not
right. Fixed so nearly all motions are passed through and does not stop.

- Minimum spindle speed override lower from 50% to 10%. Lasers could
use the lower speeds.

- Fixed a very minor bug related to G80 error checking. Allowed no
error with non-modal motions with axis words. Not correct and fixed.

- Fixed a compile error when disabling VARIABLE_SPINDLE

- [doc] Updated some obsolete documentation.

- [doc] Started a “Laser Mode” document that summarizes how Grbl’s new
laser mode works.
2016-12-04 23:49:48 -07:00
Sonny Jeon
b753c542c7 v1.1e: New laser features. G-code parser refactoring. CoreXY homing fix.
- Increment to v1.1e due to new laser features.

- After several discussions with some prominent laser people, a few
tweaks to the new laser mode has been installed.

- LASER: M3 behaves in a constant power mode.

- LASER: M4 behaves in a dynamic power mode, where the laser power is
automatically adjusted based on how fast Grbl is moving relative to the
programmed feed rate. This is the same as the  CONSTANT_POWER_PER_RATE
config.h option in the last version. NOTE: When not in motion in M4,
Grbl automatically turns off the laser. Again, it only operates while
moving!

- LASER: Only G1, G2, and G3 motion modes will turn on the laser. So,
this means that G0, G80 motion modes will always keep the laser
disabled. No matter if M3/M4 are active!

- LASER: A spindle stop override is automatically invoked when a laser
is put in a feed hold. This behavior may be disabled by a config.h
option.

- Lots of little tweaks to the g-code parser to help streamline it a
bit. It should no effect how it operates. Generally just added a parser
flag to track and execute certain scenarios a little more clearly.

- Jog motions now allow line numbers to be passed to it and will be
displayed in the status reports.

- Fixed a CoreXY homing bug.

- Fixed an issue when $13 is changed, WCO isn’t sent immediately.

- Altered how spindle PWM is set in the stepper ISR. Updated on a step
segment basis now. May need to change this back if there are any
oddities from doing this.

- Updated some documentation. Clarified why M0 no longer showing up in
$G and why a `1.` floating point values are shown with no decimals,
like so `1`.
2016-12-03 18:02:45 -07:00
Sonny Jeon
998f23b9ce PWM calculation correction.
- The PWM calculation was a little bit off and has been corrected.

- Edited the unused settings strings to be smaller and just show what
the settings are, rather than include units. May include this in the
master build, if it fits.

- The minimum spindle PWM define in config.h needed to be update for
cpu map compatibilty.
2016-11-12 20:54:38 -07:00
Sonny Jeon
1161056bf2 Fixed a g-code parser issue caused by last commit.
- G-code parser refactoring in the last commit wasn’t tested. Found and
fixed issues with G28.1/30.1 and G38.x probe commands. They were not
being accepted due to a borked mantissa check.
2016-11-04 10:50:28 -06:00
Sonny Jeon
6e3fb6bd13 Improved constant laser power per rate mode. Re-factored for flash size. Minor bug fixes.
- NOTE: This commit has largely been untested.

- Constant laser power per rate mode has been improved. Altered its
implementation to be more responsive and accurate.

- Based on LaserWeb dev feedback, only G1, G2, and G3 moves operate
with constant laser power mode. Meaning that G0, G38.x, and $J jogging
motions operate without it and will keep a constant power output. This
was specifically requested as a way to focus the laser by keeping the
laser on when not moving. Operationally, this shouldn’t alter how the
laser mode operates.

- Re-factored parts of the g-code parser and g-code state reports to
save a few hundred bytes of flash. What was done makes the code a bit
more unreadable (bad), but the flash space was in dire need. So, I’m
willing to live with it for now.

- Fixed a problem with $G g-code state reports. Showed `M0` program
pause during a run state. Now fixed to show nothing during a run state.
Also, `M30` program end was shown as `M2`. This was also corrected.

- Improved spindle stop override responsiveness by removing the
enforced spindle restoring delay. It’s not needed for a feature that is
user controlled.

- Fixed a bug with G2/3 arcs in inverse time mode.

- Updated the interface.md document to make it more clear how WPos: or
MPos: can be calculated from WCO:. Some GUI devs have failed to catch
this in the documentation.
2016-11-04 09:15:34 -06:00