diff --git a/Grbl_Esp32 b/Grbl_Esp32 new file mode 160000 index 0000000..aa8f458 --- /dev/null +++ b/Grbl_Esp32 @@ -0,0 +1 @@ +Subproject commit aa8f458b8d1afab8c0381df14a84c3749157cddb diff --git a/Ressource/PhotoVideo/pcb/espSd.jpg b/Ressource/PhotoVideo/pcb/espSd.jpg new file mode 100644 index 0000000..3a08f1b Binary files /dev/null and b/Ressource/PhotoVideo/pcb/espSd.jpg differ diff --git a/Ressource/PhotoVideo/pcb/facearriere.jpg b/Ressource/PhotoVideo/pcb/facearriere.jpg new file mode 100644 index 0000000..c193360 Binary files /dev/null and b/Ressource/PhotoVideo/pcb/facearriere.jpg differ diff --git a/Ressource/PhotoVideo/pcb/faceavant b/Ressource/PhotoVideo/pcb/faceavant new file mode 100644 index 0000000..c87d652 Binary files /dev/null and b/Ressource/PhotoVideo/pcb/faceavant differ diff --git a/Ressource/pinoutESP(cpu_map).h b/Ressource/pinoutESP(cpu_map).h new file mode 100644 index 0000000..c37a4ee --- /dev/null +++ b/Ressource/pinoutESP(cpu_map).h @@ -0,0 +1,1123 @@ +/* + cpu_map.h - Header for system level commands and real-time processes + Part of Grbl + Copyright (c) 2014-2016 Sungeun K. Jeon for Gnea Research LLC + + 2018 - Bart Dring This file was modified for use on the ESP32 + CPU. Do not use this with Grbl for atMega328P + + Grbl is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + Grbl is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + You should have received a copy of the GNU General Public License + along with Grbl. If not, see . +*/ + +#ifndef cpu_map_h +//#define cpu_map_h + + /* + Not all pins can can work for all functions. + Check features like pull-ups, pwm, etc before + re-assigning numbers + + (gpio34-39) are inputs only and don't have software pullup/down functions + You MUST use external pull-ups or noise WILL cause problems. + + Unlike the AVR version certain pins are not forced into the same port. + Therefore, bit masks are not use the same way and typically should not be + changed. They are just preserved right now to make it easy to stay in sync + with AVR grbl + + */ + + +// ---------------- PINOUT UTILISER POUR LA CRA4 --------------------------- +#ifdef CPU_MAP_ESP32 // PINOUT UTILISER POUR LA CRA4 + // This is the CPU Map for the ESP32 CNC Controller R2 + + // It is OK to comment out any step and direction pins. This + // won't affect operation except that there will be no output + // form the pins. Grbl will virtually move the axis. This could + // be handy if you are using a servo, etc. for another axis. + #define CPU_MAP_NAME "CPU_MAP_ESP32" + + #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 + + #define Z_STEP_PIN GPIO_NUM_27 + #define Z_DIRECTION_PIN GPIO_NUM_33 + #define Z_RMT_CHANNEL 2 + + // OK to comment out to use pin for other features + #define STEPPERS_DISABLE_PIN GPIO_NUM_2 + + // *** 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 + #define SPINDLE_PWM_CHANNEL 0 + // 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) + #define SPINDLE_PWM_BASE_FREQ 5000 // Hz + #define SPINDLE_PWM_BIT_PRECISION 8 // be sure to match this with SPINDLE_PWM_MAX_VALUE + #define SPINDLE_PWM_OFF_VALUE 0 + #define SPINDLE_PWM_MAX_VALUE 255 // (2^SPINDLE_PWM_BIT_PRECISION) + + #ifndef SPINDLE_PWM_MIN_VALUE + #define SPINDLE_PWM_MIN_VALUE 1 // Must be greater than zero. + #endif + + #define SPINDLE_ENABLE_PIN GPIO_NUM_22 + + #define SPINDLE_PWM_RANGE (SPINDLE_PWM_MAX_VALUE-SPINDLE_PWM_MIN_VALUE) + + // if these spindle function pins are defined, they will be activated in the code + // comment them out to use the pins for other functions + //#define SPINDLE_ENABLE_PIN GPIO_NUM_16 + //#define SPINDLE_DIR_PIN GPIO_NUM_16 + + #define X_LIMIT_PIN GPIO_NUM_13 // Utiliser la pin 2 en tant qu'input pose probleme avec la led integrer a l'esp. Du coup la 13 (pour spindle enable normalement) est utiliser pour le endstop X et la 2 en output pour spindle enable + #define Y_LIMIT_PIN GPIO_NUM_4 + #define Z_LIMIT_PIN GPIO_NUM_15 + #define LIMIT_MASK B111 + + #define PROBE_PIN GPIO_NUM_32 + + #define CONTROL_SAFETY_DOOR_PIN GPIO_NUM_35 // 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 + +#endif + +// ------------------------- NON UTILISER ------------------------------- +#ifdef CPU_MAP_ESP32_ESC_SPINDLE + // This is the CPU Map for the ESP32 CNC Controller R2 + + // It is OK to comment out any step and direction pins. This + // won't affect operation except that there will be no output + // form the pins. Grbl will virtually move the axis. This could + // be handy if you are using a servo, etc. for another axis. + #define CPU_MAP_NAME "CPU_MAP_ESP32_ESC_SPINDLE" + + #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 + + #define Z_STEP_PIN GPIO_NUM_27 + #define Z_DIRECTION_PIN GPIO_NUM_33 + #define Z_RMT_CHANNEL 2 + + // OK to comment out to use pin for other features + #define STEPPERS_DISABLE_PIN GPIO_NUM_13 + + // *** 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 + #define SPINDLE_PWM_CHANNEL 0 + + // RC ESC Based Spindle + // An ESC works like a hobby servo with 50Hz PWM 1ms to 2 ms pulse range + #define SPINDLE_PWM_BASE_FREQ 50 // Hz for ESC + #define SPINDLE_PWM_BIT_PRECISION 16 // 16 bit required for ESC + #define SPINDLE_PULSE_RES_COUNT 65535 + + #define ESC_MIN_PULSE_SEC 0.001 // min pulse in seconds (OK to tune this one) + #define ESC_MAX_PULSE_SEC 0.002 // max pulse in seconds (OK to tune this one) + #define ESC_TIME_PER_BIT ((1.0 / (float)SPINDLE_PWM_BASE_FREQ) / ((float)SPINDLE_PULSE_RES_COUNT) ) // seconds + + #define SPINDLE_PWM_OFF_VALUE (uint16_t)(ESC_MIN_PULSE_SEC / ESC_TIME_PER_BIT) // in timer counts + #define SPINDLE_PWM_MAX_VALUE (uint16_t)(ESC_MAX_PULSE_SEC / ESC_TIME_PER_BIT) // in timer counts + + #ifndef SPINDLE_PWM_MIN_VALUE + #define SPINDLE_PWM_MIN_VALUE SPINDLE_PWM_OFF_VALUE // Must be greater than zero. + #endif + + #define SPINDLE_PWM_RANGE (SPINDLE_PWM_MAX_VALUE-SPINDLE_PWM_MIN_VALUE) + + #define SPINDLE_ENABLE_PIN GPIO_NUM_22 + + // if these spindle function pins are defined, they will be activated in the code + // comment them out to use the pins for other functions + //#define SPINDLE_ENABLE_PIN GPIO_NUM_16 + //#define SPINDLE_DIR_PIN GPIO_NUM_16 + + #define X_LIMIT_PIN GPIO_NUM_2 + #define Y_LIMIT_PIN GPIO_NUM_4 + #define Z_LIMIT_PIN GPIO_NUM_15 + #define LIMIT_MASK B111 + + #define PROBE_PIN GPIO_NUM_32 + + #define CONTROL_SAFETY_DOOR_PIN GPIO_NUM_35 // 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 + +#endif + + +#ifdef CPU_MAP_PEN_LASER // The Buildlog.net pen laser controller V1 + + // For pen mode be sure to uncomment #define USE_PEN_SERVO in config.h + // For solenoid mode be sure to uncomment #define USE_PEN_SERVO in config.h + // For laser mode, you do not need to change anything + // Note: You can use all 3 modes at the same time if you want + + #define CPU_MAP_NAME "CPU_MAP_PEN_LASER" + + #define USE_RMT_STEPS + + // Pick a board version + //#define PEN_LASER_V1 + #define PEN_LASER_V2 + + #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 + + #define STEPPERS_DISABLE_PIN GPIO_NUM_13 + + #ifdef PEN_LASER_V1 + #define X_LIMIT_PIN GPIO_NUM_2 + #endif + #ifdef PEN_LASER_V2 + #define X_LIMIT_PIN GPIO_NUM_15 + #endif + #define Y_LIMIT_PIN GPIO_NUM_4 + #define LIMIT_MASK B11 + + // 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 // Laser PWM + #define SPINDLE_PWM_CHANNEL 0 + // 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) + #define SPINDLE_PWM_BASE_FREQ 5000 // Hz + #define SPINDLE_PWM_BIT_PRECISION 8 // be sure to match this with SPINDLE_PWM_MAX_VALUE + #define SPINDLE_PWM_OFF_VALUE 0 + #define SPINDLE_PWM_MAX_VALUE 255 // (2^SPINDLE_PWM_BIT_PRECISION) + + #ifndef SPINDLE_PWM_MIN_VALUE + #define SPINDLE_PWM_MIN_VALUE 1 // Must be greater than zero. + #endif + + #define SPINDLE_PWM_RANGE (SPINDLE_PWM_MAX_VALUE-SPINDLE_PWM_MIN_VALUE) + + #define USING_SERVO // uncommewnt to use this feature + #define USING_SOLENOID // uncommewnt to use this feature + + #ifdef USING_SERVO + #define USE_SERVO_AXES + #define SERVO_Z_PIN GPIO_NUM_27 + #define SERVO_Z_CHANNEL_NUM 3 + #define SERVO_Z_RANGE_MIN 0 + #define SERVO_Z_RANGE_MAX 10 + #endif + + #ifdef USING_SOLENOID + #define USE_PEN_SOLENOID + #define SOLENOID_PEN_PIN GPIO_NUM_16 + #define SOLENOID_CHANNEL_NUM 6 + #endif + + + + #ifdef DEFAULTS_GENERIC + #undef DEFAULTS_GENERIC // undefine generic then define each default below + #endif + + // defaults + #define DEFAULT_STEP_PULSE_MICROSECONDS 3 + #define DEFAULT_STEPPER_IDLE_LOCK_TIME 250 // stay 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 0 + #define DEFAULT_HOMING_DIR_MASK 0 // move positive dir Z, negative X,Y + #define DEFAULT_HOMING_FEED_RATE 200.0 // mm/min + #define DEFAULT_HOMING_SEEK_RATE 1000.0 // mm/min + #define DEFAULT_HOMING_DEBOUNCE_DELAY 250 // msec (0-65k) + #define DEFAULT_HOMING_PULLOFF 3.0 // mm + + #define DEFAULT_SPINDLE_RPM_MAX 1000.0 // rpm + #define DEFAULT_SPINDLE_RPM_MIN 0.0 // rpm + + #define DEFAULT_LASER_MODE 0 // false + + #define DEFAULT_X_STEPS_PER_MM 80 + #define DEFAULT_Y_STEPS_PER_MM 80 + #define DEFAULT_Z_STEPS_PER_MM 100.0 // This is percent in servo mode...used for calibration + + #define DEFAULT_X_MAX_RATE 5000.0 // mm/min + #define DEFAULT_Y_MAX_RATE 5000.0 // mm/min + #define DEFAULT_Z_MAX_RATE 5000.0 // mm/min + + #define DEFAULT_X_ACCELERATION (50.0*60*60) // 10*60*60 mm/min^2 = 10 mm/sec^2 + #define DEFAULT_Y_ACCELERATION (50.0*60*60) // 10*60*60 mm/min^2 = 10 mm/sec^2 + #define DEFAULT_Z_ACCELERATION (50.0*60*60) + + #define DEFAULT_X_MAX_TRAVEL 300.0 // mm NOTE: Must be a positive value. + #define DEFAULT_Y_MAX_TRAVEL 300.0 // mm NOTE: Must be a positive value. + #define DEFAULT_Z_MAX_TRAVEL 100.0 // This is percent in servo mode...used for calibration + + +#endif + +#ifdef CPU_MAP_MIDTBOT // Buildlog.net midtbot + + #define CPU_MAP_NAME "CPU_MAP_MIDTBOT" + + #define X_STEP_PIN GPIO_NUM_12 + #define Y_STEP_PIN GPIO_NUM_14 + #define X_DIRECTION_PIN GPIO_NUM_26 + #define Y_DIRECTION_PIN GPIO_NUM_25 + + #ifndef COREXY // maybe set in config.h + #define COREXY + #endif + + #define STEPPERS_DISABLE_PIN GPIO_NUM_13 + + #define X_LIMIT_PIN GPIO_NUM_2 + #define Y_LIMIT_PIN GPIO_NUM_4 + #define LIMIT_MASK B11 + + #ifndef USE_PEN_SERVO // maybe set in config.h + #define USE_PEN_SERVO + #endif + + #ifndef IGNORE_CONTROL_PINS // maybe set in config.h + #define IGNORE_CONTROL_PINS + #endif + #define CONTROL_SAFETY_DOOR_PIN GPIO_NUM_35 // 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 + + // 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 // Laser PWM + #define SPINDLE_PWM_CHANNEL 0 + // 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) + #define SPINDLE_PWM_BASE_FREQ 5000 // Hz + #define SPINDLE_PWM_BIT_PRECISION 8 // be sure to match this with SPINDLE_PWM_MAX_VALUE + #define SPINDLE_PWM_OFF_VALUE 0 + #define SPINDLE_PWM_MAX_VALUE 255 // (2^SPINDLE_PWM_BIT_PRECISION) + + #ifndef SPINDLE_PWM_MIN_VALUE + #define SPINDLE_PWM_MIN_VALUE 1 // Must be greater than zero. + #endif + + // redefine some stuff from config.h + #define HOMING_CYCLE_0 (1<