Merge branch 'dev-168-gquintic' into dev-xxx-spring-comp

This commit is contained in:
Rob Giseburt
2017-12-01 20:44:51 -06:00
21 changed files with 1103 additions and 840 deletions
+2 -1
View File
@@ -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.
+30 -7
View File
@@ -4,10 +4,10 @@ PATH=$PATH:$arduinoAppDir/Arduino.app/Contents/Resources/Java/hardware/tools/g++
function show_usage() {
cat <<END
USAGE: $0 -f TinyG.elf -p <native port>
USAGE: $0 -f TinyG2.elf -p <native port>
Replacing <native port> 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
#bossac --port=tty.usbmodem26231 -U false -e -w -v -b $tmp/BareMinimum.cpp.bin -R
+1 -1
View File
@@ -267,4 +267,4 @@ pin_number kGRBL_CommonEnablePinNumber = 8;
} // namespace Motate
#endif
#endif
+5 -3
View File
@@ -984,9 +984,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 },
+2 -2
View File
@@ -73,7 +73,7 @@
<InterfaceName>SWD</InterfaceName>
</ToolOptions>
<ToolType>com.atmel.avrdbg.tool.atmelice</ToolType>
<ToolNumber>J41800036434</ToolNumber>
<ToolNumber>J41800030015</ToolNumber>
<ToolName>Atmel-ICE</ToolName>
</com_atmel_avrdbg_tool_atmelice>
<UseGdb>True</UseGdb>
@@ -100,7 +100,7 @@
<HWProgramCounterSampling>True</HWProgramCounterSampling>
</PercepioTrace>
<preserveEEPROM>true</preserveEEPROM>
<avrtoolserialnumber>J41800036434</avrtoolserialnumber>
<avrtoolserialnumber>J41800030015</avrtoolserialnumber>
<avrdeviceexpectedsignature>0x284E0A60</avrdeviceexpectedsignature>
<avrtoolinterfaceclock>10000000</avrtoolinterfaceclock>
<custom>
+1 -1
View File
@@ -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.26 // Merged fixes for #267 and PR #258
#ifdef GIT_VERSION
#define G2CORE_FIRMWARE_BUILD_STRING GIT_VERSION
#else
+19 -18
View File
@@ -1006,37 +1006,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,
+1 -1
View File
@@ -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
+142 -128
View File
@@ -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
@@ -42,37 +42,37 @@
#define JUNCTION_INTEGRATION_TIME 1.2 // cornering - between 0.10 and 2.00 (higher is faster)
//{jt:1.2}
//{jt:0.75}
#define CHORDAL_TOLERANCE 0.01 // chordal accuracy for arc drawing (in mm)
#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!!
// 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","unit","path","stat"
@@ -88,11 +88,27 @@
#define STATUS_REPORT_DEFAULTS "line","posx","posy","posz","posa","he1t","he1st","he1at","he1op","he3t","he3st","he3at","he3op","feed","vel","unit","path","stat","1ts","1sgr","1csa","2ts","2sgr","2csa","3ts","3sgr","3csa","4ts","4sgr","4csa"
//#define STATUS_REPORT_DEFAULTS "line","posx","posy","posz","posa","he1t","he1st","he1at","he1tr","he1tv","he1op","he2t","he2st","he2at","he2tr","he2tv","he2op","he3t","he3st","he3at","he3tr","he3tv","he3op","feed","vel","unit","path","stat","_xs1","_xs2","_xs3","_xs4"
// 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 ************************************************************************************
@@ -209,47 +225,47 @@
// *** 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_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_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_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_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
#define G55_Z_OFFSET 0.35 // higher number is farther away from the bed
@@ -272,9 +288,9 @@
***************************************************************************************/
#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_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 40000.0 // ~20 million mm/min^3 {ajm:48147.7}
@@ -302,7 +318,7 @@
#define B_ZERO_BACKOFF 2
#define B_JERK_HIGH_SPEED 361108.0 // ~150 million mm/min^3
//*** Input / output settings ***
//** Temperature Sensors **
@@ -376,97 +392,97 @@
//** Digital Inputs **
/*
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_LOW
#define DI1_ACTION INPUT_ACTION_NONE
#define DI1_FUNCTION INPUT_FUNCTION_NONE
#define DI1_MODE IO_ACTIVE_LOW
#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_LOW
#define DI4_ACTION INPUT_ACTION_NONE
#define DI4_FUNCTION INPUT_FUNCTION_NONE
#define DI4_MODE IO_ACTIVE_LOW
#define DI4_ACTION INPUT_ACTION_NONE
#define DI4_FUNCTION INPUT_FUNCTION_NONE
// Zmin
#define DI5_MODE IO_ACTIVE_LOW
#define DI5_ACTION INPUT_ACTION_NONE
#define DI5_FUNCTION INPUT_FUNCTION_NONE
#define DI5_MODE IO_ACTIVE_LOW
#define DI5_ACTION INPUT_ACTION_NONE
#define DI5_FUNCTION INPUT_FUNCTION_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
// Extruder1_PWM
#define DO1_MODE IO_ACTIVE_HIGH // unavailable, is the extruder output
//Extruder2_PWM
// Extruder2_PWM
#define DO2_MODE IO_ACTIVE_HIGH // unavailable, is the extruder output
//Fan1A_PWM
// Fan1A_PWM
#define DO3_MODE IO_ACTIVE_LOW
//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 DO5_MODE IO_ACTIVE_HIGH
#define DO6_MODE IO_ACTIVE_HIGH
#define DO7_MODE IO_ACTIVE_HIGH
#define DO8_MODE IO_ACTIVE_HIGH // 5V Fan
//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
// Header Bed FET
#define DO11_MODE IO_ACTIVE_LOW // unavailable, is the extruder output
//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 ***/
@@ -476,18 +492,16 @@
#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)
// PID debug string: {sr:{"he1t":t,"he1st":t,"pid1p":t, "pid1i":t, "pid1d":t, "pid1f":t, "he1op":t, "line":t, "stat":t}}
#define H1_DEFAULT_ENABLE true
#define H1_DEFAULT_ENABLE true
#define H1_DEFAULT_P 5
#define H1_DEFAULT_I 0.01
#define H1_DEFAULT_D 500
#define H1_DEFAULT_F 0.0015
#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 H2_DEFAULT_F 0.0
#define H3_DEFAULT_ENABLE true
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+189 -199
View File
@@ -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,7 +31,7 @@
/***********************************************************************/
// ***> NOTE: The init message must be a single line with no CRs or LFs
#define INIT_MESSAGE "Initializing configs to Printrbot Simple 1608 profile"
#define INIT_MESSAGE "Initializing configs to Printrbot Simple 1608 profile"
#ifndef PI
#define PI 3.14159628
@@ -39,38 +39,38 @@
//**** 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 \
@@ -84,11 +84,11 @@
//#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 \
"(MSG Tramming started)\n" \
@@ -110,97 +110,97 @@
// *** 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_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
/***************************************************************************************
@@ -220,45 +220,35 @@
*
***************************************************************************************/
#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_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 162000 // 250 million mm/min^3 = 324000
#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 ***
@@ -336,79 +326,79 @@
*/
// 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 ***/
@@ -416,22 +406,22 @@
#define TEMP_MIN_BED_RISE_DEGREES_OVER_TIME 0.5
#define MIX_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 MIX_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
+1 -1
View File
@@ -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
+4 -4
View File
@@ -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.
*
@@ -256,7 +256,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
+2 -2
View File
@@ -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
@@ -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
+5 -12
View File
@@ -54,6 +54,7 @@
// Communications and reporting settings
#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
@@ -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 **********************************************************************************
+233
View File
@@ -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 <http://www.gnu.org/licenses/>.
*
* 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
+2 -2
View File
@@ -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 // this is ignored
#define M3_POWER_LEVEL 0.50
#define M4_MOTOR_MAP AXIS_A
#define M4_STEP_ANGLE 1.8
+1 -1
View File
@@ -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
+11 -12
View File
@@ -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
@@ -99,7 +99,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)
@@ -723,23 +722,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)
))
{
Executable → Regular
+3 -3
View File
@@ -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