Commit Graph
100 Commits
Author SHA1 Message Date
Terje Io fed76cf596 Fix for incorrect handling of some flow control statements when nested. Ref. issue #504.
Fixed defaults and added sanity checks for spindle linearization parameters settings.
2024-05-06 12:00:01 +02:00
Terje Io 258be47dcb Fix for random feed hold/cycle start sequence failures. Ref. issue #491. 2024-04-16 10:19:55 +02:00
Terje Io ec209ecba7 Fixed polar kinematics feed rate handling, some tuning. Ref. issue #475.
Allowed plugins to inject commands when controller is in alarm state.
2024-04-04 16:40:07 +02:00
Terje Io c3aace735b Fixed symbol issue with Arduino Due blocking compilation of NGC parameter support. 2024-04-02 23:55:46 +02:00
Terje Io d9ed1bd89c Added missing null spindle handler for ESP32, issue #473.
Fix for unable to set $484 to 0, issue #466.
Added setting $673 for setting coolant on delay after feedhold. Available when safety door handling is not enabled.
Fixed obscure bug carried over from legacy Grbl related to this. Issue #467.
Enabled setting $394 for spindle on delay after feedhold. Available when safety door handling is not enabled.
2024-03-28 14:55:05 +01:00
Terje Io 7cf86877f0 Changed signature of grbl.on_homing complete event to include the cycle flags.
Added definitions for up to four additional digital aux I/O ports.
Added real time report of selected spindle in multi spindle configurations. Reported on changes only.
Removed limits override input invert config, for safety reasons it is always active low.
Added HAL entry points for second RGB channel, renamed first from hal.rgb to hal.rgb0.
Added option to setting $22 to force use of limit switches for homing when homing inputs are available in the driver/board combo.
Improved handling of aux I/O pins when claimed for core functions.
Added flag to $9 for disabling laser mode capability for primary PWM spindle. Allows leaving laser mode enabled when a secondary PWM spindle is available and this is used to control a laser.
Added some generic setting definitions for stepper drivers, currently used by the motors plugin.
2024-03-19 20:32:40 +01:00
Terje Io a912ce47c7 This build has moved the probe input to the ioPorts pool of inputs and will be allocated from it when configured.
The change is major and potentially dangerous, it may damage your probe, so please verify correct operation after installing.

Fix for STM32F4xx issue 161, Ethernet connection unresponsive if USB port not powered.

Enhanced ioPorts interface: New debounce option for input pins that are interrupt capable, currently only possible to enable via plugin code - later to be made available via a $-setting.
Added some wrapper functions for simpler plugin code++

Added simple task scheduler to the core, allows interrupt routines to dispatch jobs to the foreground process, delayed tasks and repeating tasks attached to the 1 ms system timer.
Some drivers and plugins now uses the scheduler for input pin debouncing, regular polling etc. The core uses it for stepper disabling and sleep monitoring.
2024-02-23 22:54:00 +01:00
Terje Io e5d088eda7 Added core support for new MPG mode that claims one serial stream and uses the 0x8B real-time command character for switching mode.
Moved RGB API definitions to separate file and added some utilities for drivers and plugins. Fixed minor bug.
stream_open_instance(), signature change - added optional description string.
2024-02-05 23:39:27 +01:00
Terje Io 2d6bb02a5b Updated readme and changelog. Added code guard to suppress compiler warning. 2024-01-31 14:30:22 +01:00
Terje Io f0ef77435e Enhanced RGB and ioports APIs.
Allowed use of unused (by the core) axis words (ABCUVW) in M-code commands implemented by plugin code.
Added $PINSTATE command, for outputting auxillary pin states, modes and capabilities. Machine readable formatting.
2024-01-24 18:38:08 +01:00
Terje Io 685da469cb Updated build date and a minor insignificant fix. 2024-01-15 14:58:12 +01:00
Terje Io 49b43a5fe1 Some minor fixes and changes. 2023-12-22 13:35:27 +01:00
Terje Io 5bd4835b69 Refactored canned cycles to better match how LinuxCNC actually implements them. Ref. ioSender issue 348.
NOTE: The implementation may still be incorrect - use with care!
2023-12-16 16:11:46 +01:00
Terje Io 2c58f0de09 Spindle handling refactoring for improved management and configuration of multiple spindles.
NOTE: this is a relatively large change and may have introduced bugs and/or unintended side-effects. Please report any issues!

Added setting $519 for binding spindle encoder to given spindle in multi spindle configurations.

Added machine readable spindle enumeration report, $SPINDLESH.

Increased default value for setting $398 (number of planner blocs) from 35 to 100 for faster laser engraving.
NOTE: the $398 setting value will not change on an upgrade!
NOTE: STM32F103 builds for the 128K flash variants does not have enough free RAM and will keep 35 as the default value.

Increased allowed number of decimal places from 3 to 5 for $10x stepper step/mm settings. Ref. ioSender issue 346.

Added setting $650 for filing system options. Ref. issue 397.
Currently the following bits are available (depending on the configuration):
0 - Auto mount SD card on startup (1).
1 - Do not add littlefs files when listing the root directory (2).

Added build option for lathe UVW mode.
When enabled UVW words can be used to command relative moves for XYZ without switching to relative mode with G91.
NOTE: This permanently sets lathe mode and disables the $32 mode setting.

There are signature changes to some spindle, ioports enumeration and VFS filing system mount functions.

Added events to allow plugin code to handle tool table data, possibly stored on a SD card.
2023-12-12 09:51:59 +01:00
Terje Io 04a5edcf83 Extended secondary stepper driver code and improved debug stream handling. 2023-10-05 07:11:10 +02:00
Terje Io 70ffca3c0a Hardened" serial stream registration, now allows empty descriptor.
Now returns no data for alarm and error enums when firmware is compiled for 128K versions of the STM32F1xx MCU.
This frees up some flash space for plugins etc.
2023-09-26 09:54:10 +02:00
Terje Io 742eed9254 Added setting option to $21 Hard limit enable to allow exception for rotary axes. 2023-09-19 20:22:04 +02:00
Terje Io 049f0f13e4 Delta robot kinematics tuning: soft limits checks, extended $DELTA command++. 2023-09-07 18:27:34 +02:00
Terje Io e0fa78cb87 The method for constraining continuous multi-axis jogs (XYZ) (when enabled by `$40=1\) will now use clipping of the motion vector to the work envelope. 2023-09-05 15:42:46 +02:00
Terje Io 5c21425adb Updated readme 2023-09-03 15:13:56 +02:00
Terje Io 9b28c45ecb Fix for issue #349 - active feed rate override caused jog motions to hang on some drivers 2023-08-21 09:18:37 +02:00
Terje Io 244bbb3454 More fixes for issue #332: setting tool table data cleared current coordinate system offset, incomplete handling of G10 L10 and L11.
Added free memory to $I output when available, example: [FREE MEMORY:102K]
Changed reported position for failed probe to target. Parameters #5061 - #5069 returns position in coordinate system used when probing.
2023-08-08 18:42:59 +02:00
Terje Io 909b7f9eed Updated readme 2023-08-07 09:15:43 +02:00
Terje Io 280dd953c3 Fix for ioSender issue 319, improved handling of sycle start input signal had side-effects. 2023-07-29 07:20:36 +02:00
Terje Io 4e1bba5e74 Fixed regression in VFS file system handling causing hardfault when only one mount is present. 2023-07-18 14:47:28 +02:00
Terje Io c2450947ae Skip calling tool change code if current and selected tool number is the same.
Added 5s timeout/abort handling when waiting for index pulses prior to startiong spindle synchronized motion.
Added definitions for M401 (deploy probe) and M402 (stow probe) for plugin use.
Added support for probe protected message and alarm. Requires driver support for interrupt handled probe input.
2023-07-04 15:40:47 +02:00
Terje Io 83d708a872 Added |$C=1 to full realtime report (requested by 0x87) when controller is in a blocking state (after a critical event) but still accepts some $ commands. 2023-06-26 19:07:08 +02:00
Terje Io 0a8c51ebe9 Added initial support for macro based automatic tool changes (ATC).
Currently macros has to be stored on a SD card or in littlefs and expression support has to be enabled.
2023-06-07 19:16:53 +02:00
Terje Io 9e2d7b46b2 Fixed regression related to CSS (Constant Surface Speed for lathes) mode.
Improved stream handling for native USB streams.
2023-06-06 12:45:14 +02:00
Terje Io ce7c3592b4 Added experimental support for program flow control, mainly available for use in G65 macros stored on SD card or in littlefs. 2023-05-29 00:46:05 +02:00
Terje Io fef81e5d3f Updated changelog 2023-05-19 19:33:33 +02:00
Terje Io 44e4dc4ea3 Extended handling of legacy printable real-time commands due to ESP32 RTOS issue.
Internal changes to crossbar definitions, improved stream handling and sleep handling.
2023-05-19 19:17:32 +02:00
Terje Io af2a922915 Added experimental support for G65 and M99, call and return from macro. 2023-05-11 10:58:01 +02:00
Terje Io 750f60ce74 Fixed typos and added grbl.on_gcode_comment event. 2023-05-01 12:01:57 +02:00
Terje Io 2f55555f77 Fixed some typos, incorrect default value for setting $63 - Disable laser during hold flag. Added VFS property. 2023-04-27 10:14:59 +02:00
Terje Io b6e43d6c19 Fix for issue #236, dual axis offsets.
Changes to allow use of M4 for laser capable spindles in laser mode even if direction control is not available.
2023-04-11 20:47:45 +02:00
Terje Io 71aa2a426c Fix for issue #264, stepper motors not disabled when entering sleep mode.
Fix for recent regression that disabled G7/G8 handling in lathe mode.
2023-03-11 07:56:13 +01:00
Terje Io c7a6f049e4 Minor fix for the grbl.on_state_changed event - incorrect state published following stop signal when streaming gcode.
Added core event for real-time report elements beeing forced++
2023-03-06 20:39:12 +01:00
Terje Io 6163f2e30a Fix for Arduino compiler issue with build 20230227. Added core event and removed redundant code. 2023-02-27 23:14:07 +01:00
Terje Io 28711ee512 Enhanced API, reduced planner RAM footprint. Changed rotary fix implementation. 2023-02-27 07:19:39 +01:00
Terje Io 635526b508 Configuration fix for the Web Builder (ABC to UVW mapping). 2023-02-19 19:12:42 +01:00
Terje Io 04ce2c5c8c Large spindle handling refactoring and enhancement++, see the changelog for more. 2023-02-13 22:14:48 +01:00
Terje Io e2ba6db69c Fixed regression in tool change handling related to refactoring of config.h in build 20230125. 2023-01-29 04:30:42 +01:00
Terje Io 4e7f313271 Some internal changes to allow homing feed rate overrides from plugins, reserved setting numbers for per axis homing feedrate settings (not used by the core). 2023-01-28 10:45:14 +01:00
Terje Io dbc170a571 Fixed include file issue causing macro warnings for drivers built with the Arduino platform. 2023-01-26 07:13:28 +01:00
Terje Io fb60b493b5 Added settings, updated settings version to 22. See changelog for details.
Merged defaults.h with config.h, deleted defaults.h and harmonized settings defines.
2023-01-25 21:11:21 +01:00
Terje Io dc2f0a717c Updated settings reports to output correct units and descriptions for settings related to axes configured as rotary.
Internal change to allow flagging settings to have a minimum value or length different from 0 and still allow to them to be 0 or have length 0.
2022-11-16 16:56:51 +01:00
Terje Io 1402e7b368 Added single axis homing commands for U and V, remapping of ABC homing commands to UVW when configured. 2022-11-06 09:51:16 +01:00
Terje Io b0d9e9e78a Fix for issue #209, incorrect handling of homing of more than one auto squared axis in each pass.
Error 55 will now be returned.
2022-10-23 07:27:20 +02:00
Terje Io fbef120e94 Fix for old regression, issue #204.
Now hides spindle PWM related settings if no PWM spindle is available.
2022-10-22 21:15:56 +02:00