Instalarea software-ului Marlin

Instalarea softwareului pentru imprimanta mea 3D a fost destul de facila, in principiu am urmat pasii de mai jos:
1. Descarca Firmware-ul MarlinFirmware
2. Decomprima sursele și deschide proiectul Marlin.ino (pentru Arduino MEGA 2560)
3. Conectează la PC pentru a alimenta controlerul
4. Compilează folosind IDE-ul de dezvoltarea Arduino
5. Upload software
6. Verifica mișcarea motoarelor
7. Verifica LCD-ul
8. Verifica heatedbed-ul dacă ajunge la temperatura setata (60 C)
9. Verifica încălzirea duzei (185 C) de extrudare a plasticului
10. Verifica motorul de tragerea a filamentului
11. Verifica extrudarea plasticului folosind sotfware-ul Printrun (https://github.com/kliment/Printrun)
12. Verificare micro întrerupătoarele – endstops
 

Verifică și repetă

Dacă una dintre verificări nu a fost în regula a trebuit sa verific configurația software și sa refac procedura. Am mai citit de pe website-ul asta (http://reprap.org/wiki/Calibration) despre calibrări și calcule.

 Configurația pentru Marlin

Configurația finala am atașat-o mai jos:

<br />#ifndef CONFIGURATION_H<br />#define CONFIGURATION_H<br /><br />#include "boards.h"<br /><br />//===========================================================================<br />//============================= Getting Started =============================<br />//===========================================================================<br />/*<br />Here are some standard links for getting your machine calibrated:<br /> * http://reprap.org/wiki/Calibration<br /> * http://youtu.be/wAL9d7FgInk<br /> * http://calculator.josefprusa.cz<br /> * http://reprap.org/wiki/Triffid_Hunter%27s_Calibration_Guide<br /> * http://www.thingiverse.com/thing:5573<br /> * https://sites.google.com/site/repraplogphase/calibration-of-your-reprap<br /> * http://www.thingiverse.com/thing:298812<br />*/<br /><br />// This configuration file contains the basic settings.<br />// Advanced settings can be found in Configuration_adv.h<br />// BASIC SETTINGS: select your board type, temperature sensor type, axis scaling, and endstop configuration<br /><br />//===========================================================================<br />//============================= DELTA Printer ===============================<br />//===========================================================================<br />// For a Delta printer replace the configuration files with the files in the<br />// example_configurations/delta directory.<br />//<br /><br />//===========================================================================<br />//============================= SCARA Printer ===============================<br />//===========================================================================<br />// For a Delta printer replace the configuration files with the files in the<br />// example_configurations/SCARA directory.<br />//<br /><br />// User-specified version info of this build to display in [Pronterface, etc] terminal window during<br />// startup. Implementation of an idea by Prof Braino to inform user that any changes made to this<br />// build by the user have been successfully uploaded into firmware.<br />#define STRING_VERSION "1.0.2"<br />#define STRING_URL "reprap.org"<br />#define STRING_VERSION_CONFIG_H __DATE__ " " __TIME__ // build date and time<br />#define STRING_CONFIG_H_AUTHOR "(none, default config)" // Who made the changes.<br />#define STRING_SPLASH_LINE1 "v" STRING_VERSION // will be shown during bootup in line 1<br />//#define STRING_SPLASH_LINE2 STRING_VERSION_CONFIG_H // will be shown during bootup in line2<br /><br />// SERIAL_PORT selects which serial port should be used for communication with the host.<br />// This allows the connection of wireless adapters (for instance) to non-default port pins.<br />// Serial port 0 is still used by the Arduino bootloader regardless of this setting.<br />#define SERIAL_PORT 0<br /><br />// This determines the communication speed of the printer<br />#define BAUDRATE 115200<br /><br />// This enables the serial port associated to the Bluetooth interface<br />//#define BTENABLED              // Enable BT interface on AT90USB devices<br /><br />// The following define selects which electronics board you have.<br />// Please choose the name from boards.h that matches your setup<br />#ifndef MOTHERBOARD<br />  #define MOTHERBOARD BOARD_RAMPS_13_EFB<br />#endif<br /><br />// Define this to set a custom name for your generic Mendel,<br />// #define CUSTOM_MENDEL_NAME "This Mendel"<br /><br />// Define this to set a unique identifier for this printer, (Used by some programs to differentiate between machines)<br />// You can use an online service to generate a random UUID. (eg http://www.uuidgenerator.net/version4)<br />// #define MACHINE_UUID "00000000-0000-0000-0000-000000000000"<br /><br />// This defines the number of extruders<br />#define EXTRUDERS 1<br /><br />//// The following define selects which power supply you have. Please choose the one that matches your setup<br />// 1 = ATX<br />// 2 = X-Box 360 203Watts (the blue wire connected to PS_ON and the red wire to VCC)<br /><br />#define POWER_SUPPLY 1<br /><br />// Define this to have the electronics keep the power supply off on startup. If you don't know what this is leave it.<br />// #define PS_DEFAULT_OFF<br /><br />//===========================================================================<br />//============================= Thermal Settings ============================<br />//===========================================================================<br />//<br />//--NORMAL IS 4.7kohm PULLUP!-- 1kohm pullup can be used on hotend sensor, using correct resistor and table<br />//<br />//// Temperature sensor settings:<br />// -2 is thermocouple with MAX6675 (only for sensor 0)<br />// -1 is thermocouple with AD595<br />// 0 is not used<br />// 1 is 100k thermistor - best choice for EPCOS 100k (4.7k pullup)<br />// 2 is 200k thermistor - ATC Semitec 204GT-2 (4.7k pullup)<br />// 3 is Mendel-parts thermistor (4.7k pullup)<br />// 4 is 10k thermistor !! do not use it for a hotend. It gives bad resolution at high temp. !!<br />// 5 is 100K thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (4.7k pullup)<br />// 6 is 100k EPCOS - Not as accurate as table 1 (created using a fluke thermocouple) (4.7k pullup)<br />// 7 is 100k Honeywell thermistor 135-104LAG-J01 (4.7k pullup)<br />// 71 is 100k Honeywell thermistor 135-104LAF-J01 (4.7k pullup)<br />// 8 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup)<br />// 9 is 100k GE Sensing AL03006-58.2K-97-G1 (4.7k pullup)<br />// 10 is 100k RS thermistor 198-961 (4.7k pullup)<br />// 11 is 100k beta 3950 1% thermistor (4.7k pullup)<br />// 12 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup) (calibrated for Makibox hot bed)<br />// 13 is 100k Hisens 3950  1% up to 300°C for hotend "Simple ONE " & "Hotend "All In ONE" <br />// 20 is the PT100 circuit found in the Ultimainboard V2.x<br />// 60 is 100k Maker's Tool Works Kapton Bed Thermistor beta=3950<br />//<br />//    1k ohm pullup tables - This is not normal, you would have to have changed out your 4.7k for 1k<br />//                          (but gives greater accuracy and more stable PID)<br />// 51 is 100k thermistor - EPCOS (1k pullup)<br />// 52 is 200k thermistor - ATC Semitec 204GT-2 (1k pullup)<br />// 55 is 100k thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (1k pullup)<br />//<br />// 1047 is Pt1000 with 4k7 pullup<br />// 1010 is Pt1000 with 1k pullup (non standard)<br />// 147 is Pt100 with 4k7 pullup<br />// 110 is Pt100 with 1k pullup (non standard)<br />// 998 and 999 are Dummy Tables. They will ALWAYS read 25°C or the temperature defined below. <br />//     Use it for Testing or Development purposes. NEVER for production machine.<br />//     #define DUMMY_THERMISTOR_998_VALUE 25<br />//     #define DUMMY_THERMISTOR_999_VALUE 100<br /><br />#define TEMP_SENSOR_0 1<br />#define TEMP_SENSOR_1 1<br />#define TEMP_SENSOR_2 1<br />#define TEMP_SENSOR_3 1<br />#define TEMP_SENSOR_BED 1<br /><br />// 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.<br />#define TEMP_SENSOR_1_AS_REDUNDANT<br />#define MAX_REDUNDANT_TEMP_SENSOR_DIFF 1000<br /><br />// Actual temperature must be close to target for this long before M109 returns success<br />#define TEMP_RESIDENCY_TIME 10  // (seconds)<br />#define TEMP_HYSTERESIS 3       // (degC) range of +/- temperatures considered "close" to the target one<br />#define TEMP_WINDOW     1       // (degC) Window around target to start the residency timer x degC early.<br /><br />// The minimal temperature defines the temperature below which the heater will not be enabled It is used<br />// to check that the wiring to the thermistor is not broken.<br />// Otherwise this would lead to the heater being powered on all the time.<br />#define HEATER_0_MINTEMP 5<br />#define HEATER_1_MINTEMP 5<br />#define HEATER_2_MINTEMP 5<br />#define HEATER_3_MINTEMP 5<br />#define BED_MINTEMP 5<br /><br />// When temperature exceeds max temp, your heater will be switched off.<br />// This feature exists to protect your hotend from overheating accidentally, but *NOT* from thermistor short/failure!<br />// You should use MINTEMP for thermistor short/failure protection.<br />#define HEATER_0_MAXTEMP 230<br />#define HEATER_1_MAXTEMP 230<br />#define HEATER_2_MAXTEMP 230<br />#define HEATER_3_MAXTEMP 230<br />#define BED_MAXTEMP 120<br /><br /><br />// If your bed has low resistance e.g. .6 ohm and throws the fuse you can duty cycle it to reduce the<br />// average current. The value should be an integer and the heat bed will be turned on for 1 interval of<br />// HEATER_BED_DUTY_CYCLE_DIVIDER intervals.<br />//#define HEATER_BED_DUTY_CYCLE_DIVIDER 4<br /><br />// If you want the M105 heater power reported in watts, define the BED_WATTS, and (shared for all extruders) EXTRUDER_WATTS<br />//#define EXTRUDER_WATTS (12.0*12.0/6.7) //  P=I^2/R<br />//#define BED_WATTS (12.0*12.0/1.1)      // P=I^2/R<br /><br />//===========================================================================<br />//============================= PID Settings ================================<br />//===========================================================================<br />// PID Tuning Guide here: http://reprap.org/wiki/PID_Tuning<br /><br />// Comment the following line to disable PID and enable bang-bang.<br />#define PIDTEMP<br />#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current<br />#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current<br />#ifdef PIDTEMP<br />#define PID_DEBUG // Sends debug data to the serial port.<br />  //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX<br />  //#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<br />  //#define PID_PARAMS_PER_EXTRUDER // Uses separate PID parameters for each extruder (useful for mismatched extruders)<br />                                    // Set/get with gcode: M301 E[extruder number, 0-2]<br />  #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature<br />                                  // is more then PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.<br />  #define PID_INTEGRAL_DRIVE_MAX PID_MAX  //limit for the integral term<br />  #define K1 0.95 //smoothing factor within the PID<br />  #define PID_dT ((OVERSAMPLENR * 10.0)/(F_CPU / 64.0 / 256.0)) //sampling period of the temperature routine<br /><br />// If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it<br />// Ultimaker<br />    #define  DEFAULT_Kp 22.2<br />    #define  DEFAULT_Ki 1.08<br />    #define  DEFAULT_Kd 114<br /><br />// MakerGear<br />//    #define  DEFAULT_Kp 7.0<br />//    #define  DEFAULT_Ki 0.1<br />//    #define  DEFAULT_Kd 12<br /><br />// Mendel Parts V9 on 12V<br />//    #define  DEFAULT_Kp 63.0<br />//    #define  DEFAULT_Ki 2.25<br />//    #define  DEFAULT_Kd 440<br />#endif // PIDTEMP<br /><br />//===========================================================================<br />//============================= PID > Bed Temperature Control ===============<br />//===========================================================================<br />// Select PID or bang-bang with PIDTEMPBED. If bang-bang, BED_LIMIT_SWITCHING will enable hysteresis<br />//<br />// Uncomment this to enable PID on the bed. It uses the same frequency PWM as the extruder.<br />// If your PID_dT above is the default, and correct for your hardware/configuration, that means 7.689Hz,<br />// which is fine for driving a square wave into a resistive load and does not significantly impact you FET heating.<br />// This also works fine on a Fotek SSR-10DA Solid State Relay into a 250W heater.<br />// If your configuration is significantly different than this and you don't understand the issues involved, you probably<br />// shouldn't use bed PID until someone else verifies your hardware works.<br />// If this is enabled, find your own PID constants below.<br />//#define PIDTEMPBED<br />//<br />//#define BED_LIMIT_SWITCHING<br /><br />// This sets the max power delivered to the bed, and replaces the HEATER_BED_DUTY_CYCLE_DIVIDER option.<br />// all forms of bed control obey this (PID, bang-bang, bang-bang with hysteresis)<br />// setting this to anything other than 255 enables a form of PWM to the bed just like HEATER_BED_DUTY_CYCLE_DIVIDER did,<br />// so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)<br />#define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current<br /><br />//#define PID_BED_DEBUG // Sends debug data to the serial port.<br /><br />#ifdef PIDTEMPBED<br />//120v 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)<br />//from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, aggressive factor of .15 (vs .1, 1, 10)<br />    #define  DEFAULT_bedKp 10.00<br />    #define  DEFAULT_bedKi .023<br />    #define  DEFAULT_bedKd 305.4<br /><br />//120v 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)<br />//from pidautotune<br />//    #define  DEFAULT_bedKp 97.1<br />//    #define  DEFAULT_bedKi 1.41<br />//    #define  DEFAULT_bedKd 1675.16<br /><br />// FIND YOUR OWN: "M303 E-1 C8 S90" to run autotune on the bed at 90 degreesC for 8 cycles.<br />#endif // PIDTEMPBED<br /><br /><br />//this prevents dangerous Extruder moves, i.e. if the temperature is under the limit<br />//can be software-disabled for whatever purposes by<br />#define PREVENT_DANGEROUS_EXTRUDE<br />//if PREVENT_DANGEROUS_EXTRUDE is on, you can still disable (uncomment) very long bits of extrusion separately.<br />#define PREVENT_LENGTHY_EXTRUDE<br /><br />#define EXTRUDE_MINTEMP 170<br />#define EXTRUDE_MAXLENGTH (X_MAX_LENGTH+Y_MAX_LENGTH) //prevent extrusion of very large distances.<br /><br />//===========================================================================<br />//============================= Thermal Runaway Protection ==================<br />//===========================================================================<br />/*<br />This is a feature to protect your printer from burn up in flames if it has<br />a thermistor coming off place (this happened to a friend of mine recently and<br />motivated me writing this feature).<br /><br />The issue: If a thermistor come off, it will read a lower temperature than actual.<br />The system will turn the heater on forever, burning up the filament and anything<br />else around.<br /><br />After the temperature reaches the target for the first time, this feature will <br />start measuring for how long the current temperature stays below the target <br />minus _HYSTERESIS (set_temperature - THERMAL_RUNAWAY_PROTECTION_HYSTERESIS).<br /><br />If it stays longer than _PERIOD, it means the thermistor temperature<br />cannot catch up with the target, so something *may be* wrong. Then, to be on the<br />safe side, the system will he halt.<br /><br />Bear in mind the count down will just start AFTER the first time the <br />thermistor temperature is over the target, so you will have no problem if<br />your extruder heater takes 2 minutes to hit the target on heating.<br /><br />*/<br />// If you want to enable this feature for all your extruder heaters,<br />// uncomment the 2 defines below:<br /><br />// Parameters for all extruder heaters<br />//#define THERMAL_RUNAWAY_PROTECTION_PERIOD 40 //in seconds<br />//#define THERMAL_RUNAWAY_PROTECTION_HYSTERESIS 4 // in degree Celsius<br /><br />// If you want to enable this feature for your bed heater,<br />// uncomment the 2 defines below:<br /><br />// Parameters for the bed heater<br />//#define THERMAL_RUNAWAY_PROTECTION_BED_PERIOD 20 //in seconds<br />//#define THERMAL_RUNAWAY_PROTECTION_BED_HYSTERESIS 2 // in degree Celsius<br /><br /><br />//===========================================================================<br />//============================= Mechanical Settings =========================<br />//===========================================================================<br /><br />// Uncomment this option to enable CoreXY kinematics<br />// #define COREXY<br /><br />// Enable this option for Toshiba steppers<br />// #define CONFIG_STEPPERS_TOSHIBA<br /><br />// The pullups are needed if you directly connect a mechanical endstop between the signal and ground pins.<br />#define ENDSTOPPULLUP_XMAX<br />#define ENDSTOPPULLUP_YMAX<br />#define ENDSTOPPULLUP_ZMAX<br />#define ENDSTOPPULLUP_XMIN<br />#define ENDSTOPPULLUP_YMIN<br />#define ENDSTOPPULLUP_ZMIN<br /><br />// Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup).<br />const bool X_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.<br />const bool Y_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.<br />const bool Z_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.<br />const bool X_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.<br />const bool Y_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.<br />const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.<br /><br />//#define DISABLE_MAX_ENDSTOPS<br />//#define DISABLE_MIN_ENDSTOPS<br /><br />// For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1<br />#define X_ENABLE_ON 0<br />#define Y_ENABLE_ON 0<br />#define Z_ENABLE_ON 0<br />#define E_ENABLE_ON 0 // For all extruders<br /><br />// Disables axis when it's not being used.<br />#define DISABLE_X false<br />#define DISABLE_Y false<br />#define DISABLE_Z false<br />#define DISABLE_E false // For all extruders<br />#define DISABLE_INACTIVE_EXTRUDER true //disable only inactive extruders and keep active extruder enabled<br /><br />// If you motor turns to wrong direction, you can invert it here:<br />#define INVERT_X_DIR true<br />#define INVERT_Y_DIR false<br />#define INVERT_Z_DIR true<br />#define INVERT_E0_DIR false<br />#define INVERT_E1_DIR false<br />#define INVERT_E2_DIR false<br />#define INVERT_E3_DIR false<br /><br />// ENDSTOP SETTINGS:<br />// Sets direction of endstops when homing; 1=MAX, -1=MIN<br />#define X_HOME_DIR -1<br />#define Y_HOME_DIR -1<br />#define Z_HOME_DIR -1<br /><br />#define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS.<br />#define max_software_endstops true  // If true, axis won't move to coordinates greater than the defined lengths below.<br /><br />// Travel limits after homing (units are in mm)<br />/*#define X_MIN_POS 0<br />#define Y_MIN_POS 0<br />#define Z_MIN_POS 0<br /><br />#define X_MAX_POS 190<br />#define Y_MAX_POS 190<br />#define Z_MAX_POS 190*/<br /><br />#define X_MAX_POS 180<br />#define X_MIN_POS 0<br /><br />#define Y_MAX_POS 180<br />#define Y_MIN_POS 0<br /><br />#define Z_MAX_POS 190<br />#define Z_MIN_POS 0<br /><br />#define X_MAX_LENGTH (X_MAX_POS - X_MIN_POS)<br />#define Y_MAX_LENGTH (Y_MAX_POS - Y_MIN_POS)<br />#define Z_MAX_LENGTH (Z_MAX_POS - Z_MIN_POS)<br /><br />//===========================================================================<br />//============================= Filament Runout Sensor ======================<br />//===========================================================================<br />//#define FILAMENT_RUNOUT_SENSOR // Uncomment for defining a filament runout sensor such as a mechanical or opto endstop to check the existence of filament<br />                                 // In RAMPS uses servo pin 2. Can be changed in pins file. For other boards pin definition should be made.<br />                                 // It is assumed that when logic high = filament available<br />                                 //                    when logic  low = filament ran out<br />//const bool FIL_RUNOUT_INVERTING = true;  // Should be uncommented and true or false should assigned<br />//#define ENDSTOPPULLUP_FIL_RUNOUT // Uncomment to use internal pullup for filament runout pins if the sensor is defined.<br /><br />//===========================================================================<br />//============================= Bed Auto Leveling ===========================<br />//===========================================================================<br /><br />//#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)<br />#define Z_PROBE_REPEATABILITY_TEST  // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled.<br /><br />#ifdef ENABLE_AUTO_BED_LEVELING<br /><br />  // There are 2 different ways to specify probing locations<br />  //<br />  // - "grid" mode<br />  //   Probe several points in a rectangular grid.<br />  //   You specify the rectangle and the density of sample points.<br />  //   This mode is preferred because there are more measurements.<br />  //<br />  // - "3-point" mode<br />  //   Probe 3 arbitrary points on the bed (that aren't colinear)<br />  //   You specify the XY coordinates of all 3 points.<br /><br />  // Enable this to sample the bed in a grid (least squares solution)<br />  // Note: this feature generates 10KB extra code size<br />  #define AUTO_BED_LEVELING_GRID<br /><br />  #ifdef AUTO_BED_LEVELING_GRID<br /><br />    // Use one of these defines to specify the origin<br />    // for a topographical map to be printed for your bed.<br />    enum { OriginBackLeft, OriginFrontLeft, OriginBackRight, OriginFrontRight };<br />    #define TOPO_ORIGIN OriginFrontLeft<br /><br />    // The edges of the rectangle in which to probe<br />    #define LEFT_PROBE_BED_POSITION 15<br />    #define RIGHT_PROBE_BED_POSITION 170<br />    #define FRONT_PROBE_BED_POSITION 20<br />    #define BACK_PROBE_BED_POSITION 170<br />    <br />    #define MIN_PROBE_EDGE 10 // The probe square sides can be no smaller than this<br /><br />    // Set the number of grid points per dimension<br />    // You probably don't need more than 3 (squared=9)<br />    #define AUTO_BED_LEVELING_GRID_POINTS 2<br /><br /><br />  #else  // !AUTO_BED_LEVELING_GRID<br /><br />      // Arbitrary points to probe. A simple cross-product<br />      // is used to estimate the plane of the bed.<br />      #define ABL_PROBE_PT_1_X 15<br />      #define ABL_PROBE_PT_1_Y 180<br />      #define ABL_PROBE_PT_2_X 15<br />      #define ABL_PROBE_PT_2_Y 20<br />      #define ABL_PROBE_PT_3_X 170<br />      #define ABL_PROBE_PT_3_Y 20<br /><br />  #endif // AUTO_BED_LEVELING_GRID<br /><br /><br />  // Offsets to the probe relative to the extruder tip (Hotend - Probe)<br />  // X and Y offsets must be integers<br />  #define X_PROBE_OFFSET_FROM_EXTRUDER -25     // Probe on: -left  +right<br />  #define Y_PROBE_OFFSET_FROM_EXTRUDER -29     // Probe on: -front +behind<br />  #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35  // -below (always!)<br /><br />  #define Z_RAISE_BEFORE_HOMING 4       // (in mm) Raise Z before homing (G28) for Probe Clearance.<br />                                        // Be sure you have this distance over your Z_MAX_POS in case<br /><br />  #define XY_TRAVEL_SPEED 8000         // X and Y axis travel speed between probes, in mm/min<br /><br />  #define Z_RAISE_BEFORE_PROBING 15    //How much the extruder will be raised before traveling to the first probing point.<br />  #define Z_RAISE_BETWEEN_PROBINGS 5  //How much the extruder will be raised when traveling from between next probing points<br />  #define Z_RAISE_AFTER_PROBING 15    //How much the extruder will be raised after the last probing point.<br /><br />//   #define Z_PROBE_END_SCRIPT "G1 Z10 F12000nG1 X15 Y330nG1 Z0.5nG1 Z10" //These commands will be executed in the end of G29 routine.<br />                                                                            //Useful to retract a deployable probe.<br />                                                                           <br />  //#define Z_PROBE_SLED // turn on if you have a z-probe mounted on a sled like those designed by Charles Bell<br />  //#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.<br /><br />  //If defined, the Probe servo will be turned on only during movement and then turned off to avoid jerk<br />  //The value is the delay to turn the servo off after powered on - depends on the servo speed; 300ms is good value, but you can try lower it.<br />  // You MUST HAVE the SERVO_ENDSTOPS defined to use here a value higher than zero otherwise your code will not compile.<br /><br />//  #define PROBE_SERVO_DEACTIVATION_DELAY 300<br /><br /><br />//If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,<br />//it is highly recommended you let this Z_SAFE_HOMING enabled!!!<br /><br />  #define Z_SAFE_HOMING   // This feature is meant to avoid Z homing with probe outside the bed area.<br />                          // When defined, it will:<br />                          // - Allow Z homing only after X and Y homing AND stepper drivers still enabled<br />                          // - If stepper drivers timeout, it will need X and Y homing again before Z homing<br />                          // - Position the probe in a defined XY point before Z Homing when homing all axis (G28)<br />                          // - Block Z homing only when the probe is outside bed area.<br /><br />  #ifdef Z_SAFE_HOMING<br /><br />    #define Z_SAFE_HOMING_X_POINT (X_MAX_LENGTH/2)    // X point for Z homing when homing all axis (G28)<br />    #define Z_SAFE_HOMING_Y_POINT (Y_MAX_LENGTH/2)    // Y point for Z homing when homing all axis (G28)<br /><br />  #endif<br /><br />#endif // ENABLE_AUTO_BED_LEVELING<br /><br /><br />// The position of the homing switches<br />//#define MANUAL_HOME_POSITIONS  // If defined, MANUAL_*_HOME_POS below will be used<br />//#define BED_CENTER_AT_0_0  // If defined, the center of the bed is at (X=0, Y=0)<br /><br />// Manual homing switch locations:<br />// For deltabots this means top and center of the Cartesian print volume.<br />#ifdef MANUAL_HOME_POSITIONS<br />  #define MANUAL_X_HOME_POS 0<br />  #define MANUAL_Y_HOME_POS 0<br />  #define MANUAL_Z_HOME_POS 0<br />  //#define MANUAL_Z_HOME_POS 402 // For delta: Distance between nozzle and print surface after homing.<br />#endif<br /><br />//// MOVEMENT SETTINGS<br />#define NUM_AXIS 4 // The axis order in all axis related arrays is X, Y, Z, E<br />#define HOMING_FEEDRATE {50*60, 50*60, 4*60, 0}  // set the homing speeds (mm/min)<br /><br />// default settings<br /><br />#define DEFAULT_AXIS_STEPS_PER_UNIT   {80,80,4000,500}  // default steps per unit for Ultimaker<br />#define DEFAULT_MAX_FEEDRATE          {300, 300, 2, 25}    // (mm/sec)<br />#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.<br /><br />#define DEFAULT_ACCELERATION          200    // X, Y, Z and E acceleration in mm/s^2 for printing moves<br />#define DEFAULT_RETRACT_ACCELERATION  3000   // E acceleration in mm/s^2 for retracts<br />#define DEFAULT_TRAVEL_ACCELERATION   3000    // X, Y, Z acceleration in mm/s^2 for travel (non printing) moves<br /><br />// Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).<br />// The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).<br />// For the other hotends it is their distance from the extruder 0 hotend.<br />// #define EXTRUDER_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis<br />// #define EXTRUDER_OFFSET_Y {0.0, 5.00}  // (in mm) for each extruder, offset of the hotend on the Y axis<br /><br />// The speed change that does not require acceleration (i.e. the software might assume it can be done instantaneously)<br />#define DEFAULT_XYJERK                20.0    // (mm/sec)<br />#define DEFAULT_ZJERK                 0.4     // (mm/sec)<br />#define DEFAULT_EJERK                 5.0    // (mm/sec)<br /><br /><br />//=============================================================================<br />//============================= Additional Features ===========================<br />//=============================================================================<br /><br />// Custom M code points<br />#define CUSTOM_M_CODES<br />#ifdef CUSTOM_M_CODES<br />  #define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851<br />  #define Z_PROBE_OFFSET_RANGE_MIN -15<br />  #define Z_PROBE_OFFSET_RANGE_MAX -5<br />#endif<br /><br /><br />// EEPROM<br />// The microcontroller can store settings in the EEPROM, e.g. max velocity...<br />// M500 - stores parameters in EEPROM<br />// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).<br />// M502 - reverts to the default "factory settings".  You still need to store them in EEPROM afterwards if you want to.<br />//define this to enable EEPROM support<br />//#define EEPROM_SETTINGS<br />//to disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:<br />// please keep turned on if you can.<br />//#define EEPROM_CHITCHAT<br /><br />// Preheat Constants<br />#define PLA_PREHEAT_HOTEND_TEMP 180<br />#define PLA_PREHEAT_HPB_TEMP 70<br />#define PLA_PREHEAT_FAN_SPEED 0   // Insert Value between 0 and 255<br /><br />#define ABS_PREHEAT_HOTEND_TEMP 240<br />#define ABS_PREHEAT_HPB_TEMP 110<br />#define ABS_PREHEAT_FAN_SPEED 0   // Insert Value between 0 and 255<br /><br />//==============================LCD and SD support=============================<br /><br />// Define your display language below. Replace (en) with your language code and uncomment.<br />// en, pl, fr, de, es, ru, it, pt, pt-br, fi, an, nl, ca, eu<br />// See also language.h<br />#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en)<br /><br />// Character based displays can have different extended charsets.<br />#define DISPLAY_CHARSET_HD44780_JAPAN     // "ääööüüß23°"<br />//#define DISPLAY_CHARSET_HD44780_WESTERN // "ÄäÖöÜüß²³°" if you see a '~' instead of a 'arrow_right' at the right of submenuitems - this is the right one.<br /><br />#define ULTRA_LCD  //general LCD support, also 16x2<br />//#define DOGLCD  // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family)<br />#define SDSUPPORT // Enable SD Card Support in Hardware Console<br />//#define SDSLOW // Use slower SD transfer mode (not normally needed - uncomment if you're getting volume init error)<br />#define SD_CHECK_AND_RETRY // Use CRC checks and retries on the SD communication<br />#define ENCODER_PULSES_PER_STEP 1 // Increase if you have a high resolution encoder<br />#define ENCODER_STEPS_PER_MENU_ITEM 5 // Set according to ENCODER_PULSES_PER_STEP or your liking<br />//#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store.<br />#define ULTIPANEL  //the UltiPanel as on Thingiverse<br />#define LCD_FEEDBACK_FREQUENCY_HZ 1000 // this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click<br />#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 10 // the duration the buzzer plays the UI feedback sound. ie Screen Click<br /><br />// PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3)<br />// http://reprap.org/wiki/PanelOne<br />//#define PANEL_ONE<br /><br />// The MaKr3d Makr-Panel with graphic controller and SD support<br />// http://reprap.org/wiki/MaKr3d_MaKrPanel<br />//#define MAKRPANEL<br /><br />// The Panucatt Devices Viki 2.0 and mini Viki with Graphic LCD<br />// http://panucatt.com<br />// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: http://code.google.com/p/u8glib/wiki/u8glib<br />//#define VIKI2<br />//#define miniVIKI<br /><br />// The RepRapDiscount Smart Controller (white PCB)<br />// http://reprap.org/wiki/RepRapDiscount_Smart_Controller<br />#define REPRAP_DISCOUNT_SMART_CONTROLLER<br /><br />// The GADGETS3D G3D LCD/SD Controller (blue PCB)<br />// http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel<br />//#define G3D_PANEL<br /><br />// The RepRapDiscount FULL GRAPHIC Smart Controller (quadratic white PCB)<br />// http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller<br />//<br />// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: http://code.google.com/p/u8glib/wiki/u8glib<br />//#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER<br /><br />// The RepRapWorld REPRAPWORLD_KEYPAD v1.1<br />// http://reprapworld.com/?products_details&products_id=202&cPath=1591_1626<br />//#define REPRAPWORLD_KEYPAD<br />//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 // how much should be moved when a key is pressed, eg 10.0 means 10mm per click<br /><br />// The Elefu RA Board Control Panel<br />// http://www.elefu.com/index.php?route=product/product&product_id=53<br />// REMEMBER TO INSTALL LiquidCrystal_I2C.h in your ARDUINO library folder: https://github.com/kiyoshigawa/LiquidCrystal_I2C<br />//#define RA_CONTROL_PANEL<br /><br />//automatic expansion<br />#if defined (MAKRPANEL)<br /> #define DOGLCD<br /> #define SDSUPPORT<br /> #define ULTIPANEL<br /> #define NEWPANEL<br /> #define DEFAULT_LCD_CONTRAST 17<br />#endif<br /><br />#if defined(miniVIKI) || defined(VIKI2)<br /> #define ULTRA_LCD  //general LCD support, also 16x2<br /> #define DOGLCD  // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family)<br /> #define ULTIMAKERCONTROLLER //as available from the Ultimaker online store.<br /> <br />  #ifdef miniVIKI<br />   #define DEFAULT_LCD_CONTRAST 95<br />  #else<br />   #define DEFAULT_LCD_CONTRAST 40<br />  #endif<br />  <br /> #define ENCODER_PULSES_PER_STEP 4<br /> #define ENCODER_STEPS_PER_MENU_ITEM 1<br />#endif<br /><br />#if defined (PANEL_ONE)<br /> #define SDSUPPORT<br /> #define ULTIMAKERCONTROLLER<br />#endif<br /><br />#if defined (REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)<br /> #define DOGLCD<br /> #define U8GLIB_ST7920<br /> #define REPRAP_DISCOUNT_SMART_CONTROLLER<br />#endif<br /><br />#if defined(ULTIMAKERCONTROLLER) || defined(REPRAP_DISCOUNT_SMART_CONTROLLER) || defined(G3D_PANEL)<br /> #define ULTIPANEL<br /> #define NEWPANEL<br />#endif<br /><br />#if defined(REPRAPWORLD_KEYPAD)<br />  #define NEWPANEL<br />  #define ULTIPANEL<br />#endif<br />#if defined(RA_CONTROL_PANEL)<br /> #define ULTIPANEL<br /> #define NEWPANEL<br /> #define LCD_I2C_TYPE_PCA8574<br /> #define LCD_I2C_ADDRESS 0x27   // I2C Address of the port expander<br />#endif<br /><br />//I2C PANELS<br /><br />//#define LCD_I2C_SAINSMART_YWROBOT<br />#ifdef LCD_I2C_SAINSMART_YWROBOT<br />  // This uses the LiquidCrystal_I2C library ( https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home )<br />  // Make sure it is placed in the Arduino libraries directory.<br />  #define LCD_I2C_TYPE_PCF8575<br />  #define LCD_I2C_ADDRESS 0x27   // I2C Address of the port expander<br />  #define NEWPANEL<br />  #define ULTIPANEL<br />#endif<br /><br />// PANELOLU2 LCD with status LEDs, separate encoder and click inputs<br />//#define LCD_I2C_PANELOLU2<br />#ifdef LCD_I2C_PANELOLU2<br />  // This uses the LiquidTWI2 library v1.2.3 or later ( https://github.com/lincomatic/LiquidTWI2 )<br />  // Make sure the LiquidTWI2 directory is placed in the Arduino or Sketchbook libraries subdirectory.<br />  // (v1.2.3 no longer requires you to define PANELOLU in the LiquidTWI2.h library header file)<br />  // Note: The PANELOLU2 encoder click input can either be directly connected to a pin<br />  //       (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1).<br />  #define LCD_I2C_TYPE_MCP23017<br />  #define LCD_I2C_ADDRESS 0x20 // I2C Address of the port expander<br />  #define LCD_USE_I2C_BUZZER //comment out to disable buzzer on LCD<br />  #define NEWPANEL<br />  #define ULTIPANEL<br /><br />  #ifndef ENCODER_PULSES_PER_STEP<br /> #define ENCODER_PULSES_PER_STEP 4<br />  #endif<br /><br />  #ifndef ENCODER_STEPS_PER_MENU_ITEM<br /> #define ENCODER_STEPS_PER_MENU_ITEM 1<br />  #endif<br /><br /><br />  #ifdef LCD_USE_I2C_BUZZER<br /> #define LCD_FEEDBACK_FREQUENCY_HZ 1000<br /> #define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100<br />  #endif<br /><br />#endif<br /><br />// Panucatt VIKI LCD with status LEDs, integrated click & L/R/U/P buttons, separate encoder inputs<br />//#define LCD_I2C_VIKI<br />#ifdef LCD_I2C_VIKI<br />  // This uses the LiquidTWI2 library v1.2.3 or later ( https://github.com/lincomatic/LiquidTWI2 )<br />  // Make sure the LiquidTWI2 directory is placed in the Arduino or Sketchbook libraries subdirectory.<br />  // Note: The pause/stop/resume LCD button pin should be connected to the Arduino<br />  //       BTN_ENC pin (or set BTN_ENC to -1 if not used)<br />  #define LCD_I2C_TYPE_MCP23017<br />  #define LCD_I2C_ADDRESS 0x20 // I2C Address of the port expander<br />  #define LCD_USE_I2C_BUZZER //comment out to disable buzzer on LCD (requires LiquidTWI2 v1.2.3 or later)<br />  #define NEWPANEL<br />  #define ULTIPANEL<br />#endif<br /><br />// Shift register panels<br />// ---------------------<br />// 2 wire Non-latching LCD SR from:<br />// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/schematics#!shiftregister-connection <br /><br />//#define SAV_3DLCD<br />#ifdef SAV_3DLCD<br />   #define SR_LCD_2W_NL    // Non latching 2 wire shiftregister<br />   #define NEWPANEL<br />   #define ULTIPANEL<br />#endif<br /><br /><br />#ifdef ULTIPANEL<br />//  #define NEWPANEL  //enable this if you have a click-encoder panel<br />  #define SDSUPPORT<br />  #define ULTRA_LCD<br />  #ifdef DOGLCD // Change number of lines to match the DOG graphic display<br />    #define LCD_WIDTH 22<br />    #define LCD_HEIGHT 5<br />  #else<br />    #define LCD_WIDTH 20<br />    #define LCD_HEIGHT 4<br />  #endif<br />#else //no panel but just LCD<br />  #ifdef ULTRA_LCD<br />  #ifdef DOGLCD // Change number of lines to match the 128x64 graphics display<br />    #define LCD_WIDTH 22<br />    #define LCD_HEIGHT 5<br />  #else<br />    #define LCD_WIDTH 16<br />    #define LCD_HEIGHT 2<br />  #endif<br />  #endif<br />#endif<br /><br />// default LCD contrast for dogm-like LCD displays<br />#ifdef DOGLCD<br /># ifndef DEFAULT_LCD_CONTRAST<br />#  define DEFAULT_LCD_CONTRAST 32<br /># endif<br />#endif<br /><br />// Increase the FAN pwm frequency. Removes the PWM noise but increases heating in the FET/Arduino<br />//#define FAST_PWM_FAN<br /><br />// Temperature status LEDs that display the hotend and bet temperature.<br />// If all hotends and bed temperature and temperature setpoint are less 54C then the BLUE led is on.<br />// Otherwise the RED led is on. There is 1C hysteresis.<br />//#define TEMP_STAT_LEDS<br /><br />// Use software PWM to drive the fan, as for the heaters. This uses a very low frequency<br />// which is not ass annoying as with the hardware PWM. On the other hand, if this frequency<br />// is too low, you should also increment SOFT_PWM_SCALE.<br />//#define FAN_SOFT_PWM<br /><br />// Incrementing this by 1 will double the software PWM frequency,<br />// affecting heaters, and the fan if FAN_SOFT_PWM is enabled.<br />// However, control resolution will be halved for each increment;<br />// at zero value, there are 128 effective control positions.<br />#define SOFT_PWM_SCALE 0<br /><br />// M240  Triggers a camera by emulating a Canon RC-1 Remote<br />// Data from: http://www.doc-diy.net/photo/rc-1_hacked/<br />// #define PHOTOGRAPH_PIN     23<br /><br />// SF send wrong arc g-codes when using Arc Point as fillet procedure<br />//#define SF_ARC_FIX<br /><br />// Support for the BariCUDA Paste Extruder.<br />//#define BARICUDA<br /><br />//define BlinkM/CyzRgb Support<br />//#define BLINKM<br /><br />/*********************************************************************<br />* R/C SERVO support<br />* Sponsored by TrinityLabs, Reworked by codexmas<br />**********************************************************************/<br /><br />// Number of servos<br />//<br />// If you select a configuration below, this will receive a default value and does not need to be set manually<br />// set it manually if you have more servos than extruders and wish to manually control some<br />// leaving it undefined or defining as 0 will disable the servo subsystem<br />// If unsure, leave commented / disabled<br />//<br />//#define NUM_SERVOS 3 // Servo index starts with 0 for M280 command<br /><br />// Servo Endstops<br />//<br />// This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes.<br />// Use M206 command to correct for switch height offset to actual nozzle height. Store that setting with M500.<br />//<br />//#define SERVO_ENDSTOPS {-1, -1, 0} // Servo index for X, Y, Z. Disable with -1<br />//#define SERVO_ENDSTOP_ANGLES {0,0, 0,0, 70,0} // X,Y,Z Axis Extend and Retract angles<br /><br />/**********************************************************************<br /> * Support for a filament diameter sensor<br /> * Also allows adjustment of diameter at print time (vs  at slicing)<br /> * Single extruder only at this point (extruder 0)<br /> * <br /> * Motherboards<br /> * 34 - RAMPS1.4 - uses Analog input 5 on the AUX2 connector <br /> * 81 - Printrboard - Uses Analog input 2 on the Exp1 connector (version B,C,D,E)<br /> * 301 - Rambo  - uses Analog input 3<br /> * Note may require analog pins to be defined for different motherboards<br /> **********************************************************************/<br />// Uncomment below to enable<br />//#define FILAMENT_SENSOR<br /><br />#define FILAMENT_SENSOR_EXTRUDER_NUM 0  //The number of the extruder that has the filament sensor (0,1,2)<br />#define MEASUREMENT_DELAY_CM   14  //measurement delay in cm.  This is the distance from filament sensor to middle of barrel<br /><br />#define DEFAULT_NOMINAL_FILAMENT_DIA  3.0  //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<br />#define MEASURED_UPPER_LIMIT          3.30  //upper limit factor used for sensor reading validation in mm<br />#define MEASURED_LOWER_LIMIT          1.90  //lower limit factor for sensor reading validation in mm<br />#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)<br /><br />//defines used in the code<br />#define DEFAULT_MEASURED_FILAMENT_DIA  DEFAULT_NOMINAL_FILAMENT_DIA  //set measured to nominal initially <br /><br />//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.<br />//#define FILAMENT_LCD_DISPLAY<br /><br /><br /><br /><br /><br /><br />#include "Configuration_adv.h"<br />#include "thermistortables.h"<br /><br />#endif //__CONFIGURATION_H<br /><br />

Weekend plăcut tuturor !!

De admin

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *


The reCAPTCHA verification period has expired. Please reload the page.