diff --git a/Marlin/Conditionals.h b/Marlin/Conditionals.h index 979ddb791f..bf96f0f210 100644 --- a/Marlin/Conditionals.h +++ b/Marlin/Conditionals.h @@ -462,6 +462,7 @@ #define HAS_E1_ENABLE (PIN_EXISTS(E1_ENABLE)) #define HAS_E2_ENABLE (PIN_EXISTS(E2_ENABLE)) #define HAS_E3_ENABLE (PIN_EXISTS(E3_ENABLE)) + #define HAS_E4_ENABLE (PIN_EXISTS(E4_ENABLE)) #define HAS_X_DIR (PIN_EXISTS(X_DIR)) #define HAS_X2_DIR (PIN_EXISTS(X2_DIR)) #define HAS_Y_DIR (PIN_EXISTS(Y_DIR)) @@ -472,6 +473,7 @@ #define HAS_E1_DIR (PIN_EXISTS(E1_DIR)) #define HAS_E2_DIR (PIN_EXISTS(E2_DIR)) #define HAS_E3_DIR (PIN_EXISTS(E3_DIR)) + #define HAS_E4_DIR (PIN_EXISTS(E4_DIR)) #define HAS_X_STEP (PIN_EXISTS(X_STEP)) #define HAS_X2_STEP (PIN_EXISTS(X2_STEP)) #define HAS_Y_STEP (PIN_EXISTS(Y_STEP)) @@ -482,6 +484,7 @@ #define HAS_E1_STEP (PIN_EXISTS(E1_STEP)) #define HAS_E2_STEP (PIN_EXISTS(E2_STEP)) #define HAS_E3_STEP (PIN_EXISTS(E3_STEP)) + #define HAS_E4_STEP (PIN_EXISTS(E4_STEP)) /** * Helper Macros for heaters and extruder fan diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 61712921fd..f2b5ba95e9 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -661,9 +661,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define ULTRA_LCD //general LCD support, also 16x2 //#define DOGLCD // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family) //#define SDSUPPORT // Enable SD Card Support in Hardware Console -// Changed behaviour! If you need SDSUPPORT uncomment it! -//#define SDSLOW // Use slower SD transfer mode (not normally needed - uncomment if you're getting volume init error) -//#define SDEXTRASLOW // Use even slower SD transfer mode (not normally needed - uncomment if you're getting volume init error) + // Changed behaviour! If you need SDSUPPORT uncomment it! +//#define SPI_SPEED SPI_HALF_SPEED // (also SPI_QUARTER_SPEED, SPI_EIGHTH_SPEED) Use slower SD transfer mode (not normally needed - uncomment if you're getting volume init error) //#define SD_CHECK_AND_RETRY // Use CRC checks and retries on the SD communication //#define ENCODER_PULSES_PER_STEP 1 // Increase if you have a high resolution encoder //#define ENCODER_STEPS_PER_MENU_ITEM 5 // Set according to ENCODER_PULSES_PER_STEP or your liking diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index d21bd599e9..7592f232fb 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -74,7 +74,7 @@ * - http://objects.reprap.org/wiki/Mendel_User_Manual:_RepRapGCodes * * Help us document these G-codes online: - * - http://marlinfirmware.org/index.php/G-Code + * - https://github.com/MarlinFirmware/Marlin/wiki/G-Code-in-Marlin * - http://reprap.org/wiki/G-code * * ----------------- @@ -973,6 +973,7 @@ void get_command() { bool code_has_value() { int i = 1; char c = seen_pointer[i]; + while (c == ' ') c = seen_pointer[++i]; if (c == '-' || c == '+') c = seen_pointer[++i]; if (c == '.') c = seen_pointer[++i]; return (c >= '0' && c <= '9'); @@ -4749,19 +4750,18 @@ inline void gcode_M226() { if (servo_index >= 0 && servo_index < NUM_SERVOS) servo[servo_index].move(servo_position); else { - SERIAL_ECHO_START; - SERIAL_ECHO("Servo "); - SERIAL_ECHO(servo_index); - SERIAL_ECHOLN(" out of range"); + SERIAL_ERROR_START; + SERIAL_ERROR("Servo "); + SERIAL_ERROR(servo_index); + SERIAL_ERRORLN(" out of range"); } } else if (servo_index >= 0) { - SERIAL_PROTOCOL(MSG_OK); - SERIAL_PROTOCOL(" Servo "); - SERIAL_PROTOCOL(servo_index); - SERIAL_PROTOCOL(": "); - SERIAL_PROTOCOL(servo[servo_index].read()); - SERIAL_EOL; + SERIAL_ECHO_START; + SERIAL_ECHO(" Servo "); + SERIAL_ECHO(servo_index); + SERIAL_ECHO(": "); + SERIAL_ECHOLN(servo[servo_index].read()); } } @@ -4812,27 +4812,27 @@ inline void gcode_M226() { #endif updatePID(); - SERIAL_PROTOCOL(MSG_OK); + SERIAL_ECHO_START; #if ENABLED(PID_PARAMS_PER_EXTRUDER) - SERIAL_PROTOCOL(" e:"); // specify extruder in serial output - SERIAL_PROTOCOL(e); + SERIAL_ECHO(" e:"); // specify extruder in serial output + SERIAL_ECHO(e); #endif // PID_PARAMS_PER_EXTRUDER - SERIAL_PROTOCOL(" p:"); - SERIAL_PROTOCOL(PID_PARAM(Kp, e)); - SERIAL_PROTOCOL(" i:"); - SERIAL_PROTOCOL(unscalePID_i(PID_PARAM(Ki, e))); - SERIAL_PROTOCOL(" d:"); - SERIAL_PROTOCOL(unscalePID_d(PID_PARAM(Kd, e))); + SERIAL_ECHO(" p:"); + SERIAL_ECHO(PID_PARAM(Kp, e)); + SERIAL_ECHO(" i:"); + SERIAL_ECHO(unscalePID_i(PID_PARAM(Ki, e))); + SERIAL_ECHO(" d:"); + SERIAL_ECHO(unscalePID_d(PID_PARAM(Kd, e))); #if ENABLED(PID_ADD_EXTRUSION_RATE) - SERIAL_PROTOCOL(" c:"); + SERIAL_ECHO(" c:"); //Kc does not have scaling applied above, or in resetting defaults - SERIAL_PROTOCOL(PID_PARAM(Kc, e)); + SERIAL_ECHO(PID_PARAM(Kc, e)); #endif SERIAL_EOL; } else { - SERIAL_ECHO_START; - SERIAL_ECHOLN(MSG_INVALID_EXTRUDER); + SERIAL_ERROR_START; + SERIAL_ERRORLN(MSG_INVALID_EXTRUDER); } } @@ -4846,14 +4846,13 @@ inline void gcode_M226() { if (code_seen('D')) bedKd = scalePID_d(code_value()); updatePID(); - SERIAL_PROTOCOL(MSG_OK); - SERIAL_PROTOCOL(" p:"); - SERIAL_PROTOCOL(bedKp); - SERIAL_PROTOCOL(" i:"); - SERIAL_PROTOCOL(unscalePID_i(bedKi)); - SERIAL_PROTOCOL(" d:"); - SERIAL_PROTOCOL(unscalePID_d(bedKd)); - SERIAL_EOL; + SERIAL_ECHO_START; + SERIAL_ECHO(" p:"); + SERIAL_ECHO(bedKp); + SERIAL_ECHO(" i:"); + SERIAL_ECHO(unscalePID_i(bedKi)); + SERIAL_ECHO(" d:"); + SERIAL_ECHOLN(unscalePID_d(bedKd)); } #endif // PIDTEMPBED @@ -5285,7 +5284,7 @@ inline void gcode_M503() { float value = code_value(); if (Z_PROBE_OFFSET_RANGE_MIN <= value && value <= Z_PROBE_OFFSET_RANGE_MAX) { zprobe_zoffset = value; - SERIAL_ECHOPGM(MSG_OK); + SERIAL_ECHO(zprobe_zoffset); } else { SERIAL_ECHOPGM(MSG_Z_MIN); @@ -5691,7 +5690,7 @@ void process_next_command() { // Sanitize the current command: // - Skip leading spaces - // - Bypass N[0-9][0-9]*[ ]* + // - Bypass N[-0-9][0-9]*[ ]* // - Overwrite * with nul to mark the end while (*current_command == ' ') ++current_command; if (*current_command == 'N' && ((current_command[1] >= '0' && current_command[1] <= '9') || current_command[1] == '-')) { @@ -5716,7 +5715,7 @@ void process_next_command() { // Args pointer optimizes code_seen, especially those taking XYZEF // This wastes a little cpu on commands that expect no arguments. current_command_args = current_command; - while (*current_command_args && *current_command_args != ' ') ++current_command_args; + while (*current_command_args >= '0' && *current_command_args <= '9') ++current_command_args; while (*current_command_args == ' ') ++current_command_args; // Interpret the code int diff --git a/Marlin/SanityCheck.h b/Marlin/SanityCheck.h index 6831380bc8..46aaef675d 100644 --- a/Marlin/SanityCheck.h +++ b/Marlin/SanityCheck.h @@ -361,6 +361,10 @@ #error HAS_AUTOMATIC_VERSIONING deprecated - use USE_AUTOMATIC_VERSIONING instead #elif defined(ENABLE_AUTO_BED_LEVELING) #error ENABLE_AUTO_BED_LEVELING deprecated - use AUTO_BED_LEVELING_FEATURE instead +#elif defined(SDSLOW) + #error SDSLOW deprecated - set SPI_SPEED to SPI_HALF_SPEED instead +#elif defined(SDEXTRASLOW) + #error SDEXTRASLOW deprecated - set SPI_SPEED to SPI_QUARTER_SPEED instead #endif #endif //SANITYCHECK_H diff --git a/Marlin/SdBaseFile.cpp b/Marlin/SdBaseFile.cpp index 3806ac982c..301dfc2592 100644 --- a/Marlin/SdBaseFile.cpp +++ b/Marlin/SdBaseFile.cpp @@ -291,7 +291,7 @@ bool SdBaseFile::getFilename(char* name) { return true; } //------------------------------------------------------------------------------ -void SdBaseFile::getpos(fpos_t* pos) { +void SdBaseFile::getpos(filepos_t* pos) { pos->position = curPosition_; pos->cluster = curCluster_; } @@ -923,7 +923,7 @@ fail: * \return The byte if no error and not at eof else -1; */ int SdBaseFile::peek() { - fpos_t pos; + filepos_t pos; getpos(&pos); int c = read(); if (c >= 0) setpos(&pos); @@ -1479,7 +1479,7 @@ fail: return false; } //------------------------------------------------------------------------------ -void SdBaseFile::setpos(fpos_t* pos) { +void SdBaseFile::setpos(filepos_t* pos) { curPosition_ = pos->position; curCluster_ = pos->cluster; } diff --git a/Marlin/SdBaseFile.h b/Marlin/SdBaseFile.h index 84d72b7b4b..f2d2b594d8 100644 --- a/Marlin/SdBaseFile.h +++ b/Marlin/SdBaseFile.h @@ -31,16 +31,16 @@ #include "SdVolume.h" //------------------------------------------------------------------------------ /** - * \struct fpos_t + * \struct filepos_t * \brief internal type for istream * do not use in user apps */ -struct fpos_t { +struct filepos_t { /** stream position */ uint32_t position; /** cluster for position */ uint32_t cluster; - fpos_t() : position(0), cluster(0) {} + filepos_t() : position(0), cluster(0) {} }; // use the gnu style oflag in open() @@ -196,11 +196,11 @@ class SdBaseFile { /** get position for streams * \param[out] pos struct to receive position */ - void getpos(fpos_t* pos); + void getpos(filepos_t* pos); /** set position for streams * \param[out] pos struct with value for new position */ - void setpos(fpos_t* pos); + void setpos(filepos_t* pos); //---------------------------------------------------------------------------- bool close(); bool contiguousRange(uint32_t* bgnBlock, uint32_t* endBlock); diff --git a/Marlin/configurator/config/Configuration.h b/Marlin/configurator/config/Configuration.h deleted file mode 100644 index 2ffe574181..0000000000 --- a/Marlin/configurator/config/Configuration.h +++ /dev/null @@ -1,853 +0,0 @@ -#ifndef CONFIGURATION_H -#define CONFIGURATION_H - -#include "boards.h" -#include "macros.h" - -//=========================================================================== -//============================= Getting Started ============================= -//=========================================================================== -/* -Here are some standard links for getting your machine calibrated: - * http://reprap.org/wiki/Calibration - * http://youtu.be/wAL9d7FgInk - * http://calculator.josefprusa.cz - * http://reprap.org/wiki/Triffid_Hunter%27s_Calibration_Guide - * http://www.thingiverse.com/thing:5573 - * https://sites.google.com/site/repraplogphase/calibration-of-your-reprap - * http://www.thingiverse.com/thing:298812 -*/ - -// This configuration file contains the basic settings. -// Advanced settings can be found in Configuration_adv.h -// BASIC SETTINGS: select your board type, temperature sensor type, axis scaling, and endstop configuration - -//=========================================================================== -//============================= DELTA Printer =============================== -//=========================================================================== -// For a Delta printer replace the configuration files with the files in the -// example_configurations/delta directory. -// - -//=========================================================================== -//============================= SCARA Printer =============================== -//=========================================================================== -// For a Scara printer replace the configuration files with the files in the -// example_configurations/SCARA directory. -// - -// @section info - -#if ENABLED(USE_AUTOMATIC_VERSIONING) - #include "_Version.h" -#else - #include "Default_Version.h" -#endif - -// User-specified version info of this build to display in [Pronterface, etc] terminal window during -// startup. Implementation of an idea by Prof Braino to inform user that any changes made to this -// build by the user have been successfully uploaded into firmware. -#define STRING_CONFIG_H_AUTHOR "(none, default config)" // Who made the changes. -#define SHOW_BOOTSCREEN -#define STRING_SPLASH_LINE1 SHORT_BUILD_VERSION // will be shown during bootup in line 1 -//#define STRING_SPLASH_LINE2 STRING_DISTRIBUTION_DATE // will be shown during bootup in line 2 - -// @section machine - -// SERIAL_PORT selects which serial port should be used for communication with the host. -// This allows the connection of wireless adapters (for instance) to non-default port pins. -// Serial port 0 is still used by the Arduino bootloader regardless of this setting. -// :[0,1,2,3,4,5,6,7] -#define SERIAL_PORT 0 - -// This determines the communication speed of the printer -// :[2400,9600,19200,38400,57600,115200,250000] -#define BAUDRATE 250000 - -// Enable the Bluetooth serial interface on AT90USB devices -//#define BLUETOOTH - -// The following define selects which electronics board you have. -// Please choose the name from boards.h that matches your setup -#ifndef MOTHERBOARD - #define MOTHERBOARD BOARD_RAMPS_13_EFB -#endif - -// Optional custom name for your RepStrap or other custom machine -// Displayed in the LCD "Ready" message -//#define CUSTOM_MACHINE_NAME "3D Printer" - -// Define this to set a unique identifier for this printer, (Used by some programs to differentiate between machines) -// You can use an online service to generate a random UUID. (eg http://www.uuidgenerator.net/version4) -//#define MACHINE_UUID "00000000-0000-0000-0000-000000000000" - -// This defines the number of extruders -// :[1,2,3,4] -#define EXTRUDERS 1 - -// Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing). -// The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder). -// For the other hotends it is their distance from the extruder 0 hotend. -//#define EXTRUDER_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis -//#define EXTRUDER_OFFSET_Y {0.0, 5.00} // (in mm) for each extruder, offset of the hotend on the Y axis - -//// The following define selects which power supply you have. Please choose the one that matches your setup -// 1 = ATX -// 2 = X-Box 360 203Watts (the blue wire connected to PS_ON and the red wire to VCC) -// :{1:'ATX',2:'X-Box 360'} - -#define POWER_SUPPLY 1 - -// Define this to have the electronics keep the power supply off on startup. If you don't know what this is leave it. -//#define PS_DEFAULT_OFF - -// @section temperature - -//=========================================================================== -//============================= Thermal Settings ============================ -//=========================================================================== -// -//--NORMAL IS 4.7kohm PULLUP!-- 1kohm pullup can be used on hotend sensor, using correct resistor and table -// -//// Temperature sensor settings: -// -2 is thermocouple with MAX6675 (only for sensor 0) -// -1 is thermocouple with AD595 -// 0 is not used -// 1 is 100k thermistor - best choice for EPCOS 100k (4.7k pullup) -// 2 is 200k thermistor - ATC Semitec 204GT-2 (4.7k pullup) -// 3 is Mendel-parts thermistor (4.7k pullup) -// 4 is 10k thermistor !! do not use it for a hotend. It gives bad resolution at high temp. !! -// 5 is 100K thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (4.7k pullup) -// 6 is 100k EPCOS - Not as accurate as table 1 (created using a fluke thermocouple) (4.7k pullup) -// 7 is 100k Honeywell thermistor 135-104LAG-J01 (4.7k pullup) -// 71 is 100k Honeywell thermistor 135-104LAF-J01 (4.7k pullup) -// 8 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup) -// 9 is 100k GE Sensing AL03006-58.2K-97-G1 (4.7k pullup) -// 10 is 100k RS thermistor 198-961 (4.7k pullup) -// 11 is 100k beta 3950 1% thermistor (4.7k pullup) -// 12 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup) (calibrated for Makibox hot bed) -// 13 is 100k Hisens 3950 1% up to 300°C for hotend "Simple ONE " & "Hotend "All In ONE" -// 20 is the PT100 circuit found in the Ultimainboard V2.x -// 60 is 100k Maker's Tool Works Kapton Bed Thermistor beta=3950 -// -// 1k ohm pullup tables - This is not normal, you would have to have changed out your 4.7k for 1k -// (but gives greater accuracy and more stable PID) -// 51 is 100k thermistor - EPCOS (1k pullup) -// 52 is 200k thermistor - ATC Semitec 204GT-2 (1k pullup) -// 55 is 100k thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (1k pullup) -// -// 1047 is Pt1000 with 4k7 pullup -// 1010 is Pt1000 with 1k pullup (non standard) -// 147 is Pt100 with 4k7 pullup -// 110 is Pt100 with 1k pullup (non standard) -// 998 and 999 are Dummy Tables. They will ALWAYS read 25°C or the temperature defined below. -// Use it for Testing or Development purposes. NEVER for production machine. -//#define DUMMY_THERMISTOR_998_VALUE 25 -//#define DUMMY_THERMISTOR_999_VALUE 100 -// :{ '0': "Not used", '4': "10k !! do not use for a hotend. Bad resolution at high temp. !!", '1': "100k / 4.7k - EPCOS", '51': "100k / 1k - EPCOS", '6': "100k / 4.7k EPCOS - Not as accurate as Table 1", '5': "100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '7': "100k / 4.7k Honeywell 135-104LAG-J01", '71': "100k / 4.7k Honeywell 135-104LAF-J01", '8': "100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9': "100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10': "100k / 4.7k RS 198-961", '11': "100k / 4.7k beta 3950 1%", '12': "100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13': "100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '60': "100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '55': "100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '2': "200k / 4.7k - ATC Semitec 204GT-2", '52': "200k / 1k - ATC Semitec 204GT-2", '-2': "Thermocouple + MAX6675 (only for sensor 0)", '-1': "Thermocouple + AD595", '3': "Mendel-parts / 4.7k", '1047': "Pt1000 / 4.7k", '1010': "Pt1000 / 1k (non standard)", '20': "PT100 (Ultimainboard V2.x)", '147': "Pt100 / 4.7k", '110': "Pt100 / 1k (non-standard)", '998': "Dummy 1", '999': "Dummy 2" } -#define TEMP_SENSOR_0 1 -#define TEMP_SENSOR_1 0 -#define TEMP_SENSOR_2 0 -#define TEMP_SENSOR_3 0 -#define TEMP_SENSOR_BED 0 - -// This makes temp sensor 1 a redundant sensor for sensor 0. If the temperatures difference between these sensors is to high the print will be aborted. -//#define TEMP_SENSOR_1_AS_REDUNDANT -#define MAX_REDUNDANT_TEMP_SENSOR_DIFF 10 - -// Actual temperature must be close to target for this long before M109 returns success -#define TEMP_RESIDENCY_TIME 10 // (seconds) -#define TEMP_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one -#define TEMP_WINDOW 1 // (degC) Window around target to start the residency timer x degC early. - -// The minimal temperature defines the temperature below which the heater will not be enabled It is used -// to check that the wiring to the thermistor is not broken. -// Otherwise this would lead to the heater being powered on all the time. -#define HEATER_0_MINTEMP 5 -#define HEATER_1_MINTEMP 5 -#define HEATER_2_MINTEMP 5 -#define HEATER_3_MINTEMP 5 -#define BED_MINTEMP 5 - -// When temperature exceeds max temp, your heater will be switched off. -// This feature exists to protect your hotend from overheating accidentally, but *NOT* from thermistor short/failure! -// You should use MINTEMP for thermistor short/failure protection. -#define HEATER_0_MAXTEMP 275 -#define HEATER_1_MAXTEMP 275 -#define HEATER_2_MAXTEMP 275 -#define HEATER_3_MAXTEMP 275 -#define BED_MAXTEMP 150 - -// If you want the M105 heater power reported in watts, define the BED_WATTS, and (shared for all extruders) EXTRUDER_WATTS -//#define EXTRUDER_WATTS (12.0*12.0/6.7) // P=I^2/R -//#define BED_WATTS (12.0*12.0/1.1) // P=I^2/R - -//=========================================================================== -//============================= PID Settings ================================ -//=========================================================================== -// PID Tuning Guide here: http://reprap.org/wiki/PID_Tuning - -// Comment the following line to disable PID and enable bang-bang. -#define PIDTEMP -#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current -#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current -#if ENABLED(PIDTEMP) - //#define PID_DEBUG // Sends debug data to the serial port. - //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX - //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay - //#define PID_PARAMS_PER_EXTRUDER // Uses separate PID parameters for each extruder (useful for mismatched extruders) - // Set/get with gcode: M301 E[extruder number, 0-2] - #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature - // is more then PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max. - #define PID_INTEGRAL_DRIVE_MAX PID_MAX //limit for the integral term - #define K1 0.95 //smoothing factor within the PID - - // If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it - // Ultimaker - #define DEFAULT_Kp 22.2 - #define DEFAULT_Ki 1.08 - #define DEFAULT_Kd 114 - - // MakerGear - //#define DEFAULT_Kp 7.0 - //#define DEFAULT_Ki 0.1 - //#define DEFAULT_Kd 12 - - // Mendel Parts V9 on 12V - //#define DEFAULT_Kp 63.0 - //#define DEFAULT_Ki 2.25 - //#define DEFAULT_Kd 440 - -#endif // PIDTEMP - -//=========================================================================== -//============================= PID > Bed Temperature Control =============== -//=========================================================================== -// Select PID or bang-bang with PIDTEMPBED. If bang-bang, BED_LIMIT_SWITCHING will enable hysteresis -// -// Uncomment this to enable PID on the bed. It uses the same frequency PWM as the extruder. -// If your PID_dT is the default, and correct for your hardware/configuration, that means 7.689Hz, -// which is fine for driving a square wave into a resistive load and does not significantly impact you FET heating. -// This also works fine on a Fotek SSR-10DA Solid State Relay into a 250W heater. -// If your configuration is significantly different than this and you don't understand the issues involved, you probably -// shouldn't use bed PID until someone else verifies your hardware works. -// If this is enabled, find your own PID constants below. -//#define PIDTEMPBED - -//#define BED_LIMIT_SWITCHING - -// This sets the max power delivered to the bed, and replaces the HEATER_BED_DUTY_CYCLE_DIVIDER option. -// all forms of bed control obey this (PID, bang-bang, bang-bang with hysteresis) -// setting this to anything other than 255 enables a form of PWM to the bed just like HEATER_BED_DUTY_CYCLE_DIVIDER did, -// so you shouldn't use it unless you are OK with PWM on your bed. (see the comment on enabling PIDTEMPBED) -#define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current - -//#define PID_BED_DEBUG // Sends debug data to the serial port. - -#if ENABLED(PIDTEMPBED) - - #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term - - //120v 250W silicone heater into 4mm borosilicate (MendelMax 1.5+) - //from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, aggressive factor of .15 (vs .1, 1, 10) - #define DEFAULT_bedKp 10.00 - #define DEFAULT_bedKi .023 - #define DEFAULT_bedKd 305.4 - - //120v 250W silicone heater into 4mm borosilicate (MendelMax 1.5+) - //from pidautotune - //#define DEFAULT_bedKp 97.1 - //#define DEFAULT_bedKi 1.41 - //#define DEFAULT_bedKd 1675.16 - - // FIND YOUR OWN: "M303 E-1 C8 S90" to run autotune on the bed at 90 degreesC for 8 cycles. -#endif // PIDTEMPBED - -// @section extruder - -//this prevents dangerous Extruder moves, i.e. if the temperature is under the limit -//can be software-disabled for whatever purposes by -#define PREVENT_DANGEROUS_EXTRUDE -//if PREVENT_DANGEROUS_EXTRUDE is on, you can still disable (uncomment) very long bits of extrusion separately. -#define PREVENT_LENGTHY_EXTRUDE - -#define EXTRUDE_MINTEMP 170 -#define EXTRUDE_MAXLENGTH (X_MAX_LENGTH+Y_MAX_LENGTH) //prevent extrusion of very large distances. - -//=========================================================================== -//======================== Thermal Runaway Protection ======================= -//=========================================================================== - -/** - * Thermal Runaway Protection protects your printer from damage and fire if a - * thermistor falls out or temperature sensors fail in any way. - * - * The issue: If a thermistor falls out or a temperature sensor fails, - * Marlin can no longer sense the actual temperature. Since a disconnected - * thermistor reads as a low temperature, the firmware will keep the heater on. - * - * The solution: Once the temperature reaches the target, start observing. - * If the temperature stays too far below the target (hysteresis) for too long, - * the firmware will halt as a safety precaution. - */ - -#define THERMAL_PROTECTION_HOTENDS // Enable thermal protection for all extruders -#define THERMAL_PROTECTION_BED // Enable thermal protection for the heated bed - -//=========================================================================== -//============================= Mechanical Settings ========================= -//=========================================================================== - -// @section machine - -// Uncomment this option to enable CoreXY kinematics -//#define COREXY - -// Uncomment this option to enable CoreXZ kinematics -//#define COREXZ - -// Enable this option for Toshiba steppers -//#define CONFIG_STEPPERS_TOSHIBA - -// @section homing - -// coarse Endstop Settings -#define ENDSTOPPULLUPS // Comment this out (using // at the start of the line) to disable the endstop pullup resistors - -#if DISABLED(ENDSTOPPULLUPS) - // fine endstop settings: Individual pullups. will be ignored if ENDSTOPPULLUPS is defined - //#define ENDSTOPPULLUP_XMAX - //#define ENDSTOPPULLUP_YMAX - //#define ENDSTOPPULLUP_ZMAX - //#define ENDSTOPPULLUP_XMIN - //#define ENDSTOPPULLUP_YMIN - //#define ENDSTOPPULLUP_ZMIN - //#define ENDSTOPPULLUP_ZMIN_PROBE -#endif - -// Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup). -const bool X_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop. -const bool Y_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop. -const bool Z_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop. -const bool X_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop. -const bool Y_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop. -const bool Z_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop. -const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop. -//#define DISABLE_MAX_ENDSTOPS -//#define DISABLE_MIN_ENDSTOPS - -// If you want to enable the Z probe pin, but disable its use, uncomment the line below. -// This only affects a Z probe endstop if you have separate Z min endstop as well and have -// activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z probe, -// this has no effect. -//#define DISABLE_Z_MIN_PROBE_ENDSTOP - -// For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1 -// :{0:'Low',1:'High'} -#define X_ENABLE_ON 0 -#define Y_ENABLE_ON 0 -#define Z_ENABLE_ON 0 -#define E_ENABLE_ON 0 // For all extruders - -// Disables axis when it's not being used. -// WARNING: When motors turn off there is a chance of losing position accuracy! -#define DISABLE_X false -#define DISABLE_Y false -#define DISABLE_Z false - -// @section extruder - -#define DISABLE_E false // For all extruders -#define DISABLE_INACTIVE_EXTRUDER true //disable only inactive extruders and keep active extruder enabled - -// @section machine - -// Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way. -#define INVERT_X_DIR false -#define INVERT_Y_DIR true -#define INVERT_Z_DIR false - -// @section extruder - -// For direct drive extruder v9 set to true, for geared extruder set to false. -#define INVERT_E0_DIR false -#define INVERT_E1_DIR false -#define INVERT_E2_DIR false -#define INVERT_E3_DIR false - -// @section homing - -// ENDSTOP SETTINGS: -// Sets direction of endstops when homing; 1=MAX, -1=MIN -// :[-1,1] -#define X_HOME_DIR -1 -#define Y_HOME_DIR -1 -#define Z_HOME_DIR -1 - -#define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS. -#define max_software_endstops true // If true, axis won't move to coordinates greater than the defined lengths below. - -// @section machine - -// Travel limits after homing (units are in mm) -#define X_MIN_POS 0 -#define Y_MIN_POS 0 -#define Z_MIN_POS 0 -#define X_MAX_POS 200 -#define Y_MAX_POS 200 -#define Z_MAX_POS 200 - -//=========================================================================== -//========================= Filament Runout Sensor ========================== -//=========================================================================== -//#define FILAMENT_RUNOUT_SENSOR // Uncomment for defining a filament runout sensor such as a mechanical or opto endstop to check the existence of filament - // In RAMPS uses servo pin 2. Can be changed in pins file. For other boards pin definition should be made. - // It is assumed that when logic high = filament available - // when logic low = filament ran out -#if ENABLED(FILAMENT_RUNOUT_SENSOR) - const bool FIL_RUNOUT_INVERTING = true; // Should be uncommented and true or false should assigned - #define ENDSTOPPULLUP_FIL_RUNOUT // Uncomment to use internal pullup for filament runout pins if the sensor is defined. - #define FILAMENT_RUNOUT_SCRIPT "M600" -#endif - -//=========================================================================== -//=========================== Manual Bed Leveling =========================== -//=========================================================================== - -//#define MANUAL_BED_LEVELING // Add display menu option for bed leveling. -//#define MESH_BED_LEVELING // Enable mesh bed leveling. - -#if ENABLED(MANUAL_BED_LEVELING) - #define MBL_Z_STEP 0.025 // Step size while manually probing Z axis. -#endif // MANUAL_BED_LEVELING - -#if ENABLED(MESH_BED_LEVELING) - #define MESH_MIN_X 10 - #define MESH_MAX_X (X_MAX_POS - MESH_MIN_X) - #define MESH_MIN_Y 10 - #define MESH_MAX_Y (Y_MAX_POS - MESH_MIN_Y) - #define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited. - #define MESH_NUM_Y_POINTS 3 - #define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0. -#endif // MESH_BED_LEVELING - -//=========================================================================== -//============================ Bed Auto Leveling ============================ -//=========================================================================== - -// @section bedlevel - -//#define AUTO_BED_LEVELING_FEATURE // Delete the comment to enable (remove // at the start of the line) -//#define DEBUG_LEVELING_FEATURE -#define Z_MIN_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled. - -#if ENABLED(AUTO_BED_LEVELING_FEATURE) - - // There are 2 different ways to specify probing locations: - // - // - "grid" mode - // Probe several points in a rectangular grid. - // You specify the rectangle and the density of sample points. - // This mode is preferred because there are more measurements. - // - // - "3-point" mode - // Probe 3 arbitrary points on the bed (that aren't colinear) - // You specify the XY coordinates of all 3 points. - - // Enable this to sample the bed in a grid (least squares solution). - // Note: this feature generates 10KB extra code size. - #define AUTO_BED_LEVELING_GRID - - #if ENABLED(AUTO_BED_LEVELING_GRID) - - #define LEFT_PROBE_BED_POSITION 15 - #define RIGHT_PROBE_BED_POSITION 170 - #define FRONT_PROBE_BED_POSITION 20 - #define BACK_PROBE_BED_POSITION 170 - - #define MIN_PROBE_EDGE 10 // The Z probe square sides can be no smaller than this. - - // Set the number of grid points per dimension. - // You probably don't need more than 3 (squared=9). - #define AUTO_BED_LEVELING_GRID_POINTS 2 - - #else // !AUTO_BED_LEVELING_GRID - - // Arbitrary points to probe. - // A simple cross-product is used to estimate the plane of the bed. - #define ABL_PROBE_PT_1_X 15 - #define ABL_PROBE_PT_1_Y 180 - #define ABL_PROBE_PT_2_X 15 - #define ABL_PROBE_PT_2_Y 20 - #define ABL_PROBE_PT_3_X 170 - #define ABL_PROBE_PT_3_Y 20 - - #endif // AUTO_BED_LEVELING_GRID - - // Offsets to the Z probe relative to the nozzle tip. - // X and Y offsets must be integers. - #define X_PROBE_OFFSET_FROM_EXTRUDER -25 // Z probe to nozzle X offset: -left +right - #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Z probe to nozzle Y offset: -front +behind - #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // Z probe to nozzle Z offset: -below (always!) - - #define Z_RAISE_BEFORE_HOMING 4 // (in mm) Raise Z axis before homing (G28) for Z probe clearance. - // Be sure you have this distance over your Z_MAX_POS in case. - - #define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min. - - #define Z_RAISE_BEFORE_PROBING 15 // How much the Z axis will be raised before traveling to the first probing point. - #define Z_RAISE_BETWEEN_PROBINGS 5 // How much the Z axis will be raised when traveling from between next probing points. - #define Z_RAISE_AFTER_PROBING 15 // How much the Z axis will be raised after the last probing point. - -//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine. - // Useful to retract a deployable Z probe. - - //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell. - //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. - -// If you have enabled the bed auto leveling and are using the same Z probe for Z homing, -// it is highly recommended you let this Z_SAFE_HOMING enabled!!! - - #define Z_SAFE_HOMING // This feature is meant to avoid Z homing with Z probe outside the bed area. - // When defined, it will: - // - Allow Z homing only after X and Y homing AND stepper drivers still enabled. - // - If stepper drivers timeout, it will need X and Y homing again before Z homing. - // - Position the Z probe in a defined XY point before Z Homing when homing all axis (G28). - // - Block Z homing only when the Z probe is outside bed area. - - #if ENABLED(Z_SAFE_HOMING) - - #define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28). - #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). - - #endif - - // Support for a dedicated Z probe endstop separate from the Z min endstop. - // If you would like to use both a Z probe and a Z min endstop together, - // uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below. - // If you still want to use the Z min endstop for homing, disable Z_SAFE_HOMING above. - // Example: To park the head outside the bed area when homing with G28. - // - // WARNING: - // The Z min endstop will need to set properly as it would without a Z probe - // to prevent head crashes and premature stopping during a print. - // - // To use a separate Z probe endstop, you must have a Z_MIN_PROBE_PIN - // defined in the pins_XXXXX.h file for your control board. - // If you are using a servo based Z probe, you will need to enable NUM_SERVOS, - // Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C SERVO support below. - // RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin - // in the Aux 4 section of the RAMPS board. Use 5V for powered sensors, - // otherwise connect to ground and D32 for normally closed configuration - // and 5V and D32 for normally open configurations. - // Normally closed configuration is advised and assumed. - // The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin. - // Z_MIN_PROBE_PIN is setting the pin to use on the Arduino. - // Since the D32 pin on the RAMPS maps to D32 on Arduino, this works. - // D32 is currently selected in the RAMPS 1.3/1.4 pin file. - // All other boards will need changes to the respective pins_XXXXX.h file. - // - // WARNING: - // Setting the wrong pin may have unexpected and potentially disastrous outcomes. - // Use with caution and do your homework. - // - //#define Z_MIN_PROBE_ENDSTOP - -#endif // AUTO_BED_LEVELING_FEATURE - - -// @section homing - -// The position of the homing switches -//#define MANUAL_HOME_POSITIONS // If defined, MANUAL_*_HOME_POS below will be used -//#define BED_CENTER_AT_0_0 // If defined, the center of the bed is at (X=0, Y=0) - -// Manual homing switch locations: -// For deltabots this means top and center of the Cartesian print volume. -#if ENABLED(MANUAL_HOME_POSITIONS) - #define MANUAL_X_HOME_POS 0 - #define MANUAL_Y_HOME_POS 0 - #define MANUAL_Z_HOME_POS 0 - //#define MANUAL_Z_HOME_POS 402 // For delta: Distance between nozzle and print surface after homing. -#endif - -// @section movement - -/** - * MOVEMENT SETTINGS - */ - -#define HOMING_FEEDRATE {50*60, 50*60, 4*60, 0} // set the homing speeds (mm/min) - -// default settings - -#define DEFAULT_AXIS_STEPS_PER_UNIT {80,80,4000,500} // default steps per unit for Ultimaker -#define DEFAULT_MAX_FEEDRATE {300, 300, 5, 25} // (mm/sec) -#define DEFAULT_MAX_ACCELERATION {3000,3000,100,10000} // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for Skeinforge 40+, for older versions raise them a lot. - -#define DEFAULT_ACCELERATION 3000 // X, Y, Z and E acceleration in mm/s^2 for printing moves -#define DEFAULT_RETRACT_ACCELERATION 3000 // E acceleration in mm/s^2 for retracts -#define DEFAULT_TRAVEL_ACCELERATION 3000 // X, Y, Z acceleration in mm/s^2 for travel (non printing) moves - -// The speed change that does not require acceleration (i.e. the software might assume it can be done instantaneously) -#define DEFAULT_XYJERK 20.0 // (mm/sec) -#define DEFAULT_ZJERK 0.4 // (mm/sec) -#define DEFAULT_EJERK 5.0 // (mm/sec) - - -//============================================================================= -//============================= Additional Features =========================== -//============================================================================= - -// @section more - -// Custom M code points -#define CUSTOM_M_CODES -#if ENABLED(CUSTOM_M_CODES) - #if ENABLED(AUTO_BED_LEVELING_FEATURE) - #define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851 - #define Z_PROBE_OFFSET_RANGE_MIN -20 - #define Z_PROBE_OFFSET_RANGE_MAX 20 - #endif -#endif - -// @section extras - -// EEPROM -// The microcontroller can store settings in the EEPROM, e.g. max velocity... -// M500 - stores parameters in EEPROM -// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily). -// M502 - reverts to the default "factory settings". You still need to store them in EEPROM afterwards if you want to. -//define this to enable EEPROM support -//#define EEPROM_SETTINGS - -#if ENABLED(EEPROM_SETTINGS) - // To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out: - #define EEPROM_CHITCHAT // Please keep turned on if you can. -#endif - -// -// M100 Free Memory Watcher -// -//#define M100_FREE_MEMORY_WATCHER // uncomment to add the M100 Free Memory Watcher for debug purpose - -// @section temperature - -// Preheat Constants -#define PLA_PREHEAT_HOTEND_TEMP 180 -#define PLA_PREHEAT_HPB_TEMP 70 -#define PLA_PREHEAT_FAN_SPEED 0 // Insert Value between 0 and 255 - -#define ABS_PREHEAT_HOTEND_TEMP 240 -#define ABS_PREHEAT_HPB_TEMP 110 -#define ABS_PREHEAT_FAN_SPEED 0 // Insert Value between 0 and 255 - -//==============================LCD and SD support============================= -// @section lcd - -// Define your display language below. Replace (en) with your language code and uncomment. -// en, pl, fr, de, es, ru, bg, it, pt, pt-br, fi, an, nl, ca, eu, kana, kana_utf8, cn, test -// See also language.h -#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) - -// Choose ONE of these 3 charsets. This has to match your hardware. Ignored for full graphic display. -// To find out what type you have - compile with (test) - upload - click to get the menu. You'll see two typical lines from the upper half of the charset. -// See also documentation/LCDLanguageFont.md - #define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware - //#define DISPLAY_CHARSET_HD44780_WESTERN - //#define DISPLAY_CHARSET_HD44780_CYRILLIC - -//#define ULTRA_LCD //general LCD support, also 16x2 -//#define DOGLCD // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family) -//#define SDSUPPORT // Enable SD Card Support in Hardware Console -// Changed behaviour! If you need SDSUPPORT uncomment it! -//#define SDSLOW // Use slower SD transfer mode (not normally needed - uncomment if you're getting volume init error) -//#define SDEXTRASLOW // Use even slower SD transfer mode (not normally needed - uncomment if you're getting volume init error) -//#define SD_CHECK_AND_RETRY // Use CRC checks and retries on the SD communication -//#define ENCODER_PULSES_PER_STEP 1 // Increase if you have a high resolution encoder -//#define ENCODER_STEPS_PER_MENU_ITEM 5 // Set according to ENCODER_PULSES_PER_STEP or your liking -//#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store. -//#define ULTIPANEL //the UltiPanel as on Thingiverse -//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with his own frequency. -//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click -//#define LCD_FEEDBACK_FREQUENCY_HZ 1000 // this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click - // 0 to disable buzzer feedback. Test with M300 S P -// PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3) -// http://reprap.org/wiki/PanelOne -//#define PANEL_ONE - -// The MaKr3d Makr-Panel with graphic controller and SD support -// http://reprap.org/wiki/MaKr3d_MaKrPanel -//#define MAKRPANEL - -// The Panucatt Devices Viki 2.0 and mini Viki with Graphic LCD -// http://panucatt.com -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: http://code.google.com/p/u8glib/wiki/u8glib -//#define VIKI2 -//#define miniVIKI - -// This is a new controller currently under development. https://github.com/eboston/Adafruit-ST7565-Full-Graphic-Controller/ -// -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: http://code.google.com/p/u8glib/wiki/u8glib -//#define ELB_FULL_GRAPHIC_CONTROLLER -//#define SD_DETECT_INVERTED - -// The RepRapDiscount Smart Controller (white PCB) -// http://reprap.org/wiki/RepRapDiscount_Smart_Controller -//#define REPRAP_DISCOUNT_SMART_CONTROLLER - -// The GADGETS3D G3D LCD/SD Controller (blue PCB) -// http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel -//#define G3D_PANEL - -// The RepRapDiscount FULL GRAPHIC Smart Controller (quadratic white PCB) -// http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller -// -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: http://code.google.com/p/u8glib/wiki/u8glib -//#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER - -// The RepRapWorld REPRAPWORLD_KEYPAD v1.1 -// http://reprapworld.com/?products_details&products_id=202&cPath=1591_1626 -//#define REPRAPWORLD_KEYPAD -//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 // how much should be moved when a key is pressed, eg 10.0 means 10mm per click - -// The Elefu RA Board Control Panel -// http://www.elefu.com/index.php?route=product/product&product_id=53 -// REMEMBER TO INSTALL LiquidCrystal_I2C.h in your ARDUINO library folder: https://github.com/kiyoshigawa/LiquidCrystal_I2C -//#define RA_CONTROL_PANEL - -// The MakerLab Mini Panel with graphic controller and SD support -// http://reprap.org/wiki/Mini_panel -//#define MINIPANEL - -/** - * I2C Panels - */ - -//#define LCD_I2C_SAINSMART_YWROBOT - -// PANELOLU2 LCD with status LEDs, separate encoder and click inputs -// -// This uses the LiquidTWI2 library v1.2.3 or later ( https://github.com/lincomatic/LiquidTWI2 ) -// Make sure the LiquidTWI2 directory is placed in the Arduino or Sketchbook libraries subdirectory. -// (v1.2.3 no longer requires you to define PANELOLU in the LiquidTWI2.h library header file) -// Note: The PANELOLU2 encoder click input can either be directly connected to a pin -// (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1). -//#define LCD_I2C_PANELOLU2 - -// Panucatt VIKI LCD with status LEDs, integrated click & L/R/U/P buttons, separate encoder inputs -//#define LCD_I2C_VIKI - -// SSD1306 OLED generic display support -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: http://code.google.com/p/u8glib/wiki/u8glib -//#define U8GLIB_SSD1306 - -// Shift register panels -// --------------------- -// 2 wire Non-latching LCD SR from: -// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/schematics#!shiftregister-connection -// LCD configuration: http://reprap.org/wiki/SAV_3D_LCD -//#define SAV_3DLCD - -// @section extras - -// Increase the FAN pwm frequency. Removes the PWM noise but increases heating in the FET/Arduino -//#define FAST_PWM_FAN - -// Use software PWM to drive the fan, as for the heaters. This uses a very low frequency -// which is not as annoying as with the hardware PWM. On the other hand, if this frequency -// is too low, you should also increment SOFT_PWM_SCALE. -//#define FAN_SOFT_PWM - -// Incrementing this by 1 will double the software PWM frequency, -// affecting heaters, and the fan if FAN_SOFT_PWM is enabled. -// However, control resolution will be halved for each increment; -// at zero value, there are 128 effective control positions. -#define SOFT_PWM_SCALE 0 - -// Temperature status LEDs that display the hotend and bet temperature. -// If all hotends and bed temperature and temperature setpoint are < 54C then the BLUE led is on. -// Otherwise the RED led is on. There is 1C hysteresis. -//#define TEMP_STAT_LEDS - -// M240 Triggers a camera by emulating a Canon RC-1 Remote -// Data from: http://www.doc-diy.net/photo/rc-1_hacked/ -//#define PHOTOGRAPH_PIN 23 - -// SkeinForge sends the wrong arc g-codes when using Arc Point as fillet procedure -//#define SF_ARC_FIX - -// Support for the BariCUDA Paste Extruder. -//#define BARICUDA - -//define BlinkM/CyzRgb Support -//#define BLINKM - -/*********************************************************************\ -* R/C SERVO support -* Sponsored by TrinityLabs, Reworked by codexmas -**********************************************************************/ - -// Number of servos -// -// If you select a configuration below, this will receive a default value and does not need to be set manually -// set it manually if you have more servos than extruders and wish to manually control some -// leaving it undefined or defining as 0 will disable the servo subsystem -// If unsure, leave commented / disabled -// -//#define NUM_SERVOS 3 // Servo index starts with 0 for M280 command - -// Servo Endstops -// -// This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes. -// Use M851 to set the Z probe vertical offset from the nozzle. Store that setting with M500. -// -//#define X_ENDSTOP_SERVO_NR 1 -//#define Y_ENDSTOP_SERVO_NR 2 -//#define Z_ENDSTOP_SERVO_NR 0 -//#define SERVO_ENDSTOP_ANGLES {{0,0}, {0,0}, {70,0}} // X,Y,Z Axis Extend and Retract angles - -// Servo deactivation -// -// With this option servos are powered only during movement, then turned off to prevent jitter. -//#define DEACTIVATE_SERVOS_AFTER_MOVE - -#if ENABLED(DEACTIVATE_SERVOS_AFTER_MOVE) - // Delay (in microseconds) before turning the servo off. This depends on the servo speed. - // 300ms is a good value but you can try less delay. - // If the servo can't reach the requested position, increase it. - #define SERVO_DEACTIVATION_DELAY 300 -#endif - -/**********************************************************************\ - * Support for a filament diameter sensor - * Also allows adjustment of diameter at print time (vs at slicing) - * Single extruder only at this point (extruder 0) - * - * Motherboards - * 34 - RAMPS1.4 - uses Analog input 5 on the AUX2 connector - * 81 - Printrboard - Uses Analog input 2 on the Exp1 connector (version B,C,D,E) - * 301 - Rambo - uses Analog input 3 - * Note may require analog pins to be defined for different motherboards - **********************************************************************/ -// Uncomment below to enable -//#define FILAMENT_SENSOR - -#define FILAMENT_SENSOR_EXTRUDER_NUM 0 //The number of the extruder that has the filament sensor (0,1,2) -#define MEASUREMENT_DELAY_CM 14 //measurement delay in cm. This is the distance from filament sensor to middle of barrel - -#define DEFAULT_NOMINAL_FILAMENT_DIA 3.00 //Enter the diameter (in mm) of the filament generally used (3.0 mm or 1.75 mm) - this is then used in the slicer software. Used for sensor reading validation -#define MEASURED_UPPER_LIMIT 3.30 //upper limit factor used for sensor reading validation in mm -#define MEASURED_LOWER_LIMIT 1.90 //lower limit factor for sensor reading validation in mm -#define MAX_MEASUREMENT_DELAY 20 //delay buffer size in bytes (1 byte = 1cm)- limits maximum measurement delay allowable (must be larger than MEASUREMENT_DELAY_CM and lower number saves RAM) - -//defines used in the code -#define DEFAULT_MEASURED_FILAMENT_DIA DEFAULT_NOMINAL_FILAMENT_DIA //set measured to nominal initially - -//When using an LCD, uncomment the line below to display the Filament sensor data on the last line instead of status. Status will appear for 5 sec. -//#define FILAMENT_LCD_DISPLAY - -#include "Configuration_adv.h" -#include "thermistortables.h" - -#endif //CONFIGURATION_H diff --git a/Marlin/configurator/config/Configuration_adv.h b/Marlin/configurator/config/Configuration_adv.h deleted file mode 100644 index ab6502aa84..0000000000 --- a/Marlin/configurator/config/Configuration_adv.h +++ /dev/null @@ -1,602 +0,0 @@ -#ifndef CONFIGURATION_ADV_H -#define CONFIGURATION_ADV_H - -#include "Conditionals.h" - -// @section temperature - -//=========================================================================== -//=============================Thermal Settings ============================ -//=========================================================================== - -#if ENABLED(BED_LIMIT_SWITCHING) - #define BED_HYSTERESIS 2 //only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS -#endif -#define BED_CHECK_INTERVAL 5000 //ms between checks in bang-bang control - -/** - * Thermal Protection parameters - */ -#if ENABLED(THERMAL_PROTECTION_HOTENDS) - #define THERMAL_PROTECTION_PERIOD 40 // Seconds - #define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius - - /** - * Whenever an M104 or M109 increases the target temperature the firmware will wait for the - * WATCH_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_TEMP_INCREASE - * degrees, the machine is halted, requiring a hard reset. This test restarts with any M104/M109, - * but only if the current temperature is far enough below the target for a reliable test. - */ - #define WATCH_TEMP_PERIOD 16 // Seconds - #define WATCH_TEMP_INCREASE 4 // Degrees Celsius -#endif - -#if ENABLED(THERMAL_PROTECTION_BED) - #define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds - #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius -#endif - -#if ENABLED(PIDTEMP) - // this adds an experimental additional term to the heating power, proportional to the extrusion speed. - // if Kc is chosen well, the additional required power due to increased melting should be compensated. - #define PID_ADD_EXTRUSION_RATE - #if ENABLED(PID_ADD_EXTRUSION_RATE) - #define DEFAULT_Kc (100) //heating power=Kc*(e_speed) - #define LPQ_MAX_LEN 50 - #endif -#endif - -/** - * Automatic Temperature: - * The hotend target temperature is calculated by all the buffered lines of gcode. - * The maximum buffered steps/sec of the extruder motor is called "se". - * Start autotemp mode with M109 S B F - * The target temperature is set to mintemp+factor*se[steps/sec] and is limited by - * mintemp and maxtemp. Turn this off by excuting M109 without F* - * Also, if the temperature is set to a value below mintemp, it will not be changed by autotemp. - * On an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode - */ -#define AUTOTEMP -#if ENABLED(AUTOTEMP) - #define AUTOTEMP_OLDWEIGHT 0.98 -#endif - -//Show Temperature ADC value -//The M105 command return, besides traditional information, the ADC value read from temperature sensors. -//#define SHOW_TEMP_ADC_VALUES - -// @section extruder - -// extruder run-out prevention. -//if the machine is idle, and the temperature over MINTEMP, every couple of SECONDS some filament is extruded -//#define EXTRUDER_RUNOUT_PREVENT -#define EXTRUDER_RUNOUT_MINTEMP 190 -#define EXTRUDER_RUNOUT_SECONDS 30. -#define EXTRUDER_RUNOUT_ESTEPS 14. //mm filament -#define EXTRUDER_RUNOUT_SPEED 1500. //extrusion speed -#define EXTRUDER_RUNOUT_EXTRUDE 100 - -// @section temperature - -//These defines help to calibrate the AD595 sensor in case you get wrong temperature measurements. -//The measured temperature is defined as "actualTemp = (measuredTemp * TEMP_SENSOR_AD595_GAIN) + TEMP_SENSOR_AD595_OFFSET" -#define TEMP_SENSOR_AD595_OFFSET 0.0 -#define TEMP_SENSOR_AD595_GAIN 1.0 - -//This is for controlling a fan to cool down the stepper drivers -//it will turn on when any driver is enabled -//and turn off after the set amount of seconds from last driver being disabled again -#define CONTROLLERFAN_PIN -1 //Pin used for the fan to cool controller (-1 to disable) -#define CONTROLLERFAN_SECS 60 //How many seconds, after all motors were disabled, the fan should run -#define CONTROLLERFAN_SPEED 255 // == full speed - -// When first starting the main fan, run it at full speed for the -// given number of milliseconds. This gets the fan spinning reliably -// before setting a PWM value. (Does not work with software PWM for fan on Sanguinololu) -//#define FAN_KICKSTART_TIME 100 - -// This defines the minimal speed for the main fan, run in PWM mode -// to enable uncomment and set minimal PWM speed for reliable running (1-255) -// if fan speed is [1 - (FAN_MIN_PWM-1)] it is set to FAN_MIN_PWM -//#define FAN_MIN_PWM 50 - -// @section extruder - -// Extruder cooling fans -// Configure fan pin outputs to automatically turn on/off when the associated -// extruder temperature is above/below EXTRUDER_AUTO_FAN_TEMPERATURE. -// Multiple extruders can be assigned to the same pin in which case -// the fan will turn on when any selected extruder is above the threshold. -#define EXTRUDER_0_AUTO_FAN_PIN -1 -#define EXTRUDER_1_AUTO_FAN_PIN -1 -#define EXTRUDER_2_AUTO_FAN_PIN -1 -#define EXTRUDER_3_AUTO_FAN_PIN -1 -#define EXTRUDER_AUTO_FAN_TEMPERATURE 50 -#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed - - -//=========================================================================== -//=============================Mechanical Settings=========================== -//=========================================================================== - -// @section homing - -#define ENDSTOPS_ONLY_FOR_HOMING // If defined the endstops will only be used for homing - -// @section extras - -//#define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats. - -// A single Z stepper driver is usually used to drive 2 stepper motors. -// Uncomment this define to utilize a separate stepper driver for each Z axis motor. -// Only a few motherboards support this, like RAMPS, which have dual extruder support (the 2nd, often unused, extruder driver is used -// to control the 2nd Z axis stepper motor). The pins are currently only defined for a RAMPS motherboards. -// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder. -//#define Z_DUAL_STEPPER_DRIVERS - -#if ENABLED(Z_DUAL_STEPPER_DRIVERS) - - // Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper. - // That way the machine is capable to align the bed during home, since both Z steppers are homed. - // There is also an implementation of M666 (software endstops adjustment) to this feature. - // After Z homing, this adjustment is applied to just one of the steppers in order to align the bed. - // One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2. - // If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive. - // Play a little bit with small adjustments (0.5mm) and check the behaviour. - // The M119 (endstops report) will start reporting the Z2 Endstop as well. - - //#define Z_DUAL_ENDSTOPS - - #if ENABLED(Z_DUAL_ENDSTOPS) - #define Z2_MAX_PIN 36 //Endstop used for Z2 axis. In this case I'm using XMAX in a Rumba Board (pin 36) - const bool Z2_MAX_ENDSTOP_INVERTING = false; - #define DISABLE_XMAX_ENDSTOP //Better to disable the XMAX to avoid conflict. Just rename "XMAX_ENDSTOP" by the endstop you are using for Z2 axis. - #endif - -#endif // Z_DUAL_STEPPER_DRIVERS - -// Same again but for Y Axis. -//#define Y_DUAL_STEPPER_DRIVERS - -#if ENABLED(Y_DUAL_STEPPER_DRIVERS) - // Define if the two Y drives need to rotate in opposite directions - #define INVERT_Y2_VS_Y_DIR true -#endif - -// Enable this for dual x-carriage printers. -// A dual x-carriage design has the advantage that the inactive extruder can be parked which -// prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage -// allowing faster printing speeds. -//#define DUAL_X_CARRIAGE -#if ENABLED(DUAL_X_CARRIAGE) - // Configuration for second X-carriage - // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop; - // the second x-carriage always homes to the maximum endstop. - #define X2_MIN_POS 80 // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage - #define X2_MAX_POS 353 // set maximum to the distance between toolheads when both heads are homed - #define X2_HOME_DIR 1 // the second X-carriage always homes to the maximum endstop position - #define X2_HOME_POS X2_MAX_POS // default home position is the maximum carriage position - // However: In this mode the EXTRUDER_OFFSET_X value for the second extruder provides a software - // override for X2_HOME_POS. This also allow recalibration of the distance between the two endstops - // without modifying the firmware (through the "M218 T1 X???" command). - // Remember: you should set the second extruder x-offset to 0 in your slicer. - - // Pins for second x-carriage stepper driver (defined here to avoid further complicating pins.h) - #define X2_ENABLE_PIN 29 - #define X2_STEP_PIN 25 - #define X2_DIR_PIN 23 - - // There are a few selectable movement modes for dual x-carriages using M605 S - // Mode 0: Full control. The slicer has full control over both x-carriages and can achieve optimal travel results - // as long as it supports dual x-carriages. (M605 S0) - // Mode 1: Auto-park mode. The firmware will automatically park and unpark the x-carriages on tool changes so - // that additional slicer support is not required. (M605 S1) - // Mode 2: Duplication mode. The firmware will transparently make the second x-carriage and extruder copy all - // actions of the first x-carriage. This allows the printer to print 2 arbitrary items at - // once. (2nd extruder x offset and temp offset are set using: M605 S2 [Xnnn] [Rmmm]) - - // This is the default power-up mode which can be later using M605. - #define DEFAULT_DUAL_X_CARRIAGE_MODE 0 - - // Default settings in "Auto-park Mode" - #define TOOLCHANGE_PARK_ZLIFT 0.2 // the distance to raise Z axis when parking an extruder - #define TOOLCHANGE_UNPARK_ZLIFT 1 // the distance to raise Z axis when unparking an extruder - - // Default x offset in duplication mode (typically set to half print bed width) - #define DEFAULT_DUPLICATION_X_OFFSET 100 - -#endif //DUAL_X_CARRIAGE - -// @section homing - -//homing hits the endstop, then retracts by this distance, before it tries to slowly bump again: -#define X_HOME_BUMP_MM 5 -#define Y_HOME_BUMP_MM 5 -#define Z_HOME_BUMP_MM 2 -#define HOMING_BUMP_DIVISOR {2, 2, 4} // Re-Bump Speed Divisor (Divides the Homing Feedrate) -//#define QUICK_HOME //if this is defined, if both x and y are to be homed, a diagonal move will be performed initially. - -// When G28 is called, this option will make Y home before X -//#define HOME_Y_BEFORE_X - -// @section machine - -#define AXIS_RELATIVE_MODES {false, false, false, false} - -// @section machine - -//By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. -#define INVERT_X_STEP_PIN false -#define INVERT_Y_STEP_PIN false -#define INVERT_Z_STEP_PIN false -#define INVERT_E_STEP_PIN false - -// Default stepper release if idle. Set to 0 to deactivate. -#define DEFAULT_STEPPER_DEACTIVE_TIME 60 - -#define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate -#define DEFAULT_MINTRAVELFEEDRATE 0.0 - -// @section lcd - -#if ENABLED(ULTIPANEL) - #define MANUAL_FEEDRATE {50*60, 50*60, 4*60, 60} // Feedrates for manual moves along X, Y, Z, E from panel - #define ULTIPANEL_FEEDMULTIPLY // Comment to disable setting feedrate multiplier via encoder -#endif - -// @section extras - -// minimum time in microseconds that a movement needs to take if the buffer is emptied. -#define DEFAULT_MINSEGMENTTIME 20000 - -// If defined the movements slow down when the look ahead buffer is only half full -#define SLOWDOWN - -// Frequency limit -// See nophead's blog for more info -// Not working O -//#define XY_FREQUENCY_LIMIT 15 - -// Minimum planner junction speed. Sets the default minimum speed the planner plans for at the end -// of the buffer and all stops. This should not be much greater than zero and should only be changed -// if unwanted behavior is observed on a user's machine when running at very slow speeds. -#define MINIMUM_PLANNER_SPEED 0.05// (mm/sec) - -// Microstep setting (Only functional when stepper driver microstep pins are connected to MCU. -#define MICROSTEP_MODES {16,16,16,16,16} // [1,2,4,8,16] - -// Motor Current setting (Only functional when motor driver current ref pins are connected to a digital trimpot on supported boards) -#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A) - -// uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro -//#define DIGIPOT_I2C -// Number of channels available for I2C digipot, For Azteeg X3 Pro we have 8 -#define DIGIPOT_I2C_NUM_CHANNELS 8 -// actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS -#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0} - -//=========================================================================== -//=============================Additional Features=========================== -//=========================================================================== - -#define ENCODER_RATE_MULTIPLIER // If defined, certain menu edit operations automatically multiply the steps when the encoder is moved quickly -#define ENCODER_10X_STEPS_PER_SEC 75 // If the encoder steps per sec exceeds this value, multiply steps moved x10 to quickly advance the value -#define ENCODER_100X_STEPS_PER_SEC 160 // If the encoder steps per sec exceeds this value, multiply steps moved x100 to really quickly advance the value - -//#define CHDK 4 //Pin for triggering CHDK to take a picture see how to use it here http://captain-slow.dk/2014/03/09/3d-printing-timelapses/ -#define CHDK_DELAY 50 //How long in ms the pin should stay HIGH before going LOW again - -// @section lcd - -#if ENABLED(SDSUPPORT) - - // Some RAMPS and other boards don't detect when an SD card is inserted. You can work - // around this by connecting a push button or single throw switch to the pin defined - // as SD_DETECT_PIN in your board's pins definitions. - // This setting should be disabled unless you are using a push button, pulling the pin to ground. - // Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER). - #define SD_DETECT_INVERTED - - #define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers? - #define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place. - - #define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order. - // if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that. - // using: - //#define MENU_ADDAUTOSTART - - // Show a progress bar on HD44780 LCDs for SD printing - //#define LCD_PROGRESS_BAR - - #if ENABLED(LCD_PROGRESS_BAR) - // Amount of time (ms) to show the bar - #define PROGRESS_BAR_BAR_TIME 2000 - // Amount of time (ms) to show the status message - #define PROGRESS_BAR_MSG_TIME 3000 - // Amount of time (ms) to retain the status message (0=forever) - #define PROGRESS_MSG_EXPIRE 0 - // Enable this to show messages for MSG_TIME then hide them - //#define PROGRESS_MSG_ONCE - #endif - - // This allows hosts to request long names for files and folders with M33 - //#define LONG_FILENAME_HOST_SUPPORT - - // This option allows you to abort SD printing when any endstop is triggered. - // This feature must be enabled with "M540 S1" or from the LCD menu. - // To have any effect, endstops must be enabled during SD printing. - // With ENDSTOPS_ONLY_FOR_HOMING you must send "M120" to enable endstops. - //#define ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED - -#endif // SDSUPPORT - -// for dogm lcd displays you can choose some additional fonts: -#if ENABLED(DOGLCD) - // save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT - // we don't have a big font for Cyrillic, Kana - //#define USE_BIG_EDIT_FONT - - // If you have spare 2300Byte of progmem and want to use a - // smaller font on the Info-screen uncomment the next line. - //#define USE_SMALL_INFOFONT -#endif // DOGLCD - -// @section more - -// The hardware watchdog should reset the microcontroller disabling all outputs, in case the firmware gets stuck and doesn't do temperature regulation. -//#define USE_WATCHDOG - -#if ENABLED(USE_WATCHDOG) -// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on. -// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset. -// However, THIS FEATURE IS UNSAFE!, as it will only work if interrupts are disabled. And the code could hang in an interrupt routine with interrupts disabled. -//#define WATCHDOG_RESET_MANUAL -#endif - -// @section lcd - -// Babystepping enables the user to control the axis in tiny amounts, independently from the normal printing process -// it can e.g. be used to change z-positions in the print startup phase in real-time -// does not respect endstops! -//#define BABYSTEPPING -#if ENABLED(BABYSTEPPING) - #define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions - #define BABYSTEP_INVERT_Z false //true for inverse movements in Z - #define BABYSTEP_MULTIPLICATOR 1 //faster movements -#endif - -// @section extruder - -// extruder advance constant (s2/mm3) -// -// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2 -// -// Hooke's law says: force = k * distance -// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant -// so: v ^ 2 is proportional to number of steps we advance the extruder -//#define ADVANCE - -#if ENABLED(ADVANCE) - #define EXTRUDER_ADVANCE_K .0 - #define D_FILAMENT 2.85 - #define STEPS_MM_E 836 -#endif - -// @section extras - -// Arc interpretation settings: -#define MM_PER_ARC_SEGMENT 1 -#define N_ARC_CORRECTION 25 - -const unsigned int dropsegments=5; //everything with less than this number of steps will be ignored as move and joined with the next movement - -// @section temperature - -// Control heater 0 and heater 1 in parallel. -//#define HEATERS_PARALLEL - -//=========================================================================== -//================================= Buffers ================================= -//=========================================================================== - -// @section hidden - -// The number of linear motions that can be in the plan at any give time. -// THE BLOCK_BUFFER_SIZE NEEDS TO BE A POWER OF 2, i.g. 8,16,32 because shifts and ors are used to do the ring-buffering. -#if ENABLED(SDSUPPORT) - #define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller -#else - #define BLOCK_BUFFER_SIZE 16 // maximize block buffer -#endif - -// @section more - -//The ASCII buffer for receiving from the serial: -#define MAX_CMD_SIZE 96 -#define BUFSIZE 4 - -// Bad Serial-connections can miss a received command by sending an 'ok' -// Therefore some clients abort after 30 seconds in a timeout. -// Some other clients start sending commands while receiving a 'wait'. -// This "wait" is only sent when the buffer is empty. 1 second is a good value here. -//#define NO_TIMEOUTS 1000 // Milliseconds - -// Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary. -//#define ADVANCED_OK - -// @section fwretract - -// Firmware based and LCD controlled retract -// M207 and M208 can be used to define parameters for the retraction. -// The retraction can be called by the slicer using G10 and G11 -// until then, intended retractions can be detected by moves that only extrude and the direction. -// the moves are than replaced by the firmware controlled ones. - -//#define FWRETRACT //ONLY PARTIALLY TESTED -#if ENABLED(FWRETRACT) - #define MIN_RETRACT 0.1 //minimum extruded mm to accept a automatic gcode retraction attempt - #define RETRACT_LENGTH 3 //default retract length (positive mm) - #define RETRACT_LENGTH_SWAP 13 //default swap retract length (positive mm), for extruder change - #define RETRACT_FEEDRATE 45 //default feedrate for retracting (mm/s) - #define RETRACT_ZLIFT 0 //default retract Z-lift - #define RETRACT_RECOVER_LENGTH 0 //default additional recover length (mm, added to retract length when recovering) - #define RETRACT_RECOVER_LENGTH_SWAP 0 //default additional swap recover length (mm, added to retract length when recovering from extruder change) - #define RETRACT_RECOVER_FEEDRATE 8 //default feedrate for recovering from retraction (mm/s) -#endif - -// Add support for experimental filament exchange support M600; requires display -#if ENABLED(ULTIPANEL) - //#define FILAMENTCHANGEENABLE - #if ENABLED(FILAMENTCHANGEENABLE) - #define FILAMENTCHANGE_XPOS 3 - #define FILAMENTCHANGE_YPOS 3 - #define FILAMENTCHANGE_ZADD 10 - #define FILAMENTCHANGE_FIRSTRETRACT -2 - #define FILAMENTCHANGE_FINALRETRACT -100 - #define AUTO_FILAMENT_CHANGE //This extrude filament until you press the button on LCD - #define AUTO_FILAMENT_CHANGE_LENGTH 0.04 //Extrusion length on automatic extrusion loop - #define AUTO_FILAMENT_CHANGE_FEEDRATE 300 //Extrusion feedrate (mm/min) on automatic extrusion loop - #endif -#endif - -/******************************************************************************\ - * enable this section if you have TMC26X motor drivers. - * you need to import the TMC26XStepper library into the arduino IDE for this - ******************************************************************************/ - -// @section tmc - -//#define HAVE_TMCDRIVER -#if ENABLED(HAVE_TMCDRIVER) - -//#define X_IS_TMC - #define X_MAX_CURRENT 1000 //in mA - #define X_SENSE_RESISTOR 91 //in mOhms - #define X_MICROSTEPS 16 //number of microsteps - -//#define X2_IS_TMC - #define X2_MAX_CURRENT 1000 //in mA - #define X2_SENSE_RESISTOR 91 //in mOhms - #define X2_MICROSTEPS 16 //number of microsteps - -//#define Y_IS_TMC - #define Y_MAX_CURRENT 1000 //in mA - #define Y_SENSE_RESISTOR 91 //in mOhms - #define Y_MICROSTEPS 16 //number of microsteps - -//#define Y2_IS_TMC - #define Y2_MAX_CURRENT 1000 //in mA - #define Y2_SENSE_RESISTOR 91 //in mOhms - #define Y2_MICROSTEPS 16 //number of microsteps - -//#define Z_IS_TMC - #define Z_MAX_CURRENT 1000 //in mA - #define Z_SENSE_RESISTOR 91 //in mOhms - #define Z_MICROSTEPS 16 //number of microsteps - -//#define Z2_IS_TMC - #define Z2_MAX_CURRENT 1000 //in mA - #define Z2_SENSE_RESISTOR 91 //in mOhms - #define Z2_MICROSTEPS 16 //number of microsteps - -//#define E0_IS_TMC - #define E0_MAX_CURRENT 1000 //in mA - #define E0_SENSE_RESISTOR 91 //in mOhms - #define E0_MICROSTEPS 16 //number of microsteps - -//#define E1_IS_TMC - #define E1_MAX_CURRENT 1000 //in mA - #define E1_SENSE_RESISTOR 91 //in mOhms - #define E1_MICROSTEPS 16 //number of microsteps - -//#define E2_IS_TMC - #define E2_MAX_CURRENT 1000 //in mA - #define E2_SENSE_RESISTOR 91 //in mOhms - #define E2_MICROSTEPS 16 //number of microsteps - -//#define E3_IS_TMC - #define E3_MAX_CURRENT 1000 //in mA - #define E3_SENSE_RESISTOR 91 //in mOhms - #define E3_MICROSTEPS 16 //number of microsteps - -#endif - -/******************************************************************************\ - * enable this section if you have L6470 motor drivers. - * you need to import the L6470 library into the arduino IDE for this - ******************************************************************************/ - -// @section l6470 - -//#define HAVE_L6470DRIVER -#if ENABLED(HAVE_L6470DRIVER) - -//#define X_IS_L6470 - #define X_MICROSTEPS 16 //number of microsteps - #define X_K_VAL 50 // 0 - 255, Higher values, are higher power. Be carefull not to go too high - #define X_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off - #define X_STALLCURRENT 1500 //current in mA where the driver will detect a stall - -//#define X2_IS_L6470 - #define X2_MICROSTEPS 16 //number of microsteps - #define X2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be carefull not to go too high - #define X2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off - #define X2_STALLCURRENT 1500 //current in mA where the driver will detect a stall - -//#define Y_IS_L6470 - #define Y_MICROSTEPS 16 //number of microsteps - #define Y_K_VAL 50 // 0 - 255, Higher values, are higher power. Be carefull not to go too high - #define Y_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off - #define Y_STALLCURRENT 1500 //current in mA where the driver will detect a stall - -//#define Y2_IS_L6470 - #define Y2_MICROSTEPS 16 //number of microsteps - #define Y2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be carefull not to go too high - #define Y2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off - #define Y2_STALLCURRENT 1500 //current in mA where the driver will detect a stall - -//#define Z_IS_L6470 - #define Z_MICROSTEPS 16 //number of microsteps - #define Z_K_VAL 50 // 0 - 255, Higher values, are higher power. Be carefull not to go too high - #define Z_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off - #define Z_STALLCURRENT 1500 //current in mA where the driver will detect a stall - -//#define Z2_IS_L6470 - #define Z2_MICROSTEPS 16 //number of microsteps - #define Z2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be carefull not to go too high - #define Z2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off - #define Z2_STALLCURRENT 1500 //current in mA where the driver will detect a stall - -//#define E0_IS_L6470 - #define E0_MICROSTEPS 16 //number of microsteps - #define E0_K_VAL 50 // 0 - 255, Higher values, are higher power. Be carefull not to go too high - #define E0_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off - #define E0_STALLCURRENT 1500 //current in mA where the driver will detect a stall - -//#define E1_IS_L6470 - #define E1_MICROSTEPS 16 //number of microsteps - #define E1_MICROSTEPS 16 //number of microsteps - #define E1_K_VAL 50 // 0 - 255, Higher values, are higher power. Be carefull not to go too high - #define E1_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off - #define E1_STALLCURRENT 1500 //current in mA where the driver will detect a stall - -//#define E2_IS_L6470 - #define E2_MICROSTEPS 16 //number of microsteps - #define E2_MICROSTEPS 16 //number of microsteps - #define E2_K_VAL 50 // 0 - 255, Higher values, are higher power. Be carefull not to go too high - #define E2_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off - #define E2_STALLCURRENT 1500 //current in mA where the driver will detect a stall - -//#define E3_IS_L6470 - #define E3_MICROSTEPS 16 //number of microsteps - #define E3_MICROSTEPS 16 //number of microsteps - #define E3_K_VAL 50 // 0 - 255, Higher values, are higher power. Be carefull not to go too high - #define E3_OVERCURRENT 2000 //maxc current in mA. If the current goes over this value, the driver will switch off - #define E3_STALLCURRENT 1500 //current in mA where the driver will detect a stall - -#endif - -#include "Conditionals.h" -#include "SanityCheck.h" - -#endif //CONFIGURATION_ADV_H diff --git a/Marlin/configurator/config/_htaccess b/Marlin/configurator/config/_htaccess deleted file mode 100644 index f289550940..0000000000 --- a/Marlin/configurator/config/_htaccess +++ /dev/null @@ -1 +0,0 @@ -Header set Access-Control-Allow-Origin "*" diff --git a/Marlin/configurator/config/boards.h b/Marlin/configurator/config/boards.h deleted file mode 100644 index f6bbc9d673..0000000000 --- a/Marlin/configurator/config/boards.h +++ /dev/null @@ -1,64 +0,0 @@ -#ifndef BOARDS_H -#define BOARDS_H - -#define BOARD_UNKNOWN -1 - -#define BOARD_GEN7_CUSTOM 10 // Gen7 custom (Alfons3 Version) "https://github.com/Alfons3/Generation_7_Electronics" -#define BOARD_GEN7_12 11 // Gen7 v1.1, v1.2 -#define BOARD_GEN7_13 12 // Gen7 v1.3 -#define BOARD_GEN7_14 13 // Gen7 v1.4 -#define BOARD_CHEAPTRONIC 2 // Cheaptronic v1.0 -#define BOARD_SETHI 20 // Sethi 3D_1 -#define BOARD_RAMPS_OLD 3 // MEGA/RAMPS up to 1.2 -#define BOARD_RAMPS_13_EFB 33 // RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Bed) -#define BOARD_RAMPS_13_EEB 34 // RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Bed) -#define BOARD_RAMPS_13_EFF 35 // RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Fan) -#define BOARD_RAMPS_13_EEF 36 // RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Fan) -#define BOARD_RAMPS_13_SF 38 // RAMPS 1.3 / 1.4 (Power outputs: Spindle, Controller Fan) -#define BOARD_FELIX2 37 // Felix 2.0+ Electronics Board (RAMPS like) -#define BOARD_RIGIDBOARD 42 // Invent-A-Part RigidBoard -#define BOARD_GEN6 5 // Gen6 -#define BOARD_GEN6_DELUXE 51 // Gen6 deluxe -#define BOARD_SANGUINOLOLU_11 6 // Sanguinololu < 1.2 -#define BOARD_SANGUINOLOLU_12 62 // Sanguinololu 1.2 and above -#define BOARD_MELZI 63 // Melzi -#define BOARD_STB_11 64 // STB V1.1 -#define BOARD_AZTEEG_X1 65 // Azteeg X1 -#define BOARD_MELZI_MAKR3D 66 // Melzi with ATmega1284 (MaKr3d version) -#define BOARD_AZTEEG_X3 67 // Azteeg X3 -#define BOARD_AZTEEG_X3_PRO 68 // Azteeg X3 Pro -#define BOARD_ULTIMAKER 7 // Ultimaker -#define BOARD_ULTIMAKER_OLD 71 // Ultimaker (Older electronics. Pre 1.5.4. This is rare) -#define BOARD_ULTIMAIN_2 72 // Ultimainboard 2.x (Uses TEMP_SENSOR 20) -#define BOARD_3DRAG 77 // 3Drag Controller -#define BOARD_K8200 78 // Vellemann K8200 Controller (derived from 3Drag Controller) -#define BOARD_TEENSYLU 8 // Teensylu -#define BOARD_RUMBA 80 // Rumba -#define BOARD_PRINTRBOARD 81 // Printrboard (AT90USB1286) -#define BOARD_BRAINWAVE 82 // Brainwave (AT90USB646) -#define BOARD_SAV_MKI 83 // SAV Mk-I (AT90USB1286) -#define BOARD_TEENSY2 84 // Teensy++2.0 (AT90USB1286) - CLI compile: DEFINES=AT90USBxx_TEENSYPP_ASSIGNMENTS HARDWARE_MOTHERBOARD=84 make -#define BOARD_BRAINWAVE_PRO 85 // Brainwave Pro (AT90USB1286) -#define BOARD_GEN3_PLUS 9 // Gen3+ -#define BOARD_GEN3_MONOLITHIC 22 // Gen3 Monolithic Electronics -#define BOARD_MEGATRONICS 70 // Megatronics -#define BOARD_MEGATRONICS_2 701 // Megatronics v2.0 -#define BOARD_MINITRONICS 702 // Minitronics v1.0/1.1 -#define BOARD_MEGATRONICS_3 703 // Megatronics v3.0 -#define BOARD_OMCA_A 90 // Alpha OMCA board -#define BOARD_OMCA 91 // Final OMCA board -#define BOARD_RAMBO 301 // Rambo -#define BOARD_MINIRAMBO 302 // Mini-Rambo -#define BOARD_MEGACONTROLLER 310 // Mega controller -#define BOARD_ELEFU_3 21 // Elefu Ra Board (v3) -#define BOARD_5DPRINT 88 // 5DPrint D8 Driver Board -#define BOARD_LEAPFROG 999 // Leapfrog -#define BOARD_MKS_BASE 40 // MKS BASE 1.0 -#define BOARD_BAM_DICE 401 // 2PrintBeta BAM&DICE with STK drivers -#define BOARD_BAM_DICE_DUE 402 // 2PrintBeta BAM&DICE Due with STK drivers - -#define BOARD_99 99 // This is in pins.h but...? - -#define MB(board) (MOTHERBOARD==BOARD_##board) - -#endif //__BOARDS_H diff --git a/Marlin/configurator/config/language.h b/Marlin/configurator/config/language.h deleted file mode 100644 index 46a306c9a7..0000000000 --- a/Marlin/configurator/config/language.h +++ /dev/null @@ -1,228 +0,0 @@ -#ifndef LANGUAGE_H -#define LANGUAGE_H - -#include "Configuration.h" - -#define LANGUAGE_CONCAT(M) #M -#define GENERATE_LANGUAGE_INCLUDE(M) LANGUAGE_CONCAT(language_##M.h) - - -// NOTE: IF YOU CHANGE LANGUAGE FILES OR MERGE A FILE WITH CHANGES -// -// ==> ALWAYS TRY TO COMPILE MARLIN WITH/WITHOUT "ULTIPANEL" / "ULTRALCD" / "SDSUPPORT" #define IN "Configuration.h" -// ==> ALSO TRY ALL AVAILABLE LANGUAGE OPTIONS -// See also documentation/LCDLanguageFont.md - -// Languages -// en English -// pl Polish -// fr French -// de German -// es Spanish -// ru Russian -// bg Bulgarian -// it Italian -// pt Portuguese -// pt-br Portuguese (Brazil) -// fi Finnish -// an Aragonese -// nl Dutch -// ca Catalan -// eu Basque-Euskera -// kana Japanese -// kana_utf Japanese -// cn Chinese - -// fallback if no language is set, don't change -#ifndef LANGUAGE_INCLUDE - #define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -#endif - -#if ENABLED(USE_AUTOMATIC_VERSIONING) - #include "_Version.h" -#else - #include "Default_Version.h" -#endif - -#define PROTOCOL_VERSION "1.0" - -#if MB(ULTIMAKER)|| MB(ULTIMAKER_OLD)|| MB(ULTIMAIN_2) - #define MACHINE_NAME "Ultimaker" - #define SOURCE_CODE_URL "https://github.com/Ultimaker/Marlin" -#elif MB(RUMBA) - #define MACHINE_NAME "Rumba" -#elif MB(3DRAG) - #define MACHINE_NAME "3Drag" - #define SOURCE_CODE_URL "http://3dprint.elettronicain.it/" -#elif MB(K8200) - #define MACHINE_NAME "K8200" - #define SOURCE_CODE_URL "https://github.com/CONSULitAS/Marlin-K8200" -#elif MB(5DPRINT) - #define MACHINE_NAME "Makibox" -#elif MB(SAV_MKI) - #define MACHINE_NAME "SAV MkI" - #define SOURCE_CODE_URL "https://github.com/fmalpartida/Marlin/tree/SAV-MkI-config" -#elif !defined(MACHINE_NAME) - #define MACHINE_NAME "3D Printer" -#endif - -#ifdef CUSTOM_MACHINE_NAME - #undef MACHINE_NAME - #define MACHINE_NAME CUSTOM_MACHINE_NAME -#endif - -#ifndef SOURCE_CODE_URL - #define SOURCE_CODE_URL "https://github.com/MarlinFirmware/Marlin" -#endif - -#ifndef DETAILED_BUILD_VERSION - #error BUILD_VERSION Information must be specified -#endif - -#ifndef MACHINE_UUID - #define MACHINE_UUID "00000000-0000-0000-0000-000000000000" -#endif - - -#define STRINGIFY_(n) #n -#define STRINGIFY(n) STRINGIFY_(n) - - -// Common LCD messages - - /* nothing here yet */ - -// Common serial messages -#define MSG_MARLIN "Marlin" - -// Serial Console Messages (do not translate those!) - -#define MSG_Enqueueing "enqueueing \"" -#define MSG_POWERUP "PowerUp" -#define MSG_EXTERNAL_RESET " External Reset" -#define MSG_BROWNOUT_RESET " Brown out Reset" -#define MSG_WATCHDOG_RESET " Watchdog Reset" -#define MSG_SOFTWARE_RESET " Software Reset" -#define MSG_AUTHOR " | Author: " -#define MSG_CONFIGURATION_VER " Last Updated: " -#define MSG_FREE_MEMORY " Free Memory: " -#define MSG_PLANNER_BUFFER_BYTES " PlannerBufferBytes: " -#define MSG_OK "ok" -#define MSG_WAIT "wait" -#define MSG_FILE_SAVED "Done saving file." -#define MSG_ERR_LINE_NO "Line Number is not Last Line Number+1, Last Line: " -#define MSG_ERR_CHECKSUM_MISMATCH "checksum mismatch, Last Line: " -#define MSG_ERR_NO_CHECKSUM "No Checksum with line number, Last Line: " -#define MSG_ERR_NO_LINENUMBER_WITH_CHECKSUM "No Line Number with checksum, Last Line: " -#define MSG_FILE_PRINTED "Done printing file" -#define MSG_BEGIN_FILE_LIST "Begin file list" -#define MSG_END_FILE_LIST "End file list" -#define MSG_INVALID_EXTRUDER "Invalid extruder" -#define MSG_INVALID_SOLENOID "Invalid solenoid" -#define MSG_ERR_NO_THERMISTORS "No thermistors - no temperature" -#define MSG_M115_REPORT "FIRMWARE_NAME:Marlin " DETAILED_BUILD_VERSION " SOURCE_CODE_URL:" SOURCE_CODE_URL " PROTOCOL_VERSION:" PROTOCOL_VERSION " MACHINE_TYPE:" MACHINE_NAME " EXTRUDER_COUNT:" STRINGIFY(EXTRUDERS) " UUID:" MACHINE_UUID "\n" -#define MSG_COUNT_X " Count X: " -#define MSG_ERR_KILLED "Printer halted. kill() called!" -#define MSG_ERR_STOPPED "Printer stopped due to errors. Fix the error and use M999 to restart. (Temperature is reset. Set it after restarting)" -#define MSG_RESEND "Resend: " -#define MSG_UNKNOWN_COMMAND "Unknown command: \"" -#define MSG_ACTIVE_EXTRUDER "Active Extruder: " -#define MSG_X_MIN "x_min: " -#define MSG_X_MAX "x_max: " -#define MSG_Y_MIN "y_min: " -#define MSG_Y_MAX "y_max: " -#define MSG_Z_MIN "z_min: " -#define MSG_Z_MAX "z_max: " -#define MSG_Z2_MAX "z2_max: " -#define MSG_Z_PROBE "z_probe: " -#define MSG_ERR_MATERIAL_INDEX "M145 S out of range (0-1)" -#define MSG_ERR_M421_REQUIRES_XYZ "M421 requires XYZ parameters" -#define MSG_ERR_MESH_INDEX_OOB "Mesh XY index is out of bounds" -#define MSG_ERR_M428_TOO_FAR "Too far from reference point" -#define MSG_M119_REPORT "Reporting endstop status" -#define MSG_ENDSTOP_HIT "TRIGGERED" -#define MSG_ENDSTOP_OPEN "open" -#define MSG_HOTEND_OFFSET "Hotend offsets:" - -#define MSG_SD_CANT_OPEN_SUBDIR "Cannot open subdir" -#define MSG_SD_INIT_FAIL "SD init fail" -#define MSG_SD_VOL_INIT_FAIL "volume.init failed" -#define MSG_SD_OPENROOT_FAIL "openRoot failed" -#define MSG_SD_CARD_OK "SD card ok" -#define MSG_SD_WORKDIR_FAIL "workDir open failed" -#define MSG_SD_OPEN_FILE_FAIL "open failed, File: " -#define MSG_SD_FILE_OPENED "File opened: " -#define MSG_SD_SIZE " Size: " -#define MSG_SD_FILE_SELECTED "File selected" -#define MSG_SD_WRITE_TO_FILE "Writing to file: " -#define MSG_SD_PRINTING_BYTE "SD printing byte " -#define MSG_SD_NOT_PRINTING "Not SD printing" -#define MSG_SD_ERR_WRITE_TO_FILE "error writing to file" -#define MSG_SD_CANT_ENTER_SUBDIR "Cannot enter subdir: " - -#define MSG_STEPPER_TOO_HIGH "Steprate too high: " -#define MSG_ENDSTOPS_HIT "endstops hit: " -#define MSG_ERR_COLD_EXTRUDE_STOP " cold extrusion prevented" -#define MSG_ERR_LONG_EXTRUDE_STOP " too long extrusion prevented" -#define MSG_TOO_COLD_FOR_M600 "M600 Hotend too cold to change filament" -#define MSG_BABYSTEPPING_X "Babystepping X" -#define MSG_BABYSTEPPING_Y "Babystepping Y" -#define MSG_BABYSTEPPING_Z "Babystepping Z" -#define MSG_SERIAL_ERROR_MENU_STRUCTURE "Error in menu structure" - -#define MSG_ERR_EEPROM_WRITE "Error writing to EEPROM!" - -// temperature.cpp strings -#define MSG_PID_AUTOTUNE "PID Autotune" -#define MSG_PID_AUTOTUNE_START MSG_PID_AUTOTUNE " start" -#define MSG_PID_AUTOTUNE_FAILED MSG_PID_AUTOTUNE " failed!" -#define MSG_PID_BAD_EXTRUDER_NUM MSG_PID_AUTOTUNE_FAILED " Bad extruder number" -#define MSG_PID_TEMP_TOO_HIGH MSG_PID_AUTOTUNE_FAILED " Temperature too high" -#define MSG_PID_TIMEOUT MSG_PID_AUTOTUNE_FAILED " timeout" -#define MSG_BIAS " bias: " -#define MSG_D " d: " -#define MSG_T_MIN " min: " -#define MSG_T_MAX " max: " -#define MSG_KU " Ku: " -#define MSG_TU " Tu: " -#define MSG_CLASSIC_PID " Classic PID " -#define MSG_KP " Kp: " -#define MSG_KI " Ki: " -#define MSG_KD " Kd: " -#define MSG_B "B:" -#define MSG_T "T:" -#define MSG_AT " @:" -#define MSG_PID_AUTOTUNE_FINISHED MSG_PID_AUTOTUNE " finished! Put the last Kp, Ki and Kd constants from below into Configuration.h" -#define MSG_PID_DEBUG " PID_DEBUG " -#define MSG_PID_DEBUG_INPUT ": Input " -#define MSG_PID_DEBUG_OUTPUT " Output " -#define MSG_PID_DEBUG_PTERM " pTerm " -#define MSG_PID_DEBUG_ITERM " iTerm " -#define MSG_PID_DEBUG_DTERM " dTerm " -#define MSG_PID_DEBUG_CTERM " cTerm " -#define MSG_INVALID_EXTRUDER_NUM " - Invalid extruder number !" - -#define MSG_HEATER_BED "bed" -#define MSG_STOPPED_HEATER ", system stopped! Heater_ID: " -#define MSG_REDUNDANCY "Heater switched off. Temperature difference between temp sensors is too high !" -#define MSG_T_HEATING_FAILED "Heating failed" -#define MSG_T_THERMAL_RUNAWAY "Thermal Runaway" -#define MSG_T_MAXTEMP "MAXTEMP triggered" -#define MSG_T_MINTEMP "MINTEMP triggered" - -// Debug -#define MSG_DEBUG_ECHO "DEBUG ECHO ENABLED" -#define MSG_DEBUG_INFO "DEBUG INFO ENABLED" -#define MSG_DEBUG_ERRORS "DEBUG ERRORS ENABLED" -#define MSG_DEBUG_DRYRUN "DEBUG DRYRUN ENABLED" - -// LCD Menu Messages - -#if DISABLED(DISPLAY_CHARSET_HD44780_JAPAN) && DISABLED(DISPLAY_CHARSET_HD44780_WESTERN) && DISABLED(DISPLAY_CHARSET_HD44780_CYRILLIC) - #define DISPLAY_CHARSET_HD44780_JAPAN -#endif - -#include LANGUAGE_INCLUDE -#include "language_en.h" - -#endif //__LANGUAGE_H diff --git a/Marlin/configurator/css/configurator.css b/Marlin/configurator/css/configurator.css deleted file mode 100644 index 88332075fb..0000000000 --- a/Marlin/configurator/css/configurator.css +++ /dev/null @@ -1,344 +0,0 @@ -/* configurator.css */ -/* Styles for Marlin Configurator */ - -.clear { clear: both; } - -/* Prevent selection except PRE tags */ -* { - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - } -pre { - -webkit-touch-callout: text; - -webkit-user-select: text; - -khtml-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - } - -body { margin: 0; padding: 0; background: #56A; color: #000; font-family: monospace; } -#main { - max-width: 1100px; - margin: 0 auto 10px; - padding: 0 2%; width: 96%; - } - -h1, h2, h3, h4, h5, h6 { clear: both; } - -h1, p.info { font-family: sans-serif; } -h1 { - height: 38px; - margin-bottom: -30px; - color: #FFF; - background: transparent url(logo.png) right top no-repeat; - } -p.info { padding: 0; color: #000; } -p.info span { color: #800; } - -#message { text-align: center; } -#message { width: 80%; margin: 0 auto 0.25em; color: #FF0; } -#message p { padding: 2px 0; font-weight: bold; border-radius: 0.8em; } -#message p.message { color: #080; background: #CFC; } -#message p.error { color: #F00; background: #FF4; } -#message p.warning { color: #FF0; background: #BA4; } -#message p.message span, -#message p.error span, -#message p.warning span { - color: #A00; - background: rgba(255, 255, 255, 1); - border: 1px solid rgba(0,0,0,0.5); - border-radius: 1em; - float: right; - margin-right: 0.5em; - padding: 0 3px; - font-family: sans-serif; - font-size: small; - position: relative; - top: -1px; - } - -#help strong { color: #0DD; } -img { display: none; } - -/* Forms */ - -#config_form { - display: block; - background: #EEE; - padding: 6px 20px 20px; - color: #000; - position: relative; - border-radius: 1.5em; - border-top-left-radius: 0; - } -fieldset { - height: 16.1em; - overflow-y: scroll; - overflow-x: hidden; - margin-top: 10px; - } -label, input, select, textarea { display: block; float: left; margin: 1px 0; } -label.newline, textarea, fieldset { clear: both; } -label { - width: 120px; /* label area */ - height: 1em; - padding: 10px 460px 10px 1em; - margin-right: -450px; - text-align: right; - } -label.blocked, label.added.blocked, label.added.blocked.sublabel { color: #AAA; } - -label.added.sublabel { - width: auto; - margin: 11px -2.5em 0 1em; - padding: 0 3em 0 0; - font-style: italic; - color: #444; - } -label+label.added.sublabel { - margin-left: 0; - } - -input[type="text"], select { margin: 0.75em 0 0; } -input[type="checkbox"], input[type="radio"], input[type="file"] { margin: 1em 0 0; } -input[type="checkbox"].enabler, input[type="radio"].enabler { margin-left: 1em; } - -input:disabled { color: #BBB; } - -#config_form input[type="text"].subitem { width: 4em; } -#config_form input[type="text"].subitem+.subitem { margin-left: 4px; } - -input[type="text"].added { width: 20em; } -label.added { - width: 265px; /* label area */ - height: 1em; - padding: 10px 370px 10px 1em; - margin-right: -360px; - text-align: right; - } - -ul.tabs { padding: 0; list-style: none; } -ul.tabs li { display: inline; } -ul.tabs li a, -ul.tabs li a.active:hover, -ul.tabs li a.active:active { - display: block; - float: left; - background: #1E4059; - color: #CCC; - font-size: 110%; - border-radius: 0.25em 0.25em 0 0; - margin: 0 4px 0 0; - padding: 2px 8px; - text-decoration: none; - font-family: georgia,"times new roman",times; - } -ul.tabs li a.active:link, -ul.tabs li a.active:visited { - background: #DDD; - color: #06F; - cursor: default; - margin-top: -4px; - padding-bottom: 4px; - padding-top: 4px; - } -ul.tabs li a:hover, -ul.tabs li a:active { - background: #000; - color: #FFF; - } - -fieldset { display: none; border: 1px solid #AAA; border-radius: 1em; } -fieldset legend { display: none; } - -.hilightable span { - display: block; - float: left; - width: 100%; - height: 1.3em; - background: rgba(225,255,0,1); - margin: 0 -100% -1em 0; - } - -#serial_stepper { padding-top: 0.75em; display: block; float: left; } -/*#SERIAL_PORT { display: none; }*/ - -/* Tooltips */ - -#tooltip { - display: none; - max-width: 30em; - padding: 8px; - border: 2px solid #73d699; - border-radius: 1em; - position: absolute; - z-index: 999; - font-family: sans-serif; - font-size: 85%; - color: #000; - line-height: 1.1; - background: #e2ff99; /* Old browsers */ - background: -moz-linear-gradient(top, #e2ff99 0%, #73d699 100%); /* FF3.6+ */ - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#e2ff99), color-stop(100%,#73d699)); /* Chrome,Safari4+ */ - background: -webkit-linear-gradient(top, #e2ff99 0%,#73d699 100%); /* Chrome10+,Safari5.1+ */ - background: -o-linear-gradient(top, #e2ff99 0%,#73d699 100%); /* Opera 11.10+ */ - background: -ms-linear-gradient(top, #e2ff99 0%,#73d699 100%); /* IE10+ */ - background: linear-gradient(to bottom, #e2ff99 0%,#73d699 100%); /* W3C */ - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#e2ff99', endColorstr='#73d699',GradientType=0 ); /* IE6-9 */ - -webkit-box-shadow: 0px 6px 25px -4px rgba(0,0,0,0.75); - -moz-box-shadow: 0px 6px 25px -4px rgba(0,0,0,0.75); - box-shadow: 0px 6px 25px -4px rgba(0,0,0,0.75); - } -#tooltip>span { - position: absolute; - content: ""; - width: 0; - height: 0; - border-left: 8px solid transparent; - border-right: 8px solid transparent; - border-top: 8px solid #73d699; - z-index: 999; - bottom: -10px; - left: 20px; - } -#tooltip>strong { color: #00B; } - -/* Tooltips Checkbox */ - -#tipson { - width: auto; - height: auto; - padding: 0; - margin-right: 0; - float: right; - font-weight: bold; - font-size: 100%; - font-family: helvetica; - text-align: left; - cursor: pointer; - } -#tipson input { float: none; display: inline; cursor: pointer; } - -/* Config Text */ - -pre.config { - height: 25em; - padding: 10px; - border: 2px solid #888; - border-radius: 5px; - overflow: auto; - clear: both; - background-color: #FFF; - color: #000; - font-family: "Fira Mono", monospace; - font-size: small; - } - -/* Pre Headers */ - -h2 { - width: 100%; - margin: 12px -300px 4px 0; - padding: 0; - float: left; - } - -/* Disclosure Widget */ - -span.disclose, a.download, a.download-all {︎ - display: block; - float: right; - margin-top: 12px; - } - -span.disclose { - margin-right: -10px; /* total width */ - margin-left: 14px; - width: 0; - height: 0; - position: relative; - left: 3px; - top: 3px; - cursor: pointer; - border-left: 8px solid transparent; - border-right: 8px solid transparent; - border-top: 10px solid #000; - } -span.disclose.closed { - margin-right: -8px; /* total width */ - margin-left: 10px; - left: 0; - top: 0; - border-top: 8px solid transparent; - border-bottom: 8px solid transparent; - border-right: 10px solid #000; - } -span.disclose.almost { - -ms-transform: rotate(45deg); /* IE 9 */ - -webkit-transform: rotate(45deg); /* Chrome, Safari, Opera */ - transform: rotate(45deg); - } -span.disclose.closed.almost { - left: 1px; - top: 3px; - -ms-transform: rotate(315deg); /* IE 9 */ - -webkit-transform: rotate(315deg); /* Chrome, Safari, Opera */ - transform: rotate(315deg); - } - -/* Download Button */ - -a.download, a.download-all { - visibility: hidden; - padding: 2px; - border: 1px solid #494; - border-radius: 4px; - margin: 12px 0 0; - background: #FFF; - color: #494; - font-family: sans-serif; - font-size: small; - font-weight: bold; - text-decoration: none; - } -a.download-all { margin: 9px 2em 0; color: #449; border-color: #449; } - -input[type="text"].one_of_2 { max-width: 15%; } -input[type="text"].one_of_3 { max-width: 10%; } -input[type="text"].one_of_4 { max-width: 7%; } - -select.one_of_2 { max-width: 15%; } -select.one_of_3 { max-width: 10%; } -select.one_of_4 { max-width: 14%; } -select.one_of_4+span.label+select.one_of_4+span.label { clear: both; margin-left: 265px; padding-left: 1.75em; } -select.one_of_4+span.label+select.one_of_4+span.label+select.one_of_4+span.label { clear: none; margin-left: 1em; padding-left: 0; } - -@media all and (min-width: 1140px) { - - #main { max-width: 10000px; } - - fieldset { float: left; width: 50%; height: auto; } - - #config_text, #config_adv_text { float: right; clear: right; width: 45%; } - - pre.config { height: 20em; } - - .disclose { display: none; } - - input[type="text"].one_of_2 { max-width: 15%; } - input[type="text"].one_of_3 { max-width: 9%; } - input[type="text"].one_of_4 { max-width: 8%; } - - select.one_of_2 { max-width: 15%; } - select.one_of_3 { max-width: 10%; } - select.one_of_4 { max-width: 16%; } - -} - -/*label.blocked, .blocked { display: none; }*/ - diff --git a/Marlin/configurator/css/logo.png b/Marlin/configurator/css/logo.png deleted file mode 100644 index 0618dc17ae..0000000000 Binary files a/Marlin/configurator/css/logo.png and /dev/null differ diff --git a/Marlin/configurator/index.html b/Marlin/configurator/index.html deleted file mode 100644 index 385109c9e1..0000000000 --- a/Marlin/configurator/index.html +++ /dev/null @@ -1,129 +0,0 @@ - - - - - Marlin Firmware Configurator - - - - - - - - - - - - -
-

Marlin Configurator

-

Select presets (coming soon), modify, and download.

- -
-
- -
- -
- - - - Download Zip - -
- Info -
- -
- Machine - -
- - - - - - - - - - - - - - - - - - -
- -
- Homing -
- -
- Temperature - - - - - - - - - - -
- -
- Extruder -
- -
- LCD / SD -
- -
- Bed Leveling -
- -
- FW Retract -
- -
- TMC -
- -
- L6470 -
- -
- Extras -
- -
- More… -
- -
-

Configuration.h

- - Download -

-        
- -
-

Configuration_adv.h

- - Download -

-        
- -
-
-
- - diff --git a/Marlin/configurator/js/FileSaver.min.js b/Marlin/configurator/js/FileSaver.min.js deleted file mode 100755 index f7319603d7..0000000000 --- a/Marlin/configurator/js/FileSaver.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */ -var saveAs=saveAs||typeof navigator!=="undefined"&&navigator.msSaveOrOpenBlob&&navigator.msSaveOrOpenBlob.bind(navigator)||function(view){"use strict";if(typeof navigator!=="undefined"&&/MSIE [1-9]\./.test(navigator.userAgent)){return}var doc=view.document,get_URL=function(){return view.URL||view.webkitURL||view},save_link=doc.createElementNS("http://www.w3.org/1999/xhtml","a"),can_use_save_link="download"in save_link,click=function(node){var event=doc.createEvent("MouseEvents");event.initMouseEvent("click",true,false,view,0,0,0,0,0,false,false,false,false,0,null);node.dispatchEvent(event)},webkit_req_fs=view.webkitRequestFileSystem,req_fs=view.requestFileSystem||webkit_req_fs||view.mozRequestFileSystem,throw_outside=function(ex){(view.setImmediate||view.setTimeout)(function(){throw ex},0)},force_saveable_type="application/octet-stream",fs_min_size=0,arbitrary_revoke_timeout=500,revoke=function(file){var revoker=function(){if(typeof file==="string"){get_URL().revokeObjectURL(file)}else{file.remove()}};if(view.chrome){revoker()}else{setTimeout(revoker,arbitrary_revoke_timeout)}},dispatch=function(filesaver,event_types,event){event_types=[].concat(event_types);var i=event_types.length;while(i--){var listener=filesaver["on"+event_types[i]];if(typeof listener==="function"){try{listener.call(filesaver,event||filesaver)}catch(ex){throw_outside(ex)}}}},FileSaver=function(blob,name){var filesaver=this,type=blob.type,blob_changed=false,object_url,target_view,dispatch_all=function(){dispatch(filesaver,"writestart progress write writeend".split(" "))},fs_error=function(){if(blob_changed||!object_url){object_url=get_URL().createObjectURL(blob)}if(target_view){target_view.location.href=object_url}else{var new_tab=view.open(object_url,"_blank");if(new_tab==undefined&&typeof safari!=="undefined"){view.location.href=object_url}}filesaver.readyState=filesaver.DONE;dispatch_all();revoke(object_url)},abortable=function(func){return function(){if(filesaver.readyState!==filesaver.DONE){return func.apply(this,arguments)}}},create_if_not_found={create:true,exclusive:false},slice;filesaver.readyState=filesaver.INIT;if(!name){name="download"}if(can_use_save_link){object_url=get_URL().createObjectURL(blob);save_link.href=object_url;save_link.download=name;click(save_link);filesaver.readyState=filesaver.DONE;dispatch_all();revoke(object_url);return}if(view.chrome&&type&&type!==force_saveable_type){slice=blob.slice||blob.webkitSlice;blob=slice.call(blob,0,blob.size,force_saveable_type);blob_changed=true}if(webkit_req_fs&&name!=="download"){name+=".download"}if(type===force_saveable_type||webkit_req_fs){target_view=view}if(!req_fs){fs_error();return}fs_min_size+=blob.size;req_fs(view.TEMPORARY,fs_min_size,abortable(function(fs){fs.root.getDirectory("saved",create_if_not_found,abortable(function(dir){var save=function(){dir.getFile(name,create_if_not_found,abortable(function(file){file.createWriter(abortable(function(writer){writer.onwriteend=function(event){target_view.location.href=file.toURL();filesaver.readyState=filesaver.DONE;dispatch(filesaver,"writeend",event);revoke(file)};writer.onerror=function(){var error=writer.error;if(error.code!==error.ABORT_ERR){fs_error()}};"writestart progress write abort".split(" ").forEach(function(event){writer["on"+event]=filesaver["on"+event]});writer.write(blob);filesaver.abort=function(){writer.abort();filesaver.readyState=filesaver.DONE};filesaver.readyState=filesaver.WRITING}),fs_error)}),fs_error)};dir.getFile(name,{create:false},abortable(function(file){file.remove();save()}),abortable(function(ex){if(ex.code===ex.NOT_FOUND_ERR){save()}else{fs_error()}}))}),fs_error)}),fs_error)},FS_proto=FileSaver.prototype,saveAs=function(blob,name){return new FileSaver(blob,name)};FS_proto.abort=function(){var filesaver=this;filesaver.readyState=filesaver.DONE;dispatch(filesaver,"abort")};FS_proto.readyState=FS_proto.INIT=0;FS_proto.WRITING=1;FS_proto.DONE=2;FS_proto.error=FS_proto.onwritestart=FS_proto.onprogress=FS_proto.onwrite=FS_proto.onabort=FS_proto.onerror=FS_proto.onwriteend=null;return saveAs}(typeof self!=="undefined"&&self||typeof window!=="undefined"&&window||this.content);if(typeof module!=="undefined"&&module.exports){module.exports.saveAs=saveAs}else if(typeof define!=="undefined"&&define!==null&&define.amd!=null){define([],function(){return saveAs})} diff --git a/Marlin/configurator/js/binaryfileuploader.js b/Marlin/configurator/js/binaryfileuploader.js deleted file mode 100644 index 0a1f38f3dc..0000000000 --- a/Marlin/configurator/js/binaryfileuploader.js +++ /dev/null @@ -1,79 +0,0 @@ -function BinaryFileUploader(o) { - this.options = null; - - - this._defaultOptions = { - element: null, // HTML file element - onFileLoad: function(file) { - console.log(file.toString()); - } - }; - - - this._init = function(o) { - if (!this.hasFileUploaderSupport()) return; - - this._verifyDependencies(); - - this.options = this._mergeObjects(this._defaultOptions, o); - this._verifyOptions(); - - this.addFileChangeListener(); - } - - - this.hasFileUploaderSupport = function() { - return !!(window.File && window.FileReader && window.FileList && window.Blob); - } - - this.addFileChangeListener = function() { - this.options.element.addEventListener( - 'change', - this._bind(this, this.onFileChange) - ); - } - - this.onFileChange = function(e) { - // TODO accept multiple files - var file = e.target.files[0], - reader = new FileReader(); - - reader.onload = this._bind(this, this.onFileLoad); - reader.readAsBinaryString(file); - } - - this.onFileLoad = function(e) { - var content = e.target.result, - string = new BinaryString(content); - this.options.onFileLoad(string); - } - - - this._mergeObjects = function(starting, override) { - var merged = starting; - for (key in override) merged[key] = override[key]; - - return merged; - } - - this._verifyOptions = function() { - if (!(this.options.element && this.options.element.type && this.options.element.type === 'file')) { - throw 'Invalid element param in options. Must be a file upload DOM element'; - } - - if (typeof this.options.onFileLoad !== 'function') { - throw 'Invalid onFileLoad param in options. Must be a function'; - } - } - - this._verifyDependencies = function() { - if (!window.BinaryString) throw 'BinaryString is missing. Check that you\'ve correctly included it'; - } - - // helper function for binding methods to objects - this._bind = function(object, method) { - return function() {return method.apply(object, arguments);}; - } - - this._init(o); -} diff --git a/Marlin/configurator/js/binarystring.js b/Marlin/configurator/js/binarystring.js deleted file mode 100644 index 06af64fe2a..0000000000 --- a/Marlin/configurator/js/binarystring.js +++ /dev/null @@ -1,168 +0,0 @@ -function BinaryString(source) { - this._source = null; - this._bytes = []; - this._pos = 0; - this._length = 0; - - this._init = function(source) { - this._source = source; - this._bytes = this._stringToBytes(this._source); - this._length = this._bytes.length; - } - - this.current = function() {return this._pos;} - - this.rewind = function() {return this.jump(0);} - this.end = function() {return this.jump(this.length() - 1);} - this.next = function() {return this.jump(this.current() + 1);} - this.prev = function() {return this.jump(this.current() - 1);} - - this.jump = function(pos) { - if (pos < 0 || pos >= this.length()) return false; - - this._pos = pos; - return true; - } - - this.readByte = function(pos) { - pos = (typeof pos == 'number') ? pos : this.current(); - return this.readBytes(1, pos)[0]; - } - - this.readBytes = function(length, pos) { - length = length || 1; - pos = (typeof pos == 'number') ? pos : this.current(); - - if (pos > this.length() || - pos < 0 || - length <= 0 || - pos + length > this.length() || - pos + length < 0 - ) { - return false; - } - - var bytes = []; - - for (var i = pos; i < pos + length; i++) { - bytes.push(this._bytes[i]); - } - - return bytes; - } - - this.length = function() {return this._length;} - - this.toString = function() { - var string = '', - length = this.length(); - - for (var i = 0; i < length; i++) { - string += String.fromCharCode(this.readByte(i)); - } - - return string; - } - - this.toUtf8 = function() { - var inc = 0, - string = '', - length = this.length(); - - // determine if first 3 characters are the BOM - // then skip them in output if so - if (length >= 3 && - this.readByte(0) === 0xEF && - this.readByte(1) === 0xBB && - this.readByte(2) === 0xBF - ) { - inc = 3; - } - - for (; inc < length; inc++) { - var byte1 = this.readByte(inc), - byte2 = 0, - byte3 = 0, - byte4 = 0, - code1 = 0, - code2 = 0, - point = 0; - - switch (true) { - // single byte character; same as ascii - case (byte1 < 0x80): - code1 = byte1; - break; - - // 2 byte character - case (byte1 >= 0xC2 && byte1 < 0xE0): - byte2 = this.readByte(++inc); - - code1 = ((byte1 & 0x1F) << 6) + - (byte2 & 0x3F); - break; - - // 3 byte character - case (byte1 >= 0xE0 && byte1 < 0xF0): - byte2 = this.readByte(++inc); - byte3 = this.readByte(++inc); - - code1 = ((byte1 & 0xFF) << 12) + - ((byte2 & 0x3F) << 6) + - (byte3 & 0x3F); - break; - - // 4 byte character - case (byte1 >= 0xF0 && byte1 < 0xF5): - byte2 = this.readByte(++inc); - byte3 = this.readByte(++inc); - byte4 = this.readByte(++inc); - - point = ((byte1 & 0x07) << 18) + - ((byte2 & 0x3F) << 12) + - ((byte3 & 0x3F) << 6) + - (byte4 & 0x3F) - point -= 0x10000; - - code1 = (point >> 10) + 0xD800; - code2 = (point & 0x3FF) + 0xDC00; - break; - - default: - throw 'Invalid byte ' + this._byteToString(byte1) + ' whilst converting to UTF-8'; - break; - } - - string += (code2) ? String.fromCharCode(code1, code2) - : String.fromCharCode(code1); - } - - return string; - } - - this.toArray = function() {return this.readBytes(this.length() - 1, 0);} - - - this._stringToBytes = function(str) { - var bytes = [], - chr = 0; - - for (var i = 0; i < str.length; i++) { - chr = str.charCodeAt(i); - bytes.push(chr & 0xFF); - } - - return bytes; - } - - this._byteToString = function(byte) { - var asString = byte.toString(16).toUpperCase(); - while (asString.length < 2) { - asString = '0' + asString; - } - - return '0x' + asString; - } - - this._init(source); -} diff --git a/Marlin/configurator/js/configurator.js b/Marlin/configurator/js/configurator.js deleted file mode 100644 index 1a0da92abd..0000000000 --- a/Marlin/configurator/js/configurator.js +++ /dev/null @@ -1,1432 +0,0 @@ -/** - * configurator.js - * - * Marlin Configuration Utility - * - Web form for entering configuration options - * - A reprap calculator to calculate movement values - * - Uses HTML5 to generate downloadables in Javascript - * - Reads and parses standard configuration files from local folders - * - * Supporting functions - * - Parser to read Marlin Configuration.h and Configuration_adv.h files - * - Utilities to replace values in configuration files - */ - -"use strict"; - -$(function(){ - -/** - * Github API useful GET paths. (Start with "https://api.github.com/repos/:owner/:repo/") - * - * contributors Get a list of contributors - * tags Get a list of tags - * contents/[path]?ref=branch/tag/commit Get the contents of a file - */ - - // GitHub - // Warning! Limited to 60 requests per hour! -var config = { - type: 'github', - host: 'https://api.github.com', - owner: 'MarlinFirmware', - repo: 'Marlin', - ref: 'Development', - path: 'Marlin/configurator/config' -}; -/**/ - -/* // Remote -var config = { - type: 'remote', - host: 'http://www.thinkyhead.com', - path: '_marlin/config' -}; -/**/ - -/* // Local -var config = { - type: 'local', - path: 'config' -}; -/**/ - -function github_command(conf, command, path) { - var req = conf.host+'/repos/'+conf.owner+'/'+conf.repo+'/'+command; - if (path) req += '/' + path; - return req; -} -function config_path(item) { - var path = '', ref = ''; - switch(config.type) { - case 'github': - path = github_command(config, 'contents', config.path); - if (config.ref !== undefined) ref = '?ref=' + config.ref; - break; - case 'remote': - path = config.host + '/' + config.path + '/'; - break; - case 'local': - path = config.path + '/'; - break; - } - return path + '/' + item + ref; -} - -// Extend builtins -String.prototype.lpad = function(len, chr) { - if (chr === undefined) { chr = ' '; } - var s = this+'', need = len - s.length; - if (need > 0) { s = new Array(need+1).join(chr) + s; } - return s; -}; - -String.prototype.prePad = function(len, chr) { return len ? this.lpad(len, chr) : this; }; -String.prototype.zeroPad = function(len) { return this.prePad(len, '0'); }; -String.prototype.toHTML = function() { return jQuery('
').text(this).html(); }; -String.prototype.regEsc = function() { return this.replace(/[.?*+^$[\]\\(){}|-]/g, "\\$&"); } -String.prototype.lineCount = function(ind) { var len = (ind === undefined ? this : this.substr(0,ind*1)).split(/\r?\n|\r/).length; return len > 0 ? len - 1 : 0; }; -String.prototype.line = function(num) { var arr = this.split(/\r?\n|\r/); return num < arr.length ? arr[1*num] : ''; }; -String.prototype.replaceLine = function(num,txt) { var arr = this.split(/\r?\n|\r/); if (num < arr.length) { arr[num] = txt; return arr.join('\n'); } else return this; } -String.prototype.toLabel = function() { return this.replace(/[\[\]]/g, '').replace(/_/g, ' ').toTitleCase(); } -String.prototype.toTitleCase = function() { return this.replace(/([A-Z])(\w+)/gi, function(m,p1,p2) { return p1.toUpperCase() + p2.toLowerCase(); }); } -Number.prototype.limit = function(m1, m2) { - if (m2 == null) return this > m1 ? m1 : this; - return this < m1 ? m1 : this > m2 ? m2 : this; -}; -Date.prototype.fileStamp = function(filename) { - var fs = this.getFullYear() - + ((this.getMonth()+1)+'').zeroPad(2) - + (this.getDate()+'').zeroPad(2) - + (this.getHours()+'').zeroPad(2) - + (this.getMinutes()+'').zeroPad(2) - + (this.getSeconds()+'').zeroPad(2); - - if (filename !== undefined) - return filename.replace(/^(.+)(\.\w+)$/g, '$1-['+fs+']$2'); - - return fs; -} - -/** - * selectField.addOptions takes an array or keyed object - */ -$.fn.extend({ - addOptions: function(arrObj) { - return this.each(function() { - var sel = $(this); - var isArr = Object.prototype.toString.call(arrObj) == "[object Array]"; - $.each(arrObj, function(k, v) { - sel.append( $('