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