From dd5e15a0541aeaca7759f05216ee43cd090a6d91 Mon Sep 17 00:00:00 2001 From: Dan211 Date: Mon, 27 Mar 2017 19:43:22 -0400 Subject: [PATCH 01/14] -{me:null} and {md:null} now enable or disable all motors for compatability with chilipeppr -fixed some shapeoko configs, changed shapeoko2 config to single motor Y and added a dual Y config -fixed power management with gshield using the workaround described in issue #212 --- g2core/board/ArduinoDue/gShield-pinout.h | 8 +- g2core/config_app.cpp | 8 +- g2core/settings/settings_shapeoko2.h | 17 +- g2core/settings/settings_shapeoko2dualY.h | 233 ++++++++++++++++++++++ 4 files changed, 247 insertions(+), 19 deletions(-) create mode 100644 g2core/settings/settings_shapeoko2dualY.h diff --git a/g2core/board/ArduinoDue/gShield-pinout.h b/g2core/board/ArduinoDue/gShield-pinout.h index 314ef41e..922eadaa 100755 --- a/g2core/board/ArduinoDue/gShield-pinout.h +++ b/g2core/board/ArduinoDue/gShield-pinout.h @@ -136,7 +136,7 @@ pin_number kSocket1_SPISlaveSelectPinNumber = -1; // 10; pin_number kSocket1_InterruptPinNumber = -1; pin_number kSocket1_StepPinNumber = 2; pin_number kSocket1_DirPinNumber = 5; -pin_number kSocket1_EnablePinNumber = 22; +pin_number kSocket1_EnablePinNumber = 8; // Workaround for kGRBL_CommonEnablePinNumber not working (22 is default value) pin_number kSocket1_Microstep_0PinNumber = 23; pin_number kSocket1_Microstep_1PinNumber = 24; pin_number kSocket1_Microstep_2PinNumber = -1; @@ -208,7 +208,7 @@ pin_number kInput11_PinNumber = 65; pin_number kInput12_PinNumber = 51; pin_number kSpindle_EnablePinNumber = 12; -pin_number kSpindle_DirPinNumber = -1; // 13; +pin_number kSpindle_DirPinNumber = 13; pin_number kSpindle_PwmPinNumber = 11; pin_number kSpindle_Pwm2PinNumber = 9; pin_number kCoolant_EnablePinNumber = 57; @@ -258,12 +258,12 @@ pin_number kADC14_PinNumber = -1; // Not physially pinned out // GRBL / gShield compatibility pins -- Due board ONLY - +// NOTE: These dont appear to work pin_number kGRBL_ResetPinNumber = 54; pin_number kGRBL_FeedHoldPinNumber = 55; pin_number kGRBL_CycleStartPinNumber = 56; -pin_number kGRBL_CommonEnablePinNumber = 8; +pin_number kGRBL_CommonEnablePinNumber = -1; /** NOTE: When adding pin definitions here, they must be * added to ALL board pin assignment files, even if diff --git a/g2core/config_app.cpp b/g2core/config_app.cpp index db6d9230..01e0cc3e 100644 --- a/g2core/config_app.cpp +++ b/g2core/config_app.cpp @@ -847,9 +847,11 @@ const cfgItem_t cfgArray[] = { { "sys","mfo", _fipn,3, cm_print_mfo, get_flt,cm_set_mfo,(float *)&cm.gmx.mfo_factor, FEED_OVERRIDE_FACTOR}, { "sys","mtoe",_fipn,0, cm_print_mtoe,get_ui8, set_01, (float *)&cm.gmx.mto_enable, TRAVERSE_OVERRIDE_ENABLE}, { "sys","mto", _fipn,3, cm_print_mto, get_flt,cm_set_mto,(float *)&cm.gmx.mto_factor, TRAVERSE_OVERRIDE_FACTOR}, - { "sys","mt", _fipn,2, st_print_mt, get_flt, st_set_mt,(float *)&st_cfg.motor_power_timeout, MOTOR_POWER_TIMEOUT}, - { "", "me", _f0, 0, st_print_me, get_nul, st_set_me,(float *)&cs.null, 0 }, // GET or SET to enable motors - { "", "md", _f0, 0, st_print_md, get_nul, st_set_md,(float *)&cs.null, 0 }, // GET or SET to disable motors + + // Power management + { "sys","mt", _fipn,2, st_print_mt, get_flt, st_set_mt, (float *)&st_cfg.motor_power_timeout, MOTOR_POWER_TIMEOUT}, + { "", "me", _f0, 0, st_print_me, st_set_me, st_set_me,(float *)&cs.null, 0 }, // SET to enable motors (null value sets to maintain compatability) + { "", "md", _f0, 0, st_print_md, st_set_md, st_set_md,(float *)&cs.null, 0 }, // SET to disable motors (null value sets to maintain compatability) // Spindle functions { "sys","spep",_fipn,0, cm_print_spep,get_ui8, set_01, (float *)&spindle.enable_polarity, SPINDLE_ENABLE_POLARITY }, diff --git a/g2core/settings/settings_shapeoko2.h b/g2core/settings/settings_shapeoko2.h index 9d0bea3e..302ab860 100644 --- a/g2core/settings/settings_shapeoko2.h +++ b/g2core/settings/settings_shapeoko2.h @@ -54,6 +54,7 @@ // Communications and reporting settings +#define USB_SERIAL_PORTS_EXPOSED 2 // 1=single endpoint usb, 2=dual endpoint usb #define COMM_MODE JSON_MODE // one of: TEXT_MODE, JSON_MODE #define XIO_ENABLE_FLOW_CONTROL FLOW_CONTROL_RTS // FLOW_CONTROL_OFF, FLOW_CONTROL_RTS @@ -101,21 +102,13 @@ #define M2_POWER_MODE MOTOR_POWER_MODE #define M2_POWER_LEVEL 0.500 -#define M3_MOTOR_MAP AXIS_Y +#define M3_MOTOR_MAP AXIS_Z #define M3_STEP_ANGLE 1.8 -#define M3_TRAVEL_PER_REV 40.00 +#define M3_TRAVEL_PER_REV 1.25 #define M3_MICROSTEPS 8 -#define M3_POLARITY 1 +#define M3_POLARITY 0 #define M3_POWER_MODE MOTOR_POWER_MODE -#define M3_POWER_LEVEL 0.500 - -#define M4_MOTOR_MAP AXIS_Z -#define M4_STEP_ANGLE 1.8 -#define M4_TRAVEL_PER_REV 1.25 -#define M4_MICROSTEPS 8 -#define M4_POLARITY 0 -#define M4_POWER_MODE MOTOR_POWER_MODE -#define M4_POWER_LEVEL 0.750 +#define M3_POWER_LEVEL 0.750 // *** axis settings ********************************************************************************** diff --git a/g2core/settings/settings_shapeoko2dualY.h b/g2core/settings/settings_shapeoko2dualY.h new file mode 100644 index 00000000..3f518c4c --- /dev/null +++ b/g2core/settings/settings_shapeoko2dualY.h @@ -0,0 +1,233 @@ +/* + * settings_shapeoko2dualY.h - Shapeoko2 500mm table + * This file is part of the g2core project + * + * Copyright (c) 2010 - 2016 Alden S. Hart, Jr. + * + * This file ("the software") is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License, version 2 as published by the + * Free Software Foundation. You should have received a copy of the GNU General Public + * License, version 2 along with the software. If not, see . + * + * As a special exception, you may use this file as part of a software library without + * restriction. Specifically, if other files instantiate templates or use macros or + * inline functions from this file, or you compile this file and link it with other + * files to produce an executable, this file does not by itself cause the resulting + * executable to be covered by the GNU General Public License. This exception does not + * however invalidate any other reasons why the executable file might be covered by the + * GNU General Public License. + * + * THE SOFTWARE IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT WITHOUT ANY + * WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT + * SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +/***********************************************************************/ +/**** Shapeoko2 500mm profile ******************************************/ +/***********************************************************************/ + +// ***> NOTE: The init message must be a single line with no CRs or LFs +#define INIT_MESSAGE "Initializing configs to Shapeoko2 500mm profile" + +//**** GLOBAL / GENERAL SETTINGS ****************************************************** + +// Machine configuration settings + +#define JUNCTION_INTEGRATION_TIME 0.75 // cornering - between 0.10 and 2.00 (higher is faster) +#define CHORDAL_TOLERANCE 0.01 // chordal tolerance for arcs (in mm) + +#define SOFT_LIMIT_ENABLE 0 // 0=off, 1=on +#define HARD_LIMIT_ENABLE 0 // 0=off, 1=on +#define SAFETY_INTERLOCK_ENABLE 1 // 0=off, 1=on + +#define SPINDLE_ENABLE_POLARITY 1 // 0=active low, 1=active high +#define SPINDLE_DIR_POLARITY 0 // 0=clockwise is low, 1=clockwise is high +#define SPINDLE_PAUSE_ON_HOLD true +#define SPINDLE_DWELL_TIME 1.0 + +#define COOLANT_MIST_POLARITY 1 // 0=active low, 1=active high +#define COOLANT_FLOOD_POLARITY 1 // 0=active low, 1=active high +#define COOLANT_PAUSE_ON_HOLD false + +// Communications and reporting settings + +#define USB_SERIAL_PORTS_EXPOSED 2 // 1=single endpoint usb, 2=dual endpoint usb +#define COMM_MODE JSON_MODE // one of: TEXT_MODE, JSON_MODE +#define XIO_ENABLE_FLOW_CONTROL FLOW_CONTROL_RTS // FLOW_CONTROL_OFF, FLOW_CONTROL_RTS + +#define TEXT_VERBOSITY TV_VERBOSE // one of: TV_SILENT, TV_VERBOSE +#define JSON_VERBOSITY JV_MESSAGES // one of: JV_SILENT, JV_FOOTER, JV_CONFIGS, JV_MESSAGES, JV_LINENUM, JV_VERBOSE +#define QUEUE_REPORT_VERBOSITY QR_OFF // one of: QR_OFF, QR_SINGLE, QR_TRIPLE + +#define STATUS_REPORT_VERBOSITY SR_FILTERED // one of: SR_OFF, SR_FILTERED, SR_VERBOSE + +#define STATUS_REPORT_MIN_MS 100 // milliseconds - enforces a viable minimum +#define STATUS_REPORT_INTERVAL_MS 250 // milliseconds - set $SV=0 to disable + +//#define STATUS_REPORT_DEFAULTS "line","posx","posy","posz","posa","feed","vel","unit","coor","dist","admo","frmo","momo","stat" +#define STATUS_REPORT_DEFAULTS "line","posx","posy","posz","feed","vel","momo","stat" + +// Alternate SRs that report in drawable units +//#define STATUS_REPORT_DEFAULTS "line","vel","mpox","mpoy","mpoz","mpoa","coor","ofsa","ofsx","ofsy","ofsz","dist","unit","stat","homz","homy","homx","momo" +//#define STATUS_REPORT_DEFAULTS "_ts1","_cs1","_es1","_xs1","_fe1","line","posx","posy","posz","vel","stat" + +// Gcode startup defaults +#define GCODE_DEFAULT_UNITS MILLIMETERS // MILLIMETERS or INCHES +#define GCODE_DEFAULT_PLANE CANON_PLANE_XY // CANON_PLANE_XY, CANON_PLANE_XZ, or CANON_PLANE_YZ +#define GCODE_DEFAULT_COORD_SYSTEM G54 // G54, G55, G56, G57, G58 or G59 +#define GCODE_DEFAULT_PATH_CONTROL PATH_CONTINUOUS +#define GCODE_DEFAULT_DISTANCE_MODE ABSOLUTE_DISTANCE_MODE + +// *** motor settings ************************************************************************************ + +#define MOTOR_POWER_MODE MOTOR_POWERED_IN_CYCLE // default motor power mode (see cmMotorPowerMode in stepper.h) +#define MOTOR_POWER_TIMEOUT 2.00 // motor power timeout in seconds + +#define M1_MOTOR_MAP AXIS_X // 1ma +#define M1_STEP_ANGLE 1.8 // 1sa +#define M1_TRAVEL_PER_REV 40.00 // 1tr +#define M1_MICROSTEPS 8 // 1mi 1,2,4,8,16,32 +#define M1_POLARITY 0 // 1po 0=normal, 1=reversed +#define M1_POWER_MODE MOTOR_POWER_MODE // 1pm TRUE=low power idle enabled +#define M1_POWER_LEVEL 0.500 + +#define M2_MOTOR_MAP AXIS_Y +#define M2_STEP_ANGLE 1.8 +#define M2_TRAVEL_PER_REV 40.00 +#define M2_MICROSTEPS 8 +#define M2_POLARITY 0 +#define M2_POWER_MODE MOTOR_POWER_MODE +#define M2_POWER_LEVEL 0.500 + +#define M3_MOTOR_MAP AXIS_Y +#define M3_STEP_ANGLE 1.8 +#define M3_TRAVEL_PER_REV 40.00 +#define M3_MICROSTEPS 8 +#define M3_POLARITY 1 +#define M3_POWER_MODE MOTOR_POWER_MODE +#define M3_POWER_LEVEL 0.500 + +#define M4_MOTOR_MAP AXIS_Z +#define M4_STEP_ANGLE 1.8 +#define M4_TRAVEL_PER_REV 1.25 +#define M4_MICROSTEPS 8 +#define M4_POLARITY 0 +#define M4_POWER_MODE MOTOR_POWER_MODE +#define M4_POWER_LEVEL 0.750 + +// *** axis settings ********************************************************************************** + +#define JERK_MAX 5000 + +#define X_AXIS_MODE AXIS_STANDARD // xam see canonical_machine.h cmAxisMode for valid values +#define X_VELOCITY_MAX 50000 // xvm G0 max velocity in mm/min +#define X_FEEDRATE_MAX X_VELOCITY_MAX // xfr G1 max feed rate in mm/min +#define X_TRAVEL_MIN 0 // xtn minimum travel for soft limits +#define X_TRAVEL_MAX 420 // xtm travel between switches or crashes +#define X_JERK_MAX JERK_MAX // xjm jerk * 1,000,000 +#define X_JERK_HIGH_SPEED 20000 // xjh +#define X_HOMING_INPUT 1 // xhi input used for homing or 0 to disable +#define X_HOMING_DIRECTION 0 // xhd 0=search moves negative, 1= search moves positive +#define X_SEARCH_VELOCITY 3000 // xsv minus means move to minimum switch +#define X_LATCH_VELOCITY 100 // xlv mm/min +#define X_LATCH_BACKOFF 4 // xlb mm +#define X_ZERO_BACKOFF 2 // xzb mm + +#define Y_AXIS_MODE AXIS_STANDARD +#define Y_VELOCITY_MAX 50000 +#define Y_FEEDRATE_MAX Y_VELOCITY_MAX +#define Y_TRAVEL_MIN 0 +#define Y_TRAVEL_MAX 420 +#define Y_JERK_MAX JERK_MAX +#define Y_JERK_HIGH_SPEED 20000 +#define Y_HOMING_INPUT 3 +#define Y_HOMING_DIRECTION 0 +#define Y_SEARCH_VELOCITY 3000 +#define Y_LATCH_VELOCITY 100 +#define Y_LATCH_BACKOFF 4 +#define Y_ZERO_BACKOFF 2 + +#define Z_AXIS_MODE AXIS_STANDARD +#define Z_VELOCITY_MAX 1200 +#define Z_FEEDRATE_MAX Z_VELOCITY_MAX +#define Z_TRAVEL_MAX 0 +#define Z_TRAVEL_MIN -95 +#define Z_JERK_MAX 500 +#define Z_JERK_HIGH_SPEED 1000 +#define Z_HOMING_INPUT 6 +#define Z_HOMING_DIRECTION 1 +#define Z_SEARCH_VELOCITY (Z_VELOCITY_MAX * 0.66666) +#define Z_LATCH_VELOCITY 25 +#define Z_LATCH_BACKOFF 4 +#define Z_ZERO_BACKOFF 2 + +//*** Input / output settings *** +/* + IO_MODE_DISABLED + IO_ACTIVE_LOW aka NORMALLY_OPEN + IO_ACTIVE_HIGH aka NORMALLY_CLOSED + + INPUT_ACTION_NONE + INPUT_ACTION_STOP + INPUT_ACTION_FAST_STOP + INPUT_ACTION_HALT + INPUT_ACTION_RESET + + INPUT_FUNCTION_NONE + INPUT_FUNCTION_LIMIT + INPUT_FUNCTION_INTERLOCK + INPUT_FUNCTION_SHUTDOWN + INPUT_FUNCTION_PANIC +*/ +// Xmin on v9 board +#define DI1_MODE NORMALLY_CLOSED +//#define DI1_ACTION INPUT_ACTION_STOP +#define DI1_ACTION INPUT_ACTION_NONE +#define DI1_FUNCTION INPUT_FUNCTION_LIMIT + +// Xmax +#define DI2_MODE NORMALLY_CLOSED +//#define DI2_ACTION INPUT_ACTION_STOP +#define DI2_ACTION INPUT_ACTION_NONE +#define DI2_FUNCTION INPUT_FUNCTION_LIMIT + +// Ymin +#define DI3_MODE NORMALLY_CLOSED +//#define DI3_ACTION INPUT_ACTION_STOP +#define DI3_ACTION INPUT_ACTION_NONE +#define DI3_FUNCTION INPUT_FUNCTION_LIMIT + +// Ymax +#define DI4_MODE NORMALLY_CLOSED +//#define DI4_ACTION INPUT_ACTION_STOP +#define DI4_ACTION INPUT_ACTION_NONE +#define DI4_FUNCTION INPUT_FUNCTION_LIMIT + +// Zmin +#define DI5_MODE IO_ACTIVE_HIGH // Z probe +#define DI5_ACTION INPUT_ACTION_NONE +#define DI5_FUNCTION INPUT_FUNCTION_NONE + +// Zmax +#define DI6_MODE NORMALLY_CLOSED +//#define DI6_ACTION INPUT_ACTION_STOP +#define DI6_ACTION INPUT_ACTION_NONE +#define DI6_FUNCTION INPUT_FUNCTION_LIMIT + +// Amin +#define DI7_MODE IO_MODE_DISABLED +#define DI7_ACTION INPUT_ACTION_NONE +#define DI7_FUNCTION INPUT_FUNCTION_NONE + +// Amax +#define DI8_MODE IO_MODE_DISABLED +#define DI8_ACTION INPUT_ACTION_NONE +#define DI8_FUNCTION INPUT_FUNCTION_NONE + +// Hardware interlock input +#define DI9_MODE IO_MODE_DISABLED +#define DI9_ACTION INPUT_ACTION_NONE +#define DI9_FUNCTION INPUT_FUNCTION_NONE From 864560339c8907a2cae3be3edf0154a53a49bae4 Mon Sep 17 00:00:00 2001 From: Rob Giseburt Date: Wed, 5 Apr 2017 14:33:25 -0500 Subject: [PATCH 02/14] Adjust temperature.cpp to allow a different timeout for the heat bed, and adjust the thermistor settings for the third heater (the bed). --- g2core/temperature.cpp | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/g2core/temperature.cpp b/g2core/temperature.cpp index ebb3fccc..1e377627 100755 --- a/g2core/temperature.cpp +++ b/g2core/temperature.cpp @@ -84,8 +84,11 @@ #ifndef TEMP_MIN_RISE_DEGREES_OVER_TIME #define TEMP_MIN_RISE_DEGREES_OVER_TIME (float)10.0 #endif +#ifndef TEMP_MIN_BED_RISE_DEGREES_OVER_TIME +#define TEMP_MIN_BED_RISE_DEGREES_OVER_TIME (float)3.0 +#endif #ifndef TEMP_MIN_RISE_TIME -#define TEMP_MIN_RISE_TIME (float)(60.0 * 1000.0) // 20 seconds +#define TEMP_MIN_RISE_TIME (float)(60.0 * 1000.0) // one minute #endif #ifndef TEMP_MIN_RISE_DEGREES_FROM_TARGET #define TEMP_MIN_RISE_DEGREES_FROM_TARGET (float)10.0 @@ -230,8 +233,8 @@ void ADCPin::interrupt() { // Heated bed Thermistor thermistor3 { - /*T1:*/ 20.0, /*T2:*/ 190.0, /*T3:*/ 255.0, - /*R1:*/ 140000.0, /*R2:*/ 490.0, /*R3:*/ 109.0, /*pullup_resistance:*/ 4700, /*inline_resistance:*/ 4700 + /*T1:*/ 20.0, /*T2:*/ 42.0, /*T3:*/ 76.0, + /*R1:*/ 140000.0, /*R2:*/ 36755.0, /*R3:*/ 10000.0, /*pullup_resistance:*/ 4700, /*inline_resistance:*/ 4700 }; #if ADC0_AVAILABLE == 1 namespace Motate { @@ -331,11 +334,12 @@ struct PID { bool _at_set_point; Timeout _rise_time_timeout; // used to keep track of if we are increasing temperature fast enough + float _min_rise_over_time; // the amount of degrees that it must rise in the given time float _rise_time_checkpoint; // when we start the timer, we set _rise_time_checkpoint to the minimum goal bool _enable; // set true to enable this heater - PID(float P, float I, float D, float startSetPoint = 0.0) : _p_factor{P/100.0f}, _i_factor{I/100.0f}, _d_factor{D/100.0f}, _set_point{startSetPoint}, _at_set_point{false} {}; + PID(float P, float I, float D, float min_rise_over_time, float startSetPoint = 0.0) : _p_factor{P/100.0f}, _i_factor{I/100.0f}, _d_factor{D/100.0f}, _set_point{startSetPoint}, _at_set_point{false}, _min_rise_over_time(min_rise_over_time) {}; float getNewOutput(float input) { // If the input is < 0, the sensor failed @@ -380,7 +384,7 @@ struct PID { if (!_rise_time_timeout.isSet() && (_set_point > (input + TEMP_MIN_RISE_DEGREES_FROM_TARGET))) { _rise_time_timeout.set(TEMP_MIN_RISE_TIME); - _rise_time_checkpoint = min(input + TEMP_MIN_RISE_DEGREES_OVER_TIME, _set_point + TEMP_SETPOINT_HYSTERESIS); + _rise_time_checkpoint = min(input + _min_rise_over_time, _set_point + TEMP_SETPOINT_HYSTERESIS); } } @@ -437,9 +441,9 @@ struct PID { // NOTICE, the JSON alters incoming values for these! // {he1p:9} == 9.0/100.0 here -PID pid1 { 9.0, 0.11, 400.0 }; // default values -PID pid2 { 7.5, 0.12, 400.0 }; // default values -PID pid3 { 7.5, 0.12, 400.0 }; // default values +PID pid1 { 9.0, 0.11, 400.0, TEMP_MIN_RISE_DEGREES_OVER_TIME }; // default values +PID pid2 { 7.5, 0.12, 400.0, TEMP_MIN_RISE_DEGREES_OVER_TIME }; // default values +PID pid3 { 7.5, 0.12, 400.0, TEMP_MIN_BED_RISE_DEGREES_OVER_TIME }; // default values Timeout pid_timeout; From 928940e79daa47b60decccbe732ec250618b491c Mon Sep 17 00:00:00 2001 From: Rob Giseburt Date: Wed, 5 Apr 2017 14:34:15 -0500 Subject: [PATCH 03/14] Adjust the Simple 1608 settings to enable H3, report on `he3` changes, and fix a small typo. --- g2core/settings/settings_Printrbot_Simple_1608.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/g2core/settings/settings_Printrbot_Simple_1608.h b/g2core/settings/settings_Printrbot_Simple_1608.h index 8fc30ccc..40dceaa1 100644 --- a/g2core/settings/settings_Printrbot_Simple_1608.h +++ b/g2core/settings/settings_Printrbot_Simple_1608.h @@ -71,7 +71,7 @@ #define STATUS_REPORT_INTERVAL_MS 250 // milliseconds - set $SV=0 to disable // Defaults for 3DP -#define STATUS_REPORT_DEFAULTS "line","posx","posy","posz","posa","vel","he1t","he1st","he1at","feed","unit","path","stat" +#define STATUS_REPORT_DEFAULTS "line","posx","posy","posz","posa","vel","he1t","he1st","he1at","he1op","he3t","he3st","he3at","he3op","feed","unit","path","stat" // There are no heater two or three, but these would show those: ,"he2t","he2st","he2at","he3t","he3st","he3at" // Defaults for motion debugging @@ -355,7 +355,7 @@ /*** Extruders / Heaters ***/ -#define MIX_FAN_VALUE 0.4 // (he1fm) at MIN_FAN_TEMP the fan comes on at this spped (0.0-1.0) +#define MIN_FAN_VALUE 0.4 // (he1fm) at MIN_FAN_TEMP the fan comes on at this spped (0.0-1.0) #define MAX_FAN_VALUE 0.75 // (he1fp) at MAX_FAN_TEMP the fan is at this spped (0.0-1.0) #define MIN_FAN_TEMP 50.0 // (he1fl) at this temp the fan starts to ramp up linearly #define MAX_FAN_TEMP 100.0 // (he1fh) at this temperature the fan is at "full speed" (MAX_FAN_VALUE) @@ -370,7 +370,7 @@ #define H2_DEFAULT_I 0.05 #define H2_DEFAULT_D 150.0 -#define H3_DEFAULT_ENABLE false +#define H3_DEFAULT_ENABLE true #define H3_DEFAULT_P 9.0 #define H3_DEFAULT_I 0.12 #define H3_DEFAULT_D 400.0 From fd4f1d7933f842e28b96fbfafc38938c7cdc7605 Mon Sep 17 00:00:00 2001 From: Rob Giseburt Date: Wed, 5 Apr 2017 17:06:02 -0500 Subject: [PATCH 04/14] Merged dev-261-simple-heat-bed - fixes #261 --- g2core/g2core_info.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/g2core/g2core_info.h b/g2core/g2core_info.h index a9386e75..c628b035 100644 --- a/g2core/g2core_info.h +++ b/g2core/g2core_info.h @@ -21,7 +21,7 @@ #ifndef G2CORE_INFO_H_ONCE #define G2CORE_INFO_H_ONCE -#define G2CORE_FIRMWARE_BUILD 100.23 // Merged dev-227-marlin-compat - see #227 and #244 +#define G2CORE_FIRMWARE_BUILD 100.24 // Merged dev-261-simple-heat-bed - see #261 #ifdef GIT_VERSION #define G2CORE_FIRMWARE_BUILD_STRING GIT_VERSION #else From c7c8728327ddff132712849f29cfef6784adfe0d Mon Sep 17 00:00:00 2001 From: Dan211 Date: Sun, 9 Apr 2017 17:33:06 -0400 Subject: [PATCH 05/14] ? --- g2core/board/ArduinoDue/gShield-pinout.h | 275 ----------------------- 1 file changed, 275 deletions(-) delete mode 100755 g2core/board/ArduinoDue/gShield-pinout.h diff --git a/g2core/board/ArduinoDue/gShield-pinout.h b/g2core/board/ArduinoDue/gShield-pinout.h deleted file mode 100755 index 922eadaa..00000000 --- a/g2core/board/ArduinoDue/gShield-pinout.h +++ /dev/null @@ -1,275 +0,0 @@ -/* - * motate_pin_assignments.h - pin assignments for g2 v9 boards - * This file is part of the g2core project - * - * Copyright (c) 2013 - 2016 Robert Giseburt - * Copyright (c) 2013 - 2016 Alden S. Hart Jr. - * - * This file is part of the Motate Library. - * - * This file ("the software") is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License, version 2 as published by the - * Free Software Foundation. You should have received a copy of the GNU General Public - * License, version 2 along with the software. If not, see . - * - * As a special exception, you may use this file as part of a software library without - * restriction. Specifically, if other files instantiate templates or use macros or - * inline functions from this file, or you compile this file and link it with other - * files to produce an executable, this file does not by itself cause the resulting - * executable to be covered by the GNU General Public License. This exception does not - * however invalidate any other reasons why the executable file might be covered by the - * GNU General Public License. - * - * THE SOFTWARE IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT WITHOUT ANY - * WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES - * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT - * SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF - * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - */ - -#ifndef gShield_pinout_h -#define gShield_pinout_h - -#include - -// NOTE: This is a terrible example of a *-pinout.h file! -// This one is assigned backward in order to match the numbering on the Due. -// When making your own board, please use one of the other boards as an example -// of how to assign names to the pins. - -// We don't have all of the inputs, so we don't define them. -#define INPUT1_AVAILABLE 1 -#define INPUT2_AVAILABLE 1 -#define INPUT3_AVAILABLE 1 -#define INPUT4_AVAILABLE 1 -#define INPUT5_AVAILABLE 1 -#define INPUT6_AVAILABLE 1 -#define INPUT7_AVAILABLE 1 -#define INPUT8_AVAILABLE 1 -#define INPUT9_AVAILABLE 1 -#define INPUT10_AVAILABLE 1 -#define INPUT11_AVAILABLE 1 -#define INPUT12_AVAILABLE 1 -#define INPUT13_AVAILABLE 0 - -#define ADC0_AVAILABLE 0 -#define ADC1_AVAILABLE 0 -#define ADC2_AVAILABLE 0 -#define ADC3_AVAILABLE 0 - -#define XIO_HAS_USB 1 -#define XIO_HAS_UART 0 -#define XIO_HAS_SPI 0 -#define XIO_HAS_I2C 0 - -#define TEMPERATURE_OUTPUT_ON 0 - -// Some pins, if the PWM capability is turned on, it will cause timer conflicts. -// So we have to explicity enable them as PWM pins. -// Generated with: -// perl -e 'for($i=1;$i<14;$i++) { print "#define OUTPUT${i}_PWM 0\n";}' -#define OUTPUT1_PWM 0 -#define OUTPUT2_PWM 0 -#define OUTPUT3_PWM 0 -#define OUTPUT4_PWM 0 -#define OUTPUT5_PWM 0 -#define OUTPUT6_PWM 0 -#define OUTPUT7_PWM 0 -#define OUTPUT8_PWM 0 -#define OUTPUT9_PWM 0 -#define OUTPUT10_PWM 0 -#define OUTPUT11_PWM 0 -#define OUTPUT12_PWM 0 -#define OUTPUT13_PWM 0 - -namespace Motate { - -// NOT ALL OF THESE PINS ARE ON ALL PLATFORMS -// Undefined pins will be equivalent to Motate::NullPin, and return 1 for Pin<>::isNull(); - -pin_number kSerial_RXPinNumber = 0; -pin_number kSerial_TXPinNumber = 1; -// pin_number kSerial_RTSPinNumber = 8; // added later -// pin_number kSerial_CTSPinNumber = 9; // added later - -pin_number kSerial0_RX = 0; -pin_number kSerial0_TX = 1; -// pin_number kSerial0_RTS = 8; // added later -// pin_number kSerial0_CTS = 9; // added later - -pin_number kI2C_SDAPinNumber = 20; -pin_number kI2C_SCLPinNumber = 21; - -pin_number kI2C0_SDAPinNumber = 20; -pin_number kI2C0_SCLPinNumber = 21; - -pin_number kSPI_SCKPinNumber = 76; -pin_number kSPI_MISOPinNumber = 74; -pin_number kSPI_MOSIPinNumber = 75; - -pin_number kSPI0_SCKPinNumber = 76; -pin_number kSPI0_MISOPinNumber = 74; -pin_number kSPI0_MOSIPinNumber = 75; - -// pin_number kX_StepPinNumber = 53; -// pin_number kX_DirPinNumber = 52; -// pin_number kX_EnablePinNumber = -1; -// -// pin_number kY_StepPinNumber = 51; -// pin_number kY_DirPinNumber = 50; -// pin_number kY_EnablePinNumber = -1; -// -// pin_number kZ_StepPinNumber = 49; -// pin_number kZ_DirPinNumber = 48; -// pin_number kZ_EnablePinNumber = -1; - -pin_number kDebug1_PinNumber = 49; -pin_number kDebug2_PinNumber = 47; -pin_number kDebug3_PinNumber = 45; -pin_number kDebug4_PinNumber = -1; - -pin_number kKinen_SyncPinNumber = 53; - -pin_number kSocket1_SPISlaveSelectPinNumber = -1; // 10; -pin_number kSocket1_InterruptPinNumber = -1; -pin_number kSocket1_StepPinNumber = 2; -pin_number kSocket1_DirPinNumber = 5; -pin_number kSocket1_EnablePinNumber = 8; // Workaround for kGRBL_CommonEnablePinNumber not working (22 is default value) -pin_number kSocket1_Microstep_0PinNumber = 23; -pin_number kSocket1_Microstep_1PinNumber = 24; -pin_number kSocket1_Microstep_2PinNumber = -1; -pin_number kSocket1_VrefPinNumber = -1; // 34; //PWMTimer<0> - -pin_number kSocket2_SPISlaveSelectPinNumber = 65; -pin_number kSocket2_InterruptPinNumber = -1; -pin_number kSocket2_StepPinNumber = 3; -pin_number kSocket2_DirPinNumber = 6; -pin_number kSocket2_EnablePinNumber = 25; -pin_number kSocket2_Microstep_0PinNumber = 26; -pin_number kSocket2_Microstep_1PinNumber = 27; -pin_number kSocket2_Microstep_2PinNumber = -1; -pin_number kSocket2_VrefPinNumber = -1; // 62; //PWMTimer<1> - -pin_number kSocket3_SPISlaveSelectPinNumber = 52; -pin_number kSocket3_InterruptPinNumber = -1; -pin_number kSocket3_StepPinNumber = 4; -pin_number kSocket3_DirPinNumber = 7; -pin_number kSocket3_EnablePinNumber = 28; -pin_number kSocket3_Microstep_0PinNumber = 29; -pin_number kSocket3_Microstep_1PinNumber = 30; -pin_number kSocket3_Microstep_2PinNumber = -1; -pin_number kSocket3_VrefPinNumber = -1; // 63; //PWMTimer<2> - -pin_number kSocket4_SPISlaveSelectPinNumber = 77; -pin_number kSocket4_InterruptPinNumber = -1; -pin_number kSocket4_StepPinNumber = 31; -pin_number kSocket4_DirPinNumber = 32; -pin_number kSocket4_EnablePinNumber = 33; -pin_number kSocket4_Microstep_0PinNumber = 35; -pin_number kSocket4_Microstep_1PinNumber = 36; -pin_number kSocket4_Microstep_2PinNumber = -1; -pin_number kSocket4_VrefPinNumber = -1; // 64; //PWMTimer<3> - -pin_number kSocket5_SPISlaveSelectPinNumber = 78; -pin_number kSocket5_InterruptPinNumber = -1; -pin_number kSocket5_StepPinNumber = 37; -pin_number kSocket5_DirPinNumber = 38; -pin_number kSocket5_EnablePinNumber = 39; -pin_number kSocket5_Microstep_0PinNumber = 40; -pin_number kSocket5_Microstep_1PinNumber = 41; -pin_number kSocket5_Microstep_2PinNumber = -1; -pin_number kSocket5_VrefPinNumber = -1; // 66; //PWMTimer<3> - -pin_number kSocket6_SPISlaveSelectPinNumber = 50; -pin_number kSocket6_InterruptPinNumber = -1; -pin_number kSocket6_StepPinNumber = 42; -pin_number kSocket6_DirPinNumber = 43; -pin_number kSocket6_EnablePinNumber = 44; -pin_number kSocket6_Microstep_0PinNumber = -1; // 45; -pin_number kSocket6_Microstep_1PinNumber = 46; -pin_number kSocket6_Microstep_2PinNumber = -1; -pin_number kSocket6_VrefPinNumber = -1; // 67; //PWMTimer<0> - - -pin_number kInput1_PinNumber = 14; -pin_number kInput2_PinNumber = 15; -pin_number kInput3_PinNumber = 16; -pin_number kInput4_PinNumber = 17; -pin_number kInput5_PinNumber = 18; -pin_number kInput6_PinNumber = 19; - -pin_number kInput7_PinNumber = 58; -pin_number kInput8_PinNumber = 59; -pin_number kInput9_PinNumber = 60; -pin_number kInput10_PinNumber = 61; -pin_number kInput11_PinNumber = 65; -pin_number kInput12_PinNumber = 51; - -pin_number kSpindle_EnablePinNumber = 12; -pin_number kSpindle_DirPinNumber = 13; -pin_number kSpindle_PwmPinNumber = 11; -pin_number kSpindle_Pwm2PinNumber = 9; -pin_number kCoolant_EnablePinNumber = 57; - -pin_number kSD_CardDetectPinNumber = -1; -pin_number kInterlock_InPinNumber = -1; -pin_number kOutputSAFE_PinNumber = -1; // SAFE signal - -pin_number kLED_USBRXPinNumber = 72; -pin_number kLED_USBTXPinNumber = 73; - - -pin_number kOutput1_PinNumber = -1; // DO_1: Extruder1_PWM -pin_number kOutput2_PinNumber = -1; // DO_2: Extruder2_PWM -pin_number kOutput3_PinNumber = -1; // DO_3: Fan1A_PWM -pin_number kOutput4_PinNumber = -1; // DO_4: Fan1B_PWM -pin_number kOutput5_PinNumber = -1; // DO_5: Fan2A_PWM - -pin_number kOutput6_PinNumber = -1; // 135; // See Spindle Enable -pin_number kOutput7_PinNumber = -1; // 136; // See Spindle Direction -pin_number kOutput8_PinNumber = -1; // 137; // See Coolant Enable -pin_number kOutput9_PinNumber = -1; // -pin_number kOutput10_PinNumber = -1; // DO_10: Fan2B_PWM - -pin_number kOutput11_PinNumber = -1; // DO_11: Heted Bed FET -pin_number kOutput12_PinNumber = -1; // DO_12: Indicator_LED -pin_number kOutput13_PinNumber = -1; // 142; -pin_number kOutput14_PinNumber = -1; // 143; -pin_number kOutput15_PinNumber = -1; // 144; -pin_number kOutput16_PinNumber = -1; // 145; - -pin_number kADC0_PinNumber = -1; // Heated bed thermistor ADC -pin_number kADC1_PinNumber = -1; // Extruder1_ADC -pin_number kADC2_PinNumber = -1; // Extruder2_ADC -pin_number kADC3_PinNumber = -1; // 153; -pin_number kADC4_PinNumber = -1; // 154; -pin_number kADC5_PinNumber = -1; // 155; -pin_number kADC6_PinNumber = -1; // 156; -pin_number kADC7_PinNumber = -1; // 157; -pin_number kADC8_PinNumber = -1; // 158; -pin_number kADC9_PinNumber = -1; // 159; -pin_number kADC10_PinNumber = -1; // 160; -pin_number kADC11_PinNumber = -1; // 161; -pin_number kADC12_PinNumber = -1; // 162; -pin_number kADC13_PinNumber = -1; // Not physially pinned out -pin_number kADC14_PinNumber = -1; // Not physially pinned out - - -// GRBL / gShield compatibility pins -- Due board ONLY -// NOTE: These dont appear to work -pin_number kGRBL_ResetPinNumber = 54; -pin_number kGRBL_FeedHoldPinNumber = 55; -pin_number kGRBL_CycleStartPinNumber = 56; - -pin_number kGRBL_CommonEnablePinNumber = -1; - -/** NOTE: When adding pin definitions here, they must be - * added to ALL board pin assignment files, even if - * they are defined as -1. - **/ - -} // namespace Motate - -#endif From 9fe3aac5a10e21a4658c9c5b718b12d2ee48494b Mon Sep 17 00:00:00 2001 From: Alden Hart Date: Mon, 10 Apr 2017 08:18:17 -0400 Subject: [PATCH 06/14] Fixed issue #263 - G10 L20 commands not working --- g2core/g2core.cppproj | 4 +-- g2core/gcode_parser.cpp | 37 ++++++++++++++-------------- g2core/marlin_compatibility.h | 2 +- g2core/settings/settings_makeblock.h | 2 +- g2core/xio.cpp | 23 +++++++++-------- g2core/xio.h | 6 ++--- 6 files changed, 37 insertions(+), 37 deletions(-) mode change 100755 => 100644 g2core/xio.h diff --git a/g2core/g2core.cppproj b/g2core/g2core.cppproj index 5286ede4..9842edf3 100644 --- a/g2core/g2core.cppproj +++ b/g2core/g2core.cppproj @@ -73,7 +73,7 @@ SWD com.atmel.avrdbg.tool.atmelice - J41800036434 + J41800030015 Atmel-ICE True @@ -100,7 +100,7 @@ True true - J41800036434 + J41800030015 0x284E0A60 10000000 diff --git a/g2core/gcode_parser.cpp b/g2core/gcode_parser.cpp index 2005f9e9..a2c6e68f 100644 --- a/g2core/gcode_parser.cpp +++ b/g2core/gcode_parser.cpp @@ -1003,37 +1003,38 @@ stat_t _execute_gcode_block(char *active_comment) //--> set retract mode goes here switch (gv.next_action) { - case NEXT_ACTION_SET_G28_POSITION: { status = cm_set_g28_position(); break;} // G28.1 - case NEXT_ACTION_GOTO_G28_POSITION: { status = cm_goto_g28_position(gv.target, gf.target); break;} // G28 - case NEXT_ACTION_SET_G30_POSITION: { status = cm_set_g30_position(); break;} // G30.1 - case NEXT_ACTION_GOTO_G30_POSITION: { status = cm_goto_g30_position(gv.target, gf.target); break;} // G30 + case NEXT_ACTION_SET_G28_POSITION: { status = cm_set_g28_position(); break;} // G28.1 + case NEXT_ACTION_GOTO_G28_POSITION: { status = cm_goto_g28_position(gv.target, gf.target); break;} // G28 + case NEXT_ACTION_SET_G30_POSITION: { status = cm_set_g30_position(); break;} // G30.1 + case NEXT_ACTION_GOTO_G30_POSITION: { status = cm_goto_g30_position(gv.target, gf.target); break;} // G30 - case NEXT_ACTION_SEARCH_HOME: { status = cm_homing_cycle_start(gv.target, gf.target); break;} // G28.2 - case NEXT_ACTION_SET_ABSOLUTE_ORIGIN: { status = cm_set_absolute_origin(gv.target, gf.target); break;} // G28.3 - case NEXT_ACTION_HOMING_NO_SET: { status = cm_homing_cycle_start_no_set(gv.target, gf.target); break;} // G28.4 + case NEXT_ACTION_SEARCH_HOME: { status = cm_homing_cycle_start(gv.target, gf.target); break;} // G28.2 + case NEXT_ACTION_SET_ABSOLUTE_ORIGIN: { status = cm_set_absolute_origin(gv.target, gf.target); break;} // G28.3 + case NEXT_ACTION_HOMING_NO_SET: { status = cm_homing_cycle_start_no_set(gv.target, gf.target); break;}// G28.4 case NEXT_ACTION_STRAIGHT_PROBE_ERR: { status = cm_straight_probe(gv.target, gf.target, true, true); break;} // G38.2 case NEXT_ACTION_STRAIGHT_PROBE: { status = cm_straight_probe(gv.target, gf.target, true, false); break;} // G38.3 case NEXT_ACTION_STRAIGHT_PROBE_AWAY_ERR:{ status = cm_straight_probe(gv.target, gf.target, false, true); break;} // G38.4 case NEXT_ACTION_STRAIGHT_PROBE_AWAY: { status = cm_straight_probe(gv.target, gf.target, false, false); break;}// G38.5 - case NEXT_ACTION_SET_ORIGIN_OFFSETS: { status = cm_set_origin_offsets(gv.target, gf.target); break;}// G92 - case NEXT_ACTION_RESET_ORIGIN_OFFSETS: { status = cm_reset_origin_offsets(); break;} // G92.1 - case NEXT_ACTION_SUSPEND_ORIGIN_OFFSETS: { status = cm_suspend_origin_offsets(); break;} // G92.2 - case NEXT_ACTION_RESUME_ORIGIN_OFFSETS: { status = cm_resume_origin_offsets(); break;} // G92.3 + case NEXT_ACTION_SET_G10_DATA: { status = cm_set_g10_data(gv.P_word, gf.P_word, gv.L_word, gf.L_word, gv.target, gf.target); break;} // G10 + case NEXT_ACTION_SET_ORIGIN_OFFSETS: { status = cm_set_origin_offsets(gv.target, gf.target); break;} // G92 + case NEXT_ACTION_RESET_ORIGIN_OFFSETS: { status = cm_reset_origin_offsets(); break;} // G92.1 + case NEXT_ACTION_SUSPEND_ORIGIN_OFFSETS: { status = cm_suspend_origin_offsets(); break;} // G92.2 + case NEXT_ACTION_RESUME_ORIGIN_OFFSETS: { status = cm_resume_origin_offsets(); break;} // G92.3 - case NEXT_ACTION_JSON_COMMAND_SYNC: { status = cm_json_command(active_comment); break;} // M100.0 - case NEXT_ACTION_JSON_COMMAND_ASYNC: { status = cm_json_command_immediate(active_comment); break;} // M100.1 - case NEXT_ACTION_JSON_WAIT: { status = cm_json_wait(active_comment); break;} // M101 + case NEXT_ACTION_JSON_COMMAND_SYNC: { status = cm_json_command(active_comment); break;} // M100.0 + case NEXT_ACTION_JSON_COMMAND_ASYNC: { status = cm_json_command_immediate(active_comment); break;} // M100.1 + case NEXT_ACTION_JSON_WAIT: { status = cm_json_wait(active_comment); break;} // M101 case NEXT_ACTION_DEFAULT: { cm_set_absolute_override(MODEL, gv.absolute_override); // apply absolute override switch (gv.motion_mode) { - case MOTION_MODE_CANCEL_MOTION_MODE: { cm.gm.motion_mode = gv.motion_mode; break;} // G80 + case MOTION_MODE_CANCEL_MOTION_MODE: { cm.gm.motion_mode = gv.motion_mode; break;} // G80 case MOTION_MODE_STRAIGHT_TRAVERSE: { status = cm_straight_traverse(gv.target, gf.target); break;} // G0 - case MOTION_MODE_STRAIGHT_FEED: { status = cm_straight_feed(gv.target, gf.target); break;} // G1 - case MOTION_MODE_CW_ARC: // G2 - case MOTION_MODE_CCW_ARC: { status = cm_arc_feed(gv.target, gf.target, // G3 + case MOTION_MODE_STRAIGHT_FEED: { status = cm_straight_feed(gv.target, gf.target); break;} // G1 + case MOTION_MODE_CW_ARC: // G2 + case MOTION_MODE_CCW_ARC: { status = cm_arc_feed(gv.target, gf.target, // G3 gv.arc_offset, gf.arc_offset, gv.arc_radius, gf.arc_radius, gv.P_word, gf.P_word, diff --git a/g2core/marlin_compatibility.h b/g2core/marlin_compatibility.h index 91051392..168eb2ae 100644 --- a/g2core/marlin_compatibility.h +++ b/g2core/marlin_compatibility.h @@ -47,7 +47,7 @@ stat_t marlin_start_tramming_bed(); // G29 stat_t marlin_list_sd_response(); // M20 stat_t marlin_select_sd_response(const char *file); // M23 -stat_t marlin_set_extruder_mode(const uint8_t mode); // M82, M82 +stat_t marlin_set_extruder_mode(const uint8_t mode); // M82, M82 stat_t marlin_disable_motors(); // M84 stat_t marlin_set_motor_timeout(float s); // M84 Sxxx, M85 Sxxx, M18 Sxxx diff --git a/g2core/settings/settings_makeblock.h b/g2core/settings/settings_makeblock.h index ec3bf0fd..6766ab91 100644 --- a/g2core/settings/settings_makeblock.h +++ b/g2core/settings/settings_makeblock.h @@ -54,7 +54,7 @@ // Communications and reporting settings -#define MARLIN_COMPAT_ENABLED true // enable marlin compatibility mode +#define MARLIN_COMPAT_ENABLED false // enable marlin compatibility mode #define COMM_MODE JSON_MODE // one of: TEXT_MODE, JSON_MODE #define XIO_ENABLE_FLOW_CONTROL FLOW_CONTROL_RTS // FLOW_CONTROL_OFF, FLOW_CONTROL_RTS #define USB_SERIAL_PORTS_EXPOSED 1 diff --git a/g2core/xio.cpp b/g2core/xio.cpp index 630f796e..4ce47ab0 100644 --- a/g2core/xio.cpp +++ b/g2core/xio.cpp @@ -2,8 +2,8 @@ * xio.cpp - extended IO functions * This file is part of the g2core project * - * Copyright (c) 2013 - 2016 Alden S. Hart Jr. - * Copyright (c) 2013 - 2016 Robert Giseburt + * Copyright (c) 2013 - 2017 Alden S. Hart Jr. + * Copyright (c) 2013 - 2017 Robert Giseburt * * This file ("the software") is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License, version 2 as published by the @@ -97,7 +97,6 @@ bool checkForNotActive(devflags_t flags_to_check) { return !(flags_to_check & DE bool checkForCtrlAndData(devflags_t flags_to_check) { return (flags_to_check & (DEV_IS_CTRL|DEV_IS_DATA)) == (DEV_IS_CTRL|DEV_IS_DATA); } bool checkForCtrlAndPrimary(devflags_t flags_to_check) { return (flags_to_check & (DEV_IS_CTRL|DEV_IS_PRIMARY)) == (DEV_IS_CTRL|DEV_IS_PRIMARY); } - struct xioDeviceWrapperBase { // C++ base class for device primitives // connection and device management uint8_t caps; // bitfield for capabilities flags (these are persistent) @@ -721,23 +720,23 @@ struct LineRXBuffer : RXBuffer<_size, owner_type, char> { _last_line_length = 0; } - else if (!_at_start_of_line) { // We only mark ends_line for the first end-line char, and if - ends_line = true; // _at_start_of_line is already true, this is not the first. + else if (!_at_start_of_line) { // We only mark ends_line for the first end-line char, and if + ends_line = true; // _at_start_of_line is already true, this is not the first. } } - // prevent going furnther if we are ignoring + // prevent going further if we are ignoring else if (_ignore_until_next_line) { // don't do anything } // Classify the line if it's a single character else if (_at_start_of_line && - ((c == '!') || - (c == '~') || - (c == ENQ) || // request ENQ/ack - (c == CHAR_RESET) || // ^X - reset (aka cancel, terminate) - (c == CHAR_ALARM) || // ^D - request job kill (end of transmission) - (c == '%' && cm_has_hold()) // flush (only in feedhold or part of control header) + ((c == '!') || // feedhold + (c == '~') || // cycle start + (c == ENQ) || // request ENQ/ack + (c == CHAR_RESET) || // ^X - reset (aka cancel, terminate) + (c == CHAR_ALARM) || // ^D - request job kill (end of transmission) + (c == '%' && cm_has_hold()) // flush (only in feedhold or part of control header) )) { diff --git a/g2core/xio.h b/g2core/xio.h old mode 100755 new mode 100644 index dd8322f6..6ffb0860 --- a/g2core/xio.h +++ b/g2core/xio.h @@ -2,8 +2,8 @@ * xio.h - extended IO functions * This file is part of the g2core project * - * Copyright (c) 2013 - 2016 Alden S. Hart Jr. - * Copyright (c) 2013 - 2016 Robert Giseburt + * Copyright (c) 2013 - 2017 Alden S. Hart Jr. + * Copyright (c) 2013 - 2017 Robert Giseburt * * This file ("the software") is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License, version 2 as published by the @@ -48,7 +48,7 @@ #ifndef XIO_H_ONCE #define XIO_H_ONCE -//#include "g2core.h" // not required if used in g2core project +//#include "g2core.h" // not required if used in g2core project #include "config.h" // required for nvObj typedef #include "canonical_machine.h" // needed for cm_has_hold() #include "settings.h" // needed for MARLIN_COMPAT_ENABLED From 656e78d424e1ac2303652f9cfff932d1092550c7 Mon Sep 17 00:00:00 2001 From: Rob Giseburt Date: Tue, 11 Apr 2017 09:04:36 -0500 Subject: [PATCH 07/14] Fix #265 - lower Printrbot Simple 1608 TEMP_MIN_BED_RISE_DEGREES_OVER_TIME to 0.5 --- g2core/settings/settings_Printrbot_Simple_1608.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/g2core/settings/settings_Printrbot_Simple_1608.h b/g2core/settings/settings_Printrbot_Simple_1608.h index 40dceaa1..be981e36 100644 --- a/g2core/settings/settings_Printrbot_Simple_1608.h +++ b/g2core/settings/settings_Printrbot_Simple_1608.h @@ -355,6 +355,8 @@ /*** Extruders / Heaters ***/ +#define TEMP_MIN_BED_RISE_DEGREES_OVER_TIME 0.5 + #define MIN_FAN_VALUE 0.4 // (he1fm) at MIN_FAN_TEMP the fan comes on at this spped (0.0-1.0) #define MAX_FAN_VALUE 0.75 // (he1fp) at MAX_FAN_TEMP the fan is at this spped (0.0-1.0) #define MIN_FAN_TEMP 50.0 // (he1fl) at this temp the fan starts to ramp up linearly From bed4f5f9f14c8f2582a8ebccf17778363c8d4122 Mon Sep 17 00:00:00 2001 From: Rob Giseburt Date: Tue, 11 Apr 2017 10:14:35 -0500 Subject: [PATCH 08/14] 100.25 // Merged fixes for #263 and #265 --- g2core/g2core_info.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/g2core/g2core_info.h b/g2core/g2core_info.h index c628b035..d3b3e614 100644 --- a/g2core/g2core_info.h +++ b/g2core/g2core_info.h @@ -21,7 +21,7 @@ #ifndef G2CORE_INFO_H_ONCE #define G2CORE_INFO_H_ONCE -#define G2CORE_FIRMWARE_BUILD 100.24 // Merged dev-261-simple-heat-bed - see #261 +#define G2CORE_FIRMWARE_BUILD 100.25 // Merged fixes for #263 and #265 #ifdef GIT_VERSION #define G2CORE_FIRMWARE_BUILD_STRING GIT_VERSION #else From d73f52bdaf3c533354c7673fac58d2d36db814fc Mon Sep 17 00:00:00 2001 From: Rob Giseburt Date: Tue, 18 Apr 2017 16:33:56 -0500 Subject: [PATCH 09/14] Updates to all PrintrBot configurations --- g2core/settings/settings_Printrbot_Play.h | 414 ++++++++-------- g2core/settings/settings_Printrbot_Plus.h | 463 +++++++++--------- .../settings/settings_Printrbot_Simple_1403.h | 461 ++++++++--------- .../settings/settings_Printrbot_Simple_1608.h | 404 ++++++++------- 4 files changed, 883 insertions(+), 859 deletions(-) diff --git a/g2core/settings/settings_Printrbot_Play.h b/g2core/settings/settings_Printrbot_Play.h index 3983a151..82623504 100644 --- a/g2core/settings/settings_Printrbot_Play.h +++ b/g2core/settings/settings_Printrbot_Play.h @@ -2,8 +2,8 @@ * settings_Printrbot_play.h * This file is part of the the g2core project * - * Copyright (c) 2010 - 2016 Alden S. Hart, Jr. - * Copyright (c) 2010 - 2016 Robert Giseburt + * Copyright (c) 2010 - 2017 Alden S. Hart, Jr. + * Copyright (c) 2010 - 2017 Robert Giseburt * * This file ("the software") is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License, version 2 as published by the @@ -33,155 +33,169 @@ // ***> NOTE: The init message must be a single line with no CRs or LFs #define INIT_MESSAGE "Initializing configs to Printrbot Play profile" -#ifndef PI -#define PI 3.14159628 -#endif - //**** GLOBAL / GENERAL SETTINGS ****************************************************** -#define JUNCTION_INTEGRATION_TIME 1.1 // cornering - between 0.10 and 2.00 (higher is faster) -#define CHORDAL_TOLERANCE 0.01 // chordal accuracy for arc drawing (in mm) +#define JUNCTION_INTEGRATION_TIME 1.1 // cornering - between 0.10 and 2.00 (higher is faster) +#define CHORDAL_TOLERANCE 0.01 // chordal accuracy for arc drawing (in mm) -#define SOFT_LIMIT_ENABLE 0 // 0=off, 1=on -#define HARD_LIMIT_ENABLE 1 // 0=off, 1=on -#define SAFETY_INTERLOCK_ENABLE 1 // 0=off, 1=on +#define SOFT_LIMIT_ENABLE 0 // 0=off, 1=on +#define HARD_LIMIT_ENABLE 1 // 0=off, 1=on +#define SAFETY_INTERLOCK_ENABLE 1 // 0=off, 1=on -#define SPINDLE_ENABLE_POLARITY 1 // 0=active low, 1=active high -#define SPINDLE_DIR_POLARITY 0 // 0=clockwise is low, 1=clockwise is high -#define SPINDLE_PAUSE_ON_HOLD true -#define SPINDLE_DWELL_TIME 1.0 +#define SPINDLE_ENABLE_POLARITY 1 // 0=active low, 1=active high +#define SPINDLE_DIR_POLARITY 0 // 0=clockwise is low, 1=clockwise is high +#define SPINDLE_PAUSE_ON_HOLD true +#define SPINDLE_DWELL_TIME 1.0 -#define COOLANT_MIST_POLARITY 1 // 0=active low, 1=active high -#define COOLANT_FLOOD_POLARITY 1 // 0=active low, 1=active high -#define COOLANT_PAUSE_ON_HOLD false +#define COOLANT_MIST_POLARITY 1 // 0=active low, 1=active high +#define COOLANT_FLOOD_POLARITY 1 // 0=active low, 1=active high +#define COOLANT_PAUSE_ON_HOLD false + +#define TRAVERSE_AT_HIGH_JERK true // EXPERIMENTAL, primarily used here for retraction of extruder // Communications and reporting settings -#define MARLIN_COMPAT_ENABLED true // enable marlin compatibility mode -#define COMM_MODE JSON_MODE // one of: TEXT_MODE, JSON_MODE -#define XIO_ENABLE_FLOW_CONTROL FLOW_CONTROL_RTS // FLOW_CONTROL_OFF, FLOW_CONTROL_RTS -#define XIO_UART_MUTES_WHEN_USB_CONNECTED 1 // Mute the UART when USB connects +#define MARLIN_COMPAT_ENABLED true // enable marlin compatibility mode +#define COMM_MODE JSON_MODE // one of: TEXT_MODE, JSON_MODE +#define XIO_ENABLE_FLOW_CONTROL FLOW_CONTROL_RTS // FLOW_CONTROL_OFF, FLOW_CONTROL_RTS +#define XIO_UART_MUTES_WHEN_USB_CONNECTED 1 // Mute the UART when USB connects -#define TEXT_VERBOSITY TV_VERBOSE // one of: TV_SILENT, TV_VERBOSE -#define JSON_VERBOSITY JV_LINENUM // one of: JV_SILENT, JV_FOOTER, JV_CONFIGS, JV_MESSAGES, JV_LINENUM, JV_VERBOSE -#define QUEUE_REPORT_VERBOSITY QR_OFF // one of: QR_OFF, QR_SINGLE, QR_TRIPLE +#define TEXT_VERBOSITY TV_VERBOSE // one of: TV_SILENT, TV_VERBOSE +#define JSON_VERBOSITY JV_LINENUM // one of: JV_SILENT, JV_FOOTER, JV_CONFIGS, JV_MESSAGES, JV_LINENUM, JV_VERBOSE +#define QUEUE_REPORT_VERBOSITY QR_OFF // one of: QR_OFF, QR_SINGLE, QR_TRIPLE -#define STATUS_REPORT_VERBOSITY SR_FILTERED // one of: SR_OFF, SR_FILTERED, SR_VERBOSE -#define STATUS_REPORT_MIN_MS 100 // milliseconds - enforces a viable minimum -#define STATUS_REPORT_INTERVAL_MS 250 // milliseconds - set $SV=0 to disable +#define STATUS_REPORT_VERBOSITY SR_FILTERED // one of: SR_OFF, SR_FILTERED, SR_VERBOSE +#define STATUS_REPORT_MIN_MS 100 // milliseconds - enforces a viable minimum +#define STATUS_REPORT_INTERVAL_MS 250 // milliseconds - set $SV=0 to disable // Defaults for 3DP -//#define STATUS_REPORT_DEFAULTS -//"line","posx","posy","posz","posa","vel","he1t","he1st","he1at","feed","vel","unit","path","stat" -// There are no heater two or three, but these would show those: ,"he2t","he2st","he2at","he3t","he3st","he3at" +#define STATUS_REPORT_DEFAULTS \ + "line","posx","posy","posz","posa","vel","he1t","he1st","he1at","he1op","feed","vel","unit","path","stat", \ + "he2t","he2st","he2at","he2op","he3t","he3st","he3at","he3op" // Defaults for motion debugging //#define STATUS_REPORT_DEFAULTS //"line","posx","posy","posz","posa","vel","he1t","he1st","he1at","he2t","he2st","he2at","he3t","he3st","he3at","_fe5","_fe4","feed","vel","unit","path","stat" // Defaults for PID tuning -#define STATUS_REPORT_DEFAULTS \ - "line", "posx", "posy", "posz", "posa", "vel", "he1t", "he1st", "he1at", "he1op", "pid1p", "pid1i", "pid1d", \ - "feed", "vel", "unit", "path", "stat" +//#define STATUS_REPORT_DEFAULTS \ +// "line", "posx", "posy", "posz", "posa", "vel", "he1t", "he1st", "he1at", "he1op", "pid1p", "pid1i", "pid1d", \ +// "feed", "vel", "unit", "path", "stat" // Gcode startup defaults -#define GCODE_DEFAULT_UNITS MILLIMETERS // MILLIMETERS or INCHES -#define GCODE_DEFAULT_PLANE CANON_PLANE_XY // CANON_PLANE_XY, CANON_PLANE_XZ, or CANON_PLANE_YZ -#define GCODE_DEFAULT_COORD_SYSTEM G54 // G54, G55, G56, G57, G58 or G59 -#define GCODE_DEFAULT_PATH_CONTROL PATH_CONTINUOUS -#define GCODE_DEFAULT_DISTANCE_MODE ABSOLUTE_DISTANCE_MODE +#define GCODE_DEFAULT_UNITS MILLIMETERS // MILLIMETERS or INCHES +#define GCODE_DEFAULT_PLANE CANON_PLANE_XY // CANON_PLANE_XY, CANON_PLANE_XZ, or CANON_PLANE_YZ +#define GCODE_DEFAULT_COORD_SYSTEM G54 // G54, G55, G56, G57, G58 or G59 +#define GCODE_DEFAULT_PATH_CONTROL PATH_CONTINUOUS +#define GCODE_DEFAULT_DISTANCE_MODE ABSOLUTE_DISTANCE_MODE + +#define MARLIN_G29_SCRIPT \ + "M100 ({\"_leds\":3})\n" \ + "G1 X0 Y95 Z6 F20000\n" \ + "G38.2 Z-10 F200\n" \ + "G1 Z5 F20000\n" \ + "M100 ({\"_leds\":5})\n" \ + "G1 X70 Y45 F20000\n" \ + "G38.2 Z-10 F200\n" \ + "G1 Z5 F20000\n" \ + "M100 ({\"_leds\":6})\n" \ + "G1 X0 Y5 F20000\n" \ + "G38.2 Z-10 F200\n" \ + "G1 Z5 F20000\n" \ + "M100 ({\"_leds\":3})\n" \ + "M100 ({\"tram\":1})\n" // *** motor settings ************************************************************************************ -#define MOTOR_POWER_MODE MOTOR_POWERED_IN_CYCLE // default motor power mode (see cmMotorPowerMode in stepper.h) +#define MOTOR_POWER_MODE MOTOR_POWERED_IN_CYCLE // default motor power mode (see cmMotorPowerMode in stepper.h) // 80 steps/mm at 1/16 microstepping = 40 mm/rev -#define M1_MOTOR_MAP AXIS_X // 1ma -#define M1_STEP_ANGLE 1.8 // 1sa -#define M1_TRAVEL_PER_REV 40.64 // 1tr -#define M1_MICROSTEPS 32 // 1mi 1,2,4,8,16,32 -#define M1_POLARITY 1 // 1po 0=normal, 1=reversed -#define M1_POWER_MODE MOTOR_POWER_MODE // 1pm standard -#define M1_POWER_LEVEL 0.4 // 1mp +#define M1_MOTOR_MAP AXIS_X // 1ma +#define M1_STEP_ANGLE 1.8 // 1sa +#define M1_TRAVEL_PER_REV 40.64 // 1tr +#define M1_MICROSTEPS 32 // 1mi 1,2,4,8,16,32 +#define M1_POLARITY 1 // 1po 0=normal, 1=reversed +#define M1_POWER_MODE MOTOR_POWER_MODE // 1pm standard +#define M1_POWER_LEVEL 0.4 // 1mp // 80 steps/mm at 1/16 microstepping = 40 mm/rev -#define M5_MOTOR_MAP AXIS_Y -#define M5_STEP_ANGLE 1.8 -#define M5_TRAVEL_PER_REV 40.64 -#define M5_MICROSTEPS 32 -#define M5_POLARITY 0 -#define M5_POWER_MODE MOTOR_POWER_MODE -#define M5_POWER_LEVEL 0.4 +#define M3_MOTOR_MAP AXIS_Y +#define M3_STEP_ANGLE 1.8 +#define M3_TRAVEL_PER_REV 40.64 +#define M3_MICROSTEPS 32 +#define M3_POLARITY 1 +#define M3_POWER_MODE MOTOR_POWER_MODE +#define M3_POWER_LEVEL 0.4 -#define M2_MOTOR_MAP AXIS_Z -#define M2_STEP_ANGLE 1.8 -#define M2_TRAVEL_PER_REV 1.5875 -#define M2_MICROSTEPS 32 -#define M2_POLARITY 1 -#define M2_POWER_MODE MOTOR_POWER_MODE -#define M2_POWER_LEVEL 0.4 +#define M2_MOTOR_MAP AXIS_Z +#define M2_STEP_ANGLE 1.8 +#define M2_TRAVEL_PER_REV 1.5875 +#define M2_MICROSTEPS 32 +#define M2_POLARITY 1 +#define M2_POWER_MODE MOTOR_POWER_MODE +#define M2_POWER_LEVEL 0.4 // 96 steps/mm at 1/16 microstepping = 33.3333 mm/rev -#define M4_MOTOR_MAP AXIS_A -#define M4_STEP_ANGLE 1.8 -#define M4_TRAVEL_PER_REV 360 // degrees moved per motor rev -#define M4_MICROSTEPS 32 -#define M4_POLARITY 0 -#define M4_POWER_MODE MOTOR_POWER_MODE -#define M4_POWER_LEVEL 0.4 +#define M4_MOTOR_MAP AXIS_A +#define M4_STEP_ANGLE 1.8 +#define M4_TRAVEL_PER_REV 360 // degrees moved per motor rev +#define M4_MICROSTEPS 32 +#define M4_POLARITY 1 +#define M4_POWER_MODE MOTOR_POWER_MODE +#define M4_POWER_LEVEL 0.4 // 96 steps/mm at 1/16 microstepping = 33.3333 mm/rev -#define M3_MOTOR_MAP AXIS_B -#define M3_STEP_ANGLE 1.8 -#define M3_TRAVEL_PER_REV 360 // degrees moved per motor rev -#define M3_MICROSTEPS 32 -#define M3_POLARITY 0 -#define M3_POWER_MODE MOTOR_POWER_MODE -#define M3_POWER_LEVEL 0.35 +#define M5_MOTOR_MAP AXIS_B +#define M5_STEP_ANGLE 1.8 +#define M5_TRAVEL_PER_REV 360 // degrees moved per motor rev +#define M5_MICROSTEPS 32 +#define M5_POLARITY 0 +#define M5_POWER_MODE MOTOR_POWER_MODE +#define M5_POWER_LEVEL 0.35 // *** axis settings ********************************************************************************** -#define X_AXIS_MODE AXIS_STANDARD // xam see canonical_machine.h cmAxisMode for valid values -#define X_VELOCITY_MAX 30000 // xvm G0 max velocity in mm/min -#define X_FEEDRATE_MAX X_VELOCITY_MAX // xfr G1 max feed rate in mm/min -#define X_TRAVEL_MIN 0 // xtn minimum travel - used by soft limits and homing -#define X_TRAVEL_MAX 100 // xtm travel between switches or crashes -#define X_JERK_MAX 15000 // xjm yes, that's "100 billion" mm/(min^3) -#define X_JERK_HIGH_SPEED 20000 // xjh -#define X_HOMING_INPUT 1 // xhi input used for homing or 0 to disable -#define X_HOMING_DIRECTION 0 // xhd 0=search moves negative, 1= search moves positive -#define X_SEARCH_VELOCITY 3000 // xsv move in negative direction -#define X_LATCH_VELOCITY 200 // xlv mm/min -#define X_LATCH_BACKOFF 5 // xlb mm -#define X_ZERO_BACKOFF 0.5 // xzb mm +#define X_AXIS_MODE AXIS_STANDARD // xam see canonical_machine.h cmAxisMode for valid values +#define X_VELOCITY_MAX 30000 // xvm G0 max velocity in mm/min +#define X_FEEDRATE_MAX X_VELOCITY_MAX // xfr G1 max feed rate in mm/min +#define X_TRAVEL_MIN 0 // xtn minimum travel - used by soft limits and homing +#define X_TRAVEL_MAX 100 // xtm travel between switches or crashes +#define X_JERK_MAX 6000 // xjm yes, that's "100 billion" mm/(min^3) +#define X_JERK_HIGH_SPEED 6000 // xjh +#define X_HOMING_INPUT 4 // xhi input used for homing or 0 to disable +#define X_HOMING_DIRECTION 0 // xhd 0=search moves negative, 1= search moves positive +#define X_SEARCH_VELOCITY 3000 // xsv move in negative direction +#define X_LATCH_VELOCITY 200 // xlv mm/min +#define X_LATCH_BACKOFF 5 // xlb mm +#define X_ZERO_BACKOFF 0.5 // xzb mm -#define Y_AXIS_MODE AXIS_STANDARD -#define Y_VELOCITY_MAX 30000 -#define Y_FEEDRATE_MAX Y_VELOCITY_MAX -#define Y_TRAVEL_MIN 0 -#define Y_TRAVEL_MAX 100 -#define Y_JERK_MAX 15000 -#define Y_JERK_HIGH_SPEED 20000 -#define Y_HOMING_INPUT 4 -#define Y_HOMING_DIRECTION 1 -#define Y_SEARCH_VELOCITY 1500 -#define Y_LATCH_VELOCITY 200 -#define Y_LATCH_BACKOFF 5 -#define Y_ZERO_BACKOFF 0.5 +#define Y_AXIS_MODE AXIS_STANDARD +#define Y_VELOCITY_MAX 30000 +#define Y_FEEDRATE_MAX Y_VELOCITY_MAX +#define Y_TRAVEL_MIN 0 +#define Y_TRAVEL_MAX 100 +#define Y_JERK_MAX 6000 +#define Y_JERK_HIGH_SPEED 6000 +#define Y_HOMING_INPUT 1 +#define Y_HOMING_DIRECTION 1 +#define Y_SEARCH_VELOCITY 1500 +#define Y_LATCH_VELOCITY 200 +#define Y_LATCH_BACKOFF 5 +#define Y_ZERO_BACKOFF 0.5 -#define Z_AXIS_MODE AXIS_STANDARD -#define Z_VELOCITY_MAX 300 -#define Z_FEEDRATE_MAX Z_VELOCITY_MAX -#define Z_TRAVEL_MIN 0 -#define Z_TRAVEL_MAX 125 -#define Z_JERK_MAX 800 -#define Z_JERK_HIGH_SPEED 1600 -#define Z_HOMING_INPUT 5 -#define Z_HOMING_DIRECTION 0 -#define Z_SEARCH_VELOCITY 200 -#define Z_LATCH_VELOCITY 100 -#define Z_LATCH_BACKOFF 5 -#define Z_ZERO_BACKOFF 0 +#define Z_AXIS_MODE AXIS_STANDARD +#define Z_VELOCITY_MAX 300 +#define Z_FEEDRATE_MAX Z_VELOCITY_MAX +#define Z_TRAVEL_MIN 0 +#define Z_TRAVEL_MAX 125 +#define Z_JERK_MAX 800 +#define Z_JERK_HIGH_SPEED 1600 +#define Z_HOMING_INPUT 5 +#define Z_HOMING_DIRECTION 0 +#define Z_SEARCH_VELOCITY 200 +#define Z_LATCH_VELOCITY 100 +#define Z_LATCH_BACKOFF 5 +#define Z_ZERO_BACKOFF 0 // Rotary values are chosen to make the motor react the same as X for testing /*************************************************************************************** @@ -201,40 +215,36 @@ * ***************************************************************************************/ -#define A_AXIS_MODE AXIS_RADIUS -#define A_RADIUS 5.30516476972984 -//#define A_VELOCITY_MAX 25920.0 // ~40 mm/s, 2,400 mm/min -//#define A_FEEDRATE_MAX 25920.0/2.0 // ~20 mm/s, 1,200 mm/min -#define A_VELOCITY_MAX 77760.0 // G0 rate ~120 mm/s, 2,400 mm/min -#define A_FEEDRATE_MAX 9720.0 // 9720.0 = G1 rate ~15 mm/s, 900 mm/min -#define A_TRAVEL_MIN 0 -#define A_TRAVEL_MAX 10 -#define A_JERK_MAX 648000 // 1,000 million mm/min^3 = 648000 - // * a million IF it's over a million - // c=2*pi*r, r=5.30516476972984, d=c/360, s=((1000*60)/d) -#define A_HOMING_INPUT 0 -#define A_HOMING_DIRECTION 0 -#define A_SEARCH_VELOCITY 2000 -#define A_LATCH_VELOCITY 2000 -#define A_LATCH_BACKOFF 5 -#define A_ZERO_BACKOFF 2 -#define A_JERK_HIGH_SPEED A_JERK_MAX +#define A_AXIS_MODE AXIS_RADIUS +#define A_RADIUS 5.30516476972984 +#define A_VELOCITY_MAX 77760.0 // G0 rate ~120 mm/s, 2,400 mm/min +#define A_FEEDRATE_MAX 9720.0 // 9720.0 = G1 rate ~15 mm/s, 900 mm/min +#define A_TRAVEL_MIN 0 +#define A_TRAVEL_MAX 10 +#define A_JERK_MAX 648000 // 1,000 million mm/min^3 = 648000 +#define A_HOMING_INPUT 0 +#define A_HOMING_DIRECTION 0 +#define A_SEARCH_VELOCITY 2000 +#define A_LATCH_VELOCITY 2000 +#define A_LATCH_BACKOFF 5 +#define A_ZERO_BACKOFF 2 +#define A_JERK_HIGH_SPEED A_JERK_MAX -#define B_AXIS_MODE AXIS_DISABLED -#define B_RADIUS 1 -#define B_VELOCITY_MAX 3600 -#define B_FEEDRATE_MAX B_VELOCITY_MAX -#define B_TRAVEL_MIN 0 -#define B_TRAVEL_MAX -1 +#define B_AXIS_MODE AXIS_DISABLED +#define B_RADIUS 1 +#define B_VELOCITY_MAX 3600 +#define B_FEEDRATE_MAX B_VELOCITY_MAX +#define B_TRAVEL_MIN 0 +#define B_TRAVEL_MAX 1 //#define B_JERK_MAX 20000000 -#define B_JERK_MAX 20 -#define B_HOMING_INPUT 0 -#define B_HOMING_DIRECTION 0 -#define B_SEARCH_VELOCITY 600 -#define B_LATCH_VELOCITY 100 -#define B_LATCH_BACKOFF 10 -#define B_ZERO_BACKOFF 2 -#define B_JERK_HIGH_SPEED A_JERK_MAX +#define B_JERK_MAX 20 +#define B_HOMING_INPUT 0 +#define B_HOMING_DIRECTION 0 +#define B_SEARCH_VELOCITY 600 +#define B_LATCH_VELOCITY 100 +#define B_LATCH_BACKOFF 10 +#define B_ZERO_BACKOFF 2 +#define B_JERK_HIGH_SPEED A_JERK_MAX //*** Input / output settings *** @@ -257,97 +267,101 @@ */ // Inputs are defined for the g2ref(a) board // Xmn (board label) -#define DI1_MODE IO_ACTIVE_HIGH -#define DI1_ACTION INPUT_ACTION_NONE -#define DI1_FUNCTION INPUT_FUNCTION_NONE +#define DI1_MODE IO_ACTIVE_HIGH +#define DI1_ACTION INPUT_ACTION_NONE +#define DI1_FUNCTION INPUT_FUNCTION_NONE // Xmax -#define DI2_MODE IO_MODE_DISABLED -#define DI2_ACTION INPUT_ACTION_NONE -#define DI2_FUNCTION INPUT_FUNCTION_NONE +#define DI2_MODE IO_MODE_DISABLED +#define DI2_ACTION INPUT_ACTION_NONE +#define DI2_FUNCTION INPUT_FUNCTION_NONE // Ymin -#define DI3_MODE IO_MODE_DISABLED -#define DI3_ACTION INPUT_ACTION_NONE -#define DI3_FUNCTION INPUT_FUNCTION_NONE +#define DI3_MODE IO_MODE_DISABLED +#define DI3_ACTION INPUT_ACTION_NONE +#define DI3_FUNCTION INPUT_FUNCTION_NONE // Ymax -#define DI4_MODE IO_ACTIVE_HIGH -#define DI4_ACTION INPUT_ACTION_NONE -#define DI4_FUNCTION INPUT_FUNCTION_NONE +#define DI4_MODE IO_ACTIVE_HIGH +#define DI4_ACTION INPUT_ACTION_NONE +#define DI4_FUNCTION INPUT_FUNCTION_NONE // Zmin -#define DI5_MODE IO_ACTIVE_LOW // Z probe -#define DI5_ACTION INPUT_ACTION_NONE -#define DI5_FUNCTION INPUT_FUNCTION_NONE +#define DI5_MODE IO_ACTIVE_LOW // Z probe +#define DI5_ACTION INPUT_ACTION_NONE +#define DI5_FUNCTION INPUT_FUNCTION_PROBE // Zmax -#define DI6_MODE IO_MODE_DISABLED -#define DI6_ACTION INPUT_ACTION_NONE -#define DI6_FUNCTION INPUT_FUNCTION_NONE +#define DI6_MODE IO_MODE_DISABLED +#define DI6_ACTION INPUT_ACTION_NONE +#define DI6_FUNCTION INPUT_FUNCTION_NONE // Shutdown (Amin on v9 board) -#define DI7_MODE IO_MODE_DISABLED -#define DI7_ACTION INPUT_ACTION_NONE -#define DI7_FUNCTION INPUT_FUNCTION_NONE +#define DI7_MODE IO_MODE_DISABLED +#define DI7_ACTION INPUT_ACTION_NONE +#define DI7_FUNCTION INPUT_FUNCTION_NONE // High Voltage Z Probe In (Amax on v9 board) -#define DI8_MODE IO_ACTIVE_LOW -#define DI8_ACTION INPUT_ACTION_NONE -#define DI8_FUNCTION INPUT_FUNCTION_NONE +#define DI8_MODE IO_ACTIVE_LOW +#define DI8_ACTION INPUT_ACTION_NONE +#define DI8_FUNCTION INPUT_FUNCTION_NONE // Hardware interlock input -#define DI9_MODE IO_MODE_DISABLED -#define DI9_ACTION INPUT_ACTION_NONE -#define DI9_FUNCTION INPUT_FUNCTION_NONE +#define DI9_MODE IO_MODE_DISABLED +#define DI9_ACTION INPUT_ACTION_NONE +#define DI9_FUNCTION INPUT_FUNCTION_NONE // Extruder1_PWM -#define DO1_MODE IO_ACTIVE_HIGH +#define DO1_MODE IO_ACTIVE_HIGH // Extruder2_PWM -#define DO2_MODE IO_ACTIVE_HIGH +#define DO2_MODE IO_ACTIVE_HIGH // Fan1A_PWM -#define DO3_MODE IO_ACTIVE_HIGH +#define DO3_MODE IO_ACTIVE_HIGH // Fan1B_PWM -#define DO4_MODE IO_ACTIVE_HIGH +#define DO4_MODE IO_ACTIVE_HIGH -#define DO5_MODE IO_ACTIVE_HIGH -#define DO6_MODE IO_ACTIVE_HIGH -#define DO7_MODE IO_ACTIVE_HIGH -#define DO8_MODE IO_ACTIVE_HIGH +#define DO5_MODE IO_ACTIVE_HIGH +#define DO6_MODE IO_ACTIVE_HIGH +#define DO7_MODE IO_ACTIVE_HIGH +#define DO8_MODE IO_ACTIVE_HIGH // SAFEin (Output) signal -#define DO9_MODE IO_ACTIVE_HIGH +#define DO9_MODE IO_ACTIVE_HIGH -#define DO10_MODE IO_ACTIVE_HIGH +#define DO10_MODE IO_ACTIVE_HIGH // Header Bed FET -#define DO11_MODE IO_ACTIVE_HIGH +#define DO11_MODE IO_ACTIVE_HIGH // Indicator_LED -#define DO12_MODE IO_ACTIVE_HIGH +#define DO12_MODE IO_ACTIVE_HIGH -#define DO13_MODE IO_ACTIVE_HIGH +#define DO13_MODE IO_ACTIVE_HIGH /*** Extruders / Heaters ***/ -#define MIN_FAN_TEMP 50.0 -#define MAX_FAN_TEMP 100.0 +#define TEMP_MIN_BED_RISE_DEGREES_OVER_TIME 0.5 -#define H1_DEFAULT_ENABLE true -#define H1_DEFAULT_P 7.0 -#define H1_DEFAULT_I 0.05 -#define H1_DEFAULT_D 150.0 +#define MIN_FAN_VALUE 0.4 // (he1fm) at MIN_FAN_TEMP the fan comes on at this spped (0.0-1.0) +#define MAX_FAN_VALUE 0.75 // (he1fp) at MAX_FAN_TEMP the fan is at this spped (0.0-1.0) +#define MIN_FAN_TEMP 50.0 // (he1fl) at this temp the fan starts to ramp up linearly +#define MAX_FAN_TEMP 100.0 // (he1fh) at this temperature the fan is at "full speed" (MAX_FAN_VALUE) -#define H2_DEFAULT_ENABLE false -#define H2_DEFAULT_P 7.0 -#define H2_DEFAULT_I 0.05 -#define H2_DEFAULT_D 150.0 +#define H1_DEFAULT_ENABLE true +#define H1_DEFAULT_P 7.0 +#define H1_DEFAULT_I 0.05 +#define H1_DEFAULT_D 150.0 -#define H3_DEFAULT_ENABLE false -#define H3_DEFAULT_P 9.0 -#define H3_DEFAULT_I 0.12 -#define H3_DEFAULT_D 400.0 +#define H2_DEFAULT_ENABLE false +#define H2_DEFAULT_P 7.0 +#define H2_DEFAULT_I 0.05 +#define H2_DEFAULT_D 150.0 + +#define H3_DEFAULT_ENABLE false +#define H3_DEFAULT_P 9.0 +#define H3_DEFAULT_I 0.12 +#define H3_DEFAULT_D 400.0 diff --git a/g2core/settings/settings_Printrbot_Plus.h b/g2core/settings/settings_Printrbot_Plus.h index 8ecb3c49..79590846 100644 --- a/g2core/settings/settings_Printrbot_Plus.h +++ b/g2core/settings/settings_Printrbot_Plus.h @@ -2,8 +2,8 @@ * settings_Printrbot_plus.h * This file is part of the the g2core project * - * Copyright (c) 2010 - 2016 Alden S. Hart, Jr. - * Copyright (c) 2010 - 2016 Robert Giseburt + * Copyright (c) 2010 - 2017 Alden S. Hart, Jr. + * Copyright (c) 2010 - 2017 Robert Giseburt * * This file ("the software") is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License, version 2 as published by the @@ -31,177 +31,171 @@ /***********************************************************************/ // ***> NOTE: The init message must be a single line with no CRs or LFs -#define INIT_MESSAGE "Initializing configs to Printrbot Plus profile" - -#ifndef PI -#define PI 3.14159628 -#endif +#define INIT_MESSAGE "Initializing configs to Printrbot Plus profile" //**** GLOBAL / GENERAL SETTINGS ****************************************************** -#define JUNCTION_INTEGRATION_TIME 1.2 // cornering - between 0.10 and 2.00 (higher is faster) -#define CHORDAL_TOLERANCE 0.01 // chordal accuracy for arc drawing (in mm) +#define JUNCTION_INTEGRATION_TIME 1.1 // cornering - between 0.10 and 2.00 (higher is faster) +#define CHORDAL_TOLERANCE 0.01 // chordal accuracy for arc drawing (in mm) -#define SOFT_LIMIT_ENABLE 0 // 0=off, 1=on -#define HARD_LIMIT_ENABLE 1 // 0=off, 1=on -#define SAFETY_INTERLOCK_ENABLE 1 // 0=off, 1=on +#define SOFT_LIMIT_ENABLE 0 // 0=off, 1=on +#define HARD_LIMIT_ENABLE 1 // 0=off, 1=on +#define SAFETY_INTERLOCK_ENABLE 1 // 0=off, 1=on -#define SPINDLE_ENABLE_POLARITY 1 // 0=active low, 1=active high -#define SPINDLE_DIR_POLARITY 0 // 0=clockwise is low, 1=clockwise is high -#define SPINDLE_PAUSE_ON_HOLD true -#define SPINDLE_DWELL_TIME 1.0 +#define SPINDLE_ENABLE_POLARITY 1 // 0=active low, 1=active high +#define SPINDLE_DIR_POLARITY 0 // 0=clockwise is low, 1=clockwise is high +#define SPINDLE_PAUSE_ON_HOLD true +#define SPINDLE_DWELL_TIME 1.0 -#define COOLANT_MIST_POLARITY 1 // 0=active low, 1=active high -#define COOLANT_FLOOD_POLARITY 1 // 0=active low, 1=active high -#define COOLANT_PAUSE_ON_HOLD false +#define COOLANT_MIST_POLARITY 1 // 0=active low, 1=active high +#define COOLANT_FLOOD_POLARITY 1 // 0=active low, 1=active high +#define COOLANT_PAUSE_ON_HOLD false + +#define TRAVERSE_AT_HIGH_JERK true // EXPERIMENTAL, primarily used here for retraction of extruder // Communications and reporting settings -#define MARLIN_COMPAT_ENABLED true // enable marlin compatibility mode -#define COMM_MODE JSON_MODE // one of: TEXT_MODE, JSON_MODE -#define XIO_ENABLE_FLOW_CONTROL FLOW_CONTROL_RTS // FLOW_CONTROL_OFF, FLOW_CONTROL_RTS -#define XIO_UART_MUTES_WHEN_USB_CONNECTED 1 // Mute the UART when USB connects +#define MARLIN_COMPAT_ENABLED true // enable marlin compatibility mode +#define COMM_MODE JSON_MODE // one of: TEXT_MODE, JSON_MODE +#define XIO_ENABLE_FLOW_CONTROL FLOW_CONTROL_RTS // FLOW_CONTROL_OFF, FLOW_CONTROL_RTS +#define XIO_UART_MUTES_WHEN_USB_CONNECTED 1 // Mute the UART when USB connects -#define TEXT_VERBOSITY TV_VERBOSE // one of: TV_SILENT, TV_VERBOSE -#define JSON_VERBOSITY JV_MESSAGES // one of: JV_SILENT, JV_FOOTER, JV_CONFIGS, JV_MESSAGES, JV_LINENUM, JV_VERBOSE -#define QUEUE_REPORT_VERBOSITY QR_OFF // one of: QR_OFF, QR_SINGLE, QR_TRIPLE +#define TEXT_VERBOSITY TV_VERBOSE // one of: TV_SILENT, TV_VERBOSE +#define JSON_VERBOSITY JV_LINENUM // one of: JV_SILENT, JV_FOOTER, JV_CONFIGS, JV_MESSAGES, JV_LINENUM, JV_VERBOSE +#define QUEUE_REPORT_VERBOSITY QR_OFF // one of: QR_OFF, QR_SINGLE, QR_TRIPLE -#define STATUS_REPORT_VERBOSITY SR_FILTERED // one of: SR_OFF, SR_FILTERED, SR_VERBOSE -#define STATUS_REPORT_MIN_MS 100 // milliseconds - enforces a viable minimum -#define STATUS_REPORT_INTERVAL_MS 250 // milliseconds - set $SV=0 to disable +#define STATUS_REPORT_VERBOSITY SR_FILTERED // one of: SR_OFF, SR_FILTERED, SR_VERBOSE +#define STATUS_REPORT_MIN_MS 100 // milliseconds - enforces a viable minimum +#define STATUS_REPORT_INTERVAL_MS 250 // milliseconds - set $SV=0 to disable // Defaults for 3DP -//#define STATUS_REPORT_DEFAULTS -//"line","posx","posy","posz","posa","vel","he1t","he1st","he1at","feed","vel","unit","path","stat" -// There are no heater two or three, but these would show those: ,"he2t","he2st","he2at","he3t","he3st","he3at" +#define STATUS_REPORT_DEFAULTS \ + "line","posx","posy","posz","posa","vel","he1t","he1st","he1at","he1op","feed","vel","unit","path","stat", \ + "he2t","he2st","he2at","he2op","he3t","he3st","he3at","he3op" // Defaults for motion debugging //#define STATUS_REPORT_DEFAULTS //"line","posx","posy","posz","posa","vel","he1t","he1st","he1at","he2t","he2st","he2at","he3t","he3st","he3at","_fe5","_fe4","feed","vel","unit","path","stat" // Defaults for PID tuning -#define STATUS_REPORT_DEFAULTS \ - "line", "posx", "posy", "posz", "posa", "vel", "he1t", "he1st", "he1at", "he1op", "pid1p", "pid1i", "pid1d", \ - "feed", "vel", "unit", "path", "stat" +//#define STATUS_REPORT_DEFAULTS \ +// "line", "posx", "posy", "posz", "posa", "vel", "he1t", "he1st", "he1at", "he1op", "pid1p", "pid1i", "pid1d", \ +// "feed", "vel", "unit", "path", "stat" // Gcode startup defaults -#define GCODE_DEFAULT_UNITS MILLIMETERS // MILLIMETERS or INCHES -#define GCODE_DEFAULT_PLANE CANON_PLANE_XY // CANON_PLANE_XY, CANON_PLANE_XZ, or CANON_PLANE_YZ -#define GCODE_DEFAULT_COORD_SYSTEM G54 // G54, G55, G56, G57, G58 or G59 -#define GCODE_DEFAULT_PATH_CONTROL PATH_CONTINUOUS -#define GCODE_DEFAULT_DISTANCE_MODE ABSOLUTE_DISTANCE_MODE +#define GCODE_DEFAULT_UNITS MILLIMETERS // MILLIMETERS or INCHES +#define GCODE_DEFAULT_PLANE CANON_PLANE_XY // CANON_PLANE_XY, CANON_PLANE_XZ, or CANON_PLANE_YZ +#define GCODE_DEFAULT_COORD_SYSTEM G54 // G54, G55, G56, G57, G58 or G59 +#define GCODE_DEFAULT_PATH_CONTROL PATH_CONTINUOUS +#define GCODE_DEFAULT_DISTANCE_MODE ABSOLUTE_DISTANCE_MODE + +#define MARLIN_G29_SCRIPT \ + "M100 ({\"_leds\":3})\n" \ + "G1 X0 Y245 Z6 F20000\n" \ + "G38.2 Z-10 F200\n" \ + "G1 Z5 F20000\n" \ + "M100 ({\"_leds\":5})\n" \ + "G1 X225 Y125 F20000\n" \ + "G38.2 Z-10 F200\n" \ + "G1 Z5 F20000\n" \ + "M100 ({\"_leds\":6})\n" \ + "G1 X0 Y5 F20000\n" \ + "G38.2 Z-10 F200\n" \ + "G1 Z5 F20000\n" \ + "M100 ({\"_leds\":3})\n" \ + "M100 ({\"tram\":1})\n" // *** motor settings ************************************************************************************ -// steps/mm -> mm/rev calculations -// s: steps/mm -// a: degress/FULL step (1.8) -// M: microstep level (4, 8, 16, etc) -// R: mm/revolution (output) -// Example entry to wolframalpha.com: -// s=80, a=1.8, M=16, R=(M*(360/a))/s - -#define MOTOR_POWER_MODE MOTOR_POWERED_IN_CYCLE // default motor power mode (see cmMotorPowerMode in stepper.h) +#define MOTOR_POWER_MODE MOTOR_POWERED_IN_CYCLE // default motor power mode (see cmMotorPowerMode in stepper.h) +// 80 steps/mm at 1/16 microstepping = 40 mm/rev +#define M1_MOTOR_MAP AXIS_X // 1ma +#define M1_STEP_ANGLE 1.8 // 1sa +#define M1_TRAVEL_PER_REV 40.64 // 1tr +#define M1_MICROSTEPS 32 // 1mi 1,2,4,8,16,32 +#define M1_POLARITY 1 // 1po 0=normal, 1=reversed +#define M1_POWER_MODE MOTOR_POWER_MODE // 1pm standard +#define M1_POWER_LEVEL 0.4 // 1mp // 80 steps/mm at 1/16 microstepping = 40 mm/rev -#define M5_MOTOR_MAP AXIS_X // 1ma -#define M5_STEP_ANGLE 1.8 // 1sa -#define M5_TRAVEL_PER_REV 40.64 // 1tr -#define M5_MICROSTEPS 32 // 1mi 1,2,4,8,16,32 -#define M5_POLARITY 1 // 1po 0=normal, 1=reversed -#define M5_POWER_MODE MOTOR_POWER_MODE // 1pm standard -#define M5_POWER_LEVEL 0.3 // 1mp +#define M3_MOTOR_MAP AXIS_Y +#define M3_STEP_ANGLE 1.8 +#define M3_TRAVEL_PER_REV 40.64 +#define M3_MICROSTEPS 32 +#define M3_POLARITY 1 +#define M3_POWER_MODE MOTOR_POWER_MODE +#define M3_POWER_LEVEL 0.4 -// 80 steps/mm at 1/16 microstepping = 40 mm/rev -#define M4_MOTOR_MAP AXIS_Y -#define M4_STEP_ANGLE 1.8 -#define M4_TRAVEL_PER_REV 40.64 -#define M4_MICROSTEPS 32 -#define M4_POLARITY 1 -#define M4_POWER_MODE MOTOR_POWER_MODE -#define M4_POWER_LEVEL 0.3 - -// 2020 steps/mm at 1/16 microstepping = 1.58416 mm/rev -#define M3_MOTOR_MAP AXIS_Z -#define M3_STEP_ANGLE 1.8 -#define M3_TRAVEL_PER_REV 1.5875 -#define M3_MICROSTEPS 32 -#define M3_POLARITY 1 -#define M3_POWER_MODE MOTOR_POWER_MODE -#define M3_POWER_LEVEL 0.3 +#define M2_MOTOR_MAP AXIS_Z +#define M2_STEP_ANGLE 1.8 +#define M2_TRAVEL_PER_REV 1.5875 +#define M2_MICROSTEPS 32 +#define M2_POLARITY 1 +#define M2_POWER_MODE MOTOR_POWER_MODE +#define M2_POWER_LEVEL 0.4 // 96 steps/mm at 1/16 microstepping = 33.3333 mm/rev -#define M2_MOTOR_MAP AXIS_A -#define M2_STEP_ANGLE 1.8 -#define M2_TRAVEL_PER_REV 360 // degrees moved per motor rev -#define M2_MICROSTEPS 32 -#define M2_POLARITY 0 -#define M2_POWER_MODE MOTOR_POWER_MODE -#define M2_POWER_LEVEL 0.3 +#define M4_MOTOR_MAP AXIS_A +#define M4_STEP_ANGLE 1.8 +#define M4_TRAVEL_PER_REV 360 // degrees moved per motor rev +#define M4_MICROSTEPS 32 +#define M4_POLARITY 1 +#define M4_POWER_MODE MOTOR_POWER_MODE +#define M4_POWER_LEVEL 0.4 // 96 steps/mm at 1/16 microstepping = 33.3333 mm/rev -#define M1_MOTOR_MAP AXIS_B -#define M1_STEP_ANGLE 1.8 -#define M1_TRAVEL_PER_REV 360 // degrees moved per motor rev -#define M1_MICROSTEPS 32 -#define M1_POLARITY 0 -#define M1_POWER_MODE MOTOR_POWER_MODE -#define M1_POWER_LEVEL 0.3 - -#define M6_MOTOR_MAP AXIS_C -#define M6_STEP_ANGLE 1.8 -#define M6_TRAVEL_PER_REV 360 // degrees moved per motor rev -#define M6_MICROSTEPS 32 -#define M6_POLARITY 0 -#define M6_POWER_MODE MOTOR_POWER_MODE -#define M6_POWER_LEVEL 0.3 +#define M5_MOTOR_MAP AXIS_B +#define M5_STEP_ANGLE 1.8 +#define M5_TRAVEL_PER_REV 360 // degrees moved per motor rev +#define M5_MICROSTEPS 32 +#define M5_POLARITY 0 +#define M5_POWER_MODE MOTOR_POWER_MODE +#define M5_POWER_LEVEL 0.35 // *** axis settings ********************************************************************************** -#define X_AXIS_MODE AXIS_STANDARD // xam see canonical_machine.h cmAxisMode for valid values -// The machine can handle 20000 in open air, but dropping back to 10000 for times when it hits obstacles (small bits of -// filament, etc). -#define X_VELOCITY_MAX 20000 // xvm G0 max velocity in mm/min -#define X_FEEDRATE_MAX X_VELOCITY_MAX // xfr G1 max feed rate in mm/min -#define X_TRAVEL_MIN 0 // xtn minimum travel - used by soft limits and homing -#define X_TRAVEL_MAX 250 // xtm travel between switches or crashes -#define X_JERK_MAX 6000 // xjm yes, that's "100 billion" mm/(min^3) -#define X_JERK_HIGH_SPEED 12000 // xjh -#define X_HOMING_INPUT 1 // xhi input used for homing or 0 to disable -#define X_HOMING_DIRECTION 0 // xhd 0=search moves negative, 1= search moves positive -#define X_SEARCH_VELOCITY 3000 // xsv move in negative direction -#define X_LATCH_VELOCITY 200 // xlv mm/min -#define X_LATCH_BACKOFF 5 // xlb mm -#define X_ZERO_BACKOFF 0.5 // xzb mm +#define X_AXIS_MODE AXIS_STANDARD // xam see canonical_machine.h cmAxisMode for valid values +#define X_VELOCITY_MAX 30000 // xvm G0 max velocity in mm/min +#define X_FEEDRATE_MAX X_VELOCITY_MAX // xfr G1 max feed rate in mm/min +#define X_TRAVEL_MIN 0 // xtn minimum travel - used by soft limits and homing +#define X_TRAVEL_MAX 250 // xtm travel between switches or crashes +#define X_JERK_MAX 6000 // xjm yes, that's "100 billion" mm/(min^3) +#define X_JERK_HIGH_SPEED 6000 // xjh +#define X_HOMING_INPUT 4 // xhi input used for homing or 0 to disable +#define X_HOMING_DIRECTION 0 // xhd 0=search moves negative, 1= search moves positive +#define X_SEARCH_VELOCITY 3000 // xsv move in negative direction +#define X_LATCH_VELOCITY 200 // xlv mm/min +#define X_LATCH_BACKOFF 5 // xlb mm +#define X_ZERO_BACKOFF 0.5 // xzb mm -#define Y_AXIS_MODE AXIS_STANDARD -#define Y_VELOCITY_MAX 15000 -#define Y_FEEDRATE_MAX Y_VELOCITY_MAX -#define Y_TRAVEL_MIN 0 -#define Y_TRAVEL_MAX 250 -#define Y_JERK_MAX 6000 -#define Y_JERK_HIGH_SPEED Y_JERK_MAX -#define Y_HOMING_INPUT 4 -#define Y_HOMING_DIRECTION 1 -#define Y_SEARCH_VELOCITY 1500 -#define Y_LATCH_VELOCITY 200 -#define Y_LATCH_BACKOFF 5 -#define Y_ZERO_BACKOFF 0.5 +#define Y_AXIS_MODE AXIS_STANDARD +#define Y_VELOCITY_MAX 30000 +#define Y_FEEDRATE_MAX Y_VELOCITY_MAX +#define Y_TRAVEL_MIN 0 +#define Y_TRAVEL_MAX 250 +#define Y_JERK_MAX 6000 +#define Y_JERK_HIGH_SPEED 6000 +#define Y_HOMING_INPUT 1 +#define Y_HOMING_DIRECTION 1 +#define Y_SEARCH_VELOCITY 1500 +#define Y_LATCH_VELOCITY 200 +#define Y_LATCH_BACKOFF 5 +#define Y_ZERO_BACKOFF 0.5 -#define Z_AXIS_MODE AXIS_STANDARD -#define Z_VELOCITY_MAX 400 -#define Z_FEEDRATE_MAX Z_VELOCITY_MAX -#define Z_TRAVEL_MIN 0 -#define Z_TRAVEL_MAX 196 -#define Z_JERK_MAX 800 -#define Z_JERK_HIGH_SPEED 1600 -#define Z_HOMING_INPUT 5 -#define Z_HOMING_DIRECTION 0 -#define Z_SEARCH_VELOCITY (Z_VELOCITY_MAX * 0.3333) -#define Z_LATCH_VELOCITY 100 -#define Z_LATCH_BACKOFF 5 -#define Z_ZERO_BACKOFF 0 +#define Z_AXIS_MODE AXIS_STANDARD +#define Z_VELOCITY_MAX 300 +#define Z_FEEDRATE_MAX Z_VELOCITY_MAX +#define Z_TRAVEL_MIN 0 +#define Z_TRAVEL_MAX 196 +#define Z_JERK_MAX 800 +#define Z_JERK_HIGH_SPEED 1600 +#define Z_HOMING_INPUT 5 +#define Z_HOMING_DIRECTION 0 +#define Z_SEARCH_VELOCITY 200 +#define Z_LATCH_VELOCITY 100 +#define Z_LATCH_BACKOFF 5 +#define Z_ZERO_BACKOFF 0 // Rotary values are chosen to make the motor react the same as X for testing /*************************************************************************************** @@ -221,142 +215,153 @@ * ***************************************************************************************/ +#define A_AXIS_MODE AXIS_RADIUS +#define A_RADIUS 5.30516476972984 +#define A_VELOCITY_MAX 77760.0 // G0 rate ~120 mm/s, 2,400 mm/min +#define A_FEEDRATE_MAX 9720.0 // 9720.0 = G1 rate ~15 mm/s, 900 mm/min +#define A_TRAVEL_MIN 0 +#define A_TRAVEL_MAX 10 +#define A_JERK_MAX 648000 // 1,000 million mm/min^3 = 648000 +#define A_HOMING_INPUT 0 +#define A_HOMING_DIRECTION 0 +#define A_SEARCH_VELOCITY 2000 +#define A_LATCH_VELOCITY 2000 +#define A_LATCH_BACKOFF 5 +#define A_ZERO_BACKOFF 2 +#define A_JERK_HIGH_SPEED A_JERK_MAX -// To compute radius from mm/rev (m) (that other axes give): r = m/(2*pi) +#define B_AXIS_MODE AXIS_DISABLED +#define B_RADIUS 1 +#define B_VELOCITY_MAX 3600 +#define B_FEEDRATE_MAX B_VELOCITY_MAX +#define B_TRAVEL_MIN 0 +#define B_TRAVEL_MAX -1 +//#define B_JERK_MAX 20000000 +#define B_JERK_MAX 20 +#define B_HOMING_INPUT 0 +#define B_HOMING_DIRECTION 0 +#define B_SEARCH_VELOCITY 600 +#define B_LATCH_VELOCITY 100 +#define B_LATCH_BACKOFF 10 +#define B_ZERO_BACKOFF 2 +#define B_JERK_HIGH_SPEED A_JERK_MAX -#define A_AXIS_MODE AXIS_RADIUS -#define A_RADIUS 5.30516476972984 -#define A_VELOCITY_MAX 77760.0 // G0 rate ~120 mm/s, 2,400 mm/min -#define A_FEEDRATE_MAX 9720.0 // 9720.0 = G1 rate ~15 mm/s, 900 mm/min -#define A_TRAVEL_MIN 0 -#define A_TRAVEL_MAX 10 -//#define A_JERK_MAX 16200 // 25 million mm/min^3 = 16200 -//#define A_JERK_MAX 81000 // 125 million mm/min^3 = 81000 -//#define A_JERK_MAX 162000 // 250 million mm/min^3 = 162000 -//#define A_JERK_MAX 324000 // 500 million mm/min^3 = 324000 -#define A_JERK_MAX 648000 // 1,000 million mm/min^3 = 648000 -//#define A_JERK_MAX 1296000 // 2,000 million mm/min^3 = 1296000 -//#define A_JERK_MAX 2592000 // 4,000 million mm/min^3 = 2592000 -// c=2*pi*r, r=5.30516476972984, d=c/360, s=((1000*60)/d) -#define A_HOMING_INPUT 0 -#define A_HOMING_DIRECTION 0 -#define A_SEARCH_VELOCITY 2000 -#define A_LATCH_VELOCITY 2000 -#define A_LATCH_BACKOFF 5 -#define A_ZERO_BACKOFF 2 -#define A_JERK_HIGH_SPEED A_JERK_MAX //*** Input / output settings *** /* - IO_MODE_DISABLED - IO_ACTIVE_LOW aka NORMALLY_OPEN - IO_ACTIVE_HIGH aka NORMALLY_CLOSED + IO_MODE_DISABLED + IO_ACTIVE_LOW aka NORMALLY_OPEN + IO_ACTIVE_HIGH aka NORMALLY_CLOSED - INPUT_ACTION_NONE - INPUT_ACTION_STOP - INPUT_ACTION_FAST_STOP - INPUT_ACTION_HALT - INPUT_ACTION_RESET + INPUT_ACTION_NONE + INPUT_ACTION_STOP + INPUT_ACTION_FAST_STOP + INPUT_ACTION_HALT + INPUT_ACTION_RESET - INPUT_FUNCTION_NONE - INPUT_FUNCTION_LIMIT - INPUT_FUNCTION_INTERLOCK - INPUT_FUNCTION_SHUTDOWN - INPUT_FUNCTION_PANIC -*/ + INPUT_FUNCTION_NONE + INPUT_FUNCTION_LIMIT + INPUT_FUNCTION_INTERLOCK + INPUT_FUNCTION_SHUTDOWN + INPUT_FUNCTION_PANIC + */ // Inputs are defined for the g2ref(a) board // Xmn (board label) -#define DI1_MODE IO_ACTIVE_HIGH -#define DI1_ACTION INPUT_ACTION_NONE -#define DI1_FUNCTION INPUT_FUNCTION_NONE +#define DI1_MODE IO_ACTIVE_HIGH +#define DI1_ACTION INPUT_ACTION_NONE +#define DI1_FUNCTION INPUT_FUNCTION_NONE // Xmax -#define DI2_MODE IO_MODE_DISABLED -#define DI2_ACTION INPUT_ACTION_NONE -#define DI2_FUNCTION INPUT_FUNCTION_NONE +#define DI2_MODE IO_MODE_DISABLED +#define DI2_ACTION INPUT_ACTION_NONE +#define DI2_FUNCTION INPUT_FUNCTION_NONE // Ymin -#define DI3_MODE IO_MODE_DISABLED -#define DI3_ACTION INPUT_ACTION_NONE -#define DI3_FUNCTION INPUT_FUNCTION_NONE +#define DI3_MODE IO_MODE_DISABLED +#define DI3_ACTION INPUT_ACTION_NONE +#define DI3_FUNCTION INPUT_FUNCTION_NONE // Ymax -#define DI4_MODE IO_ACTIVE_HIGH -#define DI4_ACTION INPUT_ACTION_NONE -#define DI4_FUNCTION INPUT_FUNCTION_NONE +#define DI4_MODE IO_ACTIVE_HIGH +#define DI4_ACTION INPUT_ACTION_NONE +#define DI4_FUNCTION INPUT_FUNCTION_NONE // Zmin -#define DI5_MODE IO_ACTIVE_LOW // Z probe -#define DI5_ACTION INPUT_ACTION_NONE -#define DI5_FUNCTION INPUT_FUNCTION_NONE +#define DI5_MODE IO_ACTIVE_LOW // Z probe +#define DI5_ACTION INPUT_ACTION_NONE +#define DI5_FUNCTION INPUT_FUNCTION_PROBE // Zmax -#define DI6_MODE IO_MODE_DISABLED -#define DI6_ACTION INPUT_ACTION_NONE -#define DI6_FUNCTION INPUT_FUNCTION_NONE +#define DI6_MODE IO_MODE_DISABLED +#define DI6_ACTION INPUT_ACTION_NONE +#define DI6_FUNCTION INPUT_FUNCTION_NONE // Shutdown (Amin on v9 board) -#define DI7_MODE IO_MODE_DISABLED -#define DI7_ACTION INPUT_ACTION_NONE -#define DI7_FUNCTION INPUT_FUNCTION_NONE +#define DI7_MODE IO_MODE_DISABLED +#define DI7_ACTION INPUT_ACTION_NONE +#define DI7_FUNCTION INPUT_FUNCTION_NONE // High Voltage Z Probe In (Amax on v9 board) -#define DI8_MODE IO_ACTIVE_LOW -#define DI8_ACTION INPUT_ACTION_NONE -#define DI8_FUNCTION INPUT_FUNCTION_NONE +#define DI8_MODE IO_ACTIVE_LOW +#define DI8_ACTION INPUT_ACTION_NONE +#define DI8_FUNCTION INPUT_FUNCTION_NONE // Hardware interlock input -#define DI9_MODE IO_MODE_DISABLED -#define DI9_ACTION INPUT_ACTION_NONE -#define DI9_FUNCTION INPUT_FUNCTION_NONE - +#define DI9_MODE IO_MODE_DISABLED +#define DI9_ACTION INPUT_ACTION_NONE +#define DI9_FUNCTION INPUT_FUNCTION_NONE // Extruder1_PWM -#define DO1_MODE IO_ACTIVE_HIGH +#define DO1_MODE IO_ACTIVE_HIGH // Extruder2_PWM -#define DO2_MODE IO_ACTIVE_HIGH +#define DO2_MODE IO_ACTIVE_HIGH // Fan1A_PWM -#define DO3_MODE IO_ACTIVE_HIGH +#define DO3_MODE IO_ACTIVE_HIGH // Fan1B_PWM -#define DO4_MODE IO_ACTIVE_HIGH +#define DO4_MODE IO_ACTIVE_HIGH -// Fan2A_PWM -#define DO5_MODE IO_ACTIVE_HIGH - -#define DO6_MODE IO_ACTIVE_HIGH -#define DO7_MODE IO_ACTIVE_HIGH -#define DO8_MODE IO_ACTIVE_HIGH +#define DO5_MODE IO_ACTIVE_HIGH +#define DO6_MODE IO_ACTIVE_HIGH +#define DO7_MODE IO_ACTIVE_HIGH +#define DO8_MODE IO_ACTIVE_HIGH // SAFEin (Output) signal -#define DO9_MODE IO_ACTIVE_HIGH -#define DO10_MODE IO_ACTIVE_HIGH +#define DO9_MODE IO_ACTIVE_HIGH + +#define DO10_MODE IO_ACTIVE_HIGH // Header Bed FET -#define DO11_MODE IO_ACTIVE_HIGH +#define DO11_MODE IO_ACTIVE_HIGH // Indicator_LED -#define DO12_MODE IO_ACTIVE_HIGH -#define DO13_MODE IO_ACTIVE_HIGH +#define DO12_MODE IO_ACTIVE_HIGH + +#define DO13_MODE IO_ACTIVE_HIGH + /*** Extruders / Heaters ***/ -#define MIN_FAN_TEMP 50.0 -#define MAX_FAN_TEMP 100.0 +#define TEMP_MIN_BED_RISE_DEGREES_OVER_TIME 0.5 -#define H1_DEFAULT_ENABLE true -#define H1_DEFAULT_P 7.0 -#define H1_DEFAULT_I 0.05 -#define H1_DEFAULT_D 150.0 +#define MIN_FAN_VALUE 0.4 // (he1fm) at MIN_FAN_TEMP the fan comes on at this spped (0.0-1.0) +#define MAX_FAN_VALUE 0.75 // (he1fp) at MAX_FAN_TEMP the fan is at this spped (0.0-1.0) +#define MIN_FAN_TEMP 50.0 // (he1fl) at this temp the fan starts to ramp up linearly +#define MAX_FAN_TEMP 100.0 // (he1fh) at this temperature the fan is at "full speed" (MAX_FAN_VALUE) -#define H2_DEFAULT_ENABLE false -#define H2_DEFAULT_P 7.0 -#define H2_DEFAULT_I 0.05 -#define H2_DEFAULT_D 150.0 +#define H1_DEFAULT_ENABLE true +#define H1_DEFAULT_P 7.0 +#define H1_DEFAULT_I 0.05 +#define H1_DEFAULT_D 150.0 -#define H3_DEFAULT_ENABLE false -#define H3_DEFAULT_P 9.0 -#define H3_DEFAULT_I 0.12 -#define H3_DEFAULT_D 400.0 +#define H2_DEFAULT_ENABLE false +#define H2_DEFAULT_P 7.0 +#define H2_DEFAULT_I 0.05 +#define H2_DEFAULT_D 150.0 + +#define H3_DEFAULT_ENABLE false +#define H3_DEFAULT_P 9.0 +#define H3_DEFAULT_I 0.12 +#define H3_DEFAULT_D 400.0 diff --git a/g2core/settings/settings_Printrbot_Simple_1403.h b/g2core/settings/settings_Printrbot_Simple_1403.h index a79115d1..6f168937 100644 --- a/g2core/settings/settings_Printrbot_Simple_1403.h +++ b/g2core/settings/settings_Printrbot_Simple_1403.h @@ -2,8 +2,8 @@ * settings_printrbot_simple_1403.h - 2013 Simple model * This file is part of the the g2core project * - * Copyright (c) 2010 - 2016 Alden S. Hart, Jr. - * Copyright (c) 2010 - 2016 Robert Giseburt + * Copyright (c) 2010 - 2017 Alden S. Hart, Jr. + * Copyright (c) 2010 - 2017 Robert Giseburt * * This file ("the software") is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License, version 2 as published by the @@ -27,158 +27,175 @@ */ /***********************************************************************/ -/**** Printrbot Simple profile *******************************************/ +/**** Printrbot Simple 1403 profile *******************************************/ /***********************************************************************/ // ***> NOTE: The init message must be a single line with no CRs or LFs -#define INIT_MESSAGE "Initializing configs to Printrbot Simple 1403 profile" - -#ifndef PI -#define PI 3.14159628 -#endif +#define INIT_MESSAGE "Initializing configs to Printrbot Simple 1403 profile" //**** GLOBAL / GENERAL SETTINGS ****************************************************** -#define JUNCTION_INTEGRATION_TIME 1.05 // cornering - between 0.10 and 2.00 (higher is faster) -#define CHORDAL_TOLERANCE 0.01 // chordal accuracy for arc drawing (in mm) +#define JUNCTION_INTEGRATION_TIME 1.1 // cornering - between 0.10 and 2.00 (higher is faster) +#define CHORDAL_TOLERANCE 0.01 // chordal accuracy for arc drawing (in mm) -#define SOFT_LIMIT_ENABLE 0 // 0=off, 1=on -#define HARD_LIMIT_ENABLE 1 // 0=off, 1=on -#define SAFETY_INTERLOCK_ENABLE 1 // 0=off, 1=on +#define SOFT_LIMIT_ENABLE 0 // 0=off, 1=on +#define HARD_LIMIT_ENABLE 1 // 0=off, 1=on +#define SAFETY_INTERLOCK_ENABLE 1 // 0=off, 1=on -#define SPINDLE_ENABLE_POLARITY 1 // 0=active low, 1=active high -#define SPINDLE_DIR_POLARITY 0 // 0=clockwise is low, 1=clockwise is high -#define SPINDLE_PAUSE_ON_HOLD true -#define SPINDLE_DWELL_TIME 1.0 +#define SPINDLE_ENABLE_POLARITY 1 // 0=active low, 1=active high +#define SPINDLE_DIR_POLARITY 0 // 0=clockwise is low, 1=clockwise is high +#define SPINDLE_PAUSE_ON_HOLD true +#define SPINDLE_DWELL_TIME 1.0 -#define COOLANT_MIST_POLARITY 1 // 0=active low, 1=active high -#define COOLANT_FLOOD_POLARITY 1 // 0=active low, 1=active high -#define COOLANT_PAUSE_ON_HOLD false +#define COOLANT_MIST_POLARITY 1 // 0=active low, 1=active high +#define COOLANT_FLOOD_POLARITY 1 // 0=active low, 1=active high +#define COOLANT_PAUSE_ON_HOLD false + +#define TRAVERSE_AT_HIGH_JERK true // EXPERIMENTAL, primarily used here for retraction of extruder // Communications and reporting settings -#define MARLIN_COMPAT_ENABLED true // enable marlin compatibility mode -#define COMM_MODE JSON_MODE // one of: TEXT_MODE, JSON_MODE -#define XIO_ENABLE_FLOW_CONTROL FLOW_CONTROL_RTS // FLOW_CONTROL_OFF, FLOW_CONTROL_RTS -#define XIO_UART_MUTES_WHEN_USB_CONNECTED 1 // Mute the UART when USB connects +#define MARLIN_COMPAT_ENABLED true // enable marlin compatibility mode +#define COMM_MODE JSON_MODE // one of: TEXT_MODE, JSON_MODE +#define XIO_ENABLE_FLOW_CONTROL FLOW_CONTROL_RTS // FLOW_CONTROL_OFF, FLOW_CONTROL_RTS +#define XIO_UART_MUTES_WHEN_USB_CONNECTED 1 // Mute the UART when USB connects -#define TEXT_VERBOSITY TV_VERBOSE // one of: TV_SILENT, TV_VERBOSE -#define JSON_VERBOSITY JV_MESSAGES // one of: JV_SILENT, JV_FOOTER, JV_CONFIGS, JV_MESSAGES, JV_LINENUM, JV_VERBOSE -#define QUEUE_REPORT_VERBOSITY QR_OFF // one of: QR_OFF, QR_SINGLE, QR_TRIPLE +#define TEXT_VERBOSITY TV_VERBOSE // one of: TV_SILENT, TV_VERBOSE +#define JSON_VERBOSITY JV_LINENUM // one of: JV_SILENT, JV_FOOTER, JV_CONFIGS, JV_MESSAGES, JV_LINENUM, JV_VERBOSE +#define QUEUE_REPORT_VERBOSITY QR_OFF // one of: QR_OFF, QR_SINGLE, QR_TRIPLE -#define STATUS_REPORT_VERBOSITY SR_FILTERED // one of: SR_OFF, SR_FILTERED, SR_VERBOSE -#define STATUS_REPORT_MIN_MS 100 // milliseconds - enforces a viable minimum -#define STATUS_REPORT_INTERVAL_MS 250 // milliseconds - set $SV=0 to disable +#define STATUS_REPORT_VERBOSITY SR_FILTERED // one of: SR_OFF, SR_FILTERED, SR_VERBOSE +#define STATUS_REPORT_MIN_MS 100 // milliseconds - enforces a viable minimum +#define STATUS_REPORT_INTERVAL_MS 250 // milliseconds - set $SV=0 to disable // Defaults for 3DP -//#define STATUS_REPORT_DEFAULTS "line","posx","posy","posz","posa","vel","he1t","he1st","he1at","feed","vel","unit","path","stat" -// There are no heater two or three, but these would show those: ,"he2t","he2st","he2at","he3t","he3st","he3at" +#define STATUS_REPORT_DEFAULTS \ + "line","posx","posy","posz","posa","vel","he1t","he1st","he1at","he1op","feed","vel","unit","path","stat", \ + "he2t","he2st","he2at","he2op","he3t","he3st","he3at","he3op" // Defaults for motion debugging -//#define STATUS_REPORT_DEFAULTS "line","posx","posy","posz","posa","vel","he1t","he1st","he1at","he2t","he2st","he2at","he3t","he3st","he3at","_fe5","_fe4","feed","vel","unit","path","stat" +//#define STATUS_REPORT_DEFAULTS +//"line","posx","posy","posz","posa","vel","he1t","he1st","he1at","he2t","he2st","he2at","he3t","he3st","he3at","_fe5","_fe4","feed","vel","unit","path","stat" // Defaults for PID tuning -#define STATUS_REPORT_DEFAULTS "line","posx","posy","posz","posa","vel","he1t","he1st","he1at","he1op","pid1p","pid1i","pid1d","feed","vel","unit","path","stat" +//#define STATUS_REPORT_DEFAULTS \ +// "line", "posx", "posy", "posz", "posa", "vel", "he1t", "he1st", "he1at", "he1op", "pid1p", "pid1i", "pid1d", \ +// "feed", "vel", "unit", "path", "stat" // Gcode startup defaults -#define GCODE_DEFAULT_UNITS MILLIMETERS // MILLIMETERS or INCHES -#define GCODE_DEFAULT_PLANE CANON_PLANE_XY // CANON_PLANE_XY, CANON_PLANE_XZ, or CANON_PLANE_YZ -#define GCODE_DEFAULT_COORD_SYSTEM G54 // G54, G55, G56, G57, G58 or G59 -#define GCODE_DEFAULT_PATH_CONTROL PATH_CONTINUOUS -#define GCODE_DEFAULT_DISTANCE_MODE ABSOLUTE_DISTANCE_MODE +#define GCODE_DEFAULT_UNITS MILLIMETERS // MILLIMETERS or INCHES +#define GCODE_DEFAULT_PLANE CANON_PLANE_XY // CANON_PLANE_XY, CANON_PLANE_XZ, or CANON_PLANE_YZ +#define GCODE_DEFAULT_COORD_SYSTEM G54 // G54, G55, G56, G57, G58 or G59 +#define GCODE_DEFAULT_PATH_CONTROL PATH_CONTINUOUS +#define GCODE_DEFAULT_DISTANCE_MODE ABSOLUTE_DISTANCE_MODE + +#define MARLIN_G29_SCRIPT \ + "M100 ({\"_leds\":3})\n" \ + "G1 X0 Y145 Z6 F20000\n" \ + "G38.2 Z-10 F200\n" \ + "G1 Z5 F20000\n" \ + "M100 ({\"_leds\":5})\n" \ + "G1 X140 Y65 F20000\n" \ + "G38.2 Z-10 F200\n" \ + "G1 Z5 F20000\n" \ + "M100 ({\"_leds\":6})\n" \ + "G1 X0 Y10 F20000\n" \ + "G38.2 Z-10 F200\n" \ + "G1 Z5 F20000\n" \ + "M100 ({\"_leds\":3})\n" \ + "M100 ({\"tram\":1})\n" // *** motor settings ************************************************************************************ -#define MOTOR_POWER_MODE MOTOR_POWERED_IN_CYCLE // default motor power mode (see cmMotorPowerMode in stepper.h) +#define MOTOR_POWER_MODE MOTOR_POWERED_IN_CYCLE // default motor power mode (see cmMotorPowerMode in stepper.h) // 80 steps/mm at 1/16 microstepping = 40 mm/rev -#define M1_MOTOR_MAP AXIS_X // 1ma -#define M1_STEP_ANGLE 1.8 // 1sa -#define M1_TRAVEL_PER_REV 40.64 // 1tr -#define M1_MICROSTEPS 32 // 1mi 1,2,4,8,16,32 -#define M1_POLARITY 1 // 1po 0=normal, 1=reversed -#define M1_POWER_MODE MOTOR_POWER_MODE // 1pm standard -#define M1_POWER_LEVEL 0.4 // 1mp +#define M1_MOTOR_MAP AXIS_X // 1ma +#define M1_STEP_ANGLE 1.8 // 1sa +#define M1_TRAVEL_PER_REV 40.64 // 1tr +#define M1_MICROSTEPS 32 // 1mi 1,2,4,8,16,32 +#define M1_POLARITY 1 // 1po 0=normal, 1=reversed +#define M1_POWER_MODE MOTOR_POWER_MODE // 1pm standard +#define M1_POWER_LEVEL 0.4 // 1mp // 80 steps/mm at 1/16 microstepping = 40 mm/rev -#define M3_MOTOR_MAP AXIS_Y -#define M3_STEP_ANGLE 1.8 -#define M3_TRAVEL_PER_REV 40.64 -#define M3_MICROSTEPS 32 -#define M3_POLARITY 0 -#define M3_POWER_MODE MOTOR_POWER_MODE -#define M3_POWER_LEVEL 0.4 +#define M3_MOTOR_MAP AXIS_Y +#define M3_STEP_ANGLE 1.8 +#define M3_TRAVEL_PER_REV 40.64 +#define M3_MICROSTEPS 32 +#define M3_POLARITY 1 +#define M3_POWER_MODE MOTOR_POWER_MODE +#define M3_POWER_LEVEL 0.4 -// 2020 steps/mm at 1/16 microstepping = 1.58416 mm/rev -#define M2_MOTOR_MAP AXIS_Z -#define M2_STEP_ANGLE 1.8 -#define M2_TRAVEL_PER_REV 8 -#define M2_MICROSTEPS 32 -#define M2_POLARITY 1 -#define M2_POWER_MODE MOTOR_POWER_MODE -#define M2_POWER_LEVEL 0.4 +#define M2_MOTOR_MAP AXIS_Z +#define M2_STEP_ANGLE 1.8 +#define M2_TRAVEL_PER_REV 1.5875 +#define M2_MICROSTEPS 32 +#define M2_POLARITY 1 +#define M2_POWER_MODE MOTOR_POWER_MODE +#define M2_POWER_LEVEL 0.4 // 96 steps/mm at 1/16 microstepping = 33.3333 mm/rev -#define M4_MOTOR_MAP AXIS_A -#define M4_STEP_ANGLE 1.8 -#define M4_TRAVEL_PER_REV 360 // degrees moved per motor rev -#define M4_MICROSTEPS 32 -#define M4_POLARITY 0 -#define M4_POWER_MODE MOTOR_POWER_MODE -#define M4_POWER_LEVEL 0.4 +#define M4_MOTOR_MAP AXIS_A +#define M4_STEP_ANGLE 1.8 +#define M4_TRAVEL_PER_REV 360 // degrees moved per motor rev +#define M4_MICROSTEPS 32 +#define M4_POLARITY 1 +#define M4_POWER_MODE MOTOR_POWER_MODE +#define M4_POWER_LEVEL 0.4 // 96 steps/mm at 1/16 microstepping = 33.3333 mm/rev -#define M5_MOTOR_MAP AXIS_B -#define M5_STEP_ANGLE 1.8 -#define M5_TRAVEL_PER_REV 360 // degrees moved per motor rev -#define M5_MICROSTEPS 32 -#define M5_POLARITY 0 -#define M5_POWER_MODE MOTOR_POWER_MODE -#define M5_POWER_LEVEL 0.3 +#define M5_MOTOR_MAP AXIS_B +#define M5_STEP_ANGLE 1.8 +#define M5_TRAVEL_PER_REV 360 // degrees moved per motor rev +#define M5_MICROSTEPS 32 +#define M5_POLARITY 0 +#define M5_POWER_MODE MOTOR_POWER_MODE +#define M5_POWER_LEVEL 0.35 // *** axis settings ********************************************************************************** -#define X_AXIS_MODE AXIS_STANDARD // xam see canonical_machine.h cmAxisMode for valid values -#define X_VELOCITY_MAX 20000 // xvm G0 max velocity in mm/min -#define X_FEEDRATE_MAX X_VELOCITY_MAX // xfr G1 max feed rate in mm/min -#define X_TRAVEL_MIN 0 // xtn minimum travel - used by soft limits and homing -#define X_TRAVEL_MAX 200 // xtm travel between switches or crashes -#define X_JERK_MAX 18000 // xjm yes, that's "100 billion" mm/(min^3) -#define X_JERK_HIGH_SPEED 8000 // xjh -#define X_HOMING_INPUT 4 // xhi input used for homing or 0 to disable -#define X_HOMING_DIRECTION 0 // xhd 0=search moves negative, 1= search moves positive -#define X_SEARCH_VELOCITY 2500 // xsv move in negative direction -#define X_LATCH_VELOCITY 200 // xlv mm/min -#define X_LATCH_BACKOFF 5 // xlb mm -#define X_ZERO_BACKOFF 0.5 // xzb mm +#define X_AXIS_MODE AXIS_STANDARD // xam see canonical_machine.h cmAxisMode for valid values +#define X_VELOCITY_MAX 30000 // xvm G0 max velocity in mm/min +#define X_FEEDRATE_MAX X_VELOCITY_MAX // xfr G1 max feed rate in mm/min +#define X_TRAVEL_MIN 0 // xtn minimum travel - used by soft limits and homing +#define X_TRAVEL_MAX 152 // xtm travel between switches or crashes +#define X_JERK_MAX 6000 // xjm yes, that's "100 billion" mm/(min^3) +#define X_JERK_HIGH_SPEED 6000 // xjh +#define X_HOMING_INPUT 4 // xhi input used for homing or 0 to disable +#define X_HOMING_DIRECTION 0 // xhd 0=search moves negative, 1= search moves positive +#define X_SEARCH_VELOCITY 3000 // xsv move in negative direction +#define X_LATCH_VELOCITY 200 // xlv mm/min +#define X_LATCH_BACKOFF 5 // xlb mm +#define X_ZERO_BACKOFF 0.5 // xzb mm -#define Y_AXIS_MODE AXIS_STANDARD -#define Y_VELOCITY_MAX 20000 -#define Y_FEEDRATE_MAX Y_VELOCITY_MAX -#define Y_TRAVEL_MIN 0 -#define Y_TRAVEL_MAX 150 -#define Y_JERK_MAX 8000 // {yjm:15000} {xjm:15000} {yjm:10000} {xjm:10000} -#define Y_JERK_HIGH_SPEED 30000 -#define Y_HOMING_INPUT 1 -#define Y_HOMING_DIRECTION 1 -#define Y_SEARCH_VELOCITY 3000 -#define Y_LATCH_VELOCITY 200 -#define Y_LATCH_BACKOFF 5 -#define Y_ZERO_BACKOFF 0.5 +#define Y_AXIS_MODE AXIS_STANDARD +#define Y_VELOCITY_MAX 30000 +#define Y_FEEDRATE_MAX Y_VELOCITY_MAX +#define Y_TRAVEL_MIN 0 +#define Y_TRAVEL_MAX 152 +#define Y_JERK_MAX 6000 +#define Y_JERK_HIGH_SPEED 6000 +#define Y_HOMING_INPUT 1 +#define Y_HOMING_DIRECTION 1 +#define Y_SEARCH_VELOCITY 1500 +#define Y_LATCH_VELOCITY 200 +#define Y_LATCH_BACKOFF 5 +#define Y_ZERO_BACKOFF 0.5 -#define Z_AXIS_MODE AXIS_STANDARD -#define Z_VELOCITY_MAX 4000 -#define Z_FEEDRATE_MAX Z_VELOCITY_MAX -#define Z_TRAVEL_MIN 0 -#define Z_TRAVEL_MAX 200 -#define Z_JERK_MAX 3000 -#define Z_JERK_HIGH_SPEED 3000 -#define Z_HOMING_INPUT 5 -#define Z_HOMING_DIRECTION 0 -#define Z_SEARCH_VELOCITY 300 -#define Z_LATCH_VELOCITY 100 -#define Z_LATCH_BACKOFF 2 -#define Z_ZERO_BACKOFF 0 +#define Z_AXIS_MODE AXIS_STANDARD +#define Z_VELOCITY_MAX 300 +#define Z_FEEDRATE_MAX Z_VELOCITY_MAX +#define Z_TRAVEL_MIN 0 +#define Z_TRAVEL_MAX 152 +#define Z_JERK_MAX 800 +#define Z_JERK_HIGH_SPEED 1600 +#define Z_HOMING_INPUT 5 +#define Z_HOMING_DIRECTION 0 +#define Z_SEARCH_VELOCITY 200 +#define Z_LATCH_VELOCITY 100 +#define Z_LATCH_BACKOFF 5 +#define Z_ZERO_BACKOFF 0 // Rotary values are chosen to make the motor react the same as X for testing /*************************************************************************************** @@ -198,153 +215,151 @@ * ***************************************************************************************/ -#define A_AXIS_MODE AXIS_RADIUS -#define A_RADIUS 5.30516476972984 -//#define A_VELOCITY_MAX 25920.0 // ~40 mm/s, 2,400 mm/min -//#define A_FEEDRATE_MAX 25920.0/2.0 // ~20 mm/s, 1,200 mm/min -#define A_VELOCITY_MAX 77760.0 // G0 rate ~120 mm/s, 2,400 mm/min -#define A_FEEDRATE_MAX 9720.0 // 9720.0 = G1 rate ~15 mm/s, 900 mm/min -#define A_TRAVEL_MIN 0 -#define A_TRAVEL_MAX 10 -#define A_JERK_MAX 648000 // 1,000 million mm/min^3 = 648000 - // * a million IF it's over a million - // c=2*pi*r, r=5.30516476972984, d=c/360, s=((1000*60)/d) -#define A_HOMING_INPUT 0 -#define A_HOMING_DIRECTION 0 -#define A_SEARCH_VELOCITY 2000 -#define A_LATCH_VELOCITY 2000 -#define A_LATCH_BACKOFF 5 -#define A_ZERO_BACKOFF 2 -#define A_JERK_HIGH_SPEED A_JERK_MAX +#define A_AXIS_MODE AXIS_RADIUS +#define A_RADIUS 5.30516476972984 +#define A_VELOCITY_MAX 77760.0 // G0 rate ~120 mm/s, 2,400 mm/min +#define A_FEEDRATE_MAX 9720.0 // 9720.0 = G1 rate ~15 mm/s, 900 mm/min +#define A_TRAVEL_MIN 0 +#define A_TRAVEL_MAX 10 +#define A_JERK_MAX 648000 // 1,000 million mm/min^3 = 648000 +#define A_HOMING_INPUT 0 +#define A_HOMING_DIRECTION 0 +#define A_SEARCH_VELOCITY 2000 +#define A_LATCH_VELOCITY 2000 +#define A_LATCH_BACKOFF 5 +#define A_ZERO_BACKOFF 2 +#define A_JERK_HIGH_SPEED A_JERK_MAX -#define B_AXIS_MODE AXIS_DISABLED -#define B_RADIUS 1 -#define B_VELOCITY_MAX 3600 -#define B_FEEDRATE_MAX B_VELOCITY_MAX -#define B_TRAVEL_MIN 0 -#define B_TRAVEL_MAX -1 -//#define B_JERK_MAX 20000000 -#define B_JERK_MAX 20 -#define B_HOMING_INPUT 0 -#define B_HOMING_DIRECTION 0 -#define B_SEARCH_VELOCITY 600 -#define B_LATCH_VELOCITY 100 -#define B_LATCH_BACKOFF 10 -#define B_ZERO_BACKOFF 2 -#define B_JERK_HIGH_SPEED A_JERK_MAX +#define B_AXIS_MODE AXIS_DISABLED +#define B_RADIUS 1 +#define B_VELOCITY_MAX 3600 +#define B_FEEDRATE_MAX B_VELOCITY_MAX +#define B_TRAVEL_MIN 0 +#define B_TRAVEL_MAX -1 +#define B_JERK_MAX 20 +#define B_HOMING_INPUT 0 +#define B_HOMING_DIRECTION 0 +#define B_SEARCH_VELOCITY 600 +#define B_LATCH_VELOCITY 100 +#define B_LATCH_BACKOFF 10 +#define B_ZERO_BACKOFF 2 +#define B_JERK_HIGH_SPEED A_JERK_MAX //*** Input / output settings *** /* - IO_MODE_DISABLED - IO_ACTIVE_LOW aka NORMALLY_OPEN - IO_ACTIVE_HIGH aka NORMALLY_CLOSED + IO_MODE_DISABLED + IO_ACTIVE_LOW aka NORMALLY_OPEN + IO_ACTIVE_HIGH aka NORMALLY_CLOSED - INPUT_ACTION_NONE - INPUT_ACTION_STOP - INPUT_ACTION_FAST_STOP - INPUT_ACTION_HALT - INPUT_ACTION_RESET + INPUT_ACTION_NONE + INPUT_ACTION_STOP + INPUT_ACTION_FAST_STOP + INPUT_ACTION_HALT + INPUT_ACTION_RESET - INPUT_FUNCTION_NONE - INPUT_FUNCTION_LIMIT - INPUT_FUNCTION_INTERLOCK - INPUT_FUNCTION_SHUTDOWN - INPUT_FUNCTION_PANIC -*/ + INPUT_FUNCTION_NONE + INPUT_FUNCTION_LIMIT + INPUT_FUNCTION_INTERLOCK + INPUT_FUNCTION_SHUTDOWN + INPUT_FUNCTION_PANIC + */ // Inputs are defined for the g2ref(a) board // Xmn (board label) -#define DI1_MODE IO_ACTIVE_HIGH -#define DI1_ACTION INPUT_ACTION_NONE -#define DI1_FUNCTION INPUT_FUNCTION_NONE +#define DI1_MODE IO_ACTIVE_HIGH +#define DI1_ACTION INPUT_ACTION_NONE +#define DI1_FUNCTION INPUT_FUNCTION_NONE // Xmax -#define DI2_MODE IO_MODE_DISABLED -#define DI2_ACTION INPUT_ACTION_NONE -#define DI2_FUNCTION INPUT_FUNCTION_NONE +#define DI2_MODE IO_MODE_DISABLED +#define DI2_ACTION INPUT_ACTION_NONE +#define DI2_FUNCTION INPUT_FUNCTION_NONE // Ymin -#define DI3_MODE IO_MODE_DISABLED -#define DI3_ACTION INPUT_ACTION_NONE -#define DI3_FUNCTION INPUT_FUNCTION_NONE +#define DI3_MODE IO_MODE_DISABLED +#define DI3_ACTION INPUT_ACTION_NONE +#define DI3_FUNCTION INPUT_FUNCTION_NONE // Ymax -#define DI4_MODE IO_ACTIVE_HIGH -#define DI4_ACTION INPUT_ACTION_NONE -#define DI4_FUNCTION INPUT_FUNCTION_NONE +#define DI4_MODE IO_ACTIVE_HIGH +#define DI4_ACTION INPUT_ACTION_NONE +#define DI4_FUNCTION INPUT_FUNCTION_NONE // Zmin -#define DI5_MODE IO_ACTIVE_LOW // Z probe -#define DI5_ACTION INPUT_ACTION_NONE -#define DI5_FUNCTION INPUT_FUNCTION_NONE +#define DI5_MODE IO_ACTIVE_LOW // Z probe +#define DI5_ACTION INPUT_ACTION_NONE +#define DI5_FUNCTION INPUT_FUNCTION_PROBE // Zmax -#define DI6_MODE IO_MODE_DISABLED -#define DI6_ACTION INPUT_ACTION_NONE -#define DI6_FUNCTION INPUT_FUNCTION_NONE +#define DI6_MODE IO_MODE_DISABLED +#define DI6_ACTION INPUT_ACTION_NONE +#define DI6_FUNCTION INPUT_FUNCTION_NONE // Shutdown (Amin on v9 board) -#define DI7_MODE IO_MODE_DISABLED -#define DI7_ACTION INPUT_ACTION_NONE -#define DI7_FUNCTION INPUT_FUNCTION_NONE +#define DI7_MODE IO_MODE_DISABLED +#define DI7_ACTION INPUT_ACTION_NONE +#define DI7_FUNCTION INPUT_FUNCTION_NONE // High Voltage Z Probe In (Amax on v9 board) -#define DI8_MODE IO_ACTIVE_LOW -#define DI8_ACTION INPUT_ACTION_NONE -#define DI8_FUNCTION INPUT_FUNCTION_NONE +#define DI8_MODE IO_ACTIVE_LOW +#define DI8_ACTION INPUT_ACTION_NONE +#define DI8_FUNCTION INPUT_FUNCTION_NONE // Hardware interlock input -#define DI9_MODE IO_MODE_DISABLED -#define DI9_ACTION INPUT_ACTION_NONE -#define DI9_FUNCTION INPUT_FUNCTION_NONE +#define DI9_MODE IO_MODE_DISABLED +#define DI9_ACTION INPUT_ACTION_NONE +#define DI9_FUNCTION INPUT_FUNCTION_NONE -//Extruder1_PWM -#define DO1_MODE IO_ACTIVE_HIGH +// Extruder1_PWM +#define DO1_MODE IO_ACTIVE_HIGH -//Extruder2_PWM -#define DO2_MODE IO_ACTIVE_HIGH +// Extruder2_PWM +#define DO2_MODE IO_ACTIVE_HIGH -//Fan1A_PWM -#define DO3_MODE IO_ACTIVE_HIGH +// Fan1A_PWM +#define DO3_MODE IO_ACTIVE_HIGH -//Fan1B_PWM -#define DO4_MODE IO_ACTIVE_HIGH +// Fan1B_PWM +#define DO4_MODE IO_ACTIVE_HIGH -#define DO5_MODE IO_ACTIVE_HIGH -#define DO6_MODE IO_ACTIVE_HIGH -#define DO7_MODE IO_ACTIVE_HIGH -#define DO8_MODE IO_ACTIVE_HIGH +#define DO5_MODE IO_ACTIVE_HIGH +#define DO6_MODE IO_ACTIVE_HIGH +#define DO7_MODE IO_ACTIVE_HIGH +#define DO8_MODE IO_ACTIVE_HIGH -//SAFEin (Output) signal -#define DO9_MODE IO_ACTIVE_HIGH +// SAFEin (Output) signal +#define DO9_MODE IO_ACTIVE_HIGH -#define DO10_MODE IO_ACTIVE_HIGH +#define DO10_MODE IO_ACTIVE_HIGH -//Header Bed FET -#define DO11_MODE IO_ACTIVE_HIGH +// Header Bed FET +#define DO11_MODE IO_ACTIVE_HIGH -//Indicator_LED -#define DO12_MODE IO_ACTIVE_HIGH +// Indicator_LED +#define DO12_MODE IO_ACTIVE_HIGH -#define DO13_MODE IO_ACTIVE_HIGH +#define DO13_MODE IO_ACTIVE_HIGH /*** Extruders / Heaters ***/ +#define TEMP_MIN_BED_RISE_DEGREES_OVER_TIME 0.5 -#define MIN_FAN_TEMP 50.0 -#define MAX_FAN_TEMP 100.0 +#define MIN_FAN_VALUE 0.4 // (he1fm) at MIN_FAN_TEMP the fan comes on at this spped (0.0-1.0) +#define MAX_FAN_VALUE 0.75 // (he1fp) at MAX_FAN_TEMP the fan is at this spped (0.0-1.0) +#define MIN_FAN_TEMP 50.0 // (he1fl) at this temp the fan starts to ramp up linearly +#define MAX_FAN_TEMP 100.0 // (he1fh) at this temperature the fan is at "full speed" (MAX_FAN_VALUE) -#define H1_DEFAULT_ENABLE true -#define H1_DEFAULT_P 7.0 -#define H1_DEFAULT_I 0.05 -#define H1_DEFAULT_D 150.0 +#define H1_DEFAULT_ENABLE true +#define H1_DEFAULT_P 7.0 +#define H1_DEFAULT_I 0.05 +#define H1_DEFAULT_D 150.0 -#define H2_DEFAULT_ENABLE false -#define H2_DEFAULT_P 7.0 -#define H2_DEFAULT_I 0.05 -#define H2_DEFAULT_D 150.0 +#define H2_DEFAULT_ENABLE false +#define H2_DEFAULT_P 7.0 +#define H2_DEFAULT_I 0.05 +#define H2_DEFAULT_D 150.0 -#define H3_DEFAULT_ENABLE false -#define H3_DEFAULT_P 9.0 -#define H3_DEFAULT_I 0.12 -#define H3_DEFAULT_D 400.0 +#define H3_DEFAULT_ENABLE false +#define H3_DEFAULT_P 9.0 +#define H3_DEFAULT_I 0.12 +#define H3_DEFAULT_D 400.0 diff --git a/g2core/settings/settings_Printrbot_Simple_1608.h b/g2core/settings/settings_Printrbot_Simple_1608.h index be981e36..903a25c4 100644 --- a/g2core/settings/settings_Printrbot_Simple_1608.h +++ b/g2core/settings/settings_Printrbot_Simple_1608.h @@ -2,8 +2,8 @@ * settings_printrbot_simple_1608.h - New Simple, 2016 version * This file is part of the the g2core project * - * Copyright (c) 2010 - 2016 Alden S. Hart, Jr. - * Copyright (c) 2010 - 2016 Robert Giseburt + * Copyright (c) 2010 - 2017 Alden S. Hart, Jr. + * Copyright (c) 2010 - 2017 Robert Giseburt * * This file ("the software") is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License, version 2 as published by the @@ -31,48 +31,47 @@ /***********************************************************************/ // ***> NOTE: The init message must be a single line with no CRs or LFs -#define INIT_MESSAGE "Initializing configs to Printrbot Simple 1608 profile" - -#ifndef PI -#define PI 3.14159628 -#endif +#define INIT_MESSAGE "Initializing configs to Printrbot Simple 1608 profile" //**** GLOBAL / GENERAL SETTINGS ****************************************************** -#define JUNCTION_INTEGRATION_TIME 1.15 // cornering - between 0.10 and 2.00 (higher is faster) -#define CHORDAL_TOLERANCE 0.01 // chordal accuracy for arc drawing (in mm) +#define JUNCTION_INTEGRATION_TIME 1.15 // cornering - between 0.10 and 2.00 (higher is faster) +#define CHORDAL_TOLERANCE 0.01 // chordal accuracy for arc drawing (in mm) -#define SOFT_LIMIT_ENABLE 0 // 0=off, 1=on -#define HARD_LIMIT_ENABLE 1 // 0=off, 1=on -#define SAFETY_INTERLOCK_ENABLE 1 // 0=off, 1=on +#define SOFT_LIMIT_ENABLE 0 // 0=off, 1=on +#define HARD_LIMIT_ENABLE 1 // 0=off, 1=on +#define SAFETY_INTERLOCK_ENABLE 1 // 0=off, 1=on -#define SPINDLE_ENABLE_POLARITY 1 // 0=active low, 1=active high -#define SPINDLE_DIR_POLARITY 0 // 0=clockwise is low, 1=clockwise is high -#define SPINDLE_PAUSE_ON_HOLD true -#define SPINDLE_DWELL_TIME 1.0 +#define SPINDLE_ENABLE_POLARITY 1 // 0=active low, 1=active high +#define SPINDLE_DIR_POLARITY 0 // 0=clockwise is low, 1=clockwise is high +#define SPINDLE_PAUSE_ON_HOLD true +#define SPINDLE_DWELL_TIME 1.0 -#define COOLANT_MIST_POLARITY 1 // 0=active low, 1=active high -#define COOLANT_FLOOD_POLARITY 1 // 0=active low, 1=active high -#define COOLANT_PAUSE_ON_HOLD false +#define COOLANT_MIST_POLARITY 1 // 0=active low, 1=active high +#define COOLANT_FLOOD_POLARITY 1 // 0=active low, 1=active high +#define COOLANT_PAUSE_ON_HOLD false + +#define TRAVERSE_AT_HIGH_JERK true // EXPERIMENTAL, primarily used here for retraction of extruder // Communications and reporting settings -#define MARLIN_COMPAT_ENABLED true // enable marlin compatibility mode -#define COMM_MODE JSON_MODE // one of: TEXT_MODE, JSON_MODE -#define XIO_ENABLE_FLOW_CONTROL FLOW_CONTROL_RTS // FLOW_CONTROL_OFF, FLOW_CONTROL_RTS -#define XIO_UART_MUTES_WHEN_USB_CONNECTED 1 // Mute the UART when USB connects +#define MARLIN_COMPAT_ENABLED true // enable marlin compatibility mode +#define COMM_MODE JSON_MODE // one of: TEXT_MODE, JSON_MODE +#define XIO_ENABLE_FLOW_CONTROL FLOW_CONTROL_RTS // FLOW_CONTROL_OFF, FLOW_CONTROL_RTS +#define XIO_UART_MUTES_WHEN_USB_CONNECTED 1 // Mute the UART when USB connects -#define TEXT_VERBOSITY TV_VERBOSE // one of: TV_SILENT, TV_VERBOSE -#define JSON_VERBOSITY JV_LINENUM // one of: JV_SILENT, JV_FOOTER, JV_CONFIGS, JV_MESSAGES, JV_LINENUM, JV_VERBOSE -#define QUEUE_REPORT_VERBOSITY QR_OFF // one of: QR_OFF, QR_SINGLE, QR_TRIPLE +#define TEXT_VERBOSITY TV_VERBOSE // one of: TV_SILENT, TV_VERBOSE +#define JSON_VERBOSITY JV_LINENUM // one of: JV_SILENT, JV_FOOTER, JV_CONFIGS, JV_MESSAGES, JV_LINENUM, JV_VERBOSE +#define QUEUE_REPORT_VERBOSITY QR_OFF // one of: QR_OFF, QR_SINGLE, QR_TRIPLE -#define STATUS_REPORT_VERBOSITY SR_FILTERED // one of: SR_OFF, SR_FILTERED, SR_VERBOSE -#define STATUS_REPORT_MIN_MS 100 // milliseconds - enforces a viable minimum -#define STATUS_REPORT_INTERVAL_MS 250 // milliseconds - set $SV=0 to disable +#define STATUS_REPORT_VERBOSITY SR_FILTERED // one of: SR_OFF, SR_FILTERED, SR_VERBOSE +#define STATUS_REPORT_MIN_MS 100 // milliseconds - enforces a viable minimum +#define STATUS_REPORT_INTERVAL_MS 250 // milliseconds - set $SV=0 to disable // Defaults for 3DP -#define STATUS_REPORT_DEFAULTS "line","posx","posy","posz","posa","vel","he1t","he1st","he1at","he1op","he3t","he3st","he3at","he3op","feed","unit","path","stat" -// There are no heater two or three, but these would show those: ,"he2t","he2st","he2at","he3t","he3st","he3at" +#define STATUS_REPORT_DEFAULTS \ + "line","posx","posy","posz","posa","vel","he1t","he1st","he1at","he1op","feed","vel","unit","path","stat", \ + "he2t","he2st","he2at","he2op","he3t","he3st","he3at","he3op" // Defaults for motion debugging //#define STATUS_REPORT_DEFAULTS "line","posx","posy","posz","posa","he1t","he1st","he1at","he2t","he2st","he2at","he3t","he3st","he3at","_fe5","_fe4","feed","vel","unit","path","stat" @@ -81,13 +80,13 @@ //#define STATUS_REPORT_DEFAULTS "line","posx","posy","posz","posa","he1t","he1st","he1at","he1op","pid1p","pid1i","pid1d","feed","vel","unit","path","stat" // Gcode startup defaults -#define GCODE_DEFAULT_UNITS MILLIMETERS // MILLIMETERS or INCHES -#define GCODE_DEFAULT_PLANE CANON_PLANE_XY // CANON_PLANE_XY, CANON_PLANE_XZ, or CANON_PLANE_YZ -#define GCODE_DEFAULT_COORD_SYSTEM G54 // G54, G55, G56, G57, G58 or G59 -#define GCODE_DEFAULT_PATH_CONTROL PATH_CONTINUOUS -#define GCODE_DEFAULT_DISTANCE_MODE ABSOLUTE_DISTANCE_MODE +#define GCODE_DEFAULT_UNITS MILLIMETERS // MILLIMETERS or INCHES +#define GCODE_DEFAULT_PLANE CANON_PLANE_XY // CANON_PLANE_XY, CANON_PLANE_XZ, or CANON_PLANE_YZ +#define GCODE_DEFAULT_COORD_SYSTEM G54 // G54, G55, G56, G57, G58 or G59 +#define GCODE_DEFAULT_PATH_CONTROL PATH_CONTINUOUS +#define GCODE_DEFAULT_DISTANCE_MODE ABSOLUTE_DISTANCE_MODE -#define MARLIN_G29_SCRIPT \ +#define MARLIN_G29_SCRIPT \ "(MSG Tramming started)\n" \ "M100 ({\"_leds\":3})\n" \ "G1 X0 Y145 Z6 F20000\n" \ @@ -102,102 +101,102 @@ "G38.2 Z-10 F200\n" \ "G1 Z5 F20000\n" \ "M100 ({\"_leds\":3})\n" \ - "M100 ({\"tram\":1})" \ + "M100 ({\"tram\":1})\n" \ "(MSG Tramming completed)\n" // *** motor settings ************************************************************************************ -#define MOTOR_POWER_TIMEOUT 30 // don't disable motors (without an explicit {md:0}) for 30 seconds +#define MOTOR_POWER_TIMEOUT 30 // don't disable motors (without an explicit {md:0}) for 30 seconds -#define MOTOR_POWER_MODE MOTOR_POWERED_IN_CYCLE // default motor power mode (see cmMotorPowerMode in stepper.h) +#define MOTOR_POWER_MODE MOTOR_POWERED_IN_CYCLE // default motor power mode (see cmMotorPowerMode in stepper.h) // 80 steps/mm at 1/16 microstepping = 40 mm/rev -#define M1_MOTOR_MAP AXIS_X // 1ma -#define M1_STEP_ANGLE 1.8 // 1sa -#define M1_TRAVEL_PER_REV 40.011604 // 1tr -#define M1_MICROSTEPS 32 // 1mi 1,2,4,8,16,32 -#define M1_POLARITY 0 // 1po 0=normal, 1=reversed -#define M1_POWER_MODE MOTOR_POWER_MODE // 1pm standard -#define M1_POWER_LEVEL 0.35 // 1mp +#define M1_MOTOR_MAP AXIS_X // 1ma +#define M1_STEP_ANGLE 1.8 // 1sa +#define M1_TRAVEL_PER_REV 40.011604 // 1tr +#define M1_MICROSTEPS 32 // 1mi 1,2,4,8,16,32 +#define M1_POLARITY 0 // 1po 0=normal, 1=reversed +#define M1_POWER_MODE MOTOR_POWER_MODE // 1pm standard +#define M1_POWER_LEVEL 0.35 // 1mp // 80 steps/mm at 1/16 microstepping = 40 mm/rev -#define M3_MOTOR_MAP AXIS_Y -#define M3_STEP_ANGLE 1.8 -#define M3_TRAVEL_PER_REV 40.011604 -#define M3_MICROSTEPS 32 -#define M3_POLARITY 0 -#define M3_POWER_MODE MOTOR_POWER_MODE -#define M3_POWER_LEVEL 0.35 +#define M3_MOTOR_MAP AXIS_Y +#define M3_STEP_ANGLE 1.8 +#define M3_TRAVEL_PER_REV 40.011604 +#define M3_MICROSTEPS 32 +#define M3_POLARITY 0 +#define M3_POWER_MODE MOTOR_POWER_MODE +#define M3_POWER_LEVEL 0.35 // 2020 steps/mm at 1/16 microstepping = 1.58416 mm/rev -#define M2_MOTOR_MAP AXIS_Z -#define M2_STEP_ANGLE 1.8 -#define M2_TRAVEL_PER_REV 8 -#define M2_MICROSTEPS 32 -#define M2_POLARITY 1 -#define M2_POWER_MODE MOTOR_POWER_MODE -#define M2_POWER_LEVEL 0.3 +#define M2_MOTOR_MAP AXIS_Z +#define M2_STEP_ANGLE 1.8 +#define M2_TRAVEL_PER_REV 8 +#define M2_MICROSTEPS 32 +#define M2_POLARITY 1 +#define M2_POWER_MODE MOTOR_POWER_MODE +#define M2_POWER_LEVEL 0.3 // 96 steps/mm at 1/16 microstepping = 33.3333 mm/rev -#define M4_MOTOR_MAP AXIS_A -#define M4_STEP_ANGLE 1.8 -#define M4_TRAVEL_PER_REV 360 // degrees moved per motor rev -#define M4_MICROSTEPS 32 -#define M4_POLARITY 1 -#define M4_POWER_MODE MOTOR_POWER_MODE -#define M4_POWER_LEVEL 0.3 +#define M4_MOTOR_MAP AXIS_A +#define M4_STEP_ANGLE 1.8 +#define M4_TRAVEL_PER_REV 360 // degrees moved per motor rev +#define M4_MICROSTEPS 32 +#define M4_POLARITY 1 +#define M4_POWER_MODE MOTOR_POWER_MODE +#define M4_POWER_LEVEL 0.3 // 96 steps/mm at 1/16 microstepping = 33.3333 mm/rev -#define M5_MOTOR_MAP AXIS_B -#define M5_STEP_ANGLE 1.8 -#define M5_TRAVEL_PER_REV 360 // degrees moved per motor rev -#define M5_MICROSTEPS 32 -#define M5_POLARITY 0 -#define M5_POWER_MODE MOTOR_POWER_MODE -#define M5_POWER_LEVEL 0.3 +#define M5_MOTOR_MAP AXIS_B +#define M5_STEP_ANGLE 1.8 +#define M5_TRAVEL_PER_REV 360 // degrees moved per motor rev +#define M5_MICROSTEPS 32 +#define M5_POLARITY 0 +#define M5_POWER_MODE MOTOR_POWER_MODE +#define M5_POWER_LEVEL 0.3 // *** axis settings ********************************************************************************** -#define X_AXIS_MODE AXIS_STANDARD // xam see canonical_machine.h cmAxisMode for valid values -#define X_VELOCITY_MAX 15000 // xvm G0 max velocity in mm/min -#define X_FEEDRATE_MAX X_VELOCITY_MAX // xfr G1 max feed rate in mm/min -#define X_TRAVEL_MIN 0 // xtn minimum travel - used by soft limits and homing -#define X_TRAVEL_MAX 215 // xtm travel between switches or crashes -#define X_JERK_MAX 6000 // xjm yes, that's "100 billion" mm/(min^3) -#define X_JERK_HIGH_SPEED 6000 // xjh -#define X_HOMING_INPUT 4 // xhi input used for homing or 0 to disable -#define X_HOMING_DIRECTION 0 // xhd 0=search moves negative, 1= search moves positive -#define X_SEARCH_VELOCITY 2500 // xsv move in negative direction -#define X_LATCH_VELOCITY 200 // xlv mm/min -#define X_LATCH_BACKOFF 5 // xlb mm -#define X_ZERO_BACKOFF 0.5 // xzb mm +#define X_AXIS_MODE AXIS_STANDARD // xam see canonical_machine.h cmAxisMode for valid values +#define X_VELOCITY_MAX 15000 // xvm G0 max velocity in mm/min +#define X_FEEDRATE_MAX X_VELOCITY_MAX // xfr G1 max feed rate in mm/min +#define X_TRAVEL_MIN 0 // xtn minimum travel - used by soft limits and homing +#define X_TRAVEL_MAX 215 // xtm travel between switches or crashes +#define X_JERK_MAX 6000 // xjm yes, that's "100 billion" mm/(min^3) +#define X_JERK_HIGH_SPEED 6000 // xjh +#define X_HOMING_INPUT 4 // xhi input used for homing or 0 to disable +#define X_HOMING_DIRECTION 0 // xhd 0=search moves negative, 1= search moves positive +#define X_SEARCH_VELOCITY 2500 // xsv move in negative direction +#define X_LATCH_VELOCITY 200 // xlv mm/min +#define X_LATCH_BACKOFF 5 // xlb mm +#define X_ZERO_BACKOFF 0.5 // xzb mm -#define Y_AXIS_MODE AXIS_STANDARD -#define Y_VELOCITY_MAX 15000 -#define Y_FEEDRATE_MAX Y_VELOCITY_MAX -#define Y_TRAVEL_MIN 0 -#define Y_TRAVEL_MAX 152.4 -#define Y_JERK_MAX 6000 -#define Y_JERK_HIGH_SPEED 6000 -#define Y_HOMING_INPUT 1 -#define Y_HOMING_DIRECTION 1 -#define Y_SEARCH_VELOCITY 3000 -#define Y_LATCH_VELOCITY 200 -#define Y_LATCH_BACKOFF 5 -#define Y_ZERO_BACKOFF 0.5 +#define Y_AXIS_MODE AXIS_STANDARD +#define Y_VELOCITY_MAX 15000 +#define Y_FEEDRATE_MAX Y_VELOCITY_MAX +#define Y_TRAVEL_MIN 0 +#define Y_TRAVEL_MAX 152.4 +#define Y_JERK_MAX 6000 +#define Y_JERK_HIGH_SPEED 6000 +#define Y_HOMING_INPUT 1 +#define Y_HOMING_DIRECTION 1 +#define Y_SEARCH_VELOCITY 3000 +#define Y_LATCH_VELOCITY 200 +#define Y_LATCH_BACKOFF 5 +#define Y_ZERO_BACKOFF 0.5 -#define Z_AXIS_MODE AXIS_STANDARD -#define Z_VELOCITY_MAX 2000 -#define Z_FEEDRATE_MAX Z_VELOCITY_MAX -#define Z_TRAVEL_MIN 0 -#define Z_TRAVEL_MAX 215 -#define Z_JERK_MAX 1500 -#define Z_JERK_HIGH_SPEED 3000 -#define Z_HOMING_INPUT 5 -#define Z_HOMING_DIRECTION 0 -#define Z_SEARCH_VELOCITY 300 -#define Z_LATCH_VELOCITY 100 -#define Z_LATCH_BACKOFF 2 -#define Z_ZERO_BACKOFF 0 +#define Z_AXIS_MODE AXIS_STANDARD +#define Z_VELOCITY_MAX 2000 +#define Z_FEEDRATE_MAX Z_VELOCITY_MAX +#define Z_TRAVEL_MIN 0 +#define Z_TRAVEL_MAX 215 +#define Z_JERK_MAX 1500 +#define Z_JERK_HIGH_SPEED 3000 +#define Z_HOMING_INPUT 5 +#define Z_HOMING_DIRECTION 0 +#define Z_SEARCH_VELOCITY 300 +#define Z_LATCH_VELOCITY 100 +#define Z_LATCH_BACKOFF 2 +#define Z_ZERO_BACKOFF 0 // Rotary values are chosen to make the motor react the same as X for testing /*************************************************************************************** @@ -217,45 +216,36 @@ * ***************************************************************************************/ -#define A_AXIS_MODE AXIS_RADIUS -//#define A_RADIUS 4.30964 -#define A_RADIUS 4.28394 -//#define A_VELOCITY_MAX 25920.0 // ~40 mm/s, 2,400 mm/min -//#define A_FEEDRATE_MAX 25920.0/2.0 // ~20 mm/s, 1,200 mm/min -#define A_VELOCITY_MAX 77760.0 // G0 rate ~120 mm/s, 2,400 mm/min -#define A_FEEDRATE_MAX 16050 // ~10 mm/s -//#define A_FEEDRATE_MAX 9720.0 // 9720.0 = G1 rate ~15 mm/s, 900 mm/min -#define A_TRAVEL_MIN 0 -#define A_TRAVEL_MAX 10 -//#define A_JERK_MAX 81000 // 250 million mm/min^3 = 324000 -#define A_JERK_MAX 162000 // 250 million mm/min^3 = 324000 -//#define A_JERK_MAX 324000 // 500 million mm/min^3 = 324000 -//#define A_JERK_MAX 648000 // 1,000 million mm/min^3 = 648000 -// * a million IF it's over a million -// c=2*pi*r, r=5.30516476972984, d=c/360, s=((1000*60)/d) -#define A_HOMING_INPUT 0 -#define A_HOMING_DIRECTION 0 -#define A_SEARCH_VELOCITY 2000 -#define A_LATCH_VELOCITY 2000 -#define A_LATCH_BACKOFF 5 -#define A_ZERO_BACKOFF 2 -#define A_JERK_HIGH_SPEED A_JERK_MAX +#define A_AXIS_MODE AXIS_RADIUS +#define A_RADIUS 4.28394 +#define A_VELOCITY_MAX 77760.0 // G0 rate ~120 mm/s, 2,400 mm/min +#define A_FEEDRATE_MAX 16050 // ~10 mm/s +#define A_TRAVEL_MIN 0 +#define A_TRAVEL_MAX 10 +#define A_JERK_MAX 162000 // 250 million mm/min^3 = 324000 +#define A_HOMING_INPUT 0 +#define A_HOMING_DIRECTION 0 +#define A_SEARCH_VELOCITY 2000 +#define A_LATCH_VELOCITY 2000 +#define A_LATCH_BACKOFF 5 +#define A_ZERO_BACKOFF 2 +#define A_JERK_HIGH_SPEED A_JERK_MAX -#define B_AXIS_MODE AXIS_DISABLED -#define B_RADIUS 1 -#define B_VELOCITY_MAX 3600 -#define B_FEEDRATE_MAX B_VELOCITY_MAX -#define B_TRAVEL_MIN 0 -#define B_TRAVEL_MAX -1 +#define B_AXIS_MODE AXIS_DISABLED +#define B_RADIUS 1 +#define B_VELOCITY_MAX 3600 +#define B_FEEDRATE_MAX B_VELOCITY_MAX +#define B_TRAVEL_MIN 0 +#define B_TRAVEL_MAX -1 //#define B_JERK_MAX 20000000 -#define B_JERK_MAX 20 -#define B_HOMING_INPUT 0 -#define B_HOMING_DIRECTION 0 -#define B_SEARCH_VELOCITY 600 -#define B_LATCH_VELOCITY 100 -#define B_LATCH_BACKOFF 10 -#define B_ZERO_BACKOFF 2 -#define B_JERK_HIGH_SPEED A_JERK_MAX +#define B_JERK_MAX 20 +#define B_HOMING_INPUT 0 +#define B_HOMING_DIRECTION 0 +#define B_SEARCH_VELOCITY 600 +#define B_LATCH_VELOCITY 100 +#define B_LATCH_BACKOFF 10 +#define B_ZERO_BACKOFF 2 +#define B_JERK_HIGH_SPEED A_JERK_MAX //*** Input / output settings *** @@ -278,101 +268,101 @@ */ // Inputs are defined for the g2ref(a) board // Xmn (board label) -#define DI1_MODE IO_ACTIVE_HIGH -#define DI1_ACTION INPUT_ACTION_NONE -#define DI1_FUNCTION INPUT_FUNCTION_NONE +#define DI1_MODE IO_ACTIVE_HIGH +#define DI1_ACTION INPUT_ACTION_NONE +#define DI1_FUNCTION INPUT_FUNCTION_NONE // Xmax -#define DI2_MODE IO_MODE_DISABLED -#define DI2_ACTION INPUT_ACTION_NONE -#define DI2_FUNCTION INPUT_FUNCTION_NONE +#define DI2_MODE IO_MODE_DISABLED +#define DI2_ACTION INPUT_ACTION_NONE +#define DI2_FUNCTION INPUT_FUNCTION_NONE // Ymin -#define DI3_MODE IO_MODE_DISABLED -#define DI3_ACTION INPUT_ACTION_NONE -#define DI3_FUNCTION INPUT_FUNCTION_NONE +#define DI3_MODE IO_MODE_DISABLED +#define DI3_ACTION INPUT_ACTION_NONE +#define DI3_FUNCTION INPUT_FUNCTION_NONE // Ymax -#define DI4_MODE IO_ACTIVE_HIGH -#define DI4_ACTION INPUT_ACTION_NONE -#define DI4_FUNCTION INPUT_FUNCTION_NONE +#define DI4_MODE IO_ACTIVE_HIGH +#define DI4_ACTION INPUT_ACTION_NONE +#define DI4_FUNCTION INPUT_FUNCTION_NONE // Zmin -#define DI5_MODE IO_ACTIVE_LOW // Z probe -#define DI5_ACTION INPUT_ACTION_NONE -#define DI5_FUNCTION INPUT_FUNCTION_PROBE +#define DI5_MODE IO_ACTIVE_LOW // Z probe +#define DI5_ACTION INPUT_ACTION_NONE +#define DI5_FUNCTION INPUT_FUNCTION_PROBE // Zmax -#define DI6_MODE IO_MODE_DISABLED -#define DI6_ACTION INPUT_ACTION_NONE -#define DI6_FUNCTION INPUT_FUNCTION_NONE +#define DI6_MODE IO_MODE_DISABLED +#define DI6_ACTION INPUT_ACTION_NONE +#define DI6_FUNCTION INPUT_FUNCTION_NONE // Shutdown (Amin on v9 board) -#define DI7_MODE IO_MODE_DISABLED -#define DI7_ACTION INPUT_ACTION_NONE -#define DI7_FUNCTION INPUT_FUNCTION_NONE +#define DI7_MODE IO_MODE_DISABLED +#define DI7_ACTION INPUT_ACTION_NONE +#define DI7_FUNCTION INPUT_FUNCTION_NONE // High Voltage Z Probe In (Amax on v9 board) -#define DI8_MODE IO_ACTIVE_LOW -#define DI8_ACTION INPUT_ACTION_NONE -#define DI8_FUNCTION INPUT_FUNCTION_NONE +#define DI8_MODE IO_ACTIVE_LOW +#define DI8_ACTION INPUT_ACTION_NONE +#define DI8_FUNCTION INPUT_FUNCTION_NONE // Hardware interlock input -#define DI9_MODE IO_MODE_DISABLED -#define DI9_ACTION INPUT_ACTION_NONE -#define DI9_FUNCTION INPUT_FUNCTION_NONE +#define DI9_MODE IO_MODE_DISABLED +#define DI9_ACTION INPUT_ACTION_NONE +#define DI9_FUNCTION INPUT_FUNCTION_NONE //Extruder1_PWM -#define DO1_MODE IO_ACTIVE_HIGH +#define DO1_MODE IO_ACTIVE_HIGH //Extruder2_PWM -#define DO2_MODE IO_ACTIVE_HIGH +#define DO2_MODE IO_ACTIVE_HIGH //Fan1A_PWM -#define DO3_MODE IO_ACTIVE_HIGH +#define DO3_MODE IO_ACTIVE_HIGH //Fan1B_PWM -#define DO4_MODE IO_ACTIVE_HIGH +#define DO4_MODE IO_ACTIVE_HIGH -#define DO5_MODE IO_ACTIVE_HIGH -#define DO6_MODE IO_ACTIVE_HIGH -#define DO7_MODE IO_ACTIVE_HIGH -#define DO8_MODE IO_ACTIVE_HIGH +#define DO5_MODE IO_ACTIVE_HIGH +#define DO6_MODE IO_ACTIVE_HIGH +#define DO7_MODE IO_ACTIVE_HIGH +#define DO8_MODE IO_ACTIVE_HIGH //SAFEin (Output) signal -#define DO9_MODE IO_ACTIVE_HIGH +#define DO9_MODE IO_ACTIVE_HIGH -#define DO10_MODE IO_ACTIVE_HIGH +#define DO10_MODE IO_ACTIVE_HIGH //Header Bed FET -#define DO11_MODE IO_ACTIVE_HIGH +#define DO11_MODE IO_ACTIVE_HIGH //Indicator_LED -#define DO12_MODE IO_ACTIVE_HIGH +#define DO12_MODE IO_ACTIVE_HIGH -#define DO13_MODE IO_ACTIVE_HIGH +#define DO13_MODE IO_ACTIVE_HIGH /*** Extruders / Heaters ***/ #define TEMP_MIN_BED_RISE_DEGREES_OVER_TIME 0.5 -#define MIN_FAN_VALUE 0.4 // (he1fm) at MIN_FAN_TEMP the fan comes on at this spped (0.0-1.0) -#define MAX_FAN_VALUE 0.75 // (he1fp) at MAX_FAN_TEMP the fan is at this spped (0.0-1.0) -#define MIN_FAN_TEMP 50.0 // (he1fl) at this temp the fan starts to ramp up linearly -#define MAX_FAN_TEMP 100.0 // (he1fh) at this temperature the fan is at "full speed" (MAX_FAN_VALUE) +#define MIN_FAN_VALUE 0.4 // (he1fm) at MIN_FAN_TEMP the fan comes on at this spped (0.0-1.0) +#define MAX_FAN_VALUE 0.75 // (he1fp) at MAX_FAN_TEMP the fan is at this spped (0.0-1.0) +#define MIN_FAN_TEMP 50.0 // (he1fl) at this temp the fan starts to ramp up linearly +#define MAX_FAN_TEMP 100.0 // (he1fh) at this temperature the fan is at "full speed" (MAX_FAN_VALUE) -#define H1_DEFAULT_ENABLE true -#define H1_DEFAULT_P 7.0 -#define H1_DEFAULT_I 0.05 -#define H1_DEFAULT_D 150.0 +#define H1_DEFAULT_ENABLE true +#define H1_DEFAULT_P 7.0 +#define H1_DEFAULT_I 0.05 +#define H1_DEFAULT_D 150.0 -#define H2_DEFAULT_ENABLE false -#define H2_DEFAULT_P 7.0 -#define H2_DEFAULT_I 0.05 -#define H2_DEFAULT_D 150.0 +#define H2_DEFAULT_ENABLE false +#define H2_DEFAULT_P 7.0 +#define H2_DEFAULT_I 0.05 +#define H2_DEFAULT_D 150.0 -#define H3_DEFAULT_ENABLE true -#define H3_DEFAULT_P 9.0 -#define H3_DEFAULT_I 0.12 -#define H3_DEFAULT_D 400.0 +#define H3_DEFAULT_ENABLE true +#define H3_DEFAULT_P 9.0 +#define H3_DEFAULT_I 0.12 +#define H3_DEFAULT_D 400.0 From d5ba1ddd4b656bc709840ddd486fa0cb65892e37 Mon Sep 17 00:00:00 2001 From: Rob Giseburt Date: Tue, 18 Apr 2017 16:45:13 -0500 Subject: [PATCH 10/14] Correct long-standing typo in POWER_LEVEL setting comment --- g2core/settings/settings_Printrbot_Play.h | 2 +- g2core/settings/settings_Printrbot_Plus.h | 2 +- g2core/settings/settings_Printrbot_Simple_1403.h | 2 +- g2core/settings/settings_Printrbot_Simple_1608.h | 2 +- g2core/settings/settings_Ultimaker.h | 2 +- g2core/settings/settings_default.h | 10 +++++----- g2core/settings/settings_makeblock.h | 2 +- g2core/settings/settings_watercolorbot_v2.h | 2 +- g2core/settings/settings_zen7x12.h | 2 +- 9 files changed, 13 insertions(+), 13 deletions(-) diff --git a/g2core/settings/settings_Printrbot_Play.h b/g2core/settings/settings_Printrbot_Play.h index 82623504..9564a7ad 100644 --- a/g2core/settings/settings_Printrbot_Play.h +++ b/g2core/settings/settings_Printrbot_Play.h @@ -116,7 +116,7 @@ #define M1_MICROSTEPS 32 // 1mi 1,2,4,8,16,32 #define M1_POLARITY 1 // 1po 0=normal, 1=reversed #define M1_POWER_MODE MOTOR_POWER_MODE // 1pm standard -#define M1_POWER_LEVEL 0.4 // 1mp +#define M1_POWER_LEVEL 0.4 // 1pl: 0.0=no power, 1.0=max power // 80 steps/mm at 1/16 microstepping = 40 mm/rev #define M3_MOTOR_MAP AXIS_Y diff --git a/g2core/settings/settings_Printrbot_Plus.h b/g2core/settings/settings_Printrbot_Plus.h index 79590846..25053970 100644 --- a/g2core/settings/settings_Printrbot_Plus.h +++ b/g2core/settings/settings_Printrbot_Plus.h @@ -116,7 +116,7 @@ #define M1_MICROSTEPS 32 // 1mi 1,2,4,8,16,32 #define M1_POLARITY 1 // 1po 0=normal, 1=reversed #define M1_POWER_MODE MOTOR_POWER_MODE // 1pm standard -#define M1_POWER_LEVEL 0.4 // 1mp +#define M1_POWER_LEVEL 0.4 // 1pl: 0.0=no power, 1.0=max power // 80 steps/mm at 1/16 microstepping = 40 mm/rev #define M3_MOTOR_MAP AXIS_Y diff --git a/g2core/settings/settings_Printrbot_Simple_1403.h b/g2core/settings/settings_Printrbot_Simple_1403.h index 6f168937..da251a42 100644 --- a/g2core/settings/settings_Printrbot_Simple_1403.h +++ b/g2core/settings/settings_Printrbot_Simple_1403.h @@ -116,7 +116,7 @@ #define M1_MICROSTEPS 32 // 1mi 1,2,4,8,16,32 #define M1_POLARITY 1 // 1po 0=normal, 1=reversed #define M1_POWER_MODE MOTOR_POWER_MODE // 1pm standard -#define M1_POWER_LEVEL 0.4 // 1mp +#define M1_POWER_LEVEL 0.4 // 1pl: 0.0=no power, 1.0=max power // 80 steps/mm at 1/16 microstepping = 40 mm/rev #define M3_MOTOR_MAP AXIS_Y diff --git a/g2core/settings/settings_Printrbot_Simple_1608.h b/g2core/settings/settings_Printrbot_Simple_1608.h index 903a25c4..237340ba 100644 --- a/g2core/settings/settings_Printrbot_Simple_1608.h +++ b/g2core/settings/settings_Printrbot_Simple_1608.h @@ -116,7 +116,7 @@ #define M1_MICROSTEPS 32 // 1mi 1,2,4,8,16,32 #define M1_POLARITY 0 // 1po 0=normal, 1=reversed #define M1_POWER_MODE MOTOR_POWER_MODE // 1pm standard -#define M1_POWER_LEVEL 0.35 // 1mp +#define M1_POWER_LEVEL 0.35 // 1pl: 0.0=no power, 1.0=max power // 80 steps/mm at 1/16 microstepping = 40 mm/rev #define M3_MOTOR_MAP AXIS_Y diff --git a/g2core/settings/settings_Ultimaker.h b/g2core/settings/settings_Ultimaker.h index bbc0d500..375d5edc 100644 --- a/g2core/settings/settings_Ultimaker.h +++ b/g2core/settings/settings_Ultimaker.h @@ -91,7 +91,7 @@ #define M1_MICROSTEPS 8 // 1mi 1,2,4,8,16,32 #define M1_POLARITY 1 // 1po 0=normal, 1=reversed #define M1_POWER_MODE MOTOR_POWER_MODE // 1pm standard -#define M1_POWER_LEVEL 0.375 // 1mp +#define M1_POWER_LEVEL 0.375 // 1pl: 0.0=no power, 1.0=max power #define M2_MOTOR_MAP AXIS_Y #define M2_STEP_ANGLE 1.8 diff --git a/g2core/settings/settings_default.h b/g2core/settings/settings_default.h index 02808118..f556911f 100644 --- a/g2core/settings/settings_default.h +++ b/g2core/settings/settings_default.h @@ -114,11 +114,11 @@ #define COOLANT_PAUSE_ON_HOLD true // {coph: #endif -#ifndef PROBE_REPORT_ENABLE -#define PROBE_REPORT_ENABLE true // {prbr: +#ifndef PROBE_REPORT_ENABLE +#define PROBE_REPORT_ENABLE true // {prbr: #endif -/* +/* * The following is to fix an issue where feedrate override was being defined in some users * settings files but not others. This would otherwise cause an undefined compile error. * @@ -230,7 +230,7 @@ #define M1_POWER_MODE MOTOR_DISABLED // {1pm: MOTOR_DISABLED, MOTOR_ALWAYS_POWERED, MOTOR_POWERED_IN_CYCLE, MOTOR_POWERED_ONLY_WHEN_MOVING #endif #ifndef M1_POWER_LEVEL -#define M1_POWER_LEVEL 0.0 // {1pl: 0.0=no power, 1.0=max power +#define M1_POWER_LEVEL 0.0 // 1pl: 0.0=no power, 1.0=max power #endif // MOTOR 2 @@ -247,7 +247,7 @@ #define M2_MICROSTEPS 8 #endif #ifndef M2_STEPS_PER_UNIT -#define M2_STEPS_PER_UNIT 0 +#define M2_STEPS_PER_UNIT 0 #endif #ifndef M2_POLARITY #define M2_POLARITY 0 diff --git a/g2core/settings/settings_makeblock.h b/g2core/settings/settings_makeblock.h index 6766ab91..42c42807 100644 --- a/g2core/settings/settings_makeblock.h +++ b/g2core/settings/settings_makeblock.h @@ -89,7 +89,7 @@ // 1=MOTOR_ALWAYS_POWERED, // 2=MOTOR_POWERED_IN_CYCLE, // 3=MOTOR_POWERED_ONLY_WHEN_MOVING -#define M1_POWER_LEVEL 0.4 // 0.0 = off, 1.0 = max +#define M1_POWER_LEVEL 0.4 // 1pl: 0.0=no power, 1.0=max power #define MOTOR_POWER_TIMEOUT 10.00 // motor power timeout in seconds #define M1_MOTOR_MAP AXIS_X // 1ma diff --git a/g2core/settings/settings_watercolorbot_v2.h b/g2core/settings/settings_watercolorbot_v2.h index 2eb170a9..9c2d1b31 100755 --- a/g2core/settings/settings_watercolorbot_v2.h +++ b/g2core/settings/settings_watercolorbot_v2.h @@ -116,7 +116,7 @@ #define M3_MICROSTEPS 32 // the max step resolution for a hobby servo is 1/32 #define M3_POLARITY 1 #define M3_POWER_MODE MOTOR_ALWAYS_POWERED -#define M3_POWER_LEVEL 0.50 // this is ignored +#define M3_POWER_LEVEL 0.50 // 1pl: 0.0=no power, 1.0=max power #define M4_MOTOR_MAP AXIS_A #define M4_STEP_ANGLE 1.8 diff --git a/g2core/settings/settings_zen7x12.h b/g2core/settings/settings_zen7x12.h index e6d64088..f167a484 100755 --- a/g2core/settings/settings_zen7x12.h +++ b/g2core/settings/settings_zen7x12.h @@ -52,7 +52,7 @@ #define M1_MICROSTEPS 8 // 1mi 1,2,4,8 #define M1_POLARITY 1 // REVERSE// 1po 0=normal, 1=reverse #define M1_POWER_MODE MOTOR_POWERED_IN_CYCLE // 1pm standard -#define M1_POWER_LEVEL 0.5 // 1mp +#define M1_POWER_LEVEL 0.5 // 1pl: 0.0=no power, 1.0=max power #define M2_MOTOR_MAP AXIS_Y #define M2_STEP_ANGLE 1.8 From 5691e5bf9a7bc7abf732c1861794d6a856d42d46 Mon Sep 17 00:00:00 2001 From: Rob Giseburt Date: Tue, 18 Apr 2017 16:48:48 -0500 Subject: [PATCH 11/14] Minor cleanup from last commit --- g2core/settings/settings_default.h | 2 +- g2core/settings/settings_watercolorbot_v2.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/g2core/settings/settings_default.h b/g2core/settings/settings_default.h index f556911f..68841479 100644 --- a/g2core/settings/settings_default.h +++ b/g2core/settings/settings_default.h @@ -230,7 +230,7 @@ #define M1_POWER_MODE MOTOR_DISABLED // {1pm: MOTOR_DISABLED, MOTOR_ALWAYS_POWERED, MOTOR_POWERED_IN_CYCLE, MOTOR_POWERED_ONLY_WHEN_MOVING #endif #ifndef M1_POWER_LEVEL -#define M1_POWER_LEVEL 0.0 // 1pl: 0.0=no power, 1.0=max power +#define M1_POWER_LEVEL 0.0 // {1pl: 0.0=no power, 1.0=max power #endif // MOTOR 2 diff --git a/g2core/settings/settings_watercolorbot_v2.h b/g2core/settings/settings_watercolorbot_v2.h index 9c2d1b31..a1f152c0 100755 --- a/g2core/settings/settings_watercolorbot_v2.h +++ b/g2core/settings/settings_watercolorbot_v2.h @@ -96,7 +96,7 @@ #define M1_MICROSTEPS 32 // 1mi 1,2,4,8 #define M1_POLARITY 1 // 1po 0=normal, 1=reversed #define M1_POWER_MODE MOTOR_POWER_MODE // 1pm standard -#define M1_POWER_LEVEL 0.4 +#define M1_POWER_LEVEL 0.4 // 1pl: 0.0=no power, 1.0=max power #define M2_MOTOR_MAP AXIS_X #define M2_STEP_ANGLE 1.8 @@ -116,7 +116,7 @@ #define M3_MICROSTEPS 32 // the max step resolution for a hobby servo is 1/32 #define M3_POLARITY 1 #define M3_POWER_MODE MOTOR_ALWAYS_POWERED -#define M3_POWER_LEVEL 0.50 // 1pl: 0.0=no power, 1.0=max power +#define M3_POWER_LEVEL 0.50 #define M4_MOTOR_MAP AXIS_A #define M4_STEP_ANGLE 1.8 From 11f14ffa08e80a7e7cb3a2e472fba5fe64e6246c Mon Sep 17 00:00:00 2001 From: Rob Giseburt Date: Tue, 18 Apr 2017 16:52:12 -0500 Subject: [PATCH 12/14] Remove unused SR configs for some Printrbots (fixes compiler warning) --- g2core/settings/settings_Printrbot_Play.h | 9 --------- g2core/settings/settings_Printrbot_Plus.h | 9 --------- g2core/settings/settings_Printrbot_Simple_1403.h | 9 --------- 3 files changed, 27 deletions(-) diff --git a/g2core/settings/settings_Printrbot_Play.h b/g2core/settings/settings_Printrbot_Play.h index 9564a7ad..f24fdfb3 100644 --- a/g2core/settings/settings_Printrbot_Play.h +++ b/g2core/settings/settings_Printrbot_Play.h @@ -73,15 +73,6 @@ "line","posx","posy","posz","posa","vel","he1t","he1st","he1at","he1op","feed","vel","unit","path","stat", \ "he2t","he2st","he2at","he2op","he3t","he3st","he3at","he3op" -// Defaults for motion debugging -//#define STATUS_REPORT_DEFAULTS -//"line","posx","posy","posz","posa","vel","he1t","he1st","he1at","he2t","he2st","he2at","he3t","he3st","he3at","_fe5","_fe4","feed","vel","unit","path","stat" - -// Defaults for PID tuning -//#define STATUS_REPORT_DEFAULTS \ -// "line", "posx", "posy", "posz", "posa", "vel", "he1t", "he1st", "he1at", "he1op", "pid1p", "pid1i", "pid1d", \ -// "feed", "vel", "unit", "path", "stat" - // Gcode startup defaults #define GCODE_DEFAULT_UNITS MILLIMETERS // MILLIMETERS or INCHES #define GCODE_DEFAULT_PLANE CANON_PLANE_XY // CANON_PLANE_XY, CANON_PLANE_XZ, or CANON_PLANE_YZ diff --git a/g2core/settings/settings_Printrbot_Plus.h b/g2core/settings/settings_Printrbot_Plus.h index 25053970..a0f890ad 100644 --- a/g2core/settings/settings_Printrbot_Plus.h +++ b/g2core/settings/settings_Printrbot_Plus.h @@ -73,15 +73,6 @@ "line","posx","posy","posz","posa","vel","he1t","he1st","he1at","he1op","feed","vel","unit","path","stat", \ "he2t","he2st","he2at","he2op","he3t","he3st","he3at","he3op" -// Defaults for motion debugging -//#define STATUS_REPORT_DEFAULTS -//"line","posx","posy","posz","posa","vel","he1t","he1st","he1at","he2t","he2st","he2at","he3t","he3st","he3at","_fe5","_fe4","feed","vel","unit","path","stat" - -// Defaults for PID tuning -//#define STATUS_REPORT_DEFAULTS \ -// "line", "posx", "posy", "posz", "posa", "vel", "he1t", "he1st", "he1at", "he1op", "pid1p", "pid1i", "pid1d", \ -// "feed", "vel", "unit", "path", "stat" - // Gcode startup defaults #define GCODE_DEFAULT_UNITS MILLIMETERS // MILLIMETERS or INCHES #define GCODE_DEFAULT_PLANE CANON_PLANE_XY // CANON_PLANE_XY, CANON_PLANE_XZ, or CANON_PLANE_YZ diff --git a/g2core/settings/settings_Printrbot_Simple_1403.h b/g2core/settings/settings_Printrbot_Simple_1403.h index da251a42..cfed243f 100644 --- a/g2core/settings/settings_Printrbot_Simple_1403.h +++ b/g2core/settings/settings_Printrbot_Simple_1403.h @@ -73,15 +73,6 @@ "line","posx","posy","posz","posa","vel","he1t","he1st","he1at","he1op","feed","vel","unit","path","stat", \ "he2t","he2st","he2at","he2op","he3t","he3st","he3at","he3op" -// Defaults for motion debugging -//#define STATUS_REPORT_DEFAULTS -//"line","posx","posy","posz","posa","vel","he1t","he1st","he1at","he2t","he2st","he2at","he3t","he3st","he3at","_fe5","_fe4","feed","vel","unit","path","stat" - -// Defaults for PID tuning -//#define STATUS_REPORT_DEFAULTS \ -// "line", "posx", "posy", "posz", "posa", "vel", "he1t", "he1st", "he1at", "he1op", "pid1p", "pid1i", "pid1d", \ -// "feed", "vel", "unit", "path", "stat" - // Gcode startup defaults #define GCODE_DEFAULT_UNITS MILLIMETERS // MILLIMETERS or INCHES #define GCODE_DEFAULT_PLANE CANON_PLANE_XY // CANON_PLANE_XY, CANON_PLANE_XZ, or CANON_PLANE_YZ From da203c5073286d71e3921ba59e52fad2ba57330d Mon Sep 17 00:00:00 2001 From: Rob Giseburt Date: Wed, 19 Apr 2017 11:32:35 -0500 Subject: [PATCH 13/14] Fix motor 3 polarity for Printrbot Simple 1403 --- g2core/settings/settings_Printrbot_Simple_1403.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/g2core/settings/settings_Printrbot_Simple_1403.h b/g2core/settings/settings_Printrbot_Simple_1403.h index cfed243f..26114747 100644 --- a/g2core/settings/settings_Printrbot_Simple_1403.h +++ b/g2core/settings/settings_Printrbot_Simple_1403.h @@ -114,7 +114,7 @@ #define M3_STEP_ANGLE 1.8 #define M3_TRAVEL_PER_REV 40.64 #define M3_MICROSTEPS 32 -#define M3_POLARITY 1 +#define M3_POLARITY 0 #define M3_POWER_MODE MOTOR_POWER_MODE #define M3_POWER_LEVEL 0.4 From af26ad8966d4cd065c9fb08ebdc6eee6264daef0 Mon Sep 17 00:00:00 2001 From: Rob Giseburt Date: Fri, 21 Apr 2017 11:53:01 -0500 Subject: [PATCH 14/14] 100.26 // Merged fixes for #267 and PR #258 --- g2core/g2core_info.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/g2core/g2core_info.h b/g2core/g2core_info.h index d3b3e614..501bd1c5 100644 --- a/g2core/g2core_info.h +++ b/g2core/g2core_info.h @@ -21,7 +21,7 @@ #ifndef G2CORE_INFO_H_ONCE #define G2CORE_INFO_H_ONCE -#define G2CORE_FIRMWARE_BUILD 100.25 // Merged fixes for #263 and #265 +#define G2CORE_FIRMWARE_BUILD 100.26 // Merged fixes for #267 and PR #258 #ifdef GIT_VERSION #define G2CORE_FIRMWARE_BUILD_STRING GIT_VERSION #else