From c2beecaf1757cce9dcc7028a2bd7da6e176e903a Mon Sep 17 00:00:00 2001 From: odaki Date: Wed, 8 May 2019 00:42:51 +0900 Subject: [PATCH 1/7] Change Build Status icon on README.md for my own forked repository. --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index f8324f0d..6b29b1a0 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ ### Project Overview -[![Build Status](https://travis-ci.org/bdring/Grbl_Esp32.svg?branch=master)](https://travis-ci.org/bdring/Grbl_Esp32) +[![Build Status](https://travis-ci.com/odaki/Grbl_Esp32.svg?branch=master)](https://travis-ci.com/odaki/Grbl_Esp32) This is a port of [Grbl](https://github.com/gnea/grbl) for the ESP32. The ESP32 is potentially a great target for Grbl for the following reasons @@ -54,4 +54,3 @@ Start asking questions...I'll put the frequent ones here. This project requires a lot of work and often expensive items for testing. Please consider a safe, secure and highly appreciated donation via the PayPal link below. [![](https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=TKNJ9Z775VXB2) - From ebc3ed3176014bbb2727ee5fa582341b92386413 Mon Sep 17 00:00:00 2001 From: odaki Date: Sun, 16 Jun 2019 20:21:03 +0900 Subject: [PATCH 2/7] FIX: suppress waring about static function and static variables --- Grbl_Esp32/grbl.h | 2 +- Grbl_Esp32/servo_pen.cpp | 2 + Grbl_Esp32/servo_pen.h | 2 - Grbl_Esp32/solenoid_pen.cpp | 2 + Grbl_Esp32/solenoid_pen.h | 2 +- Grbl_Esp32/stepper.cpp | 103 ++++++++++++++++++------------------ Grbl_Esp32/stepper.h | 1 - 7 files changed, 58 insertions(+), 56 deletions(-) diff --git a/Grbl_Esp32/grbl.h b/Grbl_Esp32/grbl.h index d93c3618..4203e775 100644 --- a/Grbl_Esp32/grbl.h +++ b/Grbl_Esp32/grbl.h @@ -20,7 +20,7 @@ // Grbl versioning system #define GRBL_VERSION "1.1f" -#define GRBL_VERSION_BUILD "20190602" +#define GRBL_VERSION_BUILD "20190616" //#include #include diff --git a/Grbl_Esp32/servo_pen.cpp b/Grbl_Esp32/servo_pen.cpp index 513d9114..6e575bfa 100644 --- a/Grbl_Esp32/servo_pen.cpp +++ b/Grbl_Esp32/servo_pen.cpp @@ -23,6 +23,8 @@ #ifdef USE_PEN_SERVO +static TaskHandle_t servoSyncTaskHandle = 0; + // used to delay turn on bool servo_pen_enable = false; diff --git a/Grbl_Esp32/servo_pen.h b/Grbl_Esp32/servo_pen.h index 1d1a0364..ab58bbcb 100644 --- a/Grbl_Esp32/servo_pen.h +++ b/Grbl_Esp32/servo_pen.h @@ -67,8 +67,6 @@ #ifndef servo_h #define servo_h -static TaskHandle_t servoSyncTaskHandle = 0; - void servo_init(); void servo_disable(); bool validate_servo_settings(bool verbose); diff --git a/Grbl_Esp32/solenoid_pen.cpp b/Grbl_Esp32/solenoid_pen.cpp index 3729124d..6b0b30c5 100644 --- a/Grbl_Esp32/solenoid_pen.cpp +++ b/Grbl_Esp32/solenoid_pen.cpp @@ -23,6 +23,8 @@ #ifdef USE_PEN_SOLENOID +static TaskHandle_t solenoidSyncTaskHandle = 0; + // used to delay turn on bool solenoid_pen_enable; uint16_t solenoide_hold_count; diff --git a/Grbl_Esp32/solenoid_pen.h b/Grbl_Esp32/solenoid_pen.h index 313b1078..cd7c328a 100644 --- a/Grbl_Esp32/solenoid_pen.h +++ b/Grbl_Esp32/solenoid_pen.h @@ -46,7 +46,7 @@ #ifndef solenoid_h #define solenoid_h -static TaskHandle_t solenoidSyncTaskHandle = 0; + void solenoid_init(); void solenoid_disable(); void solenoidSyncTask(void *pvParameters); diff --git a/Grbl_Esp32/stepper.cpp b/Grbl_Esp32/stepper.cpp index 2f198eaa..a395432b 100644 --- a/Grbl_Esp32/stepper.cpp +++ b/Grbl_Esp32/stepper.cpp @@ -198,6 +198,58 @@ static st_prep_t prep; */ + +#ifdef USE_RMT_STEPS +// Set stepper pulse output pins +inline IRAM_ATTR static void stepperRMT_Outputs() +{ + +#ifdef X_STEP_PIN + if(st.step_outbits & (1< Date: Sat, 22 Jun 2019 17:23:15 +0200 Subject: [PATCH 3/7] fix empty password not saved and generated error Need for open network --- Grbl_Esp32/commands.cpp | 6 +++--- Grbl_Esp32/grbl.h | 2 +- Grbl_Esp32/wificonfig.cpp | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Grbl_Esp32/commands.cpp b/Grbl_Esp32/commands.cpp index 7a96794d..8c0a98e8 100644 --- a/Grbl_Esp32/commands.cpp +++ b/Grbl_Esp32/commands.cpp @@ -326,7 +326,7 @@ bool COMMANDS::execute_internal_command (int cmd, String cmd_params, level_authe } Preferences prefs; prefs.begin(NAMESPACE, false); - if (prefs.putString(AP_PWD_ENTRY, parameter) == 0){ + if (prefs.putString(AP_PWD_ENTRY, parameter) != parameter.length()){ response = false; if(espresponse)espresponse->println ("Error: Set failed!"); } else if(espresponse)espresponse->println ("ok"); @@ -1223,7 +1223,7 @@ bool COMMANDS::execute_internal_command (int cmd, String cmd_params, level_authe if (! (styp == "B" || styp == "S" || styp == "A" || styp == "I" || styp == "F") ) { response = false; } - if (sval.length() == 0) { + if ((sval.length() == 0) && !((spos==AP_PWD_ENTRY) || (spos==STA_PWD_ENTRY))){ response = false; } @@ -1281,7 +1281,7 @@ bool COMMANDS::execute_internal_command (int cmd, String cmd_params, level_authe } //String value if (styp == "S") { - if (prefs.putString(spos.c_str(), sval) == 0) { + if (prefs.putString(spos.c_str(), sval) != sval.length()) { response = false; } else { #if defined (ENABLE_WIFI) diff --git a/Grbl_Esp32/grbl.h b/Grbl_Esp32/grbl.h index f7db835a..2adca58e 100644 --- a/Grbl_Esp32/grbl.h +++ b/Grbl_Esp32/grbl.h @@ -20,7 +20,7 @@ // Grbl versioning system #define GRBL_VERSION "1.1f" -#define GRBL_VERSION_BUILD "20190518" +#define GRBL_VERSION_BUILD "20190622" //#include #include diff --git a/Grbl_Esp32/wificonfig.cpp b/Grbl_Esp32/wificonfig.cpp index b7d15cef..eec95e6f 100644 --- a/Grbl_Esp32/wificonfig.cpp +++ b/Grbl_Esp32/wificonfig.cpp @@ -475,7 +475,7 @@ void WiFiConfig::reset_settings(){ error = true; } sval = DEFAULT_STA_PWD; - if (prefs.putString(STA_PWD_ENTRY, sval) == 0){ + if (prefs.putString(STA_PWD_ENTRY, sval) != sval.length()){ error = true; } sval = DEFAULT_AP_SSID; @@ -483,7 +483,7 @@ void WiFiConfig::reset_settings(){ error = true; } sval = DEFAULT_AP_PWD; - if (prefs.putString(AP_PWD_ENTRY, sval) == 0){ + if (prefs.putString(AP_PWD_ENTRY, sval) != sval.length()){ error = true; } From a4e9b46db7e19ce56eebb5ae13761a035774a0a3 Mon Sep 17 00:00:00 2001 From: Luc Date: Sat, 22 Jun 2019 17:32:38 +0200 Subject: [PATCH 4/7] Update grbl.h --- Grbl_Esp32/grbl.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Grbl_Esp32/grbl.h b/Grbl_Esp32/grbl.h index 2adca58e..4203e775 100644 --- a/Grbl_Esp32/grbl.h +++ b/Grbl_Esp32/grbl.h @@ -20,7 +20,7 @@ // Grbl versioning system #define GRBL_VERSION "1.1f" -#define GRBL_VERSION_BUILD "20190622" +#define GRBL_VERSION_BUILD "20190616" //#include #include From 65d9f6c6512caa321f218717a05b0683a138ae12 Mon Sep 17 00:00:00 2001 From: Luc Date: Sat, 22 Jun 2019 17:38:29 +0200 Subject: [PATCH 5/7] Update grbl.h --- Grbl_Esp32/grbl.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Grbl_Esp32/grbl.h b/Grbl_Esp32/grbl.h index 4203e775..2adca58e 100644 --- a/Grbl_Esp32/grbl.h +++ b/Grbl_Esp32/grbl.h @@ -20,7 +20,7 @@ // Grbl versioning system #define GRBL_VERSION "1.1f" -#define GRBL_VERSION_BUILD "20190616" +#define GRBL_VERSION_BUILD "20190622" //#include #include From bb870956ee22f6ad9d286c921214062348210abd Mon Sep 17 00:00:00 2001 From: Luc Date: Sat, 22 Jun 2019 18:37:44 +0200 Subject: [PATCH 6/7] fix conpilation failed if no wifi --- Grbl_Esp32/commands.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Grbl_Esp32/commands.cpp b/Grbl_Esp32/commands.cpp index 8c0a98e8..1c7dff63 100644 --- a/Grbl_Esp32/commands.cpp +++ b/Grbl_Esp32/commands.cpp @@ -940,11 +940,12 @@ bool COMMANDS::execute_internal_command (int cmd, String cmd_params, level_authe return false; } #endif - int8_t vi; + espresponse->print("{\"EEPROM\":["); if(espresponse->client() != CLIENT_WEBUI)espresponse->println(""); prefs.begin(NAMESPACE, true); #ifdef ENABLE_WIFI + int8_t vi; //1 - Hostname espresponse->print ("{\"F\":\"network\",\"P\":\""); espresponse->print (HOSTNAME_ENTRY); @@ -1223,7 +1224,11 @@ bool COMMANDS::execute_internal_command (int cmd, String cmd_params, level_authe if (! (styp == "B" || styp == "S" || styp == "A" || styp == "I" || styp == "F") ) { response = false; } - if ((sval.length() == 0) && !((spos==AP_PWD_ENTRY) || (spos==STA_PWD_ENTRY))){ + if ((sval.length() == 0) +#if defined (ENABLE_WIFI) + && !((spos==AP_PWD_ENTRY) || (spos==STA_PWD_ENTRY)) +#endif + ){ response = false; } From 6831f721cd55216889b23d4dcc2ae3f97d22967b Mon Sep 17 00:00:00 2001 From: bdring Date: Mon, 24 Jun 2019 14:57:37 -0500 Subject: [PATCH 7/7] Create a V1P2 cpu_map of the MPCNC - Moves a few pins around. Primarily to fix issues with GPIO2 being an input on some dev modules. --- Grbl_Esp32/cpu_map.h | 33 ++++++++++----- Grbl_Esp32/defaults.h | 97 +++++++++++++++++++++++-------------------- 2 files changed, 73 insertions(+), 57 deletions(-) diff --git a/Grbl_Esp32/cpu_map.h b/Grbl_Esp32/cpu_map.h index ddc86260..917b8673 100644 --- a/Grbl_Esp32/cpu_map.h +++ b/Grbl_Esp32/cpu_map.h @@ -749,10 +749,10 @@ #endif -#ifdef CPU_MAP_MPCNC +#ifdef CPU_MAP_MPCNC_V1P2 // This is the CPU Map for the Buildlog.net MPCNC controller - #define CPU_MAP_NAME "CPU_MAP_MPCNC" + #define CPU_MAP_NAME "CPU_MAP_MPCNC_V1P2" // switch to the correct default settings #ifdef DEFAULTS_GENERIC @@ -778,11 +778,10 @@ #define Z_DIRECTION_PIN GPIO_NUM_33 // OK to comment out to use pin for other features - #define STEPPERS_DISABLE_PIN GPIO_NUM_13 - + #define STEPPERS_DISABLE_PIN GPIO_NUM_13 - // Note: if you use PWM rather than relay, you could map GPIO_NUM_17 to mist or flood - #define USE_SPINDLE_RELAY + // Note: if you use PWM rather than relay, you could map GPIO_NUM_2 to mist or flood + //#define USE_SPINDLE_RELAY #ifdef USE_SPINDLE_RELAY #define SPINDLE_PWM_PIN GPIO_NUM_2 @@ -810,13 +809,17 @@ // Note: Only uncomment this if USE_SPINDLE_RELAY is commented out. // Relay can be used for Spindle or Coolant - //#define COOLANT_FLOOD_PIN GPIO_NUM_17 + //#define COOLANT_FLOOD_PIN GPIO_NUM_2 #define X_LIMIT_PIN GPIO_NUM_17 #define Y_LIMIT_PIN GPIO_NUM_4 #define Z_LIMIT_PIN GPIO_NUM_15 #define LIMIT_MASK B111 + #ifndef ENABLE_SOFTWARE_DEBOUNCE // V1P2 does not have R/C filters + #define ENABLE_SOFTWARE_DEBOUNCE + #endif + #define PROBE_PIN GPIO_NUM_35 // The default value in config.h is wrong for this controller @@ -826,7 +829,15 @@ #define INVERT_CONTROL_PIN_MASK B1110 - // Note: check the #define IGNORE_CONTROL_PINS is the way you want in config.h + // Note: defualt is #define IGNORE_CONTROL_PINS in config.h + // uncomment to these lines to use them + #ifdef IGNORE_CONTROL_PINS + #undef IGNORE_CONTROL_PINS + #endif + + + + #define CONTROL_RESET_PIN GPIO_NUM_34 // needs external pullup #define CONTROL_FEED_HOLD_PIN GPIO_NUM_36 // needs external pullup #define CONTROL_CYCLE_START_PIN GPIO_NUM_39 // needs external pullup @@ -896,7 +907,7 @@ // Relay can be used for Spindle or Coolant //#define COOLANT_FLOOD_PIN GPIO_NUM_17 - #define X_LIMIT_PIN GPIO_NUM_2 + #define X_LIMIT_PIN GPIO_NUM_34 #define Y_LIMIT_PIN GPIO_NUM_4 #define Z_LIMIT_PIN GPIO_NUM_15 #define LIMIT_MASK B111 @@ -908,10 +919,10 @@ #undef INVERT_CONTROL_PIN_MASK #endif - #define INVERT_CONTROL_PIN_MASK B1110 + #define INVERT_CONTROL_PIN_MASK B1100 // Note: check the #define IGNORE_CONTROL_PINS is the way you want in config.h - #define CONTROL_RESET_PIN GPIO_NUM_34 // needs external pullup + //#define CONTROL_RESET_PIN GPIO_NUM_34 // needs external pullup #define CONTROL_FEED_HOLD_PIN GPIO_NUM_36 // needs external pullup #define CONTROL_CYCLE_START_PIN GPIO_NUM_39 // needs external pullup diff --git a/Grbl_Esp32/defaults.h b/Grbl_Esp32/defaults.h index ebada7ee..c255e4f6 100644 --- a/Grbl_Esp32/defaults.h +++ b/Grbl_Esp32/defaults.h @@ -83,53 +83,58 @@ #endif #ifdef DEFAULTS_MPCNC - // Grbl generic default settings. Should work across different machines. - #define DEFAULT_STEP_PULSE_MICROSECONDS 3 - #define DEFAULT_STEPPER_IDLE_LOCK_TIME 255 // 255 = Keep steppers on - - #define DEFAULT_STEPPING_INVERT_MASK 0 // uint8_t - #define DEFAULT_DIRECTION_INVERT_MASK 0 // uint8_t - #define DEFAULT_INVERT_ST_ENABLE 0 // boolean - #define DEFAULT_INVERT_LIMIT_PINS 1 // boolean - #define DEFAULT_INVERT_PROBE_PIN 0 // boolean - - #define DEFAULT_STATUS_REPORT_MASK 1 - - #define DEFAULT_JUNCTION_DEVIATION 0.01 // mm - #define DEFAULT_ARC_TOLERANCE 0.002 // mm - #define DEFAULT_REPORT_INCHES 0 // false - - #define DEFAULT_SOFT_LIMIT_ENABLE 0 // false - #define DEFAULT_HARD_LIMIT_ENABLE 0 // false - - #define DEFAULT_HOMING_ENABLE 1 // false - #define DEFAULT_HOMING_DIR_MASK 3 // move positive dir Z,negative X,Y - #define DEFAULT_HOMING_FEED_RATE 600.0 // mm/min - #define DEFAULT_HOMING_SEEK_RATE 2000.0 // mm/min - #define DEFAULT_HOMING_DEBOUNCE_DELAY 250 // msec (0-65k) - #define DEFAULT_HOMING_PULLOFF 1.5 // mm + // Grbl generic default settings. Should work across different machines. + #define DEFAULT_STEP_PULSE_MICROSECONDS 3 + #define DEFAULT_STEPPER_IDLE_LOCK_TIME 255 // 255 = Keep steppers on + + #define DEFAULT_STEPPING_INVERT_MASK 0 // uint8_t + #define DEFAULT_DIRECTION_INVERT_MASK 0 // uint8_t + #define DEFAULT_INVERT_ST_ENABLE 0 // boolean + #define DEFAULT_INVERT_LIMIT_PINS 1 // boolean + #define DEFAULT_INVERT_PROBE_PIN 0 // boolean + + #define DEFAULT_STATUS_REPORT_MASK 1 + + #define DEFAULT_JUNCTION_DEVIATION 0.01 // mm + #define DEFAULT_ARC_TOLERANCE 0.002 // mm + #define DEFAULT_REPORT_INCHES 0 // false + + #define DEFAULT_SOFT_LIMIT_ENABLE 0 // false + #define DEFAULT_HARD_LIMIT_ENABLE 0 // false + + #define DEFAULT_HOMING_ENABLE 1 // false + #define DEFAULT_HOMING_DIR_MASK 3 // move positive dir Z,negative X,Y + #define DEFAULT_HOMING_FEED_RATE 600.0 // mm/min + #define DEFAULT_HOMING_SEEK_RATE 2000.0 // mm/min + #define DEFAULT_HOMING_DEBOUNCE_DELAY 250 // msec (0-65k) + #define DEFAULT_HOMING_PULLOFF 1.5 // mm + + #ifdef USE_SPINDLE_RELAY + #define DEFAULT_SPINDLE_RPM_MAX 1.0 // must be 1 so PWM duty is alway 100% to prevent relay damage + #else + #define DEFAULT_SPINDLE_RPM_MAX 1000.0 // can be change to your spindle max + #endif + + #define DEFAULT_SPINDLE_RPM_MIN 0.0 // rpm + + #define DEFAULT_LASER_MODE 0 // false + + #define DEFAULT_X_STEPS_PER_MM 200.0 + #define DEFAULT_Y_STEPS_PER_MM 200.0 + #define DEFAULT_Z_STEPS_PER_MM 800.0 + + #define DEFAULT_X_MAX_RATE 8000.0 // mm/min + #define DEFAULT_Y_MAX_RATE 8000.0 // mm/min + #define DEFAULT_Z_MAX_RATE 3000.0 // mm/min + + #define DEFAULT_X_ACCELERATION (200.0*60*60) // 10*60*60 mm/min^2 = 10 mm/sec^2 + #define DEFAULT_Y_ACCELERATION (200.0*60*60) // 10*60*60 mm/min^2 = 10 mm/sec^2 + #define DEFAULT_Z_ACCELERATION (100.0*60*60) // 10*60*60 mm/min^2 = 10 mm/sec^2 + + #define DEFAULT_X_MAX_TRAVEL 500.0 // mm NOTE: Must be a positive value. + #define DEFAULT_Y_MAX_TRAVEL 500.0 // mm NOTE: Must be a positive value. + #define DEFAULT_Z_MAX_TRAVEL 80.0 // mm NOTE: Must be a positive value. - #define DEFAULT_SPINDLE_RPM_MAX 1.0 // rpm used for spindle relay - #define DEFAULT_SPINDLE_RPM_MIN 0.0 // rpm - - #define DEFAULT_LASER_MODE 0 // false - - #define DEFAULT_X_STEPS_PER_MM 200.0 - #define DEFAULT_Y_STEPS_PER_MM 200.0 - #define DEFAULT_Z_STEPS_PER_MM 800.0 - - #define DEFAULT_X_MAX_RATE 8000.0 // mm/min - #define DEFAULT_Y_MAX_RATE 8000.0 // mm/min - #define DEFAULT_Z_MAX_RATE 3000.0 // mm/min - - #define DEFAULT_X_ACCELERATION (200.0*60*60) // 10*60*60 mm/min^2 = 10 mm/sec^2 - #define DEFAULT_Y_ACCELERATION (200.0*60*60) // 10*60*60 mm/min^2 = 10 mm/sec^2 - #define DEFAULT_Z_ACCELERATION (100.0*60*60) // 10*60*60 mm/min^2 = 10 mm/sec^2 - - #define DEFAULT_X_MAX_TRAVEL 500.0 // mm NOTE: Must be a positive value. - #define DEFAULT_Y_MAX_TRAVEL 500.0 // mm NOTE: Must be a positive value. - #define DEFAULT_Z_MAX_TRAVEL 80.0 // mm NOTE: Must be a positive value. - #endif