From faad68cb7181a25665ed81b809331281f8cf9f4d Mon Sep 17 00:00:00 2001 From: bdring Date: Fri, 10 Jan 2020 10:50:48 -0600 Subject: [PATCH 1/8] Removing RMT_CHANNEL setup from cpu_map.h The actual channel numbers don't matter or conflict with anything, so they are all now predefined in stepper.h --- Grbl_Esp32/cpu_map.h | 82 +++++++++++++------------------------- Grbl_Esp32/grbl.h | 2 +- Grbl_Esp32/polar_coaster.h | 2 - Grbl_Esp32/stepper.h | 8 ++++ 4 files changed, 37 insertions(+), 57 deletions(-) diff --git a/Grbl_Esp32/cpu_map.h b/Grbl_Esp32/cpu_map.h index 26dbe271..1fee4513 100644 --- a/Grbl_Esp32/cpu_map.h +++ b/Grbl_Esp32/cpu_map.h @@ -59,8 +59,6 @@ */ #define CPU_MAP_NAME "CPU_MAP_DEFAULT - Demo Only No I/O!" - #define CONTROL_FEED_HOLD_PIN GPIO_NUM_21 // Uno A1 - #define LIMIT_MASK 0 // no limit pins #endif @@ -99,16 +97,10 @@ #define Z_LIMIT_PIN GPIO_NUM_15 #endif - #define X_STEP_PIN GPIO_NUM_12 - - #define X_RMT_CHANNEL 0 - - // #define Y_STEP_PIN (see versions above) - #define Y_RMT_CHANNEL 1 + #define X_STEP_PIN GPIO_NUM_12 #define Z_STEP_PIN GPIO_NUM_27 - #define Z_DIRECTION_PIN GPIO_NUM_33 - #define Z_RMT_CHANNEL 2 + #define Z_DIRECTION_PIN GPIO_NUM_33 // OK to comment out to use pin for other features #define STEPPERS_DISABLE_PIN GPIO_NUM_13 @@ -138,44 +130,44 @@ // !!!! Experimental Untested !!!!! // This is a CPU MAP for ESPDUINO-32 Boards and Protoneer V3 boards // Note: Probe pin is mapped, but will require a 10k external pullup to 3.3V to work. + + // Rebooting...See this issue https://github.com/bdring/Grbl_Esp32/issues/314 + #define CPU_MAP_NAME "CPU_MAP_ESPDUINO_32" #define USE_RMT_STEPS - #define X_STEP_PIN GPIO_NUM_26 // Uno D2 - #define X_DIRECTION_PIN GPIO_NUM_16 // Uno D5 - #define X_RMT_CHANNEL 0 + #define X_STEP_PIN GPIO_NUM_26 + #define X_DIRECTION_PIN GPIO_NUM_16 - #define Y_STEP_PIN GPIO_NUM_25 // Uno D3 - #define Y_DIRECTION_PIN GPIO_NUM_27 // Uno D6 - #define Y_RMT_CHANNEL 1 + #define Y_STEP_PIN GPIO_NUM_25 + #define Y_DIRECTION_PIN GPIO_NUM_27 - #define Z_STEP_PIN GPIO_NUM_17 // Uno D4 - #define Z_DIRECTION_PIN GPIO_NUM_14 // Uno D7 - #define Z_RMT_CHANNEL 2 + #define Z_STEP_PIN GPIO_NUM_17 + #define Z_DIRECTION_PIN GPIO_NUM_14 // OK to comment out to use pin for other features - #define STEPPERS_DISABLE_PIN GPIO_NUM_12 // Uno D8 + #define STEPPERS_DISABLE_PIN GPIO_NUM_12 - #define SPINDLE_PWM_PIN GPIO_NUM_19 // Uno D11 + #define SPINDLE_PWM_PIN GPIO_NUM_19 #define SPINDLE_PWM_CHANNEL 0 #define SPINDLE_PWM_BIT_PRECISION 8 // be sure to match this with SPINDLE_PWM_MAX_VALUE - #define SPINDLE_DIR_PIN GPIO_NUM_18 // Uno D13 + #define SPINDLE_DIR_PIN GPIO_NUM_18 - #define COOLANT_FLOOD_PIN GPIO_NUM_34 // Uno A3 - #define COOLANT_MIST_PIN GPIO_NUM_36// Uno A4 + #define COOLANT_FLOOD_PIN GPIO_NUM_34 + #define COOLANT_MIST_PIN GPIO_NUM_36 - #define X_LIMIT_PIN GPIO_NUM_13 // Uno D9 - #define Y_LIMIT_PIN GPIO_NUM_5 // Uno D10 - #define Z_LIMIT_PIN GPIO_NUM_19 // Uno D12 + #define X_LIMIT_PIN GPIO_NUM_13 + #define Y_LIMIT_PIN GPIO_NUM_5 + #define Z_LIMIT_PIN GPIO_NUM_19 #define LIMIT_MASK B111 - #define PROBE_PIN GPIO_NUM_39 // Uno A5 + #define PROBE_PIN GPIO_NUM_39 // comment out #define IGNORE_CONTROL_PINS in config.h to use control pins - #define CONTROL_RESET_PIN GPIO_NUM_2 // Uno A0 - #define CONTROL_FEED_HOLD_PIN GPIO_NUM_4 // Uno A1 - #define CONTROL_CYCLE_START_PIN GPIO_NUM_35 // Uno A2 ... ESP32 needs external pullup + #define CONTROL_RESET_PIN GPIO_NUM_2 + #define CONTROL_FEED_HOLD_PIN GPIO_NUM_4 + #define CONTROL_CYCLE_START_PIN GPIO_NUM_35 // ESP32 needs external pullup #endif #ifdef CPU_MAP_ESP32_ESC_SPINDLE @@ -189,16 +181,13 @@ #define USE_RMT_STEPS #define X_STEP_PIN GPIO_NUM_12 - #define X_DIRECTION_PIN GPIO_NUM_14 - #define X_RMT_CHANNEL 0 + #define X_DIRECTION_PIN GPIO_NUM_14 #define Y_STEP_PIN GPIO_NUM_26 - #define Y_DIRECTION_PIN GPIO_NUM_15// #define Y_STEP_PIN (see versions above) - #define Y_RMT_CHANNEL 1 + #define Y_DIRECTION_PIN GPIO_NUM_15// #define Y_STEP_PIN (see versions above) #define Z_STEP_PIN GPIO_NUM_27 - #define Z_DIRECTION_PIN GPIO_NUM_33 - #define Z_RMT_CHANNEL 2 + #define Z_DIRECTION_PIN GPIO_NUM_33 // OK to comment out to use pin for other features #define STEPPERS_DISABLE_PIN GPIO_NUM_13 @@ -260,13 +249,10 @@ #define PEN_LASER_V2 #define X_STEP_PIN GPIO_NUM_12 - #define X_DIRECTION_PIN GPIO_NUM_26 - #define X_RMT_CHANNEL 0 - + #define X_DIRECTION_PIN GPIO_NUM_26 #define Y_STEP_PIN GPIO_NUM_14 - #define Y_DIRECTION_PIN GPIO_NUM_25 - #define Y_RMT_CHANNEL 1 + #define Y_DIRECTION_PIN GPIO_NUM_25 #define STEPPERS_DISABLE_PIN GPIO_NUM_13 @@ -362,11 +348,9 @@ #define X_STEP_PIN GPIO_NUM_12 #define Y_STEP_PIN GPIO_NUM_14 - #define X_RMT_CHANNEL 0 #define X_DIRECTION_PIN GPIO_NUM_26 #define Y_DIRECTION_PIN GPIO_NUM_25 - #define Y_RMT_CHANNEL 1 #ifndef COREXY // maybe set in config.h #define COREXY @@ -827,7 +811,6 @@ #define X_DRIVER_TMC2130 // Which Driver Type? #define X_CS_PIN GPIO_NUM_17 //chip select #define X_RSENSE 0.11f // .11 Ohm - #define X_RMT_CHANNEL 0 #define Y_STEP_PIN GPIO_NUM_14 #define Y_DIRECTION_PIN GPIO_NUM_25 @@ -835,7 +818,6 @@ #define Y_DRIVER_TMC2130 // Which Driver Type? #define Y_CS_PIN GPIO_NUM_16 //chip select #define Y_RSENSE 0.11f // .11 Ohm - #define Y_RMT_CHANNEL 1 // OK to comment out to use pin for other features #define STEPPERS_DISABLE_PIN GPIO_NUM_13 @@ -884,21 +866,17 @@ #define X_STEP_PIN GPIO_NUM_12 #define X_DIRECTION_PIN GPIO_NUM_26 - #define X_RMT_CHANNEL 0 #define Y_STEP_PIN GPIO_NUM_14 #define Y_DIRECTION_PIN GPIO_NUM_25 - #define Y_RMT_CHANNEL 1 // Z is a servo #define A_STEP_PIN GPIO_NUM_27 #define A_DIRECTION_PIN GPIO_NUM_33 - #define A_RMT_CHANNEL 2 #define B_STEP_PIN GPIO_NUM_15 #define B_DIRECTION_PIN GPIO_NUM_32 - #define B_RMT_CHANNEL 3 // C is a servo @@ -1035,7 +1013,6 @@ #define X_DRIVER_TMC2130 // Which Driver Type? #define X_CS_PIN GPIO_NUM_17 // Daisy Chain, all share same CS pin #define X_RSENSE 0.11f // .11 Ohm - #define X_RMT_CHANNEL 0 #define Y_STEP_PIN GPIO_NUM_27 #define Y_DIRECTION_PIN GPIO_NUM_26 @@ -1043,7 +1020,6 @@ #define Y_DRIVER_TMC2130 // Which Driver Type? #define Y_CS_PIN X_CS_PIN // Daisy Chain, all share same CS pin #define Y_RSENSE 0.11f // .11 Ohm - #define Y_RMT_CHANNEL 1 #define Z_STEP_PIN GPIO_NUM_15 #define Z_DIRECTION_PIN GPIO_NUM_2 @@ -1051,7 +1027,6 @@ #define Z_DRIVER_TMC2130 // Which Driver Type? #define Z_CS_PIN X_CS_PIN // Daisy Chain, all share same CS pin #define Z_RSENSE 0.11f // .11 Ohm - #define Z_RMT_CHANNEL 2 #define A_STEP_PIN GPIO_NUM_33 #define A_DIRECTION_PIN GPIO_NUM_32 @@ -1059,7 +1034,6 @@ #define A_DRIVER_TMC2130 // Which Driver Type? #define A_CS_PIN X_CS_PIN // Daisy Chain, all share same CS pin #define A_RSENSE 0.11f // .11 Ohm - #define A_RMT_CHANNEL 3 #define STEPPERS_DISABLE_PIN GPIO_NUM_13 diff --git a/Grbl_Esp32/grbl.h b/Grbl_Esp32/grbl.h index 33135184..868e55b7 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 "20200110" +#define GRBL_VERSION_BUILD "20200111" //#include #include diff --git a/Grbl_Esp32/polar_coaster.h b/Grbl_Esp32/polar_coaster.h index a7826172..6d570a02 100644 --- a/Grbl_Esp32/polar_coaster.h +++ b/Grbl_Esp32/polar_coaster.h @@ -33,9 +33,7 @@ #define USE_RMT_STEPS #define X_STEP_PIN GPIO_NUM_15 -#define X_RMT_CHANNEL 0 #define Y_STEP_PIN GPIO_NUM_2 -#define Y_RMT_CHANNEL 1 #define X_DIRECTION_PIN GPIO_NUM_25 #define Y_DIRECTION_PIN GPIO_NUM_26 diff --git a/Grbl_Esp32/stepper.h b/Grbl_Esp32/stepper.h index d2dd6bbd..d99a9d01 100644 --- a/Grbl_Esp32/stepper.h +++ b/Grbl_Esp32/stepper.h @@ -47,6 +47,14 @@ #define PREP_FLAG_PARKING bit(2) #define PREP_FLAG_DECEL_OVERRIDE bit(3) +// which RMT channels to use with the axes +#define X_RMT_CHANNEL 0 +#define Y_RMT_CHANNEL 1 +#define Z_RMT_CHANNEL 2 +#define A_RMT_CHANNEL 3 +#define B_RMT_CHANNEL 4 +#define C_RMT_CHANNEL 5 + // Define Adaptive Multi-Axis Step-Smoothing(AMASS) levels and cutoff frequencies. The highest level // frequency bin starts at 0Hz and ends at its cutoff frequency. The next lower level frequency bin // starts at the next higher cutoff frequency, and so on. The cutoff frequencies for each level must From 46319a361629f799d98b42965c1e384c4bac6003 Mon Sep 17 00:00:00 2001 From: bdring Date: Fri, 10 Jan 2020 21:53:40 -0600 Subject: [PATCH 2/8] Fixed Spindle Issues during homing Using the raw setting values (percentage) instead of calculated PWM (duty) off value --- .pio/build/project.checksum | 1 + .vscode/c_cpp_properties.json | 214 ++++++++++++++++++++++++++++++++ .vscode/extensions.json | 7 ++ .vscode/launch.json | 32 +++++ Grbl_Esp32/cpu_map.h | 13 +- Grbl_Esp32/spindle_control.cpp | 53 ++++---- Grbl_Esp32/spindle_control.h | 2 +- Grbl_Esp32/stepper.cpp | 4 +- doc/csv/setting_codes_en_US.csv | 8 +- 9 files changed, 296 insertions(+), 38 deletions(-) create mode 100644 .pio/build/project.checksum create mode 100644 .vscode/c_cpp_properties.json create mode 100644 .vscode/extensions.json create mode 100644 .vscode/launch.json diff --git a/.pio/build/project.checksum b/.pio/build/project.checksum new file mode 100644 index 00000000..e8ec9722 --- /dev/null +++ b/.pio/build/project.checksum @@ -0,0 +1 @@ +8a670918e9dc8280d88406fcbf3c7f8004d39238 \ No newline at end of file diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json new file mode 100644 index 00000000..a1013d5b --- /dev/null +++ b/.vscode/c_cpp_properties.json @@ -0,0 +1,214 @@ +{ + "configurations": [ + { + "name": "!!! WARNING !!! AUTO-GENERATED FILE, PLEASE DO NOT MODIFY IT AND USE https://docs.platformio.org/page/projectconf/section_env_build.html#build-flags" + }, + { + "name": "Win32", + "includePath": [ + "c:/Users/barto/Dropbox/Arduino/ESP32/Grbl_Esp32/Grbl_Esp32", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/ArduinoOTA/src", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/Update/src", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/ESPmDNS/src", + "c:/Users/barto/Dropbox/Arduino/ESP32/Grbl_Esp32/libraries/ESP32SSDP", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/DNSServer/src", + "c:/Users/barto/Dropbox/Arduino/ESP32/Grbl_Esp32/libraries/arduinoWebSockets/src", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/SD/src", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/SPI/src", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/EEPROM/src", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/WebServer/src", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/SPIFFS/src", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/FS/src", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/Preferences/src", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/BluetoothSerial/src", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/config", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/app_trace", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/app_update", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/asio", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/bootloader_support", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/bt", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/coap", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/console", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/driver", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp-tls", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp32", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_adc_cal", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_event", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_http_client", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_http_server", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_https_ota", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_ringbuf", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/ethernet", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/expat", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/fatfs", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/freemodbus", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/freertos", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/heap", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/idf_test", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/jsmn", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/json", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/libsodium", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/log", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/lwip", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/mbedtls", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/mdns", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/micro-ecc", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/mqtt", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/newlib", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/nghttp", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/nvs_flash", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/openssl", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/protobuf-c", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/protocomm", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/pthread", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/sdmmc", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/smartconfig_ack", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/soc", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/spi_flash", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/spiffs", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/tcp_transport", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/tcpip_adapter", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/ulp", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/vfs", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/wear_levelling", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/wifi_provisioning", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/wpa_supplicant", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/xtensa-debug-module", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp-face", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp32-camera", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/fb_gfx", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/cores/esp32", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/variants/nodemcu-32s", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/AsyncUDP/src", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/AzureIoT/src", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/BLE/src", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/ESP32/src", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/FFat/src", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/HTTPClient/src", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/HTTPUpdate/src", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/NetBIOS/src", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/SD_MMC/src", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/SimpleBLE/src", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/Ticker/src", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/Wire/src", + "C:/Users/barto/.platformio/packages/tool-unity", + "" + ], + "browse": { + "limitSymbolsToIncludedHeaders": true, + "path": [ + "c:/Users/barto/Dropbox/Arduino/ESP32/Grbl_Esp32/Grbl_Esp32", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/ArduinoOTA/src", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/Update/src", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/ESPmDNS/src", + "c:/Users/barto/Dropbox/Arduino/ESP32/Grbl_Esp32/libraries/ESP32SSDP", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/DNSServer/src", + "c:/Users/barto/Dropbox/Arduino/ESP32/Grbl_Esp32/libraries/arduinoWebSockets/src", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/SD/src", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/SPI/src", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/EEPROM/src", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/WebServer/src", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/SPIFFS/src", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/FS/src", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/Preferences/src", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/BluetoothSerial/src", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/config", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/app_trace", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/app_update", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/asio", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/bootloader_support", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/bt", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/coap", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/console", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/driver", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp-tls", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp32", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_adc_cal", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_event", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_http_client", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_http_server", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_https_ota", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_ringbuf", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/ethernet", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/expat", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/fatfs", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/freemodbus", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/freertos", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/heap", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/idf_test", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/jsmn", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/json", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/libsodium", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/log", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/lwip", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/mbedtls", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/mdns", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/micro-ecc", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/mqtt", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/newlib", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/nghttp", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/nvs_flash", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/openssl", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/protobuf-c", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/protocomm", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/pthread", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/sdmmc", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/smartconfig_ack", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/soc", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/spi_flash", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/spiffs", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/tcp_transport", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/tcpip_adapter", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/ulp", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/vfs", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/wear_levelling", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/wifi_provisioning", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/wpa_supplicant", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/xtensa-debug-module", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp-face", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp32-camera", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/fb_gfx", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/cores/esp32", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/variants/nodemcu-32s", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/AsyncUDP/src", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/AzureIoT/src", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/BLE/src", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/ESP32/src", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/FFat/src", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/HTTPClient/src", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/HTTPUpdate/src", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/NetBIOS/src", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/SD_MMC/src", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/SimpleBLE/src", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/Ticker/src", + "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/Wire/src", + "C:/Users/barto/.platformio/packages/tool-unity", + "" + ] + }, + "defines": [ + "PLATFORMIO=40100", + "ARDUINO_NodeMCU_32S", + "ESP32", + "ESP_PLATFORM", + "F_CPU=240000000L", + "HAVE_CONFIG_H", + "MBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\"", + "ARDUINO=10805", + "ARDUINO_ARCH_ESP32", + "ARDUINO_VARIANT=\"nodemcu-32s\"", + "ARDUINO_BOARD=\"NodeMCU-32S\"", + "" + ], + "intelliSenseMode": "clang-x64", + "cStandard": "c99", + "cppStandard": "c++11", + "compilerPath": "\"C:/Users/barto/.platformio/packages/toolchain-xtensa32/bin/xtensa-esp32-elf-gcc.exe\" -mlongcalls" + } + ], + "version": 4 +} \ No newline at end of file diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 00000000..272828b5 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,7 @@ +{ + // See http://go.microsoft.com/fwlink/?LinkId=827846 + // for the documentation about the extensions.json format + "recommendations": [ + "platformio.platformio-ide" + ] +} \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 00000000..14b929dd --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,32 @@ +// AUTOMATICALLY GENERATED FILE. PLEASE DO NOT MODIFY IT MANUALLY + +// PIO Unified Debugger +// +// Documentation: https://docs.platformio.org/page/plus/debugging.html +// Configuration: https://docs.platformio.org/page/projectconf/section_env_debug.html + +{ + "version": "0.2.0", + "configurations": [ + { + "type": "platformio-debug", + "request": "launch", + "name": "PIO Debug", + "executable": "c:/Users/barto/Dropbox/Arduino/ESP32/Grbl_Esp32/.pio/build/nodemcu-32s/firmware.elf", + "toolchainBinDir": "C:/Users/barto/.platformio/packages/toolchain-xtensa32/bin", + "preLaunchTask": { + "type": "PlatformIO", + "task": "Pre-Debug" + }, + "internalConsoleOptions": "openOnSessionStart" + }, + { + "type": "platformio-debug", + "request": "launch", + "name": "PIO Debug (skip Pre-Debug)", + "executable": "c:/Users/barto/Dropbox/Arduino/ESP32/Grbl_Esp32/.pio/build/nodemcu-32s/firmware.elf", + "toolchainBinDir": "C:/Users/barto/.platformio/packages/toolchain-xtensa32/bin", + "internalConsoleOptions": "openOnSessionStart" + } + ] +} \ No newline at end of file diff --git a/Grbl_Esp32/cpu_map.h b/Grbl_Esp32/cpu_map.h index 1fee4513..fa3a3f51 100644 --- a/Grbl_Esp32/cpu_map.h +++ b/Grbl_Esp32/cpu_map.h @@ -177,6 +177,8 @@ // https://github.com/bdring/Grbl_Esp32/wiki/BESC-Spindle-Feature #define CPU_MAP_NAME "CPU_MAP_ESP32_ESC_SPINDLE" + + #define SHOW_EXTENDED_SETTINGS #define USE_RMT_STEPS @@ -198,9 +200,12 @@ // Begin RC ESC Based Spindle Information ====================== #define SPINDLE_PWM_BIT_PRECISION 16 // 16 bit recommended for ESC (don't change) + + /* Important ESC Settings $33=50 // Hz this is the typical good frequency for an ESC + #define DEFAULT_SPINDLE_FREQ 5000.0 // $33 Hz (extended set) Determine the typical min and max pulse length of your ESC min_pulse is typically 1ms (0.001 sec) or less @@ -212,10 +217,16 @@ (pulse / PWM_period) - min_pulse = (0.001 / 0.02) = 0.035 = 3.5% so ... $33 and $34 = 3.5 + min_pulse = (0.001 / 0.02) = 0.05 = 5% so ... $34 and $35 = 5.0 max_pulse = (0.002 / .02) = 0.1 = 10% so ... $36=10 */ + #define DEFAULT_SPINDLE_FREQ 50.0 + #define DEFAULT_SPINDLE_OFF_VALUE 5.0 + #define DEFAULT_SPINDLE_MIN_VALUE 5.0 + #define DEFAULT_SPINDLE_MAX_VALUE 10.0 + + // End RC ESC Based Spindle #defines =========================== diff --git a/Grbl_Esp32/spindle_control.cpp b/Grbl_Esp32/spindle_control.cpp index 8877bf37..8b600f59 100644 --- a/Grbl_Esp32/spindle_control.cpp +++ b/Grbl_Esp32/spindle_control.cpp @@ -22,10 +22,10 @@ #ifdef SPINDLE_PWM_PIN static float pwm_gradient; // Precalulated value to speed up rpm to PWM conversions. -float spindle_pwm_period; -float spindle_pwm_off_value; -float spindle_pwm_min_value; -float spindle_pwm_max_value; +uint32_t spindle_pwm_period; // how many counts in 1 period +uint32_t spindle_pwm_off_value; +uint32_t spindle_pwm_min_value; +uint32_t spindle_pwm_max_value; #endif void spindle_init() @@ -41,27 +41,21 @@ void spindle_init() grbl_send(CLIENT_SERIAL, "[MSG: INVERT_SPINDLE_ENABLE_PIN]\r\n"); #endif - spindle_pwm_period = SPINDLE_PULSE_RES_COUNT; - - - spindle_pwm_off_value = (spindle_pwm_period * settings.spindle_pwm_off_value / 100); - spindle_pwm_min_value = (spindle_pwm_period * settings.spindle_pwm_min_value / 100); - spindle_pwm_max_value = (spindle_pwm_period * settings.spindle_pwm_max_value / 100); - - //pwm_gradient = (settings.spindle_pwm_max_value - settings.spindle_pwm_min_value)/(settings.rpm_max-settings.rpm_min); - pwm_gradient = (spindle_pwm_max_value-spindle_pwm_min_value)/(settings.rpm_max-settings.rpm_min); - - - if ( (F_TIMERS / (uint32_t)settings.spindle_pwm_freq) < spindle_pwm_max_value) { - /* - PWM Generator is based on 80,000,000 Hz counter - Therefor the freq determines the resolution 80,000,000 / freq = max resolution - For 5000 that is 80,000,000 / 5000 = 16000 - Round down to nearest bit count for SPINDLE_PWM_MAX_VALUE = 13bits (8192) - */ - grbl_sendf(CLIENT_SERIAL, "[MSG: Warning! Spindle freq %5.0f too high for requested PWM max %5.2f%% (%5.0f)]\r\n", settings.spindle_pwm_freq, settings.spindle_pwm_max_value, spindle_pwm_max_value); + // determine how many PWM counts are in eqach PWM cycle + spindle_pwm_period = ((1< settings.spindle_pwm_min_value) { + grbl_sendf(CLIENT_SERIAL, "[MSG: Warning spindle min pwm is greater than max. Check $35 and $36]\r\n", pwm_gradient); } + // pre-caculate some PWM count values + spindle_pwm_off_value = (spindle_pwm_period * settings.spindle_pwm_off_value / 100.0); + spindle_pwm_min_value = (spindle_pwm_period * settings.spindle_pwm_min_value / 100.0); + spindle_pwm_max_value = (spindle_pwm_period * settings.spindle_pwm_max_value / 100.0); + + // The pwm_gradient is the pwm duty cycle units per rpm + pwm_gradient = (spindle_pwm_max_value-spindle_pwm_min_value)/(settings.rpm_max-settings.rpm_min); + // Use DIR and Enable if pins are defined #ifdef SPINDLE_ENABLE_PIN pinMode(SPINDLE_ENABLE_PIN, OUTPUT); @@ -73,7 +67,7 @@ void spindle_init() // use the LED control feature to setup PWM https://docs.espressif.com/projects/esp-idf/en/latest/api-reference/peripherals/ledc.html ledcSetup(SPINDLE_PWM_CHANNEL, (double)settings.spindle_pwm_freq, SPINDLE_PWM_BIT_PRECISION); // setup the channel - ledcAttachPin(SPINDLE_PWM_PIN, SPINDLE_PWM_CHANNEL); // attach the PWM to the pin + ledcAttachPin(SPINDLE_PWM_PIN, SPINDLE_PWM_CHANNEL); // attach the PWM to the pin // Start with spindle off off spindle_stop(); @@ -81,7 +75,7 @@ void spindle_init() } void spindle_stop() -{ +{ spindle_set_enable(false); #ifdef SPINDLE_PWM_PIN @@ -117,8 +111,9 @@ uint8_t spindle_get_state() // returns SPINDLE_STATE_DISABLE, SPINDLE_STATE_CW } void spindle_set_speed(uint32_t pwm_value) -{ +{ #ifndef SPINDLE_PWM_PIN + grbl_sendf(CLIENT_SERIAL, "[MSG: set speed...no pin defined]\r\n"); return; #else #ifndef SPINDLE_ENABLE_OFF_WITH_ZERO_SPEED @@ -160,7 +155,7 @@ uint32_t spindle_compute_pwm_value(float rpm){ #ifdef ENABLE_PIECEWISE_LINEAR_SPINDLE pwm_value = piecewise_linear_fit(rpm); #else - pwm_value = floor((rpm - settings.rpm_min)*pwm_gradient) + settings.spindle_pwm_min_value; + pwm_value = floor((rpm - settings.rpm_min)*pwm_gradient) + spindle_pwm_min_value; #endif } return(pwm_value); @@ -211,9 +206,7 @@ void spindle_sync(uint8_t state, float rpm) void grbl_analogWrite(uint8_t chan, uint32_t duty) { if (ledcRead(chan) != duty) // reduce unnecessary calls to ledcWrite() - { - // Useful for debug, but too many messages in laser mode - // grbl_sendf(CLIENT_SERIAL, "[MSG: grbl_analogWrite %d]\r\n", duty); + { ledcWrite(chan, duty); } } diff --git a/Grbl_Esp32/spindle_control.h b/Grbl_Esp32/spindle_control.h index fd4147d4..068661ef 100644 --- a/Grbl_Esp32/spindle_control.h +++ b/Grbl_Esp32/spindle_control.h @@ -31,7 +31,7 @@ #define SPINDLE_STATE_CW bit(0) #define SPINDLE_STATE_CCW bit(1) -#define SPINDLE_PULSE_RES_COUNT ((1<is_pwm_rate_adjusted) { - spindle_set_speed(settings.spindle_pwm_off_value); + spindle_set_speed(spindle_pwm_off_value); } } @@ -1325,7 +1325,7 @@ void st_prep_buffer() } else { sys.spindle_speed = 0.0; #if ( (defined VARIABLE_SPINDLE) && (defined SPINDLE_PWM_PIN) ) - prep.current_spindle_pwm = settings.spindle_pwm_off_value; + prep.current_spindle_pwm = spindle_pwm_off_value ; #endif } diff --git a/doc/csv/setting_codes_en_US.csv b/doc/csv/setting_codes_en_US.csv index 55362625..71571e40 100644 --- a/doc/csv/setting_codes_en_US.csv +++ b/doc/csv/setting_codes_en_US.csv @@ -21,10 +21,10 @@ "30","Maximum spindle speed","RPM","Maximum spindle speed. Sets PWM to 100% duty cycle." "31","Minimum spindle speed","RPM","Minimum spindle speed. Sets PWM to 0.4% or lowest duty cycle." "32","Laser-mode enable","boolean","Enables laser mode. Consecutive G1/2/3 commands will not halt when spindle speed is changed." -"33","Spindle PWM Freq","16-bit","Spindle PWM Freq" -"34","Spindle PWM Off Value","16-bit","Spindle PWM Off Value" -"35","Spindle PWM Min Value","16-bit","Spindle PWM Min Value" -"36","Spindle PWM Max Value","16-bit","Spindle PWM Max Value" +"33","Spindle PWM Freq","16-bit","Spindle PWM Freq (reboot to take effect)" +"34","Spindle PWM Off Value","16-bit","Spindle PWM Off Value (reboot to take effect)" +"35","Spindle PWM Min Value","16-bit","Spindle PWM Min Value (reboot to take effect)" +"36","Spindle PWM Max Value","16-bit","Spindle PWM Max Value (reboot to take effect)" "80-84","User integer Values","unsigned 16-bit","Reserved for custom machine use" "90-94","User Floating point value","float","Reserved for custom machine use" "100","X-axis travel resolution","step/mm","X-axis travel resolution in steps per millimeter." From a414e44c1f0091303fad44be93d77de751dbcc0f Mon Sep 17 00:00:00 2001 From: bdring Date: Sun, 12 Jan 2020 10:52:12 -0600 Subject: [PATCH 3/8] Minor changes and cleanup Removed some Visual Studio Code files that accidentally snuck in. --- .pio/build/project.checksum | 1 - .vscode/c_cpp_properties.json | 214 ---------------------------------- .vscode/extensions.json | 7 -- .vscode/launch.json | 32 ----- Grbl_Esp32/config.h | 14 +-- 5 files changed, 7 insertions(+), 261 deletions(-) delete mode 100644 .pio/build/project.checksum delete mode 100644 .vscode/c_cpp_properties.json delete mode 100644 .vscode/extensions.json delete mode 100644 .vscode/launch.json diff --git a/.pio/build/project.checksum b/.pio/build/project.checksum deleted file mode 100644 index e8ec9722..00000000 --- a/.pio/build/project.checksum +++ /dev/null @@ -1 +0,0 @@ -8a670918e9dc8280d88406fcbf3c7f8004d39238 \ No newline at end of file diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json deleted file mode 100644 index a1013d5b..00000000 --- a/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,214 +0,0 @@ -{ - "configurations": [ - { - "name": "!!! WARNING !!! AUTO-GENERATED FILE, PLEASE DO NOT MODIFY IT AND USE https://docs.platformio.org/page/projectconf/section_env_build.html#build-flags" - }, - { - "name": "Win32", - "includePath": [ - "c:/Users/barto/Dropbox/Arduino/ESP32/Grbl_Esp32/Grbl_Esp32", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/ArduinoOTA/src", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/Update/src", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/ESPmDNS/src", - "c:/Users/barto/Dropbox/Arduino/ESP32/Grbl_Esp32/libraries/ESP32SSDP", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/DNSServer/src", - "c:/Users/barto/Dropbox/Arduino/ESP32/Grbl_Esp32/libraries/arduinoWebSockets/src", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/SD/src", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/SPI/src", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/EEPROM/src", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/WebServer/src", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/SPIFFS/src", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/FS/src", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/Preferences/src", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/BluetoothSerial/src", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/config", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/app_trace", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/app_update", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/asio", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/bootloader_support", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/bt", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/coap", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/console", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/driver", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp-tls", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp32", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_adc_cal", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_event", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_http_client", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_http_server", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_https_ota", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_ringbuf", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/ethernet", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/expat", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/fatfs", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/freemodbus", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/freertos", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/heap", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/idf_test", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/jsmn", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/json", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/libsodium", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/log", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/lwip", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/mbedtls", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/mdns", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/micro-ecc", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/mqtt", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/newlib", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/nghttp", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/nvs_flash", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/openssl", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/protobuf-c", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/protocomm", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/pthread", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/sdmmc", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/smartconfig_ack", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/soc", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/spi_flash", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/spiffs", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/tcp_transport", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/tcpip_adapter", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/ulp", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/vfs", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/wear_levelling", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/wifi_provisioning", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/wpa_supplicant", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/xtensa-debug-module", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp-face", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp32-camera", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/fb_gfx", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/cores/esp32", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/variants/nodemcu-32s", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/AsyncUDP/src", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/AzureIoT/src", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/BLE/src", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/ESP32/src", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/FFat/src", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/HTTPClient/src", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/HTTPUpdate/src", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/NetBIOS/src", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/SD_MMC/src", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/SimpleBLE/src", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/Ticker/src", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/Wire/src", - "C:/Users/barto/.platformio/packages/tool-unity", - "" - ], - "browse": { - "limitSymbolsToIncludedHeaders": true, - "path": [ - "c:/Users/barto/Dropbox/Arduino/ESP32/Grbl_Esp32/Grbl_Esp32", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/ArduinoOTA/src", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/Update/src", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/ESPmDNS/src", - "c:/Users/barto/Dropbox/Arduino/ESP32/Grbl_Esp32/libraries/ESP32SSDP", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/DNSServer/src", - "c:/Users/barto/Dropbox/Arduino/ESP32/Grbl_Esp32/libraries/arduinoWebSockets/src", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/SD/src", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/SPI/src", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/EEPROM/src", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/WebServer/src", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/SPIFFS/src", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/FS/src", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/Preferences/src", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/BluetoothSerial/src", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/config", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/app_trace", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/app_update", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/asio", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/bootloader_support", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/bt", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/coap", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/console", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/driver", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp-tls", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp32", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_adc_cal", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_event", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_http_client", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_http_server", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_https_ota", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp_ringbuf", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/ethernet", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/expat", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/fatfs", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/freemodbus", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/freertos", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/heap", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/idf_test", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/jsmn", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/json", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/libsodium", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/log", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/lwip", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/mbedtls", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/mdns", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/micro-ecc", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/mqtt", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/newlib", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/nghttp", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/nvs_flash", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/openssl", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/protobuf-c", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/protocomm", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/pthread", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/sdmmc", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/smartconfig_ack", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/soc", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/spi_flash", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/spiffs", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/tcp_transport", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/tcpip_adapter", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/ulp", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/vfs", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/wear_levelling", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/wifi_provisioning", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/wpa_supplicant", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/xtensa-debug-module", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp-face", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/esp32-camera", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/fb_gfx", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/cores/esp32", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/variants/nodemcu-32s", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/AsyncUDP/src", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/AzureIoT/src", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/BLE/src", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/ESP32/src", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/FFat/src", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/HTTPClient/src", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/HTTPUpdate/src", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/NetBIOS/src", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/SD_MMC/src", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/SimpleBLE/src", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/Ticker/src", - "C:/Users/barto/.platformio/packages/framework-arduinoespressif32/libraries/Wire/src", - "C:/Users/barto/.platformio/packages/tool-unity", - "" - ] - }, - "defines": [ - "PLATFORMIO=40100", - "ARDUINO_NodeMCU_32S", - "ESP32", - "ESP_PLATFORM", - "F_CPU=240000000L", - "HAVE_CONFIG_H", - "MBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\"", - "ARDUINO=10805", - "ARDUINO_ARCH_ESP32", - "ARDUINO_VARIANT=\"nodemcu-32s\"", - "ARDUINO_BOARD=\"NodeMCU-32S\"", - "" - ], - "intelliSenseMode": "clang-x64", - "cStandard": "c99", - "cppStandard": "c++11", - "compilerPath": "\"C:/Users/barto/.platformio/packages/toolchain-xtensa32/bin/xtensa-esp32-elf-gcc.exe\" -mlongcalls" - } - ], - "version": 4 -} \ No newline at end of file diff --git a/.vscode/extensions.json b/.vscode/extensions.json deleted file mode 100644 index 272828b5..00000000 --- a/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - // See http://go.microsoft.com/fwlink/?LinkId=827846 - // for the documentation about the extensions.json format - "recommendations": [ - "platformio.platformio-ide" - ] -} \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json deleted file mode 100644 index 14b929dd..00000000 --- a/.vscode/launch.json +++ /dev/null @@ -1,32 +0,0 @@ -// AUTOMATICALLY GENERATED FILE. PLEASE DO NOT MODIFY IT MANUALLY - -// PIO Unified Debugger -// -// Documentation: https://docs.platformio.org/page/plus/debugging.html -// Configuration: https://docs.platformio.org/page/projectconf/section_env_debug.html - -{ - "version": "0.2.0", - "configurations": [ - { - "type": "platformio-debug", - "request": "launch", - "name": "PIO Debug", - "executable": "c:/Users/barto/Dropbox/Arduino/ESP32/Grbl_Esp32/.pio/build/nodemcu-32s/firmware.elf", - "toolchainBinDir": "C:/Users/barto/.platformio/packages/toolchain-xtensa32/bin", - "preLaunchTask": { - "type": "PlatformIO", - "task": "Pre-Debug" - }, - "internalConsoleOptions": "openOnSessionStart" - }, - { - "type": "platformio-debug", - "request": "launch", - "name": "PIO Debug (skip Pre-Debug)", - "executable": "c:/Users/barto/Dropbox/Arduino/ESP32/Grbl_Esp32/.pio/build/nodemcu-32s/firmware.elf", - "toolchainBinDir": "C:/Users/barto/.platformio/packages/toolchain-xtensa32/bin", - "internalConsoleOptions": "openOnSessionStart" - } - ] -} \ No newline at end of file diff --git a/Grbl_Esp32/config.h b/Grbl_Esp32/config.h index 6726a622..093af036 100644 --- a/Grbl_Esp32/config.h +++ b/Grbl_Esp32/config.h @@ -39,17 +39,17 @@ Some features should not be changed. See notes below. #define config_h #include -//#define ESP_DEBUG +// !!!! Most Important Configuration Item !!!! +// #define the CPU map you want to use +// The CPU map is the main definition of the machine/controller you want to use +// These are typically found in the cpu_map.h file. +// See Github repo wiki for more details +#define CPU_MAP_TEST_DRIVE // these are defined in cpu_map.h + #define N_AXIS 3 // Number of axes defined (valid range: 3 to 6) -// Define CPU pin map and default settings. -// NOTE: OEMs can avoid the need to maintain/update the defaults.h and cpu_map.h files and use only -// one configuration file by placing their specific defaults and pin map at the bottom of this file. -// If doing so, simply comment out these two defines and see instructions below. -#define CPU_MAP_TEST_DRIVE // these are defined in cpu_map.h #define VERBOSE_HELP // adds addition help info, but could confuse some senders - // Serial baud rate #define BAUD_RATE 115200 From da95818efd37dae22b3809bc55cef28be65c85e5 Mon Sep 17 00:00:00 2001 From: bdring Date: Sun, 12 Jan 2020 12:47:35 -0600 Subject: [PATCH 4/8] Updating build date --- 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 868e55b7..0135a1ac 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 "20200111" +#define GRBL_VERSION_BUILD "20200112" //#include #include From 83a4e1e67c2f5f871d150f375b16375f4b6041f6 Mon Sep 17 00:00:00 2001 From: bdring Date: Tue, 14 Jan 2020 07:37:57 -0600 Subject: [PATCH 5/8] Added Trinamic SPI tests Connection is tested for each driver using the libraries driver.test_connection(); feature at startup. Responds with one of these 3 messages for each configured driver. - [MSG:X Trinamic driver test passed] - [MSG:X Trinamic driver test failed. Check connection] - [MSG:X Trinamic driver test failed. Check motor power] --- Grbl_Esp32/grbl_trinamic.cpp | 29 +++++++++++++++++++++++++++++ Grbl_Esp32/grbl_trinamic.h | 1 + Grbl_Esp32/spindle_control.cpp | 2 +- 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/Grbl_Esp32/grbl_trinamic.cpp b/Grbl_Esp32/grbl_trinamic.cpp index 8616cf23..15ee5655 100644 --- a/Grbl_Esp32/grbl_trinamic.cpp +++ b/Grbl_Esp32/grbl_trinamic.cpp @@ -134,12 +134,16 @@ void Trinamic_Init() { + uint8_t testResult; + grbl_sendf(CLIENT_SERIAL, "[MSG:TMCStepper Init using Library Ver 0x%06x]\r\n", TMCSTEPPER_VERSION); SPI.begin(); #ifdef X_TRINAMIC TRINAMIC_X.begin(); // Initiate pins and registries + testResult = TRINAMIC_X.test_connection(); + trinamic_test_response(testResult, "X"); TRINAMIC_X.toff(5); TRINAMIC_X.microsteps(settings.microsteps[X_AXIS]); TRINAMIC_X.rms_current(settings.current[X_AXIS] * 1000.0, settings.hold_current[X_AXIS]/100.0); @@ -149,6 +153,8 @@ void Trinamic_Init() #ifdef Y_TRINAMIC TRINAMIC_Y.begin(); // Initiate pins and registries + testResult = TRINAMIC_Y.test_connection(); + trinamic_test_response(testResult, "Y"); TRINAMIC_Y.toff(5); TRINAMIC_Y.microsteps(settings.microsteps[Y_AXIS]); TRINAMIC_Y.rms_current(settings.current[Y_AXIS] * 1000.0, settings.hold_current[Y_AXIS]/100.0); @@ -158,6 +164,8 @@ void Trinamic_Init() #ifdef Z_TRINAMIC TRINAMIC_Z.begin(); // Initiate pins and registries + testResult = TRINAMIC_Z.test_connection(); + trinamic_test_response(testResult, "Z"); TRINAMIC_Z.toff(5); TRINAMIC_Z.microsteps(settings.microsteps[Z_AXIS]); TRINAMIC_Z.rms_current(settings.current[Z_AXIS] * 1000.0, settings.hold_current[Z_AXIS]/100.0); @@ -167,6 +175,8 @@ void Trinamic_Init() #ifdef A_TRINAMIC TRINAMIC_A.begin(); // Initiate pins and registries + testResult = TRINAMIC_A.test_connection(); + trinamic_test_response(testResult, "A"); TRINAMIC_A.toff(5); TRINAMIC_A.microsteps(settings.microsteps[A_AXIS]); TRINAMIC_A.rms_current(settings.current[A_AXIS] * 1000.0, settings.hold_current[A_AXIS]/100.0); @@ -176,6 +186,8 @@ void Trinamic_Init() #ifdef B_TRINAMIC TRINAMIC_B.begin(); // Initiate pins and registries + testResult = TRINAMIC_B.test_connection(); + trinamic_test_response(testResult, "B"); TRINAMIC_B.toff(5); TRINAMIC_B.microsteps(settings.microsteps[B_AXIS]); TRINAMIC_B.rms_current(settings.current[B_AXIS] * 1000.0, settings.hold_current[B_AXIS]/100.0); @@ -185,6 +197,8 @@ void Trinamic_Init() #ifdef C_TRINAMIC TRINAMIC_C.begin(); // Initiate pins and registries + testResult = TRINAMIC_C.test_connection(); + trinamic_test_response(testResult, "C"); TRINAMIC_C.toff(5); TRINAMIC_C.microsteps(settings.microsteps[C_AXIS]); TRINAMIC_C.rms_current(settings.current[C_AXIS] * 1000.0, settings.hold_current[C_AXIS]/100.0); @@ -228,4 +242,19 @@ void trinamic_change_settings() #endif } +void trinamic_test_response(uint8_t result, const char *axis) +{ + grbl_sendf(CLIENT_SERIAL, "[MSG:%s Trinamic driver test ", axis); + if (result) { + grbl_sendf(CLIENT_SERIAL, "failed."); + switch(result) { + case 1: grbl_sendf(CLIENT_SERIAL, " Check connection]\r\n"); break; + case 2: grbl_sendf(CLIENT_SERIAL, " Check motor power]\r\n"); break; + } + } + else { + grbl_sendf(CLIENT_SERIAL, "passed]\r\n"); + } +} + #endif \ No newline at end of file diff --git a/Grbl_Esp32/grbl_trinamic.h b/Grbl_Esp32/grbl_trinamic.h index 9723124a..574430a3 100644 --- a/Grbl_Esp32/grbl_trinamic.h +++ b/Grbl_Esp32/grbl_trinamic.h @@ -27,6 +27,7 @@ #include // https://github.com/teemuatlut/TMCStepper void Trinamic_Init(); void trinamic_change_settings(); + void trinamic_test_response(uint8_t result, const char *axis); #endif #endif \ No newline at end of file diff --git a/Grbl_Esp32/spindle_control.cpp b/Grbl_Esp32/spindle_control.cpp index 8b600f59..d344f0e8 100644 --- a/Grbl_Esp32/spindle_control.cpp +++ b/Grbl_Esp32/spindle_control.cpp @@ -113,7 +113,7 @@ uint8_t spindle_get_state() // returns SPINDLE_STATE_DISABLE, SPINDLE_STATE_CW void spindle_set_speed(uint32_t pwm_value) { #ifndef SPINDLE_PWM_PIN - grbl_sendf(CLIENT_SERIAL, "[MSG: set speed...no pin defined]\r\n"); + //grbl_sendf(CLIENT_SERIAL, "[MSG: set speed...no pin defined]\r\n"); return; #else #ifndef SPINDLE_ENABLE_OFF_WITH_ZERO_SPEED From 7307eba8734a821e1ab43fef5339dd2933326fef Mon Sep 17 00:00:00 2001 From: bdring Date: Tue, 14 Jan 2020 07:39:21 -0600 Subject: [PATCH 6/8] update build date --- 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 0135a1ac..799a3fe1 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 "20200112" +#define GRBL_VERSION_BUILD "20200114" //#include #include From b33ced40946d769db42187616e90bea6f0406246 Mon Sep 17 00:00:00 2001 From: bdring Date: Tue, 14 Jan 2020 13:16:36 -0600 Subject: [PATCH 7/8] Added spindle/laser PWM secition to CPU_MAP_TMC2130_PEN --- Grbl_Esp32/cpu_map.h | 13 +++++-------- Grbl_Esp32/spindle_control.cpp | 6 +++--- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/Grbl_Esp32/cpu_map.h b/Grbl_Esp32/cpu_map.h index fa3a3f51..f704182a 100644 --- a/Grbl_Esp32/cpu_map.h +++ b/Grbl_Esp32/cpu_map.h @@ -837,6 +837,7 @@ #define USE_SERVO_AXES #endif + #define SERVO_Z_PIN GPIO_NUM_27 #define SERVO_Z_CHANNEL_NUM 5 #define SERVO_Z_RANGE_MIN 0.0 @@ -845,17 +846,13 @@ #define SERVO_Z_HOME_POS SERVO_Z_RANGE_MAX // move to max during homing #define SERVO_Z_MPOS false // will not use mpos, uses work coordinates - // *** the flood coolant feature code is activated by defining this pins - // *** Comment it out to use the pin for other features - //#define COOLANT_FLOOD_PIN GPIO_NUM_16 - //#define COOLANT_MIST_PIN GPIO_NUM_21 - // If SPINDLE_PWM_PIN is commented out, this frees up the pin, but Grbl will still - // use a virtual spindle. Do not comment out the other parameters for the spindle. - //#define SPINDLE_PWM_PIN GPIO_NUM_17 + // Comment out servo pin and uncomment spindle pwm pin to use the servo PWM to control a spindle + /* + #define SPINDLE_PWM_PIN GPIO_NUM_27 #define SPINDLE_PWM_CHANNEL 0 #define SPINDLE_PWM_BIT_PRECISION 8 // be sure to match this with SPINDLE_PWM_MAX_VALUE - + */ // #define X_LIMIT_PIN See version section #define Y_LIMIT_PIN GPIO_NUM_4 diff --git a/Grbl_Esp32/spindle_control.cpp b/Grbl_Esp32/spindle_control.cpp index d344f0e8..6250399c 100644 --- a/Grbl_Esp32/spindle_control.cpp +++ b/Grbl_Esp32/spindle_control.cpp @@ -32,7 +32,7 @@ void spindle_init() { #ifdef SPINDLE_PWM_PIN - + grbl_sendf(CLIENT_SERIAL, "[MSG:Spindle init on pin %d]\r\n", SPINDLE_PWM_PIN); #ifdef INVERT_SPINDLE_PWM grbl_send(CLIENT_SERIAL, "[MSG: INVERT_SPINDLE_PWM]\r\n"); #endif @@ -70,7 +70,7 @@ void spindle_init() ledcAttachPin(SPINDLE_PWM_PIN, SPINDLE_PWM_CHANNEL); // attach the PWM to the pin // Start with spindle off off - spindle_stop(); + spindle_stop(); #endif } @@ -111,7 +111,7 @@ uint8_t spindle_get_state() // returns SPINDLE_STATE_DISABLE, SPINDLE_STATE_CW } void spindle_set_speed(uint32_t pwm_value) -{ +{ #ifndef SPINDLE_PWM_PIN //grbl_sendf(CLIENT_SERIAL, "[MSG: set speed...no pin defined]\r\n"); return; From cc78ba3afa65deaa809b5f6f59f85237cd10d13b Mon Sep 17 00:00:00 2001 From: bdring Date: Wed, 15 Jan 2020 08:02:03 -0600 Subject: [PATCH 8/8] Added $+ command to show extended $$ setting If you don't have SHOW_EXTENDED_SETTING defined, you can see those settings by sending $+ --- Grbl_Esp32/grbl.h | 2 +- Grbl_Esp32/report.cpp | 32 +++++++++++++++++++------------- Grbl_Esp32/report.h | 2 +- Grbl_Esp32/settings.cpp | 2 +- Grbl_Esp32/settings.h | 7 ++----- Grbl_Esp32/system.cpp | 13 +++++++++---- 6 files changed, 33 insertions(+), 25 deletions(-) diff --git a/Grbl_Esp32/grbl.h b/Grbl_Esp32/grbl.h index 799a3fe1..94dc289c 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 "20200114" +#define GRBL_VERSION_BUILD "20200115" //#include #include diff --git a/Grbl_Esp32/report.cpp b/Grbl_Esp32/report.cpp index 73a85b5e..1d20b2db 100644 --- a/Grbl_Esp32/report.cpp +++ b/Grbl_Esp32/report.cpp @@ -275,16 +275,23 @@ void report_init_message(uint8_t client) // Grbl help message void report_grbl_help(uint8_t client) { - grbl_send(client,"[HLP:$$ $# $G $I $N $x=val $Nx=line $J=line $SLP $C $X $H $F ~ ! ? ctrl-x]\r\n"); + grbl_send(client,"[HLP:$$ $+ $# $G $I $N $x=val $Nx=line $J=line $SLP $C $X $H $F ~ ! ? ctrl-x]\r\n"); } // Grbl global settings print out. // NOTE: The numbering scheme here must correlate to storing in settings.c -void report_grbl_settings(uint8_t client) { +// Extended setting will be displayed if force_extended is true or #ifdef SHOW_EXTENDED_SETTINGS +void report_grbl_settings(uint8_t client, uint8_t show_extended) { // Print Grbl settings. char setting[20]; - char rpt[1000]; + char rpt[1000]; + + #ifdef SHOW_EXTENDED_SETTINGS + show_extended = true; + #endif + + grbl_sendf(CLIENT_SERIAL, "[MSG:Extended %d]\r\n", show_extended); rpt[0] = '\0'; @@ -322,7 +329,7 @@ void report_grbl_settings(uint8_t client) { strcat(rpt, "$32=0\r\n"); #endif - #ifdef SHOW_EXTENDED_SETTINGS + if (show_extended) { sprintf(setting, "$33=%5.3f\r\n", settings.spindle_pwm_freq); strcat(rpt, setting); sprintf(setting, "$34=%3.3f\r\n", settings.spindle_pwm_off_value); strcat(rpt, setting); sprintf(setting, "$35=%3.3f\r\n", settings.spindle_pwm_min_value); strcat(rpt, setting); @@ -334,9 +341,8 @@ void report_grbl_settings(uint8_t client) { for (uint8_t index = 0; index= 100 for axis settings. Up to 255. #define AXIS_SETTINGS_INCREMENT 10 // Must be greater than the number of axis settings diff --git a/Grbl_Esp32/system.cpp b/Grbl_Esp32/system.cpp index fbfd2264..dd54e371 100644 --- a/Grbl_Esp32/system.cpp +++ b/Grbl_Esp32/system.cpp @@ -183,13 +183,18 @@ uint8_t system_execute_line(char *line, uint8_t client) if(line[2] != '=') { return(STATUS_INVALID_STATEMENT); } return(gc_execute_line(line, client)); // NOTE: $J= is ignored inside g-code parser and used to detect jog motions. break; - case '$': case 'G': case 'C': case 'X': + case '$': case 'G': case 'C': case 'X': case '+': if ( line[2] != 0 ) { return(STATUS_INVALID_STATEMENT); } switch( line[1] ) { - case '$' : // Prints Grbl settings + case '$': case '+' : // Prints Grbl settings if ( sys.state & (STATE_CYCLE | STATE_HOLD) ) { return(STATUS_IDLE_ERROR); } // Block during cycle. Takes too long to print. - else { report_grbl_settings(client); } - break; + else { + if (line[1] == '$') + report_grbl_settings(client, false); // entended settings depend on SHOW_EXTENDED_SETTINGS + else + report_grbl_settings(client, true); // force display of extended settings + } + break; case 'G' : // Prints gcode parser state // TODO: Move this to realtime commands for GUIs to request this data during suspend-state. report_gcode_modes(client);