From a4fe6a45ae8de9318ca86b2850a247118007d85b Mon Sep 17 00:00:00 2001 From: CONSULitAS Date: Sun, 21 Feb 2016 16:06:25 +0100 Subject: [PATCH] K8200: sample config back in sync * Configuration.h: * updated header comment * new UUID feature used * sync to default config * typos fixed * changes better documented * reflect change in SDSUPPORT feature * Configuration_adv.h * updated header comment * thermal protection tuned to work with K8200 * homing tuned * sync to default config * typos fixed * changes better documented * reflect change in LCD features * use long filenames * use Watchdog * use Babystepping * use Auto Filament Change --- .../K8200/Configuration.h | 67 +++++++++++++------ .../K8200/Configuration_adv.h | 40 ++++++----- 2 files changed, 72 insertions(+), 35 deletions(-) diff --git a/Marlin/example_configurations/K8200/Configuration.h b/Marlin/example_configurations/K8200/Configuration.h index 677e7e13e..aa667c740 100644 --- a/Marlin/example_configurations/K8200/Configuration.h +++ b/Marlin/example_configurations/K8200/Configuration.h @@ -1,7 +1,7 @@ -// Example configuration file for Vellemann K8200 +// Sample configuration file for Vellemann K8200 // tested on K8200 with VM8201 (Display) -// and Arduino 1.6.1 (Win) by @CONSULitAS, 2015-04-14 -// https://github.com/CONSULitAS/Marlin-K8200/archive/K8200_stable_2015-04-14.zip +// and Arduino 1.6.8 (Mac) by @CONSULitAS, 2016-02-21 +// https://github.com/CONSULitAS/Marlin-K8200/archive/K8200_stable_2016-02-21.zip #ifndef CONFIGURATION_H #define CONFIGURATION_H @@ -52,7 +52,7 @@ Here are some standard links for getting your machine calibrated: // 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 "(K8200, CONSULitAS)" // Who made the changes. +#define STRING_CONFIG_H_AUTHOR "(K8200, @CONSULitAS)" // 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 @@ -80,11 +80,11 @@ Here are some standard links for getting your machine calibrated: // Optional custom name for your RepStrap or other custom machine // Displayed in the LCD "Ready" message -//#define CUSTOM_MACHINE_NAME "3D Printer" +#define CUSTOM_MACHINE_NAME "K8200" // 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" +#define MACHINE_UUID "2b7dea3b-844e-4ab1-aa96-bb6406607d6e" // K8200 standard config with VM8201 (Display) // This defines the number of extruders // :[1,2,3,4] @@ -207,11 +207,26 @@ Here are some standard links for getting your machine calibrated: #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 + // Vellemann K8200 Extruder - calculated with PID Autotune and tested #define DEFAULT_Kp 24.29 #define DEFAULT_Ki 1.58 #define DEFAULT_Kd 93.51 - #endif // PIDTEMP //=========================================================================== @@ -226,7 +241,7 @@ Here are some standard links for getting your machine calibrated: // 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 PIDTEMPBED //#define BED_LIMIT_SWITCHING @@ -242,13 +257,25 @@ Here are some standard links for getting your machine calibrated: #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term - //Vellemann K8200 PCB heatbed with standard PCU at 60 degreesC - calculated with PID Autotune and tested + //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. + + // Vellemann K8200 PCB heatbed with standard PCU at 60 degreesC - calculated with PID Autotune and tested + // from pidautotune #define DEFAULT_bedKp 341.88 #define DEFAULT_bedKi 25.32 #define DEFAULT_bedKd 1153.89 - - // FIND YOUR OWN: "M303 E-1 C8 S90" to run autotune on the bed at 90 degreesC for 8 cycles. #endif // PIDTEMPBED // @section extruder @@ -303,7 +330,7 @@ Here are some standard links for getting your machine calibrated: #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 endstop settings: Individual pullups. will be ignored if ENDSTOPPULLUPS is defined //#define ENDSTOPPULLUP_XMAX //#define ENDSTOPPULLUP_YMAX //#define ENDSTOPPULLUP_ZMAX @@ -341,7 +368,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // WARNING: When motors turn off there is a chance of losing position accuracy! #define DISABLE_X false #define DISABLE_Y false -#define DISABLE_Z true +#define DISABLE_Z false // not for K8200 -> looses Steps // @section extruder @@ -352,7 +379,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // 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 false +#define INVERT_Y_DIR false // was true -> why for K8200? #define INVERT_Z_DIR false // @section extruder @@ -453,7 +480,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #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. + #define MIN_PROBE_EDGE 10 // The Z probe minimum 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). @@ -493,8 +520,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#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!!! + + //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: @@ -574,7 +602,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define DEFAULT_MAX_ACCELERATION {9000,9000,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 1000 // X, Y, Z and E acceleration in mm/s^2 for printing moves -#define DEFAULT_RETRACT_ACCELERATION 1000 // E acceleration in mm/s^2 for retracts +#define DEFAULT_RETRACT_ACCELERATION 1000 // E acceleration in mm/s^2 for retracts #define DEFAULT_TRAVEL_ACCELERATION 1000 // 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) @@ -647,7 +675,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 + +#define SDSUPPORT // Enable SD Card Support in Hardware Console // 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 diff --git a/Marlin/example_configurations/K8200/Configuration_adv.h b/Marlin/example_configurations/K8200/Configuration_adv.h index 07fa3d8bc..a50a874f9 100644 --- a/Marlin/example_configurations/K8200/Configuration_adv.h +++ b/Marlin/example_configurations/K8200/Configuration_adv.h @@ -1,3 +1,8 @@ +// Sample configuration file for Vellemann K8200 +// tested on K8200 with VM8201 (Display) +// and Arduino 1.6.8 (Mac) by @CONSULitAS, 2016-02-21 +// https://github.com/CONSULitAS/Marlin-K8200/archive/K8200_stable_2016-02-21.zip + #ifndef CONFIGURATION_ADV_H #define CONFIGURATION_ADV_H @@ -18,8 +23,8 @@ * Thermal Protection parameters */ #if ENABLED(THERMAL_PROTECTION_HOTENDS) - #define THERMAL_PROTECTION_PERIOD 40 // Seconds - #define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius + #define THERMAL_PROTECTION_PERIOD 60 // Seconds + #define THERMAL_PROTECTION_HYSTERESIS 8 // Degrees Celsius /** * Whenever an M104 or M109 increases the target temperature the firmware will wait for the @@ -27,7 +32,7 @@ * 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_PERIOD 30 // Seconds #define WATCH_TEMP_INCREASE 4 // Degrees Celsius #endif @@ -93,12 +98,12 @@ // 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 +#define FAN_KICKSTART_TIME 500 // 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 // K8200: fan stops running at about 35 to 40 (of 255) +#define FAN_MIN_PWM 50 // @section extruder @@ -212,9 +217,9 @@ //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 3 -#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. +#define Z_HOME_BUMP_MM 2 +#define HOMING_BUMP_DIVISOR {4, 4, 8} // 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 @@ -303,10 +308,10 @@ #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 + #define MENU_ADDAUTOSTART // Show a progress bar on HD44780 LCDs for SD printing - //#define LCD_PROGRESS_BAR + #define LCD_PROGRESS_BAR #if ENABLED(LCD_PROGRESS_BAR) // Amount of time (ms) to show the bar @@ -320,7 +325,7 @@ #endif // This allows hosts to request long names for files and folders with M33 - //#define LONG_FILENAME_HOST_SUPPORT + #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. @@ -341,11 +346,10 @@ //#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 +#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. @@ -359,9 +363,10 @@ // 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 +#define BABYSTEPPING #if ENABLED(BABYSTEPPING) #define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions + //not implemented for CoreXY and deltabots! #define BABYSTEP_INVERT_Z false //true for inverse movements in Z #define BABYSTEP_MULTIPLICATOR 1 //faster movements #endif @@ -389,7 +394,7 @@ #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 +const unsigned int dropsegments = 2; //everything with less than this number of steps will be ignored as move and joined with the next movement // @section temperature @@ -407,7 +412,7 @@ const unsigned int dropsegments = 5; //everything with less than this number of #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 + #define BLOCK_BUFFER_SIZE 32 // maximize block buffer #endif // @section more @@ -454,6 +459,9 @@ const unsigned int dropsegments = 5; //everything with less than this number of #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