Repetier-Firmware  0.91
src/ArduinoAVR/Repetier/Configuration.h
Go to the documentation of this file.
00001 /*
00002     This file is part of Repetier-Firmware.
00003 
00004     Repetier-Firmware is free software: you can redistribute it and/or modify
00005     it under the terms of the GNU General Public License as published by
00006     the Free Software Foundation, either version 3 of the License, or
00007     (at your option) any later version.
00008 
00009     Repetier-Firmware is distributed in the hope that it will be useful,
00010     but WITHOUT ANY WARRANTY; without even the implied warranty of
00011     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00012     GNU General Public License for more details.
00013 
00014     You should have received a copy of the GNU General Public License
00015     along with Repetier-Firmware.  If not, see <http://www.gnu.org/licenses/>.
00016 
00017 */
00018 
00019 #ifndef CONFIGURATION_H
00020 #define CONFIGURATION_H
00021 
00022 /* Some words on units:
00023 
00024 From 0.80 onwards the units used are unified for easier configuration, watch out when transfering from older configs!
00025 
00026 Speed is in mm/s
00027 Acceleration in mm/s^2
00028 Temperature is in degrees celsius
00029 
00030 
00031 ##########################################################################################
00032 ##                                        IMPORTANT                                     ##
00033 ##########################################################################################
00034 
00035 For easy configuration, the default settings enable parameter storage in EEPROM.
00036 This means, after the first upload many variables can only be changed using the special
00037 M commands as described in the documentation. Changing these values in the configuration.h
00038 file has no effect. Parameters overriden by EEPROM settings are calibartion values, extruder
00039 values except thermistor tables and some other parameter likely to change during usage
00040 like advance steps or ops mode.
00041 To override EEPROM settings with config settings, set EEPROM_MODE 0
00042 
00043 */
00044 
00045 
00046 // BASIC SETTINGS: select your board type, thermistor type, axis scaling, and endstop configuration
00047 
00049 #define NUM_EXTRUDER 1
00050 
00052 // Gen3 PLUS for RepRap Motherboard V1.2 = 21
00053 // MEGA/RAMPS up to 1.2       = 3
00054 // RAMPS 1.3/RAMPS 1.4        = 33
00055 // Azteeg X3                  = 34
00056 // Gen6                       = 5
00057 // Gen6 deluxe                = 51
00058 // Sanguinololu up to 1.1     = 6
00059 // Sanguinololu 1.2 and above = 62
00060 // Melzi board                = 63  // Define REPRAPPRO_HUXLEY if you have one for correct HEATER_1_PIN assignment!
00061 // Gen7 1.1 till 1.3.x        = 7
00062 // Gen7 1.4.1 and later       = 71
00063 // Sethi 3D_1                 = 72
00064 // Teensylu (at90usb)         = 8 // requires Teensyduino
00065 // Printrboard (at90usb)      = 9 // requires Teensyduino
00066 // Foltyn 3D Master           = 12
00067 // MegaTronics 1.0            = 70
00068 // Megatronics 2.0            = 701
00069 // RUMBA                      = 80  // Get it from reprapdiscount
00070 // Rambo                      = 301
00071 // PiBot for Repetier V1.0-1.3= 314
00072 // PiBot for Repetier V1.4    = 315
00073 // Sanguish Beta              = 501
00074 
00075 #define MOTHERBOARD 33
00076 
00077 #include "pins.h"
00078 
00079 // Override pin definions from pins.h
00080 //#define FAN_PIN   4  // Extruder 2 uses the default fan output, so move to an other pin
00081 //#define EXTERNALSERIAL  use Arduino serial library instead of build in. Requires more ram, has only 63 byte input buffer.
00082 
00083 // Uncomment the following line if you are using arduino compatible firmware made for Arduino version earlier then 1.0
00084 // If it is incompatible you will get compiler errors about write functions not beeing compatible!
00085 //#define COMPAT_PRE1
00086 
00087 /* Define the type of axis movements needed for your printer. The typical case
00088 is a full cartesian system where x, y and z moves are handled by separate motors.
00089 
00090 0 = full cartesian system, xyz have seperate motors.
00091 1 = z axis + xy H-gantry (x_motor = x+y, y_motor = x-y)
00092 2 = z axis + xy H-gantry (x_motor = x+y, y_motor = y-x)
00093 3 = Delta printers (Rostock, Kossel, RostockMax, Cerberus, etc)
00094 4 = Tuga printer (Scott-Russell mechanism)
00095 5 = Bipod system (not implemented)
00096 Cases 1 and 2 cover all needed xy H gantry systems. If you get results mirrored etc. you can swap motor connections for x and y.
00097 If a motor turns in the wrong direction change INVERT_X_DIR or INVERT_Y_DIR.
00098 */
00099 #define DRIVE_SYSTEM 0
00100 
00101 // ##########################################################################################
00102 // ##                               Calibration                                            ##
00103 // ##########################################################################################
00104 
00107 #if DRIVE_SYSTEM==3
00108     // ***************************************************
00109     // *** These parameter are only for Delta printers ***
00110     // ***************************************************
00111 
00113 #define DELTA_DRIVE_TYPE 0
00114 
00115 #if DELTA_DRIVE_TYPE == 0
00116 
00117 #define BELT_PITCH 2
00118 
00119 #define PULLEY_TEETH 20
00120 #define PULLEY_CIRCUMFERENCE (BELT_PITCH * PULLEY_TEETH)
00121 #elif DELTA_DRIVE_TYPE == 1
00122 
00123 #define PULLEY_DIAMETER 10
00124 #define PULLEY_CIRCUMFERENCE (PULLEY_DIAMETER * 3.1415927)
00125 #endif
00126 
00128 #define STEPS_PER_ROTATION 200
00129 
00131 #define MICRO_STEPS 16
00132 
00133 // Calculations
00134 #define AXIS_STEPS_PER_MM ((float)(MICRO_STEPS * STEPS_PER_ROTATION) / PULLEY_CIRCUMFERENCE)
00135 #define XAXIS_STEPS_PER_MM AXIS_STEPS_PER_MM
00136 #define YAXIS_STEPS_PER_MM AXIS_STEPS_PER_MM
00137 #define ZAXIS_STEPS_PER_MM AXIS_STEPS_PER_MM
00138 #else
00139 // *******************************************************
00140 // *** These parameter are for all other printer types ***
00141 // *******************************************************
00142 
00147 #define XAXIS_STEPS_PER_MM 98.425196
00148 
00151 #define YAXIS_STEPS_PER_MM 98.425196
00152 
00153 #define ZAXIS_STEPS_PER_MM 2560
00154 #endif
00155 
00156 // ##########################################################################################
00157 // ##                           Extruder configuration                                     ##
00158 // ##########################################################################################
00159 
00160 // for each extruder, fan will stay on until extruder temperature is below this value
00161 #define EXTRUDER_FAN_COOL_TEMP 50
00162 
00163 #define EXT0_X_OFFSET 0
00164 #define EXT0_Y_OFFSET 0
00165 // for skeinforge 40 and later, steps to pull the plasic 1 mm inside the extruder, not out.  Overridden if EEPROM activated.
00166 #define EXT0_STEPS_PER_MM 413 //385
00167 // What type of sensor is used?
00168 // 1 is 100k thermistor (Epcos B57560G0107F000 - RepRap-Fab.org and many other)
00169 // 2 is 200k thermistor
00170 // 3 is mendel-parts thermistor (EPCOS G550)
00171 // 4 is 10k thermistor
00172 // 8 is ATC Semitec 104GT-2
00173 // 5 is userdefined thermistor table 0
00174 // 6 is userdefined thermistor table 1
00175 // 7 is userdefined thermistor table 2
00176 // 50 is userdefined thermistor table 0 for PTC thermistors
00177 // 51 is userdefined thermistor table 0 for PTC thermistors
00178 // 52 is userdefined thermistor table 0 for PTC thermistors
00179 // 60 is AD8494, AD8495, AD8496 or AD8497 (5mV/degC and 1/4 the price of AD595 but only MSOT_08 package)
00180 // 97 Generic thermistor table 1
00181 // 98 Generic thermistor table 2
00182 // 99 Generic thermistor table 3
00183 // 100 is AD595
00184 // 101 is MAX6675
00185 // 102 is MAX31855
00186 #define EXT0_TEMPSENSOR_TYPE 1
00187 // Analog input pin for reading temperatures or pin enabling SS for MAX6675
00188 #define EXT0_TEMPSENSOR_PIN TEMP_0_PIN
00189 // Which pin enables the heater
00190 #define EXT0_HEATER_PIN HEATER_0_PIN
00191 #define EXT0_STEP_PIN E0_STEP_PIN
00192 #define EXT0_DIR_PIN E0_DIR_PIN
00193 // set to false/true for normal / inverse direction
00194 #define EXT0_INVERSE true
00195 #define EXT0_ENABLE_PIN E0_ENABLE_PIN
00196 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
00197 #define EXT0_ENABLE_ON false
00198 // The following speed settings are for skeinforge 40+ where e is the
00199 // length of filament pulled inside the heater. For repsnap or older
00200 // skeinforge use higher values.
00201 //  Overridden if EEPROM activated.
00202 #define EXT0_MAX_FEEDRATE 30
00203 // Feedrate from halted extruder in mm/s
00204 //  Overridden if EEPROM activated.
00205 #define EXT0_MAX_START_FEEDRATE 10
00206 // Acceleration in mm/s^2
00207 //  Overridden if EEPROM activated.
00208 #define EXT0_MAX_ACCELERATION 4000
00209 
00215 #define EXT0_HEAT_MANAGER 1
00216 
00217 #define EXT0_WATCHPERIOD 1
00218 
00229 #define EXT0_PID_INTEGRAL_DRIVE_MAX 140
00230 
00237 #define EXT0_PID_INTEGRAL_DRIVE_MIN 60
00238 
00239 #define EXT0_PID_P   24
00240 
00242 #define EXT0_PID_I   0.88
00243 
00244 #define EXT0_PID_D 80
00245 // maximum time the heater is can be switched on. Max = 255.  Overridden if EEPROM activated.
00246 #define EXT0_PID_MAX 255
00247 
00252 #define EXT0_ADVANCE_K 0.0f
00253 #define EXT0_ADVANCE_L 0.0f
00254 /* Motor steps to remove backlash for advance alorithm. These are the steps
00255 needed to move the motor cog in reverse direction until it hits the driving
00256 cog. Direct drive extruder need 0. */
00257 #define EXT0_ADVANCE_BACKLASH_STEPS 0
00258 
00260 #define EXT0_WAIT_RETRACT_TEMP          150
00261 
00264 #define EXT0_WAIT_RETRACT_UNITS         0
00265 
00269 #define EXT0_SELECT_COMMANDS "M117 Extruder 1"
00270 #define EXT0_DESELECT_COMMANDS ""
00271 
00272 #define EXT0_EXTRUDER_COOLER_PIN -1
00273 
00274 #define EXT0_EXTRUDER_COOLER_SPEED 255
00275 
00276 
00277 // =========================== Configuration for second extruder ========================
00278 #define EXT1_X_OFFSET 10
00279 #define EXT1_Y_OFFSET 0
00280 // for skeinforge 40 and later, steps to pull the plasic 1 mm inside the extruder, not out.  Overridden if EEPROM activated.
00281 #define EXT1_STEPS_PER_MM 373
00282 // What type of sensor is used?
00283 // 1 is 100k thermistor (Epcos B57560G0107F000 - RepRap-Fab.org and many other)
00284 // 2 is 200k thermistor
00285 // 3 is mendel-parts thermistor (EPCOS G550)
00286 // 4 is 10k thermistor
00287 // 5 is userdefined thermistor table 0
00288 // 6 is userdefined thermistor table 1
00289 // 7 is userdefined thermistor table 2
00290 // 8 is ATC Semitec 104GT-2
00291 // 50 is userdefined thermistor table 0 for PTC thermistors
00292 // 51 is userdefined thermistor table 0 for PTC thermistors
00293 // 52 is userdefined thermistor table 0 for PTC thermistors
00294 // 60 is AD8494, AD8495, AD8496 or AD8497 (5mV/degC and 1/4 the price of AD595 but only MSOT_08 package)
00295 // 97 Generic thermistor table 1
00296 // 98 Generic thermistor table 2
00297 // 99 Generic thermistor table 3
00298 // 100 is AD595
00299 // 101 is MAX6675
00300 #define EXT1_TEMPSENSOR_TYPE 3
00301 // Analog input pin for reading temperatures or pin enabling SS for MAX6675
00302 #define EXT1_TEMPSENSOR_PIN TEMP_2_PIN
00303 // Which pin enables the heater
00304 #define EXT1_HEATER_PIN HEATER_2_PIN
00305 #define EXT1_STEP_PIN E1_STEP_PIN
00306 #define EXT1_DIR_PIN E1_DIR_PIN
00307 // set to 0/1 for normal / inverse direction
00308 #define EXT1_INVERSE false
00309 #define EXT1_ENABLE_PIN E1_ENABLE_PIN
00310 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
00311 #define EXT1_ENABLE_ON false
00312 // The following speed settings are for skeinforge 40+ where e is the
00313 // length of filament pulled inside the heater. For repsnap or older
00314 // skeinforge use heigher values.
00315 //  Overridden if EEPROM activated.
00316 #define EXT1_MAX_FEEDRATE 25
00317 // Feedrate from halted extruder in mm/s
00318 //  Overridden if EEPROM activated.
00319 #define EXT1_MAX_START_FEEDRATE 12
00320 // Acceleration in mm/s^2
00321 //  Overridden if EEPROM activated.
00322 #define EXT1_MAX_ACCELERATION 10000
00323 
00328 #define EXT1_HEAT_MANAGER 1
00329 
00330 #define EXT1_WATCHPERIOD 1
00331 
00342 #define EXT1_PID_INTEGRAL_DRIVE_MAX 130
00343 
00350 #define EXT1_PID_INTEGRAL_DRIVE_MIN 60
00351 
00352 #define EXT1_PID_P   24
00353 
00355 #define EXT1_PID_I   0.88
00356 
00357 #define EXT1_PID_D 200
00358 // maximum time the heater is can be switched on. Max = 255.  Overridden if EEPROM activated.
00359 #define EXT1_PID_MAX 255
00360 
00365 #define EXT1_ADVANCE_K 0.0f
00366 #define EXT1_ADVANCE_L 0.0f
00367 /* Motor steps to remove backlash for advance alorithm. These are the steps
00368 needed to move the motor cog in reverse direction until it hits the driving
00369 cog. Direct drive extruder need 0. */
00370 #define EXT1_ADVANCE_BACKLASH_STEPS 0
00371 
00372 #define EXT1_WAIT_RETRACT_TEMP  150
00373 #define EXT1_WAIT_RETRACT_UNITS 0
00374 #define EXT1_SELECT_COMMANDS "M117 Extruder 2"
00375 #define EXT1_DESELECT_COMMANDS ""
00376 
00377 #define EXT1_EXTRUDER_COOLER_PIN -1
00378 
00379 #define EXT1_EXTRUDER_COOLER_SPEED 255
00380 
00383 #define RETRACT_DURING_HEATUP true
00384 
00389 #define PID_CONTROL_RANGE 20
00390 
00393 #define EXTRUDE_MAXLENGTH 100
00394 
00395 #define SKIP_M109_IF_WITHIN 2
00396 
00404 #define SCALE_PID_TO_MAX 0
00405 
00410 //#define TEMP_HYSTERESIS 5
00411 
00429 #define NUM_TEMPS_USERTHERMISTOR0 28
00430 #define USER_THERMISTORTABLE0  {\
00431   {1*4,864*8},{21*4,300*8},{25*4,290*8},{29*4,280*8},{33*4,270*8},{39*4,260*8},{46*4,250*8},{54*4,240*8},{64*4,230*8},{75*4,220*8},\
00432   {90*4,210*8},{107*4,200*8},{128*4,190*8},{154*4,180*8},{184*4,170*8},{221*4,160*8},{265*4,150*8},{316*4,140*8},{375*4,130*8},\
00433   {441*4,120*8},{513*4,110*8},{588*4,100*8},{734*4,80*8},{856*4,60*8},{938*4,40*8},{986*4,20*8},{1008*4,0*8},{1018*4,-20*8}     }
00434 
00436 #define NUM_TEMPS_USERTHERMISTOR1 0
00437 #define USER_THERMISTORTABLE1  {}
00438 
00439 #define NUM_TEMPS_USERTHERMISTOR2 0
00440 #define USER_THERMISTORTABLE2  {}
00441 
00464 //#define USE_GENERIC_THERMISTORTABLE_1
00465 
00466 /* Some examples for different thermistors:
00467 
00468 EPCOS B57560G104+ : R0 = 100000  T0 = 25  Beta = 4036
00469 EPCOS 100K Thermistor (B57560G1104F) :  R0 = 100000  T0 = 25  Beta = 4092
00470 ATC Semitec 104GT-2 : R0 = 100000  T0 = 25  Beta = 4267
00471 Honeywell 100K Thermistor (135-104LAG-J01)  : R0 = 100000  T0 = 25  Beta = 3974
00472 
00473 */
00474 
00476 #define GENERIC_THERM1_T0 25
00477 
00478 #define GENERIC_THERM1_R0 100000
00479 
00484 #define GENERIC_THERM1_BETA 4036
00485 
00486 #define GENERIC_THERM1_MIN_TEMP -20
00487 
00488 #define GENERIC_THERM1_MAX_TEMP 300
00489 #define GENERIC_THERM1_R1 0
00490 #define GENERIC_THERM1_R2 4700
00491 
00492 // The same for table 2 and 3 if needed
00493 
00494 //#define USE_GENERIC_THERMISTORTABLE_2
00495 #define GENERIC_THERM2_T0 170
00496 #define GENERIC_THERM2_R0 1042.7
00497 #define GENERIC_THERM2_BETA 4036
00498 #define GENERIC_THERM2_MIN_TEMP -20
00499 #define GENERIC_THERM2_MAX_TEMP 300
00500 #define GENERIC_THERM2_R1 0
00501 #define GENERIC_THERM2_R2 4700
00502 
00503 //#define USE_GENERIC_THERMISTORTABLE_3
00504 #define GENERIC_THERM3_T0 170
00505 #define GENERIC_THERM3_R0 1042.7
00506 #define GENERIC_THERM3_BETA 4036
00507 #define GENERIC_THERM3_MIN_TEMP -20
00508 #define GENERIC_THERM3_MAX_TEMP 300
00509 #define GENERIC_THERM3_R1 0
00510 #define GENERIC_THERM3_R2 4700
00511 
00513 #define GENERIC_THERM_VREF 5
00514 
00516 #define GENERIC_THERM_NUM_ENTRIES 33
00517 
00518 // uncomment the following line for MAX6675 support.
00519 //#define SUPPORT_MAX6675
00520 // uncomment the following line for MAX31855 support.
00521 //#define SUPPORT_MAX31855
00522 
00523 // ############# Heated bed configuration ########################
00524 
00526 #define HAVE_HEATED_BED true
00527 
00528 #define HEATED_BED_MAX_TEMP 115
00529 
00530 #define SKIP_M190_IF_WITHIN 3
00531 
00532 // Select type of your heated bed. It's the same as for EXT0_TEMPSENSOR_TYPE
00533 // set to 0 if you don't have a heated bed
00534 #define HEATED_BED_SENSOR_TYPE 1
00535 
00536 #define HEATED_BED_SENSOR_PIN TEMP_1_PIN
00537 
00538 #define HEATED_BED_HEATER_PIN HEATER_1_PIN
00539 // How often the temperature of the heated bed is set (msec)
00540 #define HEATED_BED_SET_INTERVAL 5000
00541 
00549 #define HEATED_BED_HEAT_MANAGER 1
00550 
00554 #define HEATED_BED_PID_INTEGRAL_DRIVE_MAX 255
00555 
00562 #define HEATED_BED_PID_INTEGRAL_DRIVE_MIN 80
00563 
00564 #define HEATED_BED_PID_PGAIN   196
00565 
00566 #define HEATED_BED_PID_IGAIN   33.02
00567 
00568 #define HEATED_BED_PID_DGAIN 290
00569 // maximum time the heater can be switched on. Max = 255.  Overridden if EEPROM activated.
00570 #define HEATED_BED_PID_MAX 255
00571 
00572 // When temperature exceeds max temp, your heater will be switched off.
00573 // This feature exists to protect your hotend from overheating accidentally, but *NOT* from thermistor short/failure!
00574 #define MAXTEMP 260
00575 
00577 #define MIN_DEFECT_TEMPERATURE -10
00578 #define MAX_DEFECT_TEMPERATURE 300
00579 
00580 
00581 // ##########################################################################################
00582 // ##                            Endstop configuration                                     ##
00583 // ##########################################################################################
00584 
00585 /* By default all endstops are pulled up to HIGH. You need a pullup if you
00586 use a mechanical endstop connected with GND. Set value to false for no pullup
00587 on this endstop.
00588 */
00589 #define ENDSTOP_PULLUP_X_MIN false
00590 #define ENDSTOP_PULLUP_Y_MIN false
00591 #define ENDSTOP_PULLUP_Z_MIN false
00592 #define ENDSTOP_PULLUP_X_MAX true
00593 #define ENDSTOP_PULLUP_Y_MAX true
00594 #define ENDSTOP_PULLUP_Z_MAX false
00595 
00596 //set to true to invert the logic of the endstops
00597 #define ENDSTOP_X_MIN_INVERTING true
00598 #define ENDSTOP_Y_MIN_INVERTING true
00599 #define ENDSTOP_Z_MIN_INVERTING true
00600 #define ENDSTOP_X_MAX_INVERTING false
00601 #define ENDSTOP_Y_MAX_INVERTING false
00602 #define ENDSTOP_Z_MAX_INVERTING true
00603 
00604 // Set the values true where you have a hardware endstop. The Pin number is taken from pins.h.
00605 
00606 #define MIN_HARDWARE_ENDSTOP_X true
00607 #define MIN_HARDWARE_ENDSTOP_Y true
00608 #define MIN_HARDWARE_ENDSTOP_Z false
00609 #define MAX_HARDWARE_ENDSTOP_X false
00610 #define MAX_HARDWARE_ENDSTOP_Y false
00611 #define MAX_HARDWARE_ENDSTOP_Z true
00612 
00613 //If your axes are only moving in one direction, make sure the endstops are connected properly.
00614 //If your axes move in one direction ONLY when the endstops are triggered, set ENDSTOPS_INVERTING to true here
00615 
00616 
00617 
00619 
00620 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
00621 #define X_ENABLE_ON 0
00622 #define Y_ENABLE_ON 0
00623 #define Z_ENABLE_ON 0
00624 
00625 // Disables axis when it's not being used.
00626 #define DISABLE_X false
00627 #define DISABLE_Y false
00628 #define DISABLE_Z false
00629 #define DISABLE_E false
00630 
00631 // Inverting axis direction
00632 #define INVERT_X_DIR true
00633 #define INVERT_Y_DIR true
00634 #define INVERT_Z_DIR true
00635 
00637 // Sets direction of endstops when homing; 1=MAX, -1=MIN
00638 #define X_HOME_DIR -1
00639 #define Y_HOME_DIR -1
00640 #define Z_HOME_DIR 1
00641 
00642 // Delta robot radius endstop
00643 #define max_software_endstop_r true
00644 
00645 //If true, axis won't move to coordinates less than zero.
00646 #define min_software_endstop_x false
00647 #define min_software_endstop_y false
00648 #define min_software_endstop_z false
00649 
00650 //If true, axis won't move to coordinates greater than the defined lengths below.
00651 #define max_software_endstop_x true
00652 #define max_software_endstop_y true
00653 #define max_software_endstop_z false
00654 
00655 // If during homing the endstop is reached, ho many mm should the printer move back for the second try
00656 #define ENDSTOP_X_BACK_MOVE 5
00657 #define ENDSTOP_Y_BACK_MOVE 5
00658 #define ENDSTOP_Z_BACK_MOVE 2
00659 
00660 // For higher precision you can reduce the speed for the second test on the endstop
00661 // during homing operation. The homing speed is divided by the value. 1 = same speed, 2 = half speed
00662 #define ENDSTOP_X_RETEST_REDUCTION_FACTOR 2
00663 #define ENDSTOP_Y_RETEST_REDUCTION_FACTOR 2
00664 #define ENDSTOP_Z_RETEST_REDUCTION_FACTOR 2
00665 
00666 // When you have several endstops in one circuit you need to disable it after homing by moving a
00667 // small amount back. This is also the case with H-belt systems.
00668 #define ENDSTOP_X_BACK_ON_HOME 1
00669 #define ENDSTOP_Y_BACK_ON_HOME 1
00670 #define ENDSTOP_Z_BACK_ON_HOME 5
00671 
00672 // You can disable endstop checking for print moves. This is needed, if you get sometimes
00673 // false signals from your endstops. If your endstops don't give false signals, you
00674 // can set it on for safety.
00675 #define ALWAYS_CHECK_ENDSTOPS true
00676 
00677 // maximum positions in mm - only fixed numbers!
00678 // For delta robot Z_MAX_LENGTH is the maximum travel of the towers and should be set to the distance between the hotend
00679 // and the platform when the printer is at its home position.
00680 // If EEPROM is enabled these values will be overidden with the values in the EEPROM
00681 #define X_MAX_LENGTH 165
00682 #define Y_MAX_LENGTH 175
00683 #define Z_MAX_LENGTH 116.820
00684 
00685 // Coordinates for the minimum axis. Can also be negative if you want to have the bed start at 0 and the printer can go to the left side
00686 // of the bed. Maximum coordinate is given by adding the above X_MAX_LENGTH values.
00687 #define X_MIN_POS 0
00688 #define Y_MIN_POS 0
00689 #define Z_MIN_POS 0
00690 
00691 // ##########################################################################################
00692 // ##                           Movement settings                                          ##
00693 // ##########################################################################################
00694 
00695 // Microstep setting (Only functional when stepper driver microstep pins are connected to MCU. Currently only works for RAMBO boards
00696 #define MICROSTEP_MODES {8,8,8,8,8} // [1,2,4,8,16]
00697 
00698 // Motor Current setting (Only functional when motor driver current ref pins are connected to a digital trimpot on supported boards)
00699 #if MOTHERBOARD==301
00700 #define MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
00701 #elif MOTHERBOARD==12
00702 #define MOTOR_CURRENT {35713,35713,35713,35713,35713} // Values 0-65535 (3D Master 35713 = ~1A)
00703 #endif
00704 
00707 #define DELTA_SEGMENTS_PER_SECOND_PRINT 180 // Move accurate setting for print moves
00708 #define DELTA_SEGMENTS_PER_SECOND_MOVE 70 // Less accurate setting for other moves
00709 
00710 // Delta settings
00711 #if DRIVE_SYSTEM==3
00712 
00714 #define DELTA_DIAGONAL_ROD 345 // mm
00715 
00716 
00717 /*  =========== Parameter essential for delta calibration ===================
00718 
00719             C, Y-Axis
00720             |                        |___| CARRIAGE_HORIZONTAL_OFFSET
00721             |                        |   \
00722             |_________ X-axis        |    \
00723            / \                       |     \  DELTA_DIAGONAL_ROD
00724           /   \                             \
00725          /     \                             \    Carriage is at printer center!
00726          A      B                             \_____/
00727                                               |--| END_EFFECTOR_HORIZONTAL_OFFSET
00728                                          |----| DELTA_RADIUS
00729                                      |-----------| PRINTER_RADIUS
00730 
00731     Column angles are measured from X-axis counterclockwise
00732     "Standard" positions: alpha_A = 210, alpha_B = 330, alpha_C = 90
00733 */
00734 
00736 #define DELTA_ALPHA_A 210
00737 #define DELTA_ALPHA_B 330
00738 #define DELTA_ALPHA_C 90
00739 
00741 #define DELTA_RADIUS_CORRECTION_A 0
00742 #define DELTA_RADIUS_CORRECTION_B 0
00743 #define DELTA_RADIUS_CORRECTION_C 0
00744 
00747 #define END_EFFECTOR_HORIZONTAL_OFFSET 33
00748 
00751 #define CARRIAGE_HORIZONTAL_OFFSET 18
00752 
00755 #define PRINTER_RADIUS 175
00756 
00759 #define DELTA_RADIUS (PRINTER_RADIUS-END_EFFECTOR_HORIZONTAL_OFFSET-CARRIAGE_HORIZONTAL_OFFSET)
00760 /* ========== END Delta calibation data ==============*/
00761 
00765 #define DELTA_HOME_ON_POWER false
00766 
00769 #define DELTA_X_ENDSTOP_OFFSET_STEPS 0
00770 #define DELTA_Y_ENDSTOP_OFFSET_STEPS 0
00771 #define DELTA_Z_ENDSTOP_OFFSET_STEPS 0
00772 
00773 
00776 #define SOFTWARE_LEVELING
00777 
00778 #endif
00779 #if DRIVE_SYSTEM == 4 // ========== Tuga special settings =============
00780 /* Radius of the long arm in mm. */
00781 #define DELTA_DIAGONAL_ROD 240
00782 #endif
00783 
00788 #define MAX_DELTA_SEGMENTS_PER_LINE 22
00789 
00795 #define STEPPER_INACTIVE_TIME 360
00796 
00802 #define MAX_INACTIVE_TIME 0L
00803 
00807 #define MAX_FEEDRATE_X 200
00808 #define MAX_FEEDRATE_Y 200
00809 #define MAX_FEEDRATE_Z 5
00810 
00812 #define HOMING_FEEDRATE_X 80
00813 #define HOMING_FEEDRATE_Y 80
00814 #define HOMING_FEEDRATE_Z 3
00815 
00817 #define HOMING_ORDER HOME_ORDER_ZXY
00818 /* If you have a backlash in both z-directions, you can use this. For most printer, the bed will be pushed down by it's
00819 own weight, so this is nearly never needed. */
00820 #define ENABLE_BACKLASH_COMPENSATION false
00821 #define Z_BACKLASH 0
00822 #define X_BACKLASH 0
00823 #define Y_BACKLASH 0
00824 
00826 #define RAMP_ACCELERATION 1
00827 
00833 #define STEPPER_HIGH_DELAY 0
00834 
00841 #define STEP_DOUBLER_FREQUENCY 12000
00842 
00845 #define ALLOW_QUADSTEPPING true
00846 
00850 #define DOUBLE_STEP_DELAY 1 // time in microseconds
00851 
00856 #define MAX_HALFSTEP_INTERVAL 1999
00857 
00859 
00863 #define MAX_ACCELERATION_UNITS_PER_SQ_SECOND_X 1500
00864 #define MAX_ACCELERATION_UNITS_PER_SQ_SECOND_Y 1500
00865 #define MAX_ACCELERATION_UNITS_PER_SQ_SECOND_Z 100
00866 
00868 #define MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_X 3000
00869 #define MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_Y 3000
00870 #define MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_Z 100
00871 
00895 #define MAX_JERK 20.0
00896 #define MAX_ZJERK 0.3
00897 
00903 #define MOVE_CACHE_SIZE 16
00904 
00911 #define MOVE_CACHE_LOW 10
00912 
00917 #define LOW_TICKS_PER_MOVE 250000
00918 
00919 // ##########################################################################################
00920 // ##                           Extruder control                                           ##
00921 // ##########################################################################################
00922 
00923 
00924 /* \brief Minimum temperature for extruder operation
00925 
00926 This is a saftey value. If your extruder temperature is below this temperature, no
00927 extruder steps are executed. This is to prevent your extruder to move unless the fiament
00928 is at least molten. After havong some complains that the extruder does not work, I leave
00929 it 0 as default.
00930 */
00931 
00932 #define MIN_EXTRUDER_TEMP 160
00933 
00940 #define USE_ADVANCE
00941 
00946 #define ENABLE_QUADRATIC_ADVANCE
00947 
00948 
00949 // ##########################################################################################
00950 // ##                           Communication configuration                                ##
00951 // ##########################################################################################
00952 
00954 
00965 //#define BAUDRATE 76800
00966 #define BAUDRATE 115200
00967 //#define BAUDRATE 250000
00968 
00973 #define ENABLE_POWER_ON_STARTUP
00974 
00979 #define POWER_INVERTING false
00980 
00984 #define KILL_METHOD 1
00985 
00991 #define GCODE_BUFFER_SIZE 2
00992 
00993 #define ACK_WITH_LINENUMBER
00994 
00997 #define WAITING_IDENTIFIER "wait"
00998 
01008 #define ECHO_ON_EXECUTE
01009 
01021 #define EEPROM_MODE 1
01022 
01023 
01024 /**************** duplicate motor driver ***************
01025 
01026 If you have an unused extruder stepper free, you could use it to drive the second z motor
01027 instead of driving both with a single stepper. The same works for the other axis if needed.
01028 */
01029 
01030 #define FEATURE_TWO_XSTEPPER false
01031 #define X2_STEP_PIN   E1_STEP_PIN
01032 #define X2_DIR_PIN    E1_DIR_PIN
01033 #define X2_ENABLE_PIN E1_ENABLE_PIN
01034 
01035 #define FEATURE_TWO_YSTEPPER false
01036 #define Y2_STEP_PIN   E1_STEP_PIN
01037 #define Y2_DIR_PIN    E1_DIR_PIN
01038 #define Y2_ENABLE_PIN E1_ENABLE_PIN
01039 
01040 #define FEATURE_TWO_ZSTEPPER false
01041 #define Z2_STEP_PIN   E1_STEP_PIN
01042 #define Z2_DIR_PIN    E1_DIR_PIN
01043 #define Z2_ENABLE_PIN E1_ENABLE_PIN
01044 
01045 /* Ditto printing allows 2 extruders to do the same action. This effectively allows
01046 to print an object two times at the speed of one. Works only with dual extruder setup.
01047 */
01048 #define FEATURE_DITTO_PRINTING false
01049 
01050 /* Servos
01051 
01052 If you need to control servos, enable this feature. You can control up to 4 servos.
01053 Control the servos with
01054 M340 P<servoId> S<pulseInUS>
01055 servoID = 0..3
01056 Servos are controlled by a pulse width normally between 500 and 2500 with 1500ms in center position. 0 turns servo off.
01057 
01058 WARNING: Servos can draw a considerable amount of current. Make sure your system can handle this or you may risk your hardware!
01059 */
01060 
01061 #define FEATURE_SERVO false
01062 // Servo pins on a RAMPS board are 11,6,5,4
01063 #define SERVO0_PIN 11
01064 #define SERVO1_PIN 6
01065 #define SERVO2_PIN 5
01066 #define SERVO3_PIN 4
01067 
01068 /* A watchdog resets the printer, if a signal is not send within predifined time limits. That way we can be sure that the board
01069 is always running and is not hung up for some unknown reason. */
01070 #define FEATURE_WATCHDOG true
01071 
01072 /* Z-Probing */
01073 
01074 #define FEATURE_Z_PROBE true
01075 #define Z_PROBE_PIN 63
01076 #define Z_PROBE_PULLUP true
01077 #define Z_PROBE_ON_HIGH true
01078 #define Z_PROBE_X_OFFSET 0
01079 #define Z_PROBE_Y_OFFSET 0
01080 // Waits for a signal to start. Valid signals are probe hit and ok button.
01081 // This is needful if you have the probe trigger by hand.
01082 #define Z_PROBE_WAIT_BEFORE_TEST true
01083 
01084 #define Z_PROBE_SPEED 2
01085 #define Z_PROBE_XY_SPEED 150
01086 
01087 #define Z_PROBE_HEIGHT 39.91
01088 
01089 #define Z_PROBE_START_SCRIPT ""
01090 #define Z_PROBE_FINISHED_SCRIPT ""
01091 
01092 /* Autoleveling allows it to z-probe 3 points to compute the inclination and compensates the error for the print.
01093    This feature requires a working z-probe and you should have z-endstop at the top not at the bottom.
01094    The same 3 points are used for the G29 command.
01095 */
01096 #define FEATURE_AUTOLEVEL true
01097 #define Z_PROBE_X1 100
01098 #define Z_PROBE_Y1 20
01099 #define Z_PROBE_X2 160
01100 #define Z_PROBE_Y2 170
01101 #define Z_PROBE_X3 20
01102 #define Z_PROBE_Y3 170
01103 
01104 /* Define a pin to tuen light on/off */
01105 #define CASE_LIGHTS_PIN -1
01106 
01108 #ifndef SDSUPPORT  // Some boards have sd support on board. These define the values already in pins.h
01109 #define SDSUPPORT false
01110 // Uncomment to enable or change card detection pin. With card detection the card is mounted on insertion.
01111 #define SDCARDDETECT -1
01112 // Change to true if you get a inserted message on removal.
01113 #define SDCARDDETECTINVERTED false
01114 #endif
01115 
01116 #define SD_EXTENDED_DIR true
01117 // If you want support for G2/G3 arc commands set to true, otherwise false.
01118 #define ARC_SUPPORT true
01119 
01122 #define FEATURE_MEMORY_POSITION true
01123 
01125 #define FEATURE_CHECKSUM_FORCED false
01126 
01130 #define FEATURE_FAN_CONTROL true
01131 
01152 #define FEATURE_CONTROLLER 2
01153 
01164 #define UI_LANGUAGE 1
01165 
01166 // This is line 2 of the status display at startup. Change to your like.
01167 #define UI_PRINTER_NAME "Ordbot"
01168 #define UI_PRINTER_COMPANY "RepRapDiscount"
01169 
01170 
01172 #define UI_ANIMATION true
01173 
01175 #define UI_PAGES_DURATION 4000
01176 
01178 #define UI_START_SCREEN_DELAY 1000
01179 
01181 #define UI_DISABLE_AUTO_PAGESWITCH true
01182 
01184 #define UI_AUTORETURN_TO_MENU_AFTER 30000
01185 
01186 #define FEATURE_UI_KEYS 0
01187 
01188 /* Normally cou want a next/previous actions with every click of your encoder.
01189 Unfotunately, the encoder have a different count of phase changes between clicks.
01190 Select an encoder speed from 0 = fastest to 2 = slowest that results in one menu move per click.
01191 */
01192 #define UI_ENCODER_SPEED 1
01193 
01194 /* There are 2 ways to change positions. You can move by increments of 1/0.1 mm resulting in more menu entries
01195 and requiring many turns on your encode. The alternative is to enable speed dependent positioning. It will change
01196 the move distance depending on the speed you turn the encoder. That way you can move very fast and very slow in the
01197 same setting.
01198 
01199 */
01200 #define UI_SPEEDDEPENDENT_POSITIONING true
01201 
01203 #define UI_KEY_BOUNCETIME 10
01204 
01206 #define UI_KEY_FIRST_REPEAT 500
01207 
01208 #define UI_KEY_REDUCE_REPEAT 50
01209 
01210 #define UI_KEY_MIN_REPEAT 50
01211 
01212 #define FEATURE_BEEPER true
01213 
01219 #define BEEPER_SHORT_SEQUENCE 2,2
01220 #define BEEPER_LONG_SEQUENCE 8,8
01221 
01222 // ###############################################################################
01223 // ##                         Values for menu settings                          ##
01224 // ###############################################################################
01225 
01226 // Values used for preheat
01227 #define UI_SET_PRESET_HEATED_BED_TEMP_PLA 60
01228 #define UI_SET_PRESET_EXTRUDER_TEMP_PLA   180
01229 #define UI_SET_PRESET_HEATED_BED_TEMP_ABS 110
01230 #define UI_SET_PRESET_EXTRUDER_TEMP_ABS   240
01231 // Extreme values
01232 #define UI_SET_MIN_HEATED_BED_TEMP  55
01233 #define UI_SET_MAX_HEATED_BED_TEMP 120
01234 #define UI_SET_MIN_EXTRUDER_TEMP   160
01235 #define UI_SET_MAX_EXTRUDER_TEMP   270
01236 #define UI_SET_EXTRUDER_FEEDRATE 2 // mm/sec
01237 #define UI_SET_EXTRUDER_RETRACT_DISTANCE 3 // mm
01238 
01239 #endif
01240 
 All Data Structures Namespaces Files Functions Variables Typedefs Friends Defines