mirror of
https://github.com/grblHAL/core.git
synced 2026-02-06 00:52:35 +08:00
Added some new plugin init calls and setting ids.
Added defaults for RGB strip lengths.
This commit is contained in:
@@ -13,7 +13,7 @@ It has been written to complement grblHAL and has features such as proper keyboa
|
||||
|
||||
---
|
||||
|
||||
Latest build date is 20240817, see the [changelog](changelog.md) for details.
|
||||
Latest build date is 20240903, see the [changelog](changelog.md) for details.
|
||||
|
||||
__NOTE:__ Build 20240222 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 this, or later, builds.
|
||||
|
||||
46
changelog.md
46
changelog.md
@@ -1,5 +1,51 @@
|
||||
## grblHAL changelog
|
||||
|
||||
<a name="20240903">Build 20240903
|
||||
|
||||
Core:
|
||||
|
||||
* Added some new plugin init calls and setting ids. Added defaults for RGB strip lengths.
|
||||
|
||||
Drivers:
|
||||
|
||||
* ESP32, RP2040, STM32F4xx, STM32F7xx: updated for core changes related to the RGB HAL.
|
||||
|
||||
* RP2040: renamed bluetooth files to avoid conflict with SDK.
|
||||
|
||||
* STM32F7xx: moved board maps to separate directory.
|
||||
|
||||
Plugins:
|
||||
|
||||
* SD card: removed superfluous code. Made _.macro_ file type visible by default. Ref. [ioSender issue #403](https://github.com/terjeio/ioSender/issues/403).
|
||||
|
||||
* Misc: initial commit of [new plugins](https://github.com/grblHAL/Plugins_misc), some moved from [Templates](https://github.com/grblHAL/Templates/tree/master/my_plugin).
|
||||
|
||||
* WebUI: now delays soft reset commands for ESP32 driver to avoid crash when more than 3 axes are enabled. Ref. [issue #15](https://github.com/grblHAL/Plugin_WebUI/issues/15)
|
||||
|
||||
---
|
||||
|
||||
<a name="20240827">Build 20240827
|
||||
|
||||
Core:
|
||||
|
||||
* Added setting definitions for plugins and some new plugin initialization calls.
|
||||
|
||||
Drivers:
|
||||
|
||||
* ESP32: changed spindle on signal to GPIO32 when On/Off spindle is configured for MKS DLC32 board. Ref. this [discussion](https://github.com/grblHAL/core/discussions/203#discussioncomment-10454788).
|
||||
|
||||
* RP2040: fixed build issues when native Bluetooth is enabled. Ref. [issue #94](https://github.com/grblHAL/RP2040/issues/94).
|
||||
|
||||
Plugins:
|
||||
|
||||
* Spindle: added "Offset" plugin for spindle \(laser\) movement to be executed when switching between spindles.
|
||||
|
||||
* WebUI: workaround for [issue #15](https://github.com/grblHAL/Plugin_WebUI/issues/15), ESP32 crash on soft reset when > 3 axes configured.
|
||||
|
||||
* Miscellaneous: added a number of smallish plugins; BLTouch, PWM servo, EventOut, RGB LED strips, RGB LED M150. These are work in progress and requires specific driver configurations.
|
||||
|
||||
---
|
||||
|
||||
<a name="20240817">Build 20240817
|
||||
|
||||
Core:
|
||||
|
||||
18
config.h
18
config.h
@@ -1793,6 +1793,24 @@ Timezone offset from UTC in hours, allowed range is -12.0 - 12.0.
|
||||
#endif
|
||||
///@}
|
||||
|
||||
/*! @name $536 - Setting_RGB_StripLengt0
|
||||
Number of LEDs in NeoPixel/WS2812 strip 1.
|
||||
*/
|
||||
///@{
|
||||
#if !defined DEFAULT_RGB_STRIP0_LENGTH || defined __DOXYGEN__
|
||||
#define DEFAULT_RGB_STRIP0_LENGTH 0
|
||||
#endif
|
||||
///@}
|
||||
|
||||
/*! @name $537 - Setting_RGB_StripLengt1
|
||||
Number of LEDs in NeoPixel/WS2812 strip 2.
|
||||
*/
|
||||
///@{
|
||||
#if !defined DEFAULT_RGB_STRIP1_LENGTH || defined __DOXYGEN__
|
||||
#define DEFAULT_RGB_STRIP1_LENGTH 0
|
||||
#endif
|
||||
///@}
|
||||
|
||||
/*! @name $538 - Setting_RotaryWrap
|
||||
Enable fast return to G28 position for rotary axes by \ref axismask.
|
||||
Use:
|
||||
|
||||
20
gcode.h
20
gcode.h
@@ -360,6 +360,26 @@ typedef union {
|
||||
#endif
|
||||
#ifdef V_AXIS
|
||||
float v;
|
||||
#endif
|
||||
};
|
||||
struct {
|
||||
float m0;
|
||||
float m1;
|
||||
float m2;
|
||||
#if N_AXIS > 3
|
||||
float m3;
|
||||
#endif
|
||||
#if N_AXIS > 4
|
||||
float m4;
|
||||
#endif
|
||||
#if N_AXIS > 5
|
||||
float m5;
|
||||
#endif
|
||||
#if N_AXIS > 6
|
||||
float m6;
|
||||
#endif
|
||||
#if N_AXIS == 8
|
||||
float m7;
|
||||
#endif
|
||||
};
|
||||
} coord_data_t;
|
||||
|
||||
2
grbl.h
2
grbl.h
@@ -42,7 +42,7 @@
|
||||
#else
|
||||
#define GRBL_VERSION "1.1f"
|
||||
#endif
|
||||
#define GRBL_BUILD 20240817
|
||||
#define GRBL_BUILD 20240903
|
||||
|
||||
#define GRBL_URL "https://github.com/grblHAL"
|
||||
|
||||
|
||||
@@ -319,7 +319,7 @@ bool delay_sec (float seconds, delaymode_t mode)
|
||||
while(--i && ok) {
|
||||
if(mode == DelayMode_Dwell)
|
||||
ok = protocol_execute_realtime();
|
||||
else // DelayMode_SysSuspende, xecute rt_system() only to avoid nesting suspend loops.
|
||||
else // DelayMode_SysSuspend, execute rt_system() only to avoid nesting suspend loops.
|
||||
ok = protocol_exec_rt_system() && !state_door_reopened(); // Bail, if safety door reopens.
|
||||
if(ok)
|
||||
hal.delay_ms(DWELL_TIME_STEP, NULL); // Delay DWELL_TIME_STEP increment
|
||||
|
||||
@@ -118,12 +118,21 @@
|
||||
embroidery_init();
|
||||
#endif
|
||||
|
||||
#if RGB_LED_ENABLE
|
||||
extern void rgb_led_init (void);
|
||||
rgb_led_init();
|
||||
#endif
|
||||
|
||||
extern void my_plugin_init (void);
|
||||
my_plugin_init();
|
||||
|
||||
#if N_SPINDLE > 1
|
||||
extern void spindle_select_init(void);
|
||||
spindle_select_init();
|
||||
#if SPINDLE_OFFSET == 1
|
||||
extern void spindle_offset_init (void);
|
||||
spindle_offset_init();
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// Third party plugin definitions.
|
||||
@@ -166,6 +175,11 @@
|
||||
panel_init();
|
||||
#endif
|
||||
|
||||
#if EVENTOUT_ENABLE
|
||||
extern void event_out_init (void);
|
||||
event_out_init();
|
||||
#endif
|
||||
|
||||
// End third party plugin definitions.
|
||||
|
||||
#if ODOMETER_ENABLE
|
||||
|
||||
16
settings.c
16
settings.c
@@ -308,7 +308,10 @@ PROGMEM const settings_t defaults = {
|
||||
.safety_door.flags.ignore_when_idle = DEFAULT_DOOR_IGNORE_WHEN_IDLE,
|
||||
.safety_door.flags.keep_coolant_on = DEFAULT_DOOR_KEEP_COOLANT_ON,
|
||||
.safety_door.spindle_on_delay = DEFAULT_SAFETY_DOOR_SPINDLE_DELAY,
|
||||
.safety_door.coolant_on_delay = DEFAULT_SAFETY_DOOR_COOLANT_DELAY
|
||||
.safety_door.coolant_on_delay = DEFAULT_SAFETY_DOOR_COOLANT_DELAY,
|
||||
|
||||
.rgb_strip0_length = DEFAULT_RGB_STRIP0_LENGTH,
|
||||
.rgb_strip1_length = DEFAULT_RGB_STRIP1_LENGTH
|
||||
};
|
||||
|
||||
static bool group_is_available (const setting_group_detail_t *group)
|
||||
@@ -1461,7 +1464,11 @@ inline static setting_id_t normalize_id (setting_id_t id)
|
||||
id = (setting_id_t)(Setting_EncoderSettingsBase + (id % ENCODER_SETTINGS_INCREMENT));
|
||||
else if(id > Setting_ModbusTCPBase && id <= Setting_ModbusTCPMax)
|
||||
id = (setting_id_t)(Setting_ModbusTCPBase + (id % MODBUS_TCP_SETTINGS_INCREMENT));
|
||||
else if((id > Setting_Macro0 && id <= Setting_Macro9) || (id > Setting_MacroPort0 && id <= Setting_MacroPort9) || (id > Setting_ButtonAction0 && id <= Setting_ButtonAction9))
|
||||
else if((id > Setting_Macro0 && id <= Setting_Macro9) ||
|
||||
(id > Setting_MacroPort0 && id <= Setting_MacroPort9) ||
|
||||
(id > Setting_ButtonAction0 && id <= Setting_ButtonAction9) ||
|
||||
(id > Setting_Action0 && id <= Setting_Action9) ||
|
||||
(id > Setting_ActionPort0 && id <= Setting_ActionPort9))
|
||||
id = (setting_id_t)(id - (id % 10));
|
||||
|
||||
return id;
|
||||
@@ -2315,11 +2322,16 @@ void settings_restore (settings_restore_t restore)
|
||||
settings_write_build_info(BUILD_INFO);
|
||||
}
|
||||
|
||||
if(restore.defaults && hal.settings_changed)
|
||||
hal.settings_changed(&settings, (settings_changed_flags_t){-1});
|
||||
|
||||
setting_details_t *details = setting_details.next;
|
||||
|
||||
if(details) do {
|
||||
if(details->restore)
|
||||
details->restore();
|
||||
if(details->on_changed)
|
||||
details->on_changed(&settings, restore.defaults ? (settings_changed_flags_t){-1} : (settings_changed_flags_t){0});
|
||||
} while((details = details->next));
|
||||
|
||||
nvs_buffer_sync_physical();
|
||||
|
||||
36
settings.h
36
settings.h
@@ -459,17 +459,53 @@ typedef enum {
|
||||
Setting_PWMOffValue1 = 734,
|
||||
Setting_PWMMinValue1 = 735,
|
||||
Setting_PWMMaxValue1 = 736,
|
||||
|
||||
// Optional driver implemented settings for piecewise linear spindle PWM algorithm
|
||||
Setting_LinearSpindle1Piece1 = 737,
|
||||
Setting_LinearSpindle1Piece2 = 738,
|
||||
Setting_LinearSpindle1Piece3 = 739,
|
||||
Setting_LinearSpindle1Piece4 = 740,
|
||||
|
||||
Setting_Action0 = 750,
|
||||
Setting_ActionBase = Setting_Action0,
|
||||
Setting_Action1 = 751,
|
||||
Setting_Action2 = 752,
|
||||
Setting_Action3 = 753,
|
||||
Setting_Action4 = 754,
|
||||
Setting_Action5 = 755,
|
||||
Setting_Action6 = 756,
|
||||
Setting_Action7 = 757,
|
||||
Setting_Action8 = 758,
|
||||
Setting_Action9 = 759,
|
||||
|
||||
Setting_ActionPort0 = 760,
|
||||
Setting_ActionPortBase = Setting_ActionPort0,
|
||||
Setting_ActionPort1 = 761,
|
||||
Setting_ActionPort2 = 762,
|
||||
Setting_ActionPort3 = 763,
|
||||
Setting_ActionPort4 = 764,
|
||||
Setting_ActionPort5 = 765,
|
||||
Setting_ActionPort6 = 766,
|
||||
Setting_ActionPort7 = 767,
|
||||
Setting_ActionPort8 = 768,
|
||||
Setting_ActionPort9 = 769,
|
||||
|
||||
Setting_SpindleOffsetX = 770,
|
||||
Setting_SpindleOffsetY = 771,
|
||||
//
|
||||
// 772-779 - reserved for spindle offset settings
|
||||
//
|
||||
|
||||
//
|
||||
// 900-999 - reserved for automatic tool changers (ATC)
|
||||
//
|
||||
|
||||
// ---
|
||||
Setting_SettingsMax,
|
||||
Setting_SettingsAll = Setting_SettingsMax,
|
||||
|
||||
// ---
|
||||
|
||||
// Calculated base values for core stepper settings
|
||||
Setting_AxisStepsPerMM = Setting_AxisSettingsBase,
|
||||
Setting_AxisMaxRate = Setting_AxisSettingsBase + AXIS_SETTINGS_INCREMENT,
|
||||
|
||||
Reference in New Issue
Block a user