mirror of
https://github.com/grblHAL/core.git
synced 2026-02-06 00:52:35 +08:00
See the changelog for details.
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
## grblHAL ##
|
||||
|
||||
__New:__ The core now has support for up to 8 axes, and for 4-6 axes configurations ABC axis letters can be remapped to UVW.
|
||||
|
||||
grblHAL has [many extensions](https://github.com/grblHAL/core/wiki) that may cause issues with some senders. As a workaround for these a [compile time option](https://github.com/grblHAL/core/wiki/Changes-from-grbl-1.1#workaround) has been added that disables extensions selectively.
|
||||
|
||||
__IMPORTANT!__ grblHAL defaults to normally closed \(NC\) switches for inputs, if none are connected when testing it is likely that the controller will start in alarm mode.
|
||||
@@ -73,9 +75,9 @@ List of Supported G-Codes:
|
||||
- Tool Change: M6* (Two modes possible: manual** - supports jogging, ATC), M61
|
||||
- Switches: M48, M49, M50, M51, M53
|
||||
- Input/uutput control***: M62, M63, M64, M65, M66, M67, M68
|
||||
- Valid Non-Command Words: A*, B*, C*, F, H*, I, J, K, L, N, P, Q*, R, S, T, X, Y, Z
|
||||
- Valid Non-Command Words: A*, B*, C*, D, E*, F, H*, I, J, K, L, N, P, Q*, R, S, T, U*, V*, W*, X, Y, Z
|
||||
|
||||
* driver/configuration dependent.
|
||||
* driver/configuration dependent. W axis only available when ABC axes are remapped to UVW.
|
||||
** requires compatible GCode sender due to protocol extensions, new state and RT command.
|
||||
*** number of inputs and outputs supported dependent on driver implementation.
|
||||
**** supports multi turn arcs from build 20220718.
|
||||
@@ -84,4 +86,4 @@ List of Supported G-Codes:
|
||||
Some [plugins](https://github.com/grblHAL/plugins) implements additional M-codes.
|
||||
|
||||
---
|
||||
2022-09-22
|
||||
2022-09-25
|
||||
|
||||
23
changelog.md
23
changelog.md
@@ -1,5 +1,27 @@
|
||||
## grblHAL changelog
|
||||
|
||||
Build 20220925:
|
||||
|
||||
Core:
|
||||
|
||||
* Added `[AXS:<number of axes>:<axisletters>]` line to `$I` report response, replaces the string `ABC2UVW` from the `NEWOPT` element in the `$I` response.
|
||||
|
||||
* Fixed `|Pn:` real time report element pin state conflict: `F` is now used for motor fault and `M` for motor warning, `U`, `V` and `W` for limit switch status.
|
||||
|
||||
Further details can be found in the [wiki](https://github.com/grblHAL/core/wiki/Report-extensions).
|
||||
|
||||
Plugins:
|
||||
|
||||
* Laser: Added experimental support for LaserBurn clusters, for faster engraving.
|
||||
|
||||
* SDCard: Minor tweak to enable plugins to modify the file stream without losing real time report extensions.
|
||||
|
||||
Drivers:
|
||||
|
||||
* ESP32: added directory for embedded read-only files and moved related files there.
|
||||
|
||||
---
|
||||
|
||||
Build 20220922:
|
||||
|
||||
Core:
|
||||
@@ -41,7 +63,6 @@ __NOTE:__ All setting values will be reset when this option is changed, backup a
|
||||
__NOTE:__ In a later version this option will be removed and dynamic allocation will become standard.
|
||||
|
||||
* Added experimental [configuration option](https://github.com/grblHAL/core/blob/master/config.h) `AXIS_REMAP_ABC2UVW` for remapping ABC axis letters to UVW.
|
||||
When enabled the string `ABC2UVW` will be added to the `NEWOPT` element in the `$I` response, this can be used by senders to set up the UI etc.
|
||||
|
||||
Drivers:
|
||||
|
||||
|
||||
@@ -72,6 +72,7 @@ typedef void (*on_program_completed_ptr)(program_flow_t program_flow, bool check
|
||||
typedef void (*on_execute_realtime_ptr)(sys_state_t state);
|
||||
typedef void (*on_unknown_accessory_override_ptr)(uint8_t cmd);
|
||||
typedef bool (*on_unknown_realtime_cmd_ptr)(char c);
|
||||
typedef void (*on_report_handlers_init_ptr)(void);
|
||||
typedef void (*on_report_options_ptr)(bool newopt);
|
||||
typedef void (*on_report_command_help_ptr)(void);
|
||||
typedef void (*on_global_settings_restore_ptr)(void);
|
||||
@@ -97,6 +98,7 @@ typedef struct {
|
||||
report_t report;
|
||||
// grbl core events - may be subscribed to by drivers or by the core.
|
||||
on_state_change_ptr on_state_change;
|
||||
on_report_handlers_init_ptr on_report_handlers_init;
|
||||
on_program_completed_ptr on_program_completed;
|
||||
on_execute_realtime_ptr on_execute_realtime;
|
||||
on_execute_realtime_ptr on_execute_delay;
|
||||
|
||||
2
grbl.h
2
grbl.h
@@ -34,7 +34,7 @@
|
||||
#else
|
||||
#define GRBL_VERSION "1.1f"
|
||||
#endif
|
||||
#define GRBL_BUILD 20220922
|
||||
#define GRBL_BUILD 20220925
|
||||
|
||||
// The following symbols are set here if not already set by the compiler or in config.h
|
||||
// Do NOT change here!
|
||||
|
||||
@@ -70,6 +70,11 @@
|
||||
openpnp_init();
|
||||
#endif
|
||||
|
||||
#if LB_CLUSTERS_ENABLE
|
||||
extern void lb_clusters_init (void);
|
||||
lb_clusters_init();
|
||||
#endif
|
||||
|
||||
#if WEBUI_ENABLE
|
||||
extern void webui_init (void);
|
||||
webui_init();
|
||||
|
||||
24
report.c
24
report.c
@@ -228,9 +228,9 @@ inline static char *control_signals_tostring (char *buf, control_signals_t signa
|
||||
if (hal.signals_cap.stop_disable ? signals.stop_disable : sys.flags.optional_stop_disable)
|
||||
*buf++ = 'T';
|
||||
if (signals.motor_warning)
|
||||
*buf++ = 'W';
|
||||
if (signals.motor_fault)
|
||||
*buf++ = 'M';
|
||||
if (signals.motor_fault)
|
||||
*buf++ = 'F';
|
||||
|
||||
*buf = '\0';
|
||||
|
||||
@@ -247,6 +247,9 @@ void report_init (void)
|
||||
void report_init_fns (void)
|
||||
{
|
||||
memcpy(&grbl.report, &report_fns, sizeof(report_t));
|
||||
|
||||
if(grbl.on_report_handlers_init)
|
||||
grbl.on_report_handlers_init();
|
||||
}
|
||||
|
||||
// Handles the primary confirmation protocol response for streaming interfaces and human-feedback.
|
||||
@@ -933,8 +936,21 @@ void report_build_info (char *line, bool extended)
|
||||
|
||||
if(extended) {
|
||||
|
||||
uint_fast8_t idx;
|
||||
nvs_io_t *nvs = nvs_buffer_get_physical();
|
||||
|
||||
strcat(strcpy(buf, "[AXS:"), uitoa(N_AXIS));
|
||||
|
||||
append = &buf[6];
|
||||
*append++ = ':';
|
||||
|
||||
for(idx = 0; idx < N_AXIS; idx++)
|
||||
*append++ = *axis_letter[idx];
|
||||
|
||||
*append = '\0';
|
||||
|
||||
hal.stream.write(strcat(buf, "]" ASCII_EOL));
|
||||
|
||||
strcpy(buf, "[NEWOPT:ENUMS,RT");
|
||||
strcat(buf, settings.flags.legacy_rt_commands ? "+," : "-,");
|
||||
|
||||
@@ -989,10 +1005,6 @@ void report_build_info (char *line, bool extended)
|
||||
if(hal.rtc.get_datetime)
|
||||
strcat(buf, "RTC,");
|
||||
|
||||
#ifdef AXIS_REMAP_ABC2UVW
|
||||
strcat(buf, "ABC2UVW,");
|
||||
#endif
|
||||
|
||||
#ifdef PID_LOG
|
||||
strcat(buf, "PID,");
|
||||
#endif
|
||||
|
||||
@@ -555,7 +555,7 @@ PROGMEM static const setting_detail_t setting_detail[] = {
|
||||
{ Settings_Axis_Rotational, Group_Stepper, "Rotational axes", NULL, Format_Bitfield, "U-Axis", NULL, NULL, Setting_IsExtendedFn, set_rotational_axes, get_int, NULL },
|
||||
#elif N_AXIS == 5
|
||||
{ Settings_Axis_Rotational, Group_Stepper, "Rotational axes", NULL, Format_Bitfield, "U-Axis,V-Axis", NULL, NULL, Setting_IsExtendedFn, set_rotational_axes, get_int, NULL },
|
||||
#elif N_AXIS = 6
|
||||
#elif N_AXIS == 6
|
||||
{ Settings_Axis_Rotational, Group_Stepper, "Rotational axes", NULL, Format_Bitfield, "U-Axis,V-Axis,W-Axis", NULL, NULL, Setting_IsExtendedFn, set_rotational_axes, get_int, NULL },
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -220,7 +220,13 @@ uint8_t spindle_get_count (void);
|
||||
|
||||
bool spindle_select (spindle_id_t spindle_id);
|
||||
spindle_cap_t spindle_get_caps (void);
|
||||
|
||||
/*! \brief Update PWM spindle capabilities with run-time determined parameters.
|
||||
\param pwm_caps pointer to \a spindle_pwm_t struct, NULL if spindle if not PWM capable.
|
||||
|
||||
*/
|
||||
void spindle_update_caps (spindle_pwm_t *pwm_caps);
|
||||
|
||||
spindle_id_t spindle_get_current (void);
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user