From 12e8c494493892ea4c6e24cb3d6ef2180d739823 Mon Sep 17 00:00:00 2001 From: "alden.hart" Date: Sun, 29 Jan 2017 13:13:02 -0500 Subject: [PATCH] Added Showboat test CONFIG to AS7 configs; Updated Showboat and Othermill machine settings. --- g2core.atsln | 4 + g2core/boards.mk | 10 +- g2core/g2core.cppproj | 16 +- g2core/settings/settings_othermill_test.h | 531 ++++++++++------------ g2core/settings/settings_shopbot_sbv300.h | 418 +++++++++-------- g2core/settings/settings_shopbot_test.h | 358 ++++++++------- 6 files changed, 636 insertions(+), 701 deletions(-) diff --git a/g2core.atsln b/g2core.atsln index 93cd6ae1..8f2a65a3 100644 --- a/g2core.atsln +++ b/g2core.atsln @@ -18,6 +18,7 @@ Global sbv300|ARM = sbv300|ARM Shapeoko2|ARM = Shapeoko2|ARM shopbotShield|ARM = shopbotShield|ARM + ShopbotTestV9|ARM = ShopbotTestV9|ARM Stub|ARM = Stub|ARM TestQuadratic|ARM = TestQuadratic|ARM TestQuintic|ARM = TestQuintic|ARM @@ -46,6 +47,8 @@ Global {44EA8FEC-55D7-4149-8A78-A574FC26BF51}.Shapeoko2|ARM.Build.0 = Shapeoko2|ARM {44EA8FEC-55D7-4149-8A78-A574FC26BF51}.shopbotShield|ARM.ActiveCfg = shopbotShield|ARM {44EA8FEC-55D7-4149-8A78-A574FC26BF51}.shopbotShield|ARM.Build.0 = shopbotShield|ARM + {44EA8FEC-55D7-4149-8A78-A574FC26BF51}.ShopbotTestV9|ARM.ActiveCfg = G2v9k|ARM + {44EA8FEC-55D7-4149-8A78-A574FC26BF51}.ShopbotTestV9|ARM.Build.0 = G2v9k|ARM {44EA8FEC-55D7-4149-8A78-A574FC26BF51}.Stub|ARM.ActiveCfg = Shapeoko2|ARM {44EA8FEC-55D7-4149-8A78-A574FC26BF51}.TestQuadratic|ARM.ActiveCfg = TestQuadratic|ARM {44EA8FEC-55D7-4149-8A78-A574FC26BF51}.TestQuadratic|ARM.Build.0 = TestQuadratic|ARM @@ -67,6 +70,7 @@ Global {D7779B24-5CD6-4A1B-893C-2CAE8CF7A3A0}.sbv300|ARM.ActiveCfg = Stub|ARM {D7779B24-5CD6-4A1B-893C-2CAE8CF7A3A0}.Shapeoko2|ARM.ActiveCfg = Stub|ARM {D7779B24-5CD6-4A1B-893C-2CAE8CF7A3A0}.shopbotShield|ARM.ActiveCfg = Stub|ARM + {D7779B24-5CD6-4A1B-893C-2CAE8CF7A3A0}.ShopbotTestV9|ARM.ActiveCfg = Stub|ARM {D7779B24-5CD6-4A1B-893C-2CAE8CF7A3A0}.Stub|ARM.ActiveCfg = Stub|ARM {D7779B24-5CD6-4A1B-893C-2CAE8CF7A3A0}.TestQuadratic|ARM.ActiveCfg = Stub|ARM {D7779B24-5CD6-4A1B-893C-2CAE8CF7A3A0}.TestQuintic|ARM.ActiveCfg = Stub|ARM diff --git a/g2core/boards.mk b/g2core/boards.mk index f51eca4d..dfd5bf7e 100644 --- a/g2core/boards.mk +++ b/g2core/boards.mk @@ -24,7 +24,6 @@ # To choose a CONFIG but apply it to a different BOARD: # make CONFIG=PrintrbotPlus BOARD=g2ref-a - ########## # V9-based configs: @@ -39,7 +38,8 @@ ifeq ("$(CONFIG)","Othermill") ifeq ("$(BOARD)","NONE") BOARD=g2v9k endif - SETTINGS_FILE="settings_othermill.h" +# SETTINGS_FILE="settings_othermill.h" + SETTINGS_FILE="settings_othermill_test.h" endif ifeq ("$(CONFIG)","ProbotixV90") @@ -95,6 +95,12 @@ ifeq ("$(CONFIG)","sbv300") SETTINGS_FILE="settings_shopbot_sbv300.h" endif +ifeq ("$(CONFIG)","ShopbotTestV9") + ifeq ("$(BOARD)","NONE") + BOARD=g2v9k + endif + SETTINGS_FILE="settings_shopbot_test.h" +endif ########## # PrintrBot configs: diff --git a/g2core/g2core.cppproj b/g2core/g2core.cppproj index 4e9ca4ea..1963b3aa 100644 --- a/g2core/g2core.cppproj +++ b/g2core/g2core.cppproj @@ -5,7 +5,7 @@ 7.0 com.Atmel.ARMGCC.CPP {44ea8fec-55d7-4149-8a78-a574fc26bf51} - ATSAM3X8E + ATSAM3X8C none Executable CPP @@ -73,7 +73,7 @@ SWD com.atmel.avrdbg.tool.atmelice - J41800036434 + J41800021206 Atmel-ICE True @@ -100,8 +100,8 @@ True true - J41800036434 - 0x285E0A60 + J41800021206 + 0x284E0A60 2000000 @@ -252,8 +252,8 @@ True - BOARD=sbv300 COLOR=0 VERBOSE=1 - clean BOARD=sbv300 + CONFIG=sbv300 COLOR=0 VERBOSE=1 + clean CONFIG=sbv300 Makefile bin\sbv300\ @@ -376,8 +376,8 @@ True - BOARD=g2v9k CONFIG=ShapeokoDualY COLOR=0 VERBOSE=1 - clean BOARD=g2v9k CONFIG=ShapeokoDualY + CONFIG=ShopbotTestV9 COLOR=0 VERBOSE=1 + clean CONFIG=ShopbotTestV9 Makefile bin\G2v9k\ diff --git a/g2core/settings/settings_othermill_test.h b/g2core/settings/settings_othermill_test.h index c61977f7..18a2800d 100644 --- a/g2core/settings/settings_othermill_test.h +++ b/g2core/settings/settings_othermill_test.h @@ -1,5 +1,5 @@ /* - * settings_othermill.h - Other Machine Company Mini Milling Machine + * settings_othermill_test.h - Other Machine Company Mini Milling Machine * This file is part of the g2core project * * This file ("the software") is free software: you can redistribute it and/or modify @@ -28,247 +28,222 @@ /***********************************************************************/ // ***> NOTE: The init message must be a single line with no CRs or LFs -#define INIT_MESSAGE "Initializing configs to OMC OtherMill settings" +#define INIT_MESSAGE "Initializing configs to OMC OtherMill Test settings" //**** GLOBAL / GENERAL SETTINGS ****************************************************** -#define JUNCTION_INTEGRATION_TIME 0.75 // 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 0.75 // 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.5 // after unpausing and turning the spindle on, dwell for 1.5s +#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.5 // after unpausing and turning the spindle on, dwell for 1.5s -#define ESC_BOOT_TIME 5000 // how long the ESC takes to boot, in milliseconds -#define ESC_LOCKOUT_TIME \ - 900 // how long the interlock needs to be engaged before killing power... actually 1s, but be conservative +#define ESC_BOOT_TIME 5000 // how long the ESC takes to boot, in milliseconds +#define ESC_LOCKOUT_TIME 900 // how long the interlock needs to be engaged before killing power... actually 1s, but be conservative -#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 true - -constexpr float H1_DEFAULT_P = 7.0; -constexpr float H1_DEFAULT_I = 0.2; -constexpr float H1_DEFAULT_D = 100.0; - -constexpr float H2_DEFAULT_P = 7.0; -constexpr float H2_DEFAULT_I = 0.2; -constexpr float H2_DEFAULT_D = 100.0; - -constexpr float H3_DEFAULT_P = 7.0; -constexpr float H3_DEFAULT_I = 0.2; -constexpr float H3_DEFAULT_D = 100.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 true // WARNING: Older Othermill machines use a 15deg can stack for their Z axis. // new machines use a stepper which has the same config as the other axis. -#define HAS_CANSTACK_Z_AXIS 0 -/* -// Switch definitions for interlock & E-stop -#define ENABLE_INTERLOCK_AND_ESTOP -#define INTERLOCK_SWITCH_AXIS AXIS_Y -#define INTERLOCK_SWITCH_POSITION SW_MAX -#define ESTOP_SWITCH_AXIS AXIS_X -#define ESTOP_SWITCH_POSITION SW_MAX -#define PAUSE_DWELL_TIME 1.5 //after unpausing and turning the spindle on, dwell for 1.5s -*/ +//#define HAS_CANSTACK_Z_AXIS 0 // Communications and reporting settings -#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 // Valid options are 1 or 2, only! -#define TEXT_VERBOSITY TV_VERBOSE // one of: TV_SILENT, TV_VERBOSE -#define JSON_VERBOSITY JV_CONFIGS // one of: JV_SILENT, JV_FOOTER, JV_CONFIGS, JV_MESSAGES, JV_LINENUM, JV_VERBOSE -#define QUEUE_REPORT_VERBOSITY QR_SINGLE +#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 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 \ - "mpox", "mpoy", "mpoz", "ofsx", "ofsy", "ofsz", "g55x", "g55y", "g55z", "unit", "stat", "coor", "momo", "dist", \ - "home", "mots", "plan", "line", "path", "frmo", "prbe", "safe", "spe", "spd", "hold", "macs", "cycs", "sps" +#define TEXT_VERBOSITY TV_VERBOSE // one of: TV_SILENT, TV_VERBOSE +#define JSON_VERBOSITY JV_CONFIGS // 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 200 // milliseconds - enforces a viable minimum +#define STATUS_REPORT_INTERVAL_MS 250 // milliseconds - set $SV=0 to disable +#define STATUS_REPORT_DEFAULTS "mpox", "mpoy", "mpoz", \ + "ofsx", "ofsy", "ofsz", \ + "g55x", "g55y", "g55z", \ + "unit", "stat", "coor", "momo", "dist", \ + "home", "mots", "plan", "line", "path", \ + "frmo", "prbe", "safe", "spe", "spd", \ + "hold", "macs", "cycs", "sps" // 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 G55 // G54, G55, G56, G57, G58 or G59 -#define GCODE_DEFAULT_PATH_CONTROL PATH_CONTINUOUS +#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 G55 // G54, G55, G56, G57, G58 or G59 +#define GCODE_DEFAULT_PATH_CONTROL PATH_CONTINUOUS #define GCODE_DEFAULT_DISTANCE_MODE ABSOLUTE_DISTANCE_MODE // *** motor settings ************************************************************************************ // NOTE: Motor numbers are reversed from TinyGv8 in order to maintain compatibility with wiring harnesses -#define MOTOR_POWER_LEVEL_XY 0.375 // default motor power level 0.00 - 1.00 -#define MOTOR_POWER_LEVEL_XY_IDLE 0.15 -#define MOTOR_POWER_LEVEL_Z 0.375 -#define MOTOR_POWER_LEVEL_Z_IDLE 0.15 -#define MOTOR_POWER_LEVEL_DISABLED 0.05 +#define MOTOR_POWER_LEVEL_XY 0.375 // default motor power level 0.00 - 1.00 +#define MOTOR_POWER_LEVEL_XY_IDLE 0.15 +#define MOTOR_POWER_LEVEL_Z 0.375 +#define MOTOR_POWER_LEVEL_Z_IDLE 0.15 +#define MOTOR_POWER_LEVEL_DISABLED 0.05 -#define MOTOR_POWER_MODE MOTOR_POWERED_IN_CYCLE -#define MOTOR_POWER_TIMEOUT 2.00 // motor power timeout in seconds +#define MOTOR_POWER_MODE MOTOR_POWERED_IN_CYCLE +#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 4.8768 // 1tr -#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 See enum cmMotorPowerMode in stepper.h -#define M1_POWER_LEVEL MOTOR_POWER_LEVEL_XY // 0.00=off, 1.00=max -#define M1_POWER_LEVEL_IDLE MOTOR_POWER_LEVEL_XY_IDLE +#define M1_MOTOR_MAP AXIS_X // 1ma +#define M1_STEP_ANGLE 1.8 // 1sa +#define M1_TRAVEL_PER_REV 4.8768 // 1tr +#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 See enum cmMotorPowerMode in stepper.h +#define M1_POWER_LEVEL MOTOR_POWER_LEVEL_XY // 0.00=off, 1.00=max +#define M1_POWER_LEVEL_IDLE MOTOR_POWER_LEVEL_XY_IDLE -#define M2_MOTOR_MAP AXIS_Y -#define M2_STEP_ANGLE 1.8 -#define M2_TRAVEL_PER_REV 4.8768 -#define M2_MICROSTEPS 8 -#define M2_POLARITY 1 -#define M2_POWER_MODE MOTOR_POWER_MODE -#define M2_POWER_LEVEL MOTOR_POWER_LEVEL_XY -#define M2_POWER_LEVEL_IDLE MOTOR_POWER_LEVEL_XY_IDLE +#define M2_MOTOR_MAP AXIS_Y +#define M2_STEP_ANGLE 1.8 +#define M2_TRAVEL_PER_REV 4.8768 +#define M2_MICROSTEPS 8 +#define M2_POLARITY 1 +#define M2_POWER_MODE MOTOR_POWER_MODE +#define M2_POWER_LEVEL MOTOR_POWER_LEVEL_XY +#define M2_POWER_LEVEL_IDLE MOTOR_POWER_LEVEL_XY_IDLE -#define M3_MOTOR_MAP AXIS_Z -#if HAS_CANSTACK_Z_AXIS -#define M3_STEP_ANGLE 15 -#define M3_TRAVEL_PER_REV 1.27254 -#else -#define M3_STEP_ANGLE 1.8 -#define M3_TRAVEL_PER_REV 4.8768 -#endif -#define M3_MICROSTEPS 8 -#define M3_POLARITY 0 -#define M3_POWER_MODE MOTOR_POWER_MODE -#define M3_POWER_LEVEL MOTOR_POWER_LEVEL_Z -#define M3_POWER_LEVEL_IDLE MOTOR_POWER_LEVEL_Z_IDLE +#define M3_MOTOR_MAP AXIS_Z +#define M3_STEP_ANGLE 1.8 +#define M3_TRAVEL_PER_REV 4.8768 +#define M3_MICROSTEPS 8 +#define M3_POLARITY 0 +#define M3_POWER_MODE MOTOR_POWER_MODE +#define M3_POWER_LEVEL MOTOR_POWER_LEVEL_Z +#define M3_POWER_LEVEL_IDLE MOTOR_POWER_LEVEL_Z_IDLE -#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 8 -#define M4_POLARITY 1 -#define M4_POWER_MODE MOTOR_DISABLED -#define M4_POWER_LEVEL MOTOR_POWER_LEVEL_DISABLED -#define M4_POWER_LEVEL_IDLE MOTOR_POWER_LEVEL_DISABLED +#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 8 +#define M4_POLARITY 1 +#define M4_POWER_MODE MOTOR_DISABLED +#define M4_POWER_LEVEL MOTOR_POWER_LEVEL_DISABLED +#define M4_POWER_LEVEL_IDLE MOTOR_POWER_LEVEL_DISABLED -#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 8 -#define M5_POLARITY 0 -#define M5_POWER_MODE MOTOR_DISABLED -#define M5_POWER_LEVEL MOTOR_POWER_LEVEL_DISABLED -#define M5_POWER_LEVEL_IDLE MOTOR_POWER_LEVEL_DISABLED +#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 8 +#define M5_POLARITY 0 +#define M5_POWER_MODE MOTOR_DISABLED +#define M5_POWER_LEVEL MOTOR_POWER_LEVEL_DISABLED +#define M5_POWER_LEVEL_IDLE MOTOR_POWER_LEVEL_DISABLED -#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 8 -#define M6_POLARITY 0 -#define M6_POWER_MODE MOTOR_DISABLED -#define M6_POWER_LEVEL MOTOR_POWER_LEVEL_DISABLED -#define M6_POWER_LEVEL_IDLE MOTOR_POWER_LEVEL_DISABLED +#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 8 +#define M6_POLARITY 0 +#define M6_POWER_MODE MOTOR_DISABLED +#define M6_POWER_LEVEL MOTOR_POWER_LEVEL_DISABLED +#define M6_POWER_LEVEL_IDLE MOTOR_POWER_LEVEL_DISABLED // *** axis settings ********************************************************************************** -#define JERK_MAX 500 // 500 million mm/(min^3) -#define JERK_HIGH_SPEED 1000 // 1000 million mm/(min^3) // Jerk during homing needs to stop *fast* -#define LATCH_VELOCITY 25 // reeeeally slow for accuracy +#define JERK_MAX 500 // 500 million mm/(min^3) +#define JERK_HIGH_SPEED 1000 // 1000 million mm/(min^3) // Jerk during homing needs to stop *fast* +#define LATCH_VELOCITY 25 // reeeeally slow for accuracy -#define X_AXIS_MODE AXIS_STANDARD // xam see canonical_machine.h cmAxisMode for valid values -#define X_VELOCITY_MAX 1500 // 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 145.6 // xtr travel between switches or crashes -#define X_JERK_MAX JERK_MAX // xjm -#define X_JERK_HIGH_SPEED JERK_HIGH_SPEED // 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 (X_FEEDRATE_MAX / 3) // xsv -#define X_LATCH_VELOCITY LATCH_VELOCITY // xlv mm/min -#define X_LATCH_BACKOFF 5 // xlb mm -#define X_ZERO_BACKOFF 0.4 // xzb mm +#define X_AXIS_MODE AXIS_STANDARD // xam see canonical_machine.h cmAxisMode for valid values +#define X_VELOCITY_MAX 1500 // 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 145.6 // xtr travel between switches or crashes +#define X_JERK_MAX JERK_MAX // xjm +#define X_JERK_HIGH_SPEED JERK_HIGH_SPEED // 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 (X_FEEDRATE_MAX / 3)// xsv +#define X_LATCH_VELOCITY LATCH_VELOCITY // xlv mm/min +#define X_LATCH_BACKOFF 2 // xlb mm +#define X_ZERO_BACKOFF 0.4 // xzb mm -#define Y_AXIS_MODE AXIS_STANDARD -#define Y_VELOCITY_MAX X_VELOCITY_MAX -#define Y_FEEDRATE_MAX Y_VELOCITY_MAX -#define Y_TRAVEL_MIN 0 -#define Y_TRAVEL_MAX 119.1 -#define Y_JERK_MAX JERK_MAX -#define Y_JERK_HIGH_SPEED JERK_HIGH_SPEED -#define Y_HOMING_INPUT 3 -#define Y_HOMING_DIRECTION 0 -#define Y_SEARCH_VELOCITY (Y_FEEDRATE_MAX / 3) -#define Y_LATCH_VELOCITY LATCH_VELOCITY -#define Y_LATCH_BACKOFF 5 -#define Y_ZERO_BACKOFF 0.4 +#define Y_AXIS_MODE AXIS_STANDARD +#define Y_VELOCITY_MAX X_VELOCITY_MAX +#define Y_FEEDRATE_MAX Y_VELOCITY_MAX +#define Y_TRAVEL_MIN 0 +#define Y_TRAVEL_MAX 119.1 +#define Y_JERK_MAX JERK_MAX +#define Y_JERK_HIGH_SPEED JERK_HIGH_SPEED +#define Y_HOMING_INPUT 3 +#define Y_HOMING_DIRECTION 0 +#define Y_SEARCH_VELOCITY (Y_FEEDRATE_MAX / 3) +#define Y_LATCH_VELOCITY LATCH_VELOCITY +#define Y_LATCH_BACKOFF 2 +#define Y_ZERO_BACKOFF 0.4 -#define Z_AXIS_MODE AXIS_STANDARD -#if HAS_CANSTACK_Z_AXIS -#define Z_VELOCITY_MAX 1000 -#else -#define Z_VELOCITY_MAX X_VELOCITY_MAX -#endif -#define Z_FEEDRATE_MAX Z_VELOCITY_MAX -#define Z_TRAVEL_MIN -60.1 -#define Z_TRAVEL_MAX 0 -#define Z_JERK_MAX JERK_MAX -#define Z_JERK_HIGH_SPEED JERK_HIGH_SPEED -#define Z_HOMING_INPUT 6 -#define Z_HOMING_DIRECTION 1 -#define Z_SEARCH_VELOCITY (Z_FEEDRATE_MAX / 3) -#define Z_LATCH_VELOCITY LATCH_VELOCITY -#define Z_LATCH_BACKOFF 5 -#define Z_ZERO_BACKOFF 0.4 +#define Z_AXIS_MODE AXIS_STANDARD +#define Z_VELOCITY_MAX X_VELOCITY_MAX +#define Z_FEEDRATE_MAX Z_VELOCITY_MAX +#define Z_TRAVEL_MIN -60.1 +#define Z_TRAVEL_MAX 0 +#define Z_JERK_MAX JERK_MAX +#define Z_JERK_HIGH_SPEED JERK_HIGH_SPEED +#define Z_HOMING_INPUT 6 +#define Z_HOMING_DIRECTION 1 +#define Z_SEARCH_VELOCITY (Z_FEEDRATE_MAX / 3) +#define Z_LATCH_VELOCITY LATCH_VELOCITY +#define Z_LATCH_BACKOFF 2 +#define Z_ZERO_BACKOFF 0.4 // Rotary values are chosen to make the motor react the same as X for testing -#define A_AXIS_MODE AXIS_DISABLED // DISABLED -#define A_VELOCITY_MAX ((X_VELOCITY_MAX / M1_TRAVEL_PER_REV) * 360) // set to the same speed as X axis -#define A_FEEDRATE_MAX A_VELOCITY_MAX -#define A_TRAVEL_MIN -1 // min/max the same means infinite, no limit -#define A_TRAVEL_MAX -1 -#define A_JERK_MAX (X_JERK_MAX * (360 / M1_TRAVEL_PER_REV)) -#define A_JERK_HIGH_SPEED A_JERK_MAX -#define A_RADIUS (M1_TRAVEL_PER_REV / (2 * 3.14159628)) -#define A_HOMING_INPUT 0 -#define A_HOMING_DIRECTION 0 -#define A_SEARCH_VELOCITY 600 -#define A_LATCH_VELOCITY 100 -#define A_LATCH_BACKOFF 5 -#define A_ZERO_BACKOFF 2 +#define A_AXIS_MODE AXIS_DISABLED // DISABLED +#define A_VELOCITY_MAX ((X_VELOCITY_MAX / M1_TRAVEL_PER_REV) * 360) // set to the same speed as X axis +#define A_FEEDRATE_MAX A_VELOCITY_MAX +#define A_TRAVEL_MIN -1 // min/max the same means infinite, no limit +#define A_TRAVEL_MAX -1 +#define A_JERK_MAX (X_JERK_MAX * (360 / M1_TRAVEL_PER_REV)) +#define A_JERK_HIGH_SPEED A_JERK_MAX +#define A_RADIUS (M1_TRAVEL_PER_REV / (2 * 3.14159628)) +#define A_HOMING_INPUT 0 +#define A_HOMING_DIRECTION 0 +#define A_SEARCH_VELOCITY 600 +#define A_LATCH_VELOCITY 100 +#define A_LATCH_BACKOFF 5 +#define A_ZERO_BACKOFF 2 -#define B_AXIS_MODE AXIS_DISABLED // DISABLED -#define B_VELOCITY_MAX ((X_VELOCITY_MAX / M1_TRAVEL_PER_REV) * 360) -#define B_FEEDRATE_MAX B_VELOCITY_MAX -#define B_TRAVEL_MIN -1 -#define B_TRAVEL_MAX -1 -#define B_JERK_MAX (X_JERK_MAX * (360 / M1_TRAVEL_PER_REV)) -#define B_JERK_HIGH_SPEED B_JERK_MAX -#define B_RADIUS (M1_TRAVEL_PER_REV / (2 * 3.14159628)) -#define B_HOMING_INPUT 0 -#define B_HOMING_DIRECTION 0 -#define B_SEARCH_VELOCITY 600 -#define B_LATCH_VELOCITY 100 -#define B_LATCH_BACKOFF 5 -#define B_ZERO_BACKOFF 2 +#define B_AXIS_MODE AXIS_DISABLED // DISABLED +#define B_VELOCITY_MAX ((X_VELOCITY_MAX / M1_TRAVEL_PER_REV) * 360) +#define B_FEEDRATE_MAX B_VELOCITY_MAX +#define B_TRAVEL_MIN -1 +#define B_TRAVEL_MAX -1 +#define B_JERK_MAX (X_JERK_MAX * (360 / M1_TRAVEL_PER_REV)) +#define B_JERK_HIGH_SPEED B_JERK_MAX +#define B_RADIUS (M1_TRAVEL_PER_REV / (2 * 3.14159628)) +#define B_HOMING_INPUT 0 +#define B_HOMING_DIRECTION 0 +#define B_SEARCH_VELOCITY 600 +#define B_LATCH_VELOCITY 100 +#define B_LATCH_BACKOFF 5 +#define B_ZERO_BACKOFF 2 -#define C_AXIS_MODE AXIS_DISABLED // DISABLED -#define C_VELOCITY_MAX ((X_VELOCITY_MAX / M1_TRAVEL_PER_REV) * 360) -#define C_FEEDRATE_MAX C_VELOCITY_MAX -#define C_TRAVEL_MIN -1 -#define C_TRAVEL_MAX -1 -#define C_JERK_MAX (X_JERK_MAX * (360 / M1_TRAVEL_PER_REV)) -#define C_JERK_HIGH_SPEED C_JERK_MAX -#define C_RADIUS (M1_TRAVEL_PER_REV / (2 * 3.14159628)) -#define C_HOMING_INPUT 0 -#define C_HOMING_DIRECTION 0 -#define C_SEARCH_VELOCITY 600 -#define C_LATCH_VELOCITY 100 -#define C_LATCH_BACKOFF 5 -#define C_ZERO_BACKOFF 2 +#define C_AXIS_MODE AXIS_DISABLED // DISABLED +#define C_VELOCITY_MAX ((X_VELOCITY_MAX / M1_TRAVEL_PER_REV) * 360) +#define C_FEEDRATE_MAX C_VELOCITY_MAX +#define C_TRAVEL_MIN -1 +#define C_TRAVEL_MAX -1 +#define C_JERK_MAX (X_JERK_MAX * (360 / M1_TRAVEL_PER_REV)) +#define C_JERK_HIGH_SPEED C_JERK_MAX +#define C_RADIUS (M1_TRAVEL_PER_REV / (2 * 3.14159628)) +#define C_HOMING_INPUT 0 +#define C_HOMING_DIRECTION 0 +#define C_SEARCH_VELOCITY 600 +#define C_LATCH_VELOCITY 100 +#define C_LATCH_BACKOFF 5 +#define C_ZERO_BACKOFF 2 //*** Input / output settings *** /* @@ -295,128 +270,80 @@ constexpr float H3_DEFAULT_D = 100.0; */ // Xmin on v9 board // X homing - see X axis setup -#define DI1_MODE NORMALLY_CLOSED -#define DI1_ACTION INPUT_ACTION_NONE -#define DI1_FUNCTION INPUT_FUNCTION_NONE +#define DI1_MODE NORMALLY_CLOSED +#define DI1_ACTION INPUT_ACTION_NONE +#define DI1_FUNCTION INPUT_FUNCTION_NONE // Xmax // External ESTOP -#define DI2_MODE INPUT_ACTIVE_HIGH -#define DI2_ACTION INPUT_ACTION_HALT -#define DI2_FUNCTION INPUT_FUNCTION_SHUTDOWN +#define DI2_MODE IO_ACTIVE_HIGH +#define DI2_ACTION INPUT_ACTION_HALT +#define DI2_FUNCTION INPUT_FUNCTION_SHUTDOWN // Ymin // Y homing - see Y axis setup -#define DI3_MODE NORMALLY_CLOSED -#define DI3_ACTION INPUT_ACTION_NONE -#define DI3_FUNCTION INPUT_FUNCTION_NONE +#define DI3_MODE NORMALLY_CLOSED +#define DI3_ACTION INPUT_ACTION_NONE +#define DI3_FUNCTION INPUT_FUNCTION_NONE // Ymax // Safety interlock -#define DI4_MODE INPUT_ACTIVE_HIGH -#define DI4_ACTION INPUT_ACTION_NONE // (hold is performed by Interlock function) -#define DI4_FUNCTION INPUT_FUNCTION_INTERLOCK +#define DI4_MODE IO_ACTIVE_HIGH +#define DI4_ACTION INPUT_ACTION_NONE // (hold is performed by Interlock function) +#define DI4_FUNCTION INPUT_FUNCTION_INTERLOCK // Zmin // Z probe -#define DI5_MODE INPUT_ACTIVE_LOW -#define DI5_ACTION INPUT_ACTION_NONE -#define DI5_FUNCTION INPUT_FUNCTION_NONE +#define DI5_MODE IO_ACTIVE_LOW +#define DI5_ACTION INPUT_ACTION_NONE +#define DI5_FUNCTION INPUT_FUNCTION_NONE // Zmax // Z homing - see Z axis for setup -#define DI6_MODE NORMALLY_CLOSED -#define DI6_ACTION INPUT_ACTION_NONE -#define DI6_FUNCTION INPUT_FUNCTION_NONE +#define DI6_MODE NORMALLY_CLOSED +#define DI6_ACTION INPUT_ACTION_NONE +#define DI6_FUNCTION INPUT_FUNCTION_NONE // Amin // Unused -#define DI7_MODE INPUT_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 // Amax // Unused -#define DI8_MODE INPUT_MODE_DISABLED -#define DI8_ACTION INPUT_ACTION_NONE -#define DI8_FUNCTION INPUT_FUNCTION_NONE +#define DI8_MODE IO_MODE_DISABLED +#define DI8_ACTION INPUT_ACTION_NONE +#define DI8_FUNCTION INPUT_FUNCTION_NONE // Safety line w/HW timer // Unused -#define DI9_MODE INPUT_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 // *** PWM SPINDLE CONTROL *** -#define P1_PWM_FREQUENCY 100 // in Hz -#define P1_CW_SPEED_LO 10500 // in RPM (arbitrary units) -#define P1_CW_SPEED_HI 16400 -#define P1_CW_PHASE_LO 0.13 // phase [0..1] -#define P1_CW_PHASE_HI 0.17 -#define P1_CCW_SPEED_LO 0 -#define P1_CCW_SPEED_HI 0 -#define P1_CCW_PHASE_LO 0.1 -#define P1_CCW_PHASE_HI 0.1 -#define P1_PWM_PHASE_OFF 0.1 +#define P1_PWM_FREQUENCY 100 // in Hz +#define P1_CW_SPEED_LO 10500 // in RPM (arbitrary units) +#define P1_CW_SPEED_HI 16400 +#define P1_CW_PHASE_LO 0.13 // phase [0..1] +#define P1_CW_PHASE_HI 0.17 +#define P1_CCW_SPEED_LO 0 +#define P1_CCW_SPEED_HI 0 +#define P1_CCW_PHASE_LO 0.1 +#define P1_CCW_PHASE_HI 0.1 +#define P1_PWM_PHASE_OFF 0.1 #define P1_USE_MAPPING_CUBIC -#define P1_MAPPING_CUBIC_X3 2.1225328766717546e-013 -#define P1_MAPPING_CUBIC_X2 -7.2900167282605129e-009 -#define P1_MAPPING_CUBIC_X1 8.5854646785876479e-005 -#define P1_MAPPING_CUBIC_X0 -2.1301489219406905e-001 +#define P1_MAPPING_CUBIC_X3 2.1225328766717546e-013 +#define P1_MAPPING_CUBIC_X2 -7.2900167282605129e-009 +#define P1_MAPPING_CUBIC_X1 8.5854646785876479e-005 +#define P1_MAPPING_CUBIC_X0 -2.1301489219406905e-001 // *** DEFAULT COORDINATE SYSTEM OFFSETS *** +/* +constexpr float H1_DEFAULT_P = 7.0; +constexpr float H1_DEFAULT_I = 0.2; +constexpr float H1_DEFAULT_D = 100.0; -#define G54_X_OFFSET 0 // G54 is traditionally set to all zeros -#define G54_Y_OFFSET 0 -#define G54_Z_OFFSET 0 -#define G54_A_OFFSET 0 -#define G54_B_OFFSET 0 -#define G54_C_OFFSET 0 +constexpr float H2_DEFAULT_P = 7.0; +constexpr float H2_DEFAULT_I = 0.2; +constexpr float H2_DEFAULT_D = 100.0; -#define G55_X_OFFSET 0 // but the again, so is everyting else (at least for start) -#define G55_Y_OFFSET 0 -#define G55_Z_OFFSET 0 -#define G55_A_OFFSET 0 -#define G55_B_OFFSET 0 -#define G55_C_OFFSET 0 // this is where we currently store the tool offset - -#define G56_X_OFFSET 0 -#define G56_Y_OFFSET 0 -#define G56_Z_OFFSET 0 -#define G56_A_OFFSET 0 -#define G56_B_OFFSET 0 -#define G56_C_OFFSET 0 - -#define G57_X_OFFSET 0 -#define G57_Y_OFFSET 0 -#define G57_Z_OFFSET 0 -#define G57_A_OFFSET 0 -#define G57_B_OFFSET 0 -#define G57_C_OFFSET 0 - -#define G58_X_OFFSET 0 -#define G58_Y_OFFSET 0 -#define G58_Z_OFFSET 0 -#define G58_A_OFFSET 0 -#define G58_B_OFFSET 0 -#define G58_C_OFFSET 0 - -#define G59_X_OFFSET 0 -#define G59_Y_OFFSET 0 -#define G59_Z_OFFSET 0 -#define G59_A_OFFSET 0 -#define G59_B_OFFSET 0 -#define G59_C_OFFSET 0 - -/*** User-Defined Data Defaults ***/ - -#define USER_DATA_A0 0 -#define USER_DATA_A1 0 -#define USER_DATA_A2 0 -#define USER_DATA_A3 0 -#define USER_DATA_B0 0 -#define USER_DATA_B1 0 -#define USER_DATA_B2 0 -#define USER_DATA_B3 0 -#define USER_DATA_C0 0 -#define USER_DATA_C1 0 -#define USER_DATA_C2 0 -#define USER_DATA_C3 0 -#define USER_DATA_D0 0 -#define USER_DATA_D1 0 -#define USER_DATA_D2 0 -#define USER_DATA_D3 0 +constexpr float H3_DEFAULT_P = 7.0; +constexpr float H3_DEFAULT_I = 0.2; +constexpr float H3_DEFAULT_D = 100.0; +*/ \ No newline at end of file diff --git a/g2core/settings/settings_shopbot_sbv300.h b/g2core/settings/settings_shopbot_sbv300.h index 2cf538bb..f8e3d8ff 100644 --- a/g2core/settings/settings_shopbot_sbv300.h +++ b/g2core/settings/settings_shopbot_sbv300.h @@ -1,8 +1,8 @@ /* - * settings_shapeoko375.h - Shopbot Test + * settings_shopbot_sbv300.h - Shopbot sbv3000 * This file is part of the g2core project * - * Copyright (c) 2015 - 2016 Alden S. Hart, Jr. + * Copyright (c) 2015 - 2017 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 @@ -38,218 +38,193 @@ //**** GLOBAL / GENERAL SETTINGS ****************************************************** -#define JUNCTION_INTEGRATION_TIME (5000 * 25.4) // centripetal acceleration around corners -#define CHORDAL_TOLERANCE 0.001 // chordal accuracy for arc drawing (in mm) +//#define JUNCTION_INTEGRATION_TIME (5000 * 25.4) // centripetal acceleration around corners +#define JUNCTION_INTEGRATION_TIME 0.75 // cornering - between 0.10 and 2.00 (higher is faster) +#define CHORDAL_TOLERANCE 0.001 // 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 true - -// Communications and reporting settings - -#define USB_SERIAL_PORTS_EXPOSED 1 // Valid options are 1 or 2, only! - -#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_TRIPLE // 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 200 // milliseconds - enforces a viable minimum -#define STATUS_REPORT_INTERVAL_MS 250 // milliseconds - set $SV=0 to disable -#define STATUS_REPORT_DEFAULTS "posx", "posy", "posz", "posa", "posb", "vel", "stat", "hold", "line", "coor" - -// Gcode startup defaults -#define GCODE_DEFAULT_UNITS INCHES // 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 G55 // G54, G55, G56, G57, G58 or G59 -#define GCODE_DEFAULT_PATH_CONTROL PATH_CONTINUOUS -#define GCODE_DEFAULT_DISTANCE_MODE ABSOLUTE_DISTANCE_MODE - -constexpr float H1_DEFAULT_P = 7.0; -constexpr float H1_DEFAULT_I = 0.2; -constexpr float H1_DEFAULT_D = 100.0; - -constexpr float H2_DEFAULT_P = 7.0; -constexpr float H2_DEFAULT_I = 0.2; -constexpr float H2_DEFAULT_D = 100.0; - -constexpr float H3_DEFAULT_P = 7.0; -constexpr float H3_DEFAULT_I = 0.2; -constexpr float H3_DEFAULT_D = 100.0; - -// *** 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 MOTOR_POWER_LEVEL 0.375 // default motor power level 0.00 - 1.00 - -#define M1_MOTOR_MAP AXIS_X // 1ma -#define M1_STEP_ANGLE 1.8 // 1sa -#define M1_TRAVEL_PER_REV (0.5 * 25.4) // 1tr -#define M1_MICROSTEPS 10 // 1mi 1,2,4,8 -#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 MOTOR_POWER_LEVEL // 1pl Irrelevant to Shopbot sbv300 - -#define M2_MOTOR_MAP AXIS_Y -#define M2_STEP_ANGLE 1.8 -#define M2_TRAVEL_PER_REV (0.5 * 25.4) -#define M2_MICROSTEPS 10 -#define M2_POLARITY 0 -#define M2_POWER_MODE MOTOR_POWER_MODE -#define M2_POWER_LEVEL MOTOR_POWER_LEVEL - -#define M3_MOTOR_MAP AXIS_Z -#define M3_STEP_ANGLE 1.8 -#define M3_TRAVEL_PER_REV (0.5 * 25.4) -#define M3_MICROSTEPS 10 -#define M3_POLARITY 0 -#define M3_POWER_MODE MOTOR_POWER_MODE -#define M3_POWER_LEVEL MOTOR_POWER_LEVEL - -#define M4_MOTOR_MAP AXIS_A -#define M4_STEP_ANGLE 1.8 -#define M4_TRAVEL_PER_REV (0.5 * 25.4) -#define M4_MICROSTEPS 10 -#define M4_POLARITY 0 -#define M4_POWER_MODE MOTOR_POWER_MODE -#define M4_POWER_LEVEL MOTOR_POWER_LEVEL - -#if (MOTORS >= 5) -#define M5_MOTOR_MAP AXIS_B -#define M5_STEP_ANGLE 1.8 -#define M5_TRAVEL_PER_REV (0.5 * 25.4) -#define M5_MICROSTEPS 10 -#define M5_POLARITY 0 -#define M5_POWER_MODE MOTOR_POWER_MODE -#define M5_POWER_LEVEL MOTOR_POWER_LEVEL - -#define M6_MOTOR_MAP AXIS_C -#define M6_STEP_ANGLE 1.8 -#define M6_TRAVEL_PER_REV (0.5 * 25.4) -#define M6_MICROSTEPS 10 -#define M6_POLARITY 0 -#define M6_POWER_MODE MOTOR_POWER_MODE -#define M6_POWER_LEVEL MOTOR_POWER_LEVEL -#endif +#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 true #define MANUAL_FEEDRATE_OVERRIDE_ENABLE false #define MANUAL_FEEDRATE_OVERRIDE_PARAMETER 1.00 + +// Communications and reporting settings + +#define USB_SERIAL_PORTS_EXPOSED 1 // Valid options are 1 or 2, only! + +#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_CONFIGS // one of: JV_SILENT, JV_FOOTER, JV_CONFIGS, JV_MESSAGES, JV_LINENUM, JV_VERBOSE +#define QUEUE_REPORT_VERBOSITY QR_TRIPLE // 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 200 // milliseconds - enforces a viable minimum +#define STATUS_REPORT_INTERVAL_MS 250 // milliseconds - set $SV=0 to disable +#define STATUS_REPORT_DEFAULTS "posx", "posy", "posz", "posa", "posb", "vel", "hold", "line", "coor", "stat" + +// Gcode startup defaults +#define GCODE_DEFAULT_UNITS INCHES // 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 G55 // 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 MOTOR_POWER_LEVEL 0.375 // default motor power level 0.00 - 1.00 + +#define M1_MOTOR_MAP AXIS_X // 1ma +#define M1_STEP_ANGLE 1.8 // 1sa +#define M1_TRAVEL_PER_REV (0.5 * 25.4) // 1tr +#define M1_MICROSTEPS 10 // 1mi 1,2,4,8 +#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 MOTOR_POWER_LEVEL // 1pl Irrelevant to Shopbot sbv300 + +#define M2_MOTOR_MAP AXIS_Y +#define M2_STEP_ANGLE 1.8 +#define M2_TRAVEL_PER_REV (0.5 * 25.4) +#define M2_MICROSTEPS 10 +#define M2_POLARITY 0 +#define M2_POWER_MODE MOTOR_POWER_MODE +#define M2_POWER_LEVEL MOTOR_POWER_LEVEL + +#define M3_MOTOR_MAP AXIS_Z +#define M3_STEP_ANGLE 1.8 +#define M3_TRAVEL_PER_REV (0.5 * 25.4) +#define M3_MICROSTEPS 10 +#define M3_POLARITY 0 +#define M3_POWER_MODE MOTOR_POWER_MODE +#define M3_POWER_LEVEL MOTOR_POWER_LEVEL + +#define M4_MOTOR_MAP AXIS_A +#define M4_STEP_ANGLE 1.8 +#define M4_TRAVEL_PER_REV (0.5 * 25.4) +#define M4_MICROSTEPS 10 +#define M4_POLARITY 0 +#define M4_POWER_MODE MOTOR_POWER_MODE +#define M4_POWER_LEVEL MOTOR_POWER_LEVEL + +#if (MOTORS >= 5) +#define M5_MOTOR_MAP AXIS_B +#define M5_STEP_ANGLE 1.8 +#define M5_TRAVEL_PER_REV (0.5 * 25.4) +#define M5_MICROSTEPS 10 +#define M5_POLARITY 0 +#define M5_POWER_MODE MOTOR_POWER_MODE +#define M5_POWER_LEVEL MOTOR_POWER_LEVEL + +#define M6_MOTOR_MAP AXIS_C +#define M6_STEP_ANGLE 1.8 +#define M6_TRAVEL_PER_REV (0.5 * 25.4) +#define M6_MICROSTEPS 10 +#define M6_POLARITY 0 +#define M6_POWER_MODE MOTOR_POWER_MODE +#define M6_POWER_LEVEL MOTOR_POWER_LEVEL +#endif + // *** axis settings ********************************************************************************* -#define X_AXIS_MODE AXIS_STANDARD // xam see canonical_machine.h cmAxisMode for valid values -#define X_VELOCITY_MAX (360 * 25.4) // 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 (25 * 25.4) // xtm travel between switches or crashes -#define X_JERK_MAX (2 * 25.4) // xjm jerk is multipled by 1,000,000 internally -#define X_JERK_HIGH_SPEED 10000 // 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 (60 * 25.4) // xsv minus means move to minimum switch -#define X_LATCH_VELOCITY (30 * 25.4) // xlv mm/min -#define X_LATCH_BACKOFF (0.125 * 25.4) // xlb mm -#define X_ZERO_BACKOFF (0.375 * 25.4) // xzb mm -#define X_HOMING_INPUT 0 -#define X_HOMING_DIR 0 +#define X_AXIS_MODE AXIS_STANDARD // xam see canonical_machine.h cmAxisMode for valid values +#define X_VELOCITY_MAX (360 * 25.4) // 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 (25 * 25.4) // xtm travel between switches or crashes +#define X_JERK_MAX (2 * 25.4) // xjm jerk is multiplied by 1,000,000 internally +#define X_JERK_HIGH_SPEED 10000 // 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 (60 * 25.4) // xsv minus means move to minimum switch +#define X_LATCH_VELOCITY (30 * 25.4) // xlv mm/min +#define X_LATCH_BACKOFF (0.125 * 25.4) // xlb mm +#define X_ZERO_BACKOFF (0.375 * 25.4) // xzb mm -#define Y_AXIS_MODE AXIS_STANDARD -#define Y_VELOCITY_MAX (360 * 25.4) -#define Y_FEEDRATE_MAX Y_VELOCITY_MAX -#define Y_TRAVEL_MIN 0 -#define Y_TRAVEL_MAX (19 * 25.4) -#define Y_JERK_MAX (2 * 25.4) -#define Y_JERK_HIGH_SPEED 10000 -#define Y_HOMING_INPUT 3 -#define Y_HOMING_DIRECTION 0 -#define Y_SEARCH_VELOCITY (60 * 25.4) -#define Y_LATCH_VELOCITY (30 * 25.4) -#define Y_LATCH_BACKOFF (0.125 * 25.4) -#define Y_ZERO_BACKOFF (0.375 * 25.4) -//#define Y_HOMING_INPUT 0 -#define Y_HOMING_DIR 0 +#define Y_AXIS_MODE AXIS_STANDARD +#define Y_VELOCITY_MAX (360 * 25.4) +#define Y_FEEDRATE_MAX Y_VELOCITY_MAX +#define Y_TRAVEL_MIN 0 +#define Y_TRAVEL_MAX (19 * 25.4) +#define Y_JERK_MAX (2 * 25.4) +#define Y_JERK_HIGH_SPEED 10000 +#define Y_HOMING_INPUT 3 +#define Y_HOMING_DIRECTION 0 +#define Y_SEARCH_VELOCITY (60 * 25.4) +#define Y_LATCH_VELOCITY (30 * 25.4) +#define Y_LATCH_BACKOFF (0.125 * 25.4) +#define Y_ZERO_BACKOFF (0.375 * 25.4) +#define Z_AXIS_MODE AXIS_STANDARD +#define Z_VELOCITY_MAX (360 * 25.4) +#define Z_FEEDRATE_MAX Z_VELOCITY_MAX +#define Z_TRAVEL_MAX (6.5 * 25.4) +#define Z_TRAVEL_MIN 0 +#define Z_JERK_MAX (2 * 25.4) +#define Z_JERK_HIGH_SPEED 1000 +#define Z_HOMING_INPUT 6 +#define Z_HOMING_DIRECTION 1 +#define Z_SEARCH_VELOCITY (60 * 25.4) +#define Z_LATCH_VELOCITY (30 * 25.4) +#define Z_LATCH_BACKOFF (0.125 * 25.4) +#define Z_ZERO_BACKOFF (0.375 * 25.4) -#define Z_AXIS_MODE AXIS_STANDARD -#define Z_VELOCITY_MAX (360 * 25.4) -#define Z_FEEDRATE_MAX Z_VELOCITY_MAX -#define Z_TRAVEL_MAX (6.5 * 25.4) -#define Z_TRAVEL_MIN 0 -#define Z_JERK_MAX (2 * 25.4) -#define Z_JERK_HIGH_SPEED 1000 -#define Z_HOMING_INPUT 6 -#define Z_HOMING_DIRECTION 1 -#define Z_SEARCH_VELOCITY (60 * 25.4) -#define Z_LATCH_VELOCITY (30 * 25.4) -#define Z_LATCH_BACKOFF (0.125 * 25.4) -#define Z_ZERO_BACKOFF (0.375 * 25.4) -//#define Z_HOMING_INPUT 0 -#define Z_HOMING_DIR 0 +#define A_AXIS_MODE AXIS_STANDARD +#define A_VELOCITY_MAX (360 * 25.4) +#define A_FEEDRATE_MAX 48000 +#define A_TRAVEL_MIN -1 // degrees +#define A_TRAVEL_MAX -1 // same value means infinite, no limit +#define A_JERK_MAX (2 * 25.4) +#define A_JERK_HIGH_SPEED A_JERK_MAX +#define A_RADIUS 1.0 +#define A_HOMING_INPUT 0 +#define A_HOMING_DIRECTION 0 +#define A_SEARCH_VELOCITY (60 * 25.4) +#define A_LATCH_VELOCITY (30 * 25.4) +#define A_LATCH_BACKOFF (0.125 * 25.4) +#define A_ZERO_BACKOFF (0.375 * 25.4) +#define B_AXIS_MODE AXIS_DISABLED +#define B_VELOCITY_MAX (360 * 25.4) +#define B_FEEDRATE_MAX B_VELOCITY_MAX +#define B_TRAVEL_MAX -1 +#define B_TRAVEL_MIN -1 +#define B_JERK_MAX (2 * 25.4) +#define B_JERK_HIGH_SPEED B_JERK_MAX +#define B_RADIUS 1 +#define B_HOMING_INPUT 0 +#define B_HOMING_DIRECTION 0 +#define B_SEARCH_VELOCITY (60 * 25.4) +#define B_LATCH_VELOCITY (30 * 25.4) +#define B_LATCH_BACKOFF (0.125 * 25.4) +#define B_ZERO_BACKOFF (0.375 * 25.4) -#define A_AXIS_MODE AXIS_STANDARD -#define A_VELOCITY_MAX (360 * 25.4) -#define A_FEEDRATE_MAX 48000 -#define A_TRAVEL_MIN -1 // degrees -#define A_TRAVEL_MAX -1 // same value means infinite, no limit -#define A_JERK_MAX (2 * 25.4) -#define A_JERK_HIGH_SPEED A_JERK_MAX -#define A_RADIUS 1.0 -#define A_HOMING_INPUT 0 -#define A_HOMING_DIRECTION 0 -#define A_SEARCH_VELOCITY (60 * 25.4) -#define A_LATCH_VELOCITY (30 * 25.4) -#define A_LATCH_BACKOFF (0.125 * 25.4) -#define A_ZERO_BACKOFF (0.375 * 25.4) -#define A_HOMING_INPUT 0 -#define A_HOMING_DIR 0 - -#define B_AXIS_MODE AXIS_DISABLED -#define B_VELOCITY_MAX (360 * 25.4) -#define B_FEEDRATE_MAX B_VELOCITY_MAX -#define B_TRAVEL_MAX -1 -#define B_TRAVEL_MIN -1 -#define B_JERK_MAX (2 * 25.4) -#define B_JERK_HIGH_SPEED B_JERK_MAX -#define B_RADIUS 1 -#define B_HOMING_INPUT 0 -#define B_HOMING_DIRECTION 0 -#define B_SEARCH_VELOCITY (60 * 25.4) -#define B_LATCH_VELOCITY (30 * 25.4) -#define B_LATCH_BACKOFF (0.125 * 25.4) -#define B_ZERO_BACKOFF (0.375 * 25.4) -#define B_HOMING_INPUT 0 -#define B_HOMING_DIR 0 - - -#define C_AXIS_MODE AXIS_DISABLED -#define C_VELOCITY_MAX (360 * 25.4) -#define C_FEEDRATE_MAX C_VELOCITY_MAX -#define C_TRAVEL_MAX -1 -#define C_TRAVEL_MIN -1 -#define C_JERK_MAX (2 * 25.4) -#define C_JERK_HIGH_SPEED C_JERK_MAX -#define C_RADIUS 1 -#define C_HOMING_INPUT 0 -#define C_HOMING_DIRECTION 0 -#define C_SEARCH_VELOCITY (60 * 25.4) -#define C_LATCH_VELOCITY (30 * 25.4) -#define C_LATCH_BACKOFF (0.125 * 25.4) -#define C_ZERO_BACKOFF (0.375 * 25.4) -#define C_HOMING_INPUT 0 -#define C_HOMING_DIR 0 +#define C_AXIS_MODE AXIS_DISABLED +#define C_VELOCITY_MAX (360 * 25.4) +#define C_FEEDRATE_MAX C_VELOCITY_MAX +#define C_TRAVEL_MAX -1 +#define C_TRAVEL_MIN -1 +#define C_JERK_MAX (2 * 25.4) +#define C_JERK_HIGH_SPEED C_JERK_MAX +#define C_RADIUS 1 +#define C_HOMING_INPUT 0 +#define C_HOMING_DIRECTION 0 +#define C_SEARCH_VELOCITY (60 * 25.4) +#define C_LATCH_VELOCITY (30 * 25.4) +#define C_LATCH_BACKOFF (0.125 * 25.4) +#define C_ZERO_BACKOFF (0.375 * 25.4) //*** Input / output settings *** @@ -316,7 +291,6 @@ constexpr float H3_DEFAULT_D = 100.0; #define DI9_ACTION INPUT_ACTION_NONE #define DI9_FUNCTION INPUT_FUNCTION_NONE - // Extruder1_PWM #define DO1_MODE IO_ACTIVE_HIGH // Extruder2_PWM @@ -340,23 +314,23 @@ constexpr float H3_DEFAULT_D = 100.0; /*** Handle optional modules that may not be in every machine ***/ -#define P1_PWM_FREQUENCY 100 // in Hz -#define P1_CW_SPEED_LO 7900 // in RPM (arbitrary units) -#define P1_CW_SPEED_HI 12800 -#define P1_CW_PHASE_LO 0.13 // phase [0..1] -#define P1_CW_PHASE_HI 0.17 -#define P1_CCW_SPEED_LO 0 -#define P1_CCW_SPEED_HI 0 -#define P1_CCW_PHASE_LO 0.1 -#define P1_CCW_PHASE_HI 0.1 -#define P1_PWM_PHASE_OFF 0.1 +#define P1_PWM_FREQUENCY 100 // in Hz +#define P1_CW_SPEED_LO 7900 // in RPM (arbitrary units) +#define P1_CW_SPEED_HI 12800 +#define P1_CW_PHASE_LO 0.13 // phase [0..1] +#define P1_CW_PHASE_HI 0.17 +#define P1_CCW_SPEED_LO 0 +#define P1_CCW_SPEED_HI 0 +#define P1_CCW_PHASE_LO 0.1 +#define P1_CCW_PHASE_HI 0.1 +#define P1_PWM_PHASE_OFF 0.1 // *** DEFAULT COORDINATE SYSTEM OFFSETS *** // Our convention is: // - leave G54 in machine coordinates to act as a persistent absolute coordinate system // - set G55 to be a zero in the middle of the table // - no action for the others - +/* #define G54_X_OFFSET 0 // G54 is traditionally set to all zeros #define G54_Y_OFFSET 0 #define G54_Z_OFFSET 0 @@ -398,9 +372,9 @@ constexpr float H3_DEFAULT_D = 100.0; #define G59_A_OFFSET 0 #define G59_B_OFFSET 0 #define G59_C_OFFSET 0 - +*/ /*** User-Defined Data Defaults ***/ - +/* #define USER_DATA_A0 0 #define USER_DATA_A1 0 #define USER_DATA_A2 0 @@ -417,3 +391,17 @@ constexpr float H3_DEFAULT_D = 100.0; #define USER_DATA_D1 0 #define USER_DATA_D2 0 #define USER_DATA_D3 0 + + +constexpr float H1_DEFAULT_P = 7.0; +constexpr float H1_DEFAULT_I = 0.2; +constexpr float H1_DEFAULT_D = 100.0; + +constexpr float H2_DEFAULT_P = 7.0; +constexpr float H2_DEFAULT_I = 0.2; +constexpr float H2_DEFAULT_D = 100.0; + +constexpr float H3_DEFAULT_P = 7.0; +constexpr float H3_DEFAULT_I = 0.2; +constexpr float H3_DEFAULT_D = 100.0; +*/ \ No newline at end of file diff --git a/g2core/settings/settings_shopbot_test.h b/g2core/settings/settings_shopbot_test.h index 76caf26b..6e74ce6b 100644 --- a/g2core/settings/settings_shopbot_test.h +++ b/g2core/settings/settings_shopbot_test.h @@ -1,8 +1,8 @@ /* - * settings_shapeoko375.h - Shopbot Test + * settings_shopbot_test.h - Shopbot Test * This file is part of the g2core project * - * Copyright (c) 2015 - 2016 Alden S. Hart, Jr. + * Copyright (c) 2015 - 2017 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 @@ -39,208 +39,204 @@ //**** GLOBAL / GENERAL SETTINGS ****************************************************** -#define JUNCTION_INTEGRATION_TIME (5000 * 25.4) // cornering - usually between 0.5 and 2.0 (higher is faster) -#define CHORDAL_TOLERANCE 0.001 // chordal accuracy for arc drawing (in mm) +//#define JUNCTION_INTEGRATION_TIME (5000 * 25.4) // cornering - usually between 0.5 and 2.0 (higher is faster) +#define JUNCTION_INTEGRATION_TIME 0.75 // cornering - between 0.10 and 2.00 (higher is faster) +#define CHORDAL_TOLERANCE 0.001 // 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 true +#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 true + +#define MANUAL_FEEDRATE_OVERRIDE_ENABLE false +#define MANUAL_FEEDRATE_OVERRIDE_PARAMETER 1.00 // Communications and reporting settings -#define USB_SERIAL_PORTS_EXPOSED 2 // Valid options are 1 or 2, only! +#define USB_SERIAL_PORTS_EXPOSED 1 // Valid options are 1 or 2, only! -#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 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 TEXT_VERBOSITY TV_VERBOSE // one of: TV_SILENT, TV_VERBOSE +#define JSON_VERBOSITY JV_VERBOSE // 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 200 // milliseconds - enforces a viable minimum #define STATUS_REPORT_INTERVAL_MS 250 // milliseconds - set $SV=0 to disable -//#define STATUS_REPORT_DEFAULTS "posx","posy","posz","posa","posb","vel","stat","hold","line","coor" -//#define STATUS_REPORT_DEFAULTS -//"posx","posy","posz","posa","posb","vel","stat","macs","cycs","mots","hold","line","coor" -#define STATUS_REPORT_DEFAULTS \ - "posx", "posy", "posz", "posa", "vel", "feed", "stat", "macs", "cycs", "mots", "hold", "in1", "in2", "in3", "in4", \ - "in5", "in6", "in7", "in8", "in9" + +//#define STATUS_REPORT_DEFAULTS "posx", "posy", "posz", "posa", "posb", "vel", "hold", "line", "coor", "stat" +#define STATUS_REPORT_DEFAULTS "posx", "posy", "posz", "posa", \ + "vel", "feed", "stat", "macs", "cycs", "mots", "hold", \ + "in1", "in2", "in3", "in4", "in5", "in6", "in7", "in8", "in9" // "home","homx","homy","homz" // "line","vel","feed","stat","macs","cycs","mots","hold","unit", // Gcode startup defaults -#define GCODE_DEFAULT_UNITS INCHES // 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 G55 // G54, G55, G56, G57, G58 or G59 -#define GCODE_DEFAULT_PATH_CONTROL PATH_CONTINUOUS +#define GCODE_DEFAULT_UNITS INCHES // 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 G55 // G54, G55, G56, G57, G58 or G59 +#define GCODE_DEFAULT_PATH_CONTROL PATH_CONTINUOUS #define GCODE_DEFAULT_DISTANCE_MODE ABSOLUTE_DISTANCE_MODE -constexpr float H1_DEFAULT_P = 7.0; -constexpr float H1_DEFAULT_I = 0.2; -constexpr float H1_DEFAULT_D = 100.0; - -constexpr float H2_DEFAULT_P = 7.0; -constexpr float H2_DEFAULT_I = 0.2; -constexpr float H2_DEFAULT_D = 100.0; - -constexpr float H3_DEFAULT_P = 7.0; -constexpr float H3_DEFAULT_I = 0.2; -constexpr float H3_DEFAULT_D = 100.0; // *** 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 MOTOR_POWER_LEVEL 0.375 // default motor power level 0.00 - 1.00 +#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 MOTOR_POWER_LEVEL 0.375 // default motor power level 0.00 - 1.00 -#define M1_MOTOR_MAP AXIS_X // 1ma -#define M1_STEP_ANGLE 1.8 // 1sa -#define M1_TRAVEL_PER_REV (0.5 * 25.4) // 1tr -#define M1_MICROSTEPS 16 // 1mi 1,2,4,8 -#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 MOTOR_POWER_LEVEL // 1pl Irrelevant to Shopbot sbv300 +#define M1_MOTOR_MAP AXIS_X // 1ma +#define M1_STEP_ANGLE 1.8 // 1sa +#define M1_TRAVEL_PER_REV (0.5 * 25.4) // 1tr +#define M1_MICROSTEPS 8 // 1mi 1,2,4,8 +#define M1_POLARITY 1 // 1po 0=normal, 1=reversed +#define M1_POWER_MODE MOTOR_POWER_MODE // 1pm TRUE=low power idle enabled +#define M1_POWER_LEVEL MOTOR_POWER_LEVEL // 1pl Irrelevant to Shopbot sbv300 -#define M2_MOTOR_MAP AXIS_Y -#define M2_STEP_ANGLE 1.8 -#define M2_TRAVEL_PER_REV (0.5 * 25.4) -#define M2_MICROSTEPS 16 -#define M2_POLARITY 0 -#define M2_POWER_MODE MOTOR_POWER_MODE -#define M2_POWER_LEVEL MOTOR_POWER_LEVEL -#define M3_MOTOR_MAP AXIS_Z -#define M3_STEP_ANGLE 1.8 -#define M3_TRAVEL_PER_REV (0.5 * 25.4) -#define M3_MICROSTEPS 16 -#define M3_POLARITY 0 -#define M3_POWER_MODE MOTOR_POWER_MODE -#define M3_POWER_LEVEL MOTOR_POWER_LEVEL +#define M2_MOTOR_MAP AXIS_Y +#define M2_STEP_ANGLE 1.8 +#define M2_TRAVEL_PER_REV (0.5 * 25.4) +#define M2_MICROSTEPS 8 +#define M2_POLARITY 1 +#define M2_POWER_MODE MOTOR_POWER_MODE +#define M2_POWER_LEVEL MOTOR_POWER_LEVEL -#define M4_MOTOR_MAP AXIS_A -#define M4_STEP_ANGLE 1.8 -#define M4_TRAVEL_PER_REV (0.5 * 25.4) -#define M4_MICROSTEPS 16 -#define M4_POLARITY 0 -#define M4_POWER_MODE MOTOR_POWER_MODE -#define M4_POWER_LEVEL MOTOR_POWER_LEVEL +#define M3_MOTOR_MAP AXIS_Z +#define M3_STEP_ANGLE 1.8 +#define M3_TRAVEL_PER_REV (0.5 * 25.4) +#define M3_MICROSTEPS 8 +#define M3_POLARITY 0 +#define M3_POWER_MODE MOTOR_POWER_MODE +#define M3_POWER_LEVEL MOTOR_POWER_LEVEL + +#define M4_MOTOR_MAP AXIS_A +#define M4_STEP_ANGLE 1.8 +#define M4_TRAVEL_PER_REV (0.5 * 25.4) +#define M4_MICROSTEPS 8 +#define M4_POLARITY 0 +#define M4_POWER_MODE MOTOR_POWER_MODE +#define M4_POWER_LEVEL MOTOR_POWER_LEVEL #if (MOTORS >= 5) -#define M5_MOTOR_MAP AXIS_B -#define M5_STEP_ANGLE 1.8 -#define M5_TRAVEL_PER_REV (0.5 * 25.4) -#define M5_MICROSTEPS 16 -#define M5_POLARITY 0 -#define M5_POWER_MODE MOTOR_POWER_MODE -#define M5_POWER_LEVEL MOTOR_POWER_LEVEL +#define M5_MOTOR_MAP AXIS_B +#define M5_STEP_ANGLE 1.8 +#define M5_TRAVEL_PER_REV (0.5 * 25.4) +#define M5_MICROSTEPS 8 +#define M5_POLARITY 0 +#define M5_POWER_MODE MOTOR_POWER_MODE +#define M5_POWER_LEVEL MOTOR_POWER_LEVEL -#define M6_MOTOR_MAP AXIS_C -#define M6_STEP_ANGLE 1.8 -#define M6_TRAVEL_PER_REV (0.5 * 25.4) -#define M6_MICROSTEPS 16 -#define M6_POLARITY 0 -#define M6_POWER_MODE MOTOR_POWER_MODE -#define M6_POWER_LEVEL MOTOR_POWER_LEVEL +#define M6_MOTOR_MAP AXIS_C +#define M6_STEP_ANGLE 1.8 +#define M6_TRAVEL_PER_REV (0.5 * 25.4) +#define M6_MICROSTEPS 8 +#define M6_POLARITY 0 +#define M6_POWER_MODE MOTOR_POWER_MODE +#define M6_POWER_LEVEL MOTOR_POWER_LEVEL #endif // *** axis settings ********************************************************************************* -#define X_AXIS_MODE AXIS_STANDARD // xam see canonical_machine.h cmAxisMode for valid values -#define X_VELOCITY_MAX (360 * 25.4) // 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 (25 * 25.4) // xtm travel between switches or crashes -#define X_JERK_MAX (2 * 25.4) // xjm jerk is multipled by 1,000,000 internally -#define X_JERK_HIGH_SPEED 10000 // 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 (60 * 25.4) // xsv minus means move to minimum switch -#define X_LATCH_VELOCITY (30 * 25.4) // xlv mm/min -#define X_LATCH_BACKOFF (0.125 * 25.4) // xlb mm -#define X_ZERO_BACKOFF (0.375 * 25.4) // xzb mm +// Axis values are set to make the Othermachine behave like a smaller Handibot +// Units are not to scale: i.e. G0 X1 travels approx 0.34" instead of 1" -#define Y_AXIS_MODE AXIS_STANDARD -#define Y_VELOCITY_MAX (360 * 25.4) -#define Y_FEEDRATE_MAX Y_VELOCITY_MAX -#define Y_TRAVEL_MIN 0 -#define Y_TRAVEL_MAX (19 * 25.4) -#define Y_JERK_MAX (2 * 25.4) -#define Y_JERK_HIGH_SPEED 10000 -#define Y_HOMING_INPUT 3 -#define Y_HOMING_DIRECTION 0 -#define Y_SEARCH_VELOCITY (60 * 25.4) -#define Y_LATCH_VELOCITY (30 * 25.4) -#define Y_LATCH_BACKOFF (0.125 * 25.4) -#define Y_ZERO_BACKOFF (0.375 * 25.4) +#define X_AXIS_MODE AXIS_STANDARD // xam see canonical_machine.h cmAxisMode for valid values +#define X_VELOCITY_MAX (100 * 25.4) // xvm G0 max velocity in mm/min (was 360) +#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 (14 * 25.4) // xtm travel between switches or crashes (was 25) +#define X_JERK_MAX (2 * 25.4) // xjm jerk is multiplied by 1,000,000 internally +#define X_JERK_HIGH_SPEED 10000 // 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 (60 * 25.4) // xsv minus means move to minimum switch +#define X_LATCH_VELOCITY (30 * 25.4) // xlv mm/min +#define X_LATCH_BACKOFF (0.125 * 25.4) // xlb mm +#define X_ZERO_BACKOFF (0.250 * 25.4) // xzb mm was 0.375 -#define Z_AXIS_MODE AXIS_STANDARD -#define Z_VELOCITY_MAX (360 * 25.4) -#define Z_FEEDRATE_MAX Z_VELOCITY_MAX -#define Z_TRAVEL_MAX (6.5 * 25.4) -#define Z_TRAVEL_MIN 0 -#define Z_JERK_MAX (2 * 25.4) -#define Z_JERK_HIGH_SPEED 1000 -#define Z_HOMING_INPUT 6 -#define Z_HOMING_DIRECTION 1 -#define Z_SEARCH_VELOCITY (60 * 25.4) -#define Z_LATCH_VELOCITY (30 * 25.4) -#define Z_LATCH_BACKOFF (0.125 * 25.4) -#define Z_ZERO_BACKOFF (0.375 * 25.4) +#define Y_AXIS_MODE AXIS_STANDARD +#define Y_VELOCITY_MAX (100 * 25.4) // was 360 +#define Y_FEEDRATE_MAX Y_VELOCITY_MAX +#define Y_TRAVEL_MIN 0 +#define Y_TRAVEL_MAX (11.5 * 25.4) // was 19 +#define Y_JERK_MAX (2 * 25.4) +#define Y_JERK_HIGH_SPEED 10000 +#define Y_HOMING_INPUT 3 +#define Y_HOMING_DIRECTION 0 +#define Y_SEARCH_VELOCITY (60 * 25.4) +#define Y_LATCH_VELOCITY (30 * 25.4) +#define Y_LATCH_BACKOFF (0.125 * 25.4) +#define Y_ZERO_BACKOFF (0.250 * 25.4) // was 0.375 -#define A_AXIS_MODE AXIS_STANDARD -#define A_VELOCITY_MAX (360 * 25.4) -#define A_FEEDRATE_MAX 48000 -#define A_TRAVEL_MIN -1 // degrees -#define A_TRAVEL_MAX -1 // same value means infinite, no limit -#define A_JERK_MAX (2 * 25.4) -#define A_JERK_HIGH_SPEED A_JERK_MAX -#define A_RADIUS 1.0 -#define A_HOMING_INPUT 0 -#define A_HOMING_DIRECTION 0 -#define A_SEARCH_VELOCITY (60 * 25.4) -#define A_LATCH_VELOCITY (30 * 25.4) -#define A_LATCH_BACKOFF (0.125 * 25.4) -#define A_ZERO_BACKOFF (0.375 * 25.4) +#define Z_AXIS_MODE AXIS_STANDARD +#define Z_VELOCITY_MAX (100 * 25.4) // was 360 +#define Z_FEEDRATE_MAX Z_VELOCITY_MAX +#define Z_TRAVEL_MAX (6 * 25.4) // was 6.5 +#define Z_TRAVEL_MIN 0 +#define Z_JERK_MAX (2 * 25.4) +#define Z_JERK_HIGH_SPEED 1000 +#define Z_HOMING_INPUT 6 +#define Z_HOMING_DIRECTION 1 +#define Z_SEARCH_VELOCITY (60 * 25.4) +#define Z_LATCH_VELOCITY (30 * 25.4) +#define Z_LATCH_BACKOFF (0.125 * 25.4) +#define Z_ZERO_BACKOFF (0.250 * 25.4) // was 0.375 -#define B_AXIS_MODE AXIS_DISABLED -#define B_VELOCITY_MAX (360 * 25.4) -#define B_FEEDRATE_MAX B_VELOCITY_MAX -#define B_TRAVEL_MAX -1 -#define B_TRAVEL_MIN -1 -#define B_JERK_MAX (2 * 25.4) -#define B_JERK_HIGH_SPEED B_JERK_MAX -#define B_RADIUS 1 -#define B_HOMING_INPUT 0 -#define B_HOMING_DIRECTION 0 -#define B_SEARCH_VELOCITY (60 * 25.4) -#define B_LATCH_VELOCITY (30 * 25.4) -#define B_LATCH_BACKOFF (0.125 * 25.4) -#define B_ZERO_BACKOFF (0.375 * 25.4) +#define A_AXIS_MODE AXIS_STANDARD +#define A_VELOCITY_MAX (360 * 25.4) +#define A_FEEDRATE_MAX 48000 +#define A_TRAVEL_MIN -1 // degrees +#define A_TRAVEL_MAX -1 // same value means infinite, no limit +#define A_JERK_MAX (2 * 25.4) +#define A_JERK_HIGH_SPEED A_JERK_MAX +#define A_RADIUS 1.0 +#define A_HOMING_INPUT 0 +#define A_HOMING_DIRECTION 0 +#define A_SEARCH_VELOCITY (60 * 25.4) +#define A_LATCH_VELOCITY (30 * 25.4) +#define A_LATCH_BACKOFF (0.125 * 25.4) +#define A_ZERO_BACKOFF (0.375 * 25.4) -#define C_AXIS_MODE AXIS_DISABLED -#define C_VELOCITY_MAX (360 * 25.4) -#define C_FEEDRATE_MAX C_VELOCITY_MAX -#define C_TRAVEL_MAX -1 -#define C_TRAVEL_MIN -1 -#define C_JERK_MAX (2 * 25.4) -#define C_JERK_HIGH_SPEED C_JERK_MAX -#define C_RADIUS 1 -#define C_HOMING_INPUT 0 -#define C_HOMING_DIRECTION 0 -#define C_SEARCH_VELOCITY (60 * 25.4) -#define C_LATCH_VELOCITY (30 * 25.4) -#define C_LATCH_BACKOFF (0.125 * 25.4) -#define C_ZERO_BACKOFF (0.375 * 25.4) +#define B_AXIS_MODE AXIS_DISABLED +#define B_VELOCITY_MAX (360 * 25.4) +#define B_FEEDRATE_MAX B_VELOCITY_MAX +#define B_TRAVEL_MAX -1 +#define B_TRAVEL_MIN -1 +#define B_JERK_MAX (2 * 25.4) +#define B_JERK_HIGH_SPEED B_JERK_MAX +#define B_RADIUS 1 +#define B_HOMING_INPUT 0 +#define B_HOMING_DIRECTION 0 +#define B_SEARCH_VELOCITY (60 * 25.4) +#define B_LATCH_VELOCITY (30 * 25.4) +#define B_LATCH_BACKOFF (0.125 * 25.4) +#define B_ZERO_BACKOFF (0.375 * 25.4) + +#define C_AXIS_MODE AXIS_DISABLED +#define C_VELOCITY_MAX (360 * 25.4) +#define C_FEEDRATE_MAX C_VELOCITY_MAX +#define C_TRAVEL_MAX -1 +#define C_TRAVEL_MIN -1 +#define C_JERK_MAX (2 * 25.4) +#define C_JERK_HIGH_SPEED C_JERK_MAX +#define C_RADIUS 1 +#define C_HOMING_INPUT 0 +#define C_HOMING_DIRECTION 0 +#define C_SEARCH_VELOCITY (60 * 25.4) +#define C_LATCH_VELOCITY (30 * 25.4) +#define C_LATCH_BACKOFF (0.125 * 25.4) +#define C_ZERO_BACKOFF (0.375 * 25.4) //*** Input / output settings *** /* @@ -272,7 +268,7 @@ constexpr float H3_DEFAULT_D = 100.0; #define DI1_FUNCTION INPUT_FUNCTION_LIMIT // configured as limit switch. Also used for X homing // Xmax -#define DI2_MODE INPUT_MODE_DISABLED // testing disable +#define DI2_MODE IO_MODE_DISABLED // testing disable //#define DI2_MODE NORMALLY_CLOSED // configured as limit switch #define DI2_ACTION INPUT_ACTION_FAST_STOP #define DI2_FUNCTION INPUT_FUNCTION_LIMIT @@ -288,7 +284,7 @@ constexpr float H3_DEFAULT_D = 100.0; #define DI4_FUNCTION INPUT_FUNCTION_LIMIT // Zmin -#define DI5_MODE INPUT_ACTIVE_LOW // used for Z probe. Active closes circuit (active LO) +#define DI5_MODE IO_ACTIVE_LOW // used for Z probe. Active closes circuit (active LO) #define DI5_ACTION INPUT_ACTION_NONE #define DI5_FUNCTION INPUT_FUNCTION_NONE @@ -302,12 +298,12 @@ constexpr float H3_DEFAULT_D = 100.0; //#define DI6_FUNCTION INPUT_FUNCTION_LIMIT // Amin -#define DI7_MODE INPUT_ACTIVE_HIGH // interlock happens when NO switch goes HI (opens) +#define DI7_MODE IO_ACTIVE_HIGH // interlock happens when NO switch goes HI (opens) #define DI7_ACTION INPUT_ACTION_STOP // wired as interlock switch #define DI7_FUNCTION INPUT_FUNCTION_INTERLOCK // Amax -#define DI8_MODE INPUT_ACTIVE_LOW // configured as panic switch, NO +#define DI8_MODE IO_ACTIVE_LOW // configured as panic switch, NO #define DI8_ACTION INPUT_ACTION_PANIC #define DI8_FUNCTION INPUT_FUNCTION_NONE @@ -334,7 +330,7 @@ constexpr float H3_DEFAULT_D = 100.0; // - leave G54 in machine coordinates to act as a persistent absolute coordinate system // - set G55 to be a zero in the middle of the table // - no action for the others - +/* #define G54_X_OFFSET 0 // G54 is traditionally set to all zeros #define G54_Y_OFFSET 0 #define G54_Z_OFFSET 0 @@ -376,9 +372,9 @@ constexpr float H3_DEFAULT_D = 100.0; #define G59_A_OFFSET 0 #define G59_B_OFFSET 0 #define G59_C_OFFSET 0 - +*/ /*** User-Defined Data Defaults ***/ - +/* #define USER_DATA_A0 0 #define USER_DATA_A1 0 #define USER_DATA_A2 0 @@ -395,3 +391,17 @@ constexpr float H3_DEFAULT_D = 100.0; #define USER_DATA_D1 0 #define USER_DATA_D2 0 #define USER_DATA_D3 0 + + +constexpr float H1_DEFAULT_P = 7.0; +constexpr float H1_DEFAULT_I = 0.2; +constexpr float H1_DEFAULT_D = 100.0; + +constexpr float H2_DEFAULT_P = 7.0; +constexpr float H2_DEFAULT_I = 0.2; +constexpr float H2_DEFAULT_D = 100.0; + +constexpr float H3_DEFAULT_P = 7.0; +constexpr float H3_DEFAULT_I = 0.2; +constexpr float H3_DEFAULT_D = 100.0; +*/ \ No newline at end of file