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