Problem mit auto bed leveling > Y Achse fährt nicht zum Endschalter >>Hilfeee<<

Elton100

Erfahrener Benutzer
#1
Problem mit auto bed leveling > Y Achse fährt nicht zum Endschalter >>Hilfeee<<

Hallo,

ich habe mir nen kapazitiven sensor mit spannungsteiler an den drucker montiert. ist ein npn schliesser. In Marlin soweit alles aktiviert. Das problem: Das Bett fährt in Y richtung nur noch nach vorne aber kein stück nach hinten in richtung endstopschalter (min.). Weder beim homen, noch manuell lässt sich das bett nach hinten fahren, seitdem ich das Auto bed leveling aktiviert habe.

Das ABL funktioniert auch noch nicht, obwohl es doch aktiviert ist. Ich bin jetzt schon den ganzen tag dran, aber bekomme es einfach nicht hin.

Weiß jemand rat? Hier die configuration.h:

Code:
#ifndef*CONFIGURATION_H
#define*CONFIGURATION_H

#include*"boards.h"

//*This*configuration*file*contains*the*basic*settings.
//*Advanced*settings*can*be*found*in*Configuration_adv.h
//*BASIC*SETTINGS:*select*your*board*type,*temperature*sensor*type,*axis*scaling,*and*endstop*configuration

//===========================================================================
//=============================*DELTA*Printer*===============================
//===========================================================================
//*For*a*Delta*printer*replace*the*configuration*files*with*the*files*in*the
//*example_configurations/delta*directory.
//

//===========================================================================
//=============================*SCARA*Printer*===============================
//===========================================================================
//*For*a*Delta*printer*replace*the*configuration*files*with*the*files*in*the
//*example_configurations/SCARA*directory.
//

//*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_VERSION*"1.0.2"

#define*STRING_VERSION_CONFIG_H*__DATE__*" " __TIME__ // build date and time
#define*STRING_CONFIG_H_AUTHOR*"(none, default config)" // Who made the changes.

//*SERIAL_PORT*selects*which*serial*port*should*be*used*for*communication*with*the*host.
//*This*allows*the*connection*of*wireless*adapters*(for*instance)*to*non-default*port*pins.
//*Serial*port*0*is*still*used*by*the*Arduino*bootloader*regardless*of*this*setting.
#define*SERIAL_PORT*0

//*This*determines*the*communication*speed*of*the*printer
#define*BAUDRATE*115200

//*This*enables*the*serial*port*associated*to*the*Bluetooth*interface
//#define*BTENABLED**************//*Enable*BT*interface*on*AT90USB*devices

//*The*following*define*selects*which*electronics*board*you*have.
//*Please*choose*the*name*from*boards.h*that*matches*your*setup
#ifndef*MOTHERBOARD
**#define*MOTHERBOARD*BOARD_RAMPS_13_EFB
#endif

//*Define*this*to*set*a*custom*name*for*your*generic*Mendel,
//*#define*CUSTOM_MENDEL_NAME*"This*Mendel"

//*Define*this*to*set*a*unique*identifier*for*this*printer,*(Used*by*some*programs*to*differentiate*between*machines)
//*You*can*use*an*online*service*to*generate*a*random*UUID.*(eg*http://www.uuidgenerator.net/version4)
//*#define*MACHINE_UUID*"00000000-0000-0000-0000-000000000000"

//*This*defines*the*number*of*extruders
#define*EXTRUDERS*1

////*The*following*define*selects*which*power*supply*you*have.*Please*choose*the*one*that*matches*your*setup
//*1*=*ATX
//*2*=*X-Box*360*203Watts*(the*blue*wire*connected*to*PS_ON*and*the*red*wire*to*VCC)

#define*POWER_SUPPLY*1

//*Define*this*to*have*the*electronics*keep*the*power*supply*off*on*startup.*If*you*don't*know*what*this*is*leave*it.
//*#define*PS_DEFAULT_OFF

//===========================================================================
//=============================Thermal*Settings**============================
//===========================================================================
//
//--NORMAL*IS*4.7kohm*PULLUP!--*1kohm*pullup*can*be*used*on*hotend*sensor,*using*correct*resistor*and*table
//
////*Temperature*sensor*settings:
//*-2*is*thermocouple*with*MAX6675*(only*for*sensor*0)
//*-1*is*thermocouple*with*AD595
//*0*is*not*used
//*1*is*100k*thermistor*-*best*choice*for*EPCOS*100k*(4.7k*pullup)
//*2*is*200k*thermistor*-*ATC*Semitec*204GT-2*(4.7k*pullup)
//*3*is*Mendel-parts*thermistor*(4.7k*pullup)
//*4*is*10k*thermistor*!!*do*not*use*it*for*a*hotend.*It*gives*bad*resolution*at*high*temp.*!!
//*5*is*100K*thermistor*-*ATC*Semitec*104GT-2*(Used*in*ParCan*&*J-Head)*(4.7k*pullup)
//*6*is*100k*EPCOS*-*Not*as*accurate*as*table*1*(created*using*a*fluke*thermocouple)*(4.7k*pullup)
//*7*is*100k*Honeywell*thermistor*135-104LAG-J01*(4.7k*pullup)
//*71*is*100k*Honeywell*thermistor*135-104LAF-J01*(4.7k*pullup)
//*8*is*100k*0603*SMD*Vishay*NTCS0603E3104FXT*(4.7k*pullup)
//*9*is*100k*GE*Sensing*AL03006-58.2K-97-G1*(4.7k*pullup)
//*10*is*100k*RS*thermistor*198-961*(4.7k*pullup)
//*11*is*100k*beta*3950*1%*thermistor*(4.7k*pullup)
//*12*is*100k*0603*SMD*Vishay*NTCS0603E3104FXT*(4.7k*pullup)*(calibrated*for*Makibox*hot*bed)
//*13*is*100k*Hisens*3950**1%*up*to*300°C*for*hotend*"Simple*ONE*"*&*"Hotend*"All*In*ONE"*
//*20*is*the*PT100*circuit*found*in*the*Ultimainboard*V2.x
//*60*is*100k*Maker's*Tool*Works*Kapton*Bed*Thermistor*beta=3950
//
//****1k*ohm*pullup*tables*-*This*is*not*normal,*you*would*have*to*have*changed*out*your*4.7k*for*1k
//**************************(but*gives*greater*accuracy*and*more*stable*PID)
//*51*is*100k*thermistor*-*EPCOS*(1k*pullup)
//*52*is*200k*thermistor*-*ATC*Semitec*204GT-2*(1k*pullup)
//*55*is*100k*thermistor*-*ATC*Semitec*104GT-2*(Used*in*ParCan*&*J-Head)*(1k*pullup)
//
//*1047*is*Pt1000*with*4k7*pullup
//*1010*is*Pt1000*with*1k*pullup*(non*standard)
//*147*is*Pt100*with*4k7*pullup
//*110*is*Pt100*with*1k*pullup*(non*standard)

#define*TEMP_SENSOR_0*11
#define*TEMP_SENSOR_1*-1
#define*TEMP_SENSOR_2*0
#define*TEMP_SENSOR_BED*5

//*This*makes*temp*sensor*1*a*redundant*sensor*for*sensor*0.*If*the*temperatures*difference*between*these*sensors*is*to*high*the*print*will*be*aborted.
//#define*TEMP_SENSOR_1_AS_REDUNDANT
#define*MAX_REDUNDANT_TEMP_SENSOR_DIFF*10

//*Actual*temperature*must*be*close*to*target*for*this*long*before*M109*returns*success
#define*TEMP_RESIDENCY_TIME*10**// (seconds)
#define*TEMP_HYSTERESIS*3*******// (degC) range of +/- temperatures considered "close" to the target one
#define*TEMP_WINDOW*****1*******// (degC) Window around target to start the residency timer x degC early.

//*The*minimal*temperature*defines*the*temperature*below*which*the*heater*will*not*be*enabled*It*is*used
//*to*check*that*the*wiring*to*the*thermistor*is*not*broken.
//*Otherwise*this*would*lead*to*the*heater*being*powered*on*all*the*time.
#define*HEATER_0_MINTEMP*5
#define*HEATER_1_MINTEMP*5
#define*HEATER_2_MINTEMP*5
#define*BED_MINTEMP*5

//*When*temperature*exceeds*max*temp,*your*heater*will*be*switched*off.
//*This*feature*exists*to*protect*your*hotend*from*overheating*accidentally,*but**NOT**from*thermistor*short/failure!
//*You*should*use*MINTEMP*for*thermistor*short/failure*protection.
#define*HEATER_0_MAXTEMP*295
#define*HEATER_1_MAXTEMP*295
#define*HEATER_2_MAXTEMP*295
#define*BED_MAXTEMP*150

//*If*your*bed*has*low*resistance*e.g.*.6*ohm*and*throws*the*fuse*you*can*duty*cycle*it*to*reduce*the
//*average*current.*The*value*should*be*an*integer*and*the*heat*bed*will*be*turned*on*for*1*interval*of
//*HEATER_BED_DUTY_CYCLE_DIVIDER*intervals.
//#define*HEATER_BED_DUTY_CYCLE_DIVIDER*4

//*If*you*want*the*M105*heater*power*reported*in*watts,*define*the*BED_WATTS,*and*(shared*for*all*extruders)*EXTRUDER_WATTS
//#define*EXTRUDER_WATTS*(12.0*12.0/6.7)*//**P=I^2/R
//#define*BED_WATTS*(12.0*12.0/1.1)******//*P=I^2/R

//*PID*settings:
//*Comment*the*following*line*to*disable*PID*and*enable*bang-bang.
#define*PIDTEMP
#define*BANG_MAX*180*// limits current to nozzle while in bang-bang mode; 255=full current
#define*PID_MAX*BANG_MAX*// limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
#ifdef*PIDTEMP
**//#define PID_DEBUG // Sends debug data to the serial port.
**//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
**//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
**#define*PID_FUNCTIONAL_RANGE*10*// If the temperature difference between the target temperature and the actual temperature
**********************************// is more then PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
**#define*PID_INTEGRAL_DRIVE_MAX*PID_MAX**//limit for the integral term
**#define*K1*0.95*//smoothing factor within the PID
**#define*PID_dT*((OVERSAMPLENR***10.0)/(F_CPU*/*64.0*/*256.0))*//sampling period of the temperature routine

//*If*you*are*using*a*pre-configured*hotend*then*you*can*use*one*of*the*value*sets*by*uncommenting*it
//*Ultimaker
****#define**DEFAULT_Kp*22.2
****#define**DEFAULT_Ki*1.08
****#define**DEFAULT_Kd*114

//*MakerGear
//****#define**DEFAULT_Kp*7.0
//****#define**DEFAULT_Ki*0.1
//****#define**DEFAULT_Kd*12

//*Mendel*Parts*V9*on*12V
//****#define**DEFAULT_Kp*63.0
//****#define**DEFAULT_Ki*2.25
//****#define**DEFAULT_Kd*440
#endif*// PIDTEMP

//*Bed*Temperature*Control
//*Select*PID*or*bang-bang*with*PIDTEMPBED.*If*bang-bang,*BED_LIMIT_SWITCHING*will*enable*hysteresis
//
//*Uncomment*this*to*enable*PID*on*the*bed.*It*uses*the*same*frequency*PWM*as*the*extruder.
//*If*your*PID_dT*above*is*the*default,*and*correct*for*your*hardware/configuration,*that*means*7.689Hz,
//*which*is*fine*for*driving*a*square*wave*into*a*resistive*load*and*does*not*significantly*impact*you*FET*heating.
//*This*also*works*fine*on*a*Fotek*SSR-10DA*Solid*State*Relay*into*a*250W*heater.
//*If*your*configuration*is*significantly*different*than*this*and*you*don't*understand*the*issues*involved,*you*probably
//*shouldn't*use*bed*PID*until*someone*else*verifies*your*hardware*works.
//*If*this*is*enabled,*find*your*own*PID*constants*below.
//#define*PIDTEMPBED
//
//#define*BED_LIMIT_SWITCHING

//*This*sets*the*max*power*delivered*to*the*bed,*and*replaces*the*HEATER_BED_DUTY_CYCLE_DIVIDER*option.
//*all*forms*of*bed*control*obey*this*(PID,*bang-bang,*bang-bang*with*hysteresis)
//*setting*this*to*anything*other*than*255*enables*a*form*of*PWM*to*the*bed*just*like*HEATER_BED_DUTY_CYCLE_DIVIDER*did,
//*so*you*shouldn't*use*it*unless*you*are*OK*with*PWM*on*your*bed.**(see*the*comment*on*enabling*PIDTEMPBED)
#define*MAX_BED_POWER*255*// limits duty cycle to bed; 255=full current

#ifdef*PIDTEMPBED
//120v*250W*silicone*heater*into*4mm*borosilicate*(MendelMax*1.5+)
//from*FOPDT*model*-*kp=.39*Tp=405*Tdead=66,*Tc*set*to*79.2,*aggressive*factor*of*.15*(vs*.1,*1,*10)
****#define**DEFAULT_bedKp*10.00
****#define**DEFAULT_bedKi*.023
****#define**DEFAULT_bedKd*305.4

//120v*250W*silicone*heater*into*4mm*borosilicate*(MendelMax*1.5+)
//from*pidautotune
//****#define**DEFAULT_bedKp*97.1
//****#define**DEFAULT_bedKi*1.41
//****#define**DEFAULT_bedKd*1675.16

//*FIND*YOUR*OWN:*"M303*E-1*C8*S90"*to*run*autotune*on*the*bed*at*90*degreesC*for*8*cycles.
#endif*// PIDTEMPBED



//this*prevents*dangerous*Extruder*moves,*i.e.*if*the*temperature*is*under*the*limit
//can*be*software-disabled*for*whatever*purposes*by
#define*PREVENT_DANGEROUS_EXTRUDE
//if*PREVENT_DANGEROUS_EXTRUDE*is*on,*you*can*still*disable*(uncomment)*very*long*bits*of*extrusion*separately.
#define*PREVENT_LENGTHY_EXTRUDE

#define*EXTRUDE_MINTEMP*170
#define*EXTRUDE_MAXLENGTH*(X_MAX_LENGTH+Y_MAX_LENGTH)*//prevent extrusion of very large distances.

/*==================*Thermal*Runaway*Protection*==============================
This*is*a*feature*to*protect*your*printer*from*burn*up*in*flames*if*it*has
a*thermistor*coming*off*place*(this*happened*to*a*friend*of*mine*recently*and
motivated*me*writing*this*feature).

The*issue:*If*a*thermistor*come*off,*it*will*read*a*lower*temperature*than*actual.
The*system*will*turn*the*heater*on*forever,*burning*up*the*filament*and*anything
else*around.

After*the*temperature*reaches*the*target*for*the*first*time,*this*feature*will*
start*measuring*for*how*long*the*current*temperature*stays*below*the*target*
minus*_HYSTERESIS*(set_temperature*-*THERMAL_RUNAWAY_PROTECTION_HYSTERESIS).

If*it*stays*longer*than*_PERIOD,*it*means*the*thermistor*temperature
cannot*catch*up*with*the*target,*so*something**may*be**wrong.*Then,*to*be*on*the
safe*side,*the*system*will*he*halt.

Bear*in*mind*the*count*down*will*just*start*AFTER*the*first*time*the*
thermistor*temperature*is*over*the*target,*so*you*will*have*no*problem*if
your*extruder*heater*takes*2*minutes*to*hit*the*target*on*heating.

*/
//*If*you*want*to*enable*this*feature*for*all*your*extruder*heaters,
//*uncomment*the*2*defines*below:

//*Parameters*for*all*extruder*heaters
//#define*THERMAL_RUNAWAY_PROTECTION_PERIOD*40*//in*seconds
//#define*THERMAL_RUNAWAY_PROTECTION_HYSTERESIS*4*//*in*degree*Celsius

//*If*you*want*to*enable*this*feature*for*your*bed*heater,
//*uncomment*the*2*defines*below:

//*Parameters*for*the*bed*heater
//#define*THERMAL_RUNAWAY_PROTECTION_BED_PERIOD*20*//in*seconds
//#define*THERMAL_RUNAWAY_PROTECTION_BED_HYSTERESIS*2*//*in*degree*Celsius
//===========================================================================


//===========================================================================
//=============================Mechanical*Settings===========================
//===========================================================================

//*Uncomment*the*following*line*to*enable*CoreXY*kinematics
//#define*COREXY

//*coarse*Endstop*Settings
//#define*ENDSTOPPULLUPS*//*Comment*this*out*(using*//*at*the*start*of*the*line)*to*disable*the*endstop*pullup*resistors

#ifndef*ENDSTOPPULLUPS
**// fine endstop settings: Individual pullups. will be ignored if ENDSTOPPULLUPS is defined
**// #define ENDSTOPPULLUP_XMAX
**// #define ENDSTOPPULLUP_YMAX
**// #define ENDSTOPPULLUP_ZMAX
**// #define ENDSTOPPULLUP_XMIN
**// #define ENDSTOPPULLUP_YMIN
**// #define ENDSTOPPULLUP_ZMIN
#endif

#ifdef*ENDSTOPPULLUPS
**#define*ENDSTOPPULLUP_XMAX
**#define*ENDSTOPPULLUP_YMAX
**#define*ENDSTOPPULLUP_ZMAX
**#define*ENDSTOPPULLUP_XMIN
**#define*ENDSTOPPULLUP_YMIN
**#define*ENDSTOPPULLUP_ZMIN
#endif

//*The*pullups*are*needed*if*you*directly*connect*a*mechanical*endswitch*between*the*signal*and*ground*pins.
const bool X_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Y_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Z_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool X_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Y_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
//#define*DISABLE_MAX_ENDSTOPS
//#define*DISABLE_MIN_ENDSTOPS

//*Disable*max*endstops*for*compatibility*with*endstop*checking*routine
#if*defined(COREXY)*&&*!defined(DISABLE_MAX_ENDSTOPS)
**#define*DISABLE_MAX_ENDSTOPS
#endif

//*For*Inverting*Stepper*Enable*Pins*(Active*Low)*use*0,*Non*Inverting*(Active*High)*use*1
#define*X_ENABLE_ON*0
#define*Y_ENABLE_ON*0
#define*Z_ENABLE_ON*0
#define*E_ENABLE_ON*0*// For all extruders

//*Disables*axis*when*it's*not*being*used.
#define*DISABLE_X*false
#define*DISABLE_Y*false
#define*DISABLE_Z*false
#define*DISABLE_E*false // For all extruders
#define*DISABLE_INACTIVE_EXTRUDER*true //disable only inactive extruders and keep active extruder enabled

#define*INVERT_X_DIR*false    // for Mendel set to false, for Orca set to true
#define*INVERT_Y_DIR*true    // for Mendel set to true, for Orca set to false
#define*INVERT_Z_DIR*false     // for Mendel set to false, for Orca set to true
#define*INVERT_E0_DIR*true   // for direct drive extruder v9 set to true, for geared extruder set to false
#define*INVERT_E1_DIR*false    // for direct drive extruder v9 set to true, for geared extruder set to false
#define*INVERT_E2_DIR*false   // for direct drive extruder v9 set to true, for geared extruder set to false

//*ENDSTOP*SETTINGS:
//*Sets*direction*of*endstops*when*homing;*1=MAX,*-1=MIN
#define*X_HOME_DIR*-1
#define*Y_HOME_DIR*-1
#define*Z_HOME_DIR*-1

#define*min_software_endstops*false // If true, axis won't move to coordinates less than HOME_POS.
#define*max_software_endstops*true  // If true, axis won't move to coordinates greater than the defined lengths below.

//*Travel*limits*after*homing
#define*X_MAX_POS*200
#define*X_MIN_POS*0
#define*Y_MAX_POS*300
#define*Y_MIN_POS*0
#define*Z_MAX_POS*203
#define*Z_MIN_POS*0

#define*X_MAX_LENGTH*(X_MAX_POS*-*X_MIN_POS)
#define*Y_MAX_LENGTH*(Y_MAX_POS*-*Y_MIN_POS)
#define*Z_MAX_LENGTH*(Z_MAX_POS*-*Z_MIN_POS)
//=============================*Bed*Auto*Leveling*===========================

#define*ENABLE_AUTO_BED_LEVELING*// Delete the comment to enable (remove // at the start of the line)
#define*Z_PROBE_REPEATABILITY_TEST**// If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled.

#ifdef*ENABLE_AUTO_BED_LEVELING

//*There*are*2*different*ways*to*pick*the*X*and*Y*locations*to*probe:

//**-*"grid"*mode
//****Probe*every*point*in*a*rectangular*grid
//****You*must*specify*the*rectangle,*and*the*density*of*sample*points
//****This*mode*is*preferred*because*there*are*more*measurements.
//****It*used*to*be*called*ACCURATE_BED_LEVELING*but*"grid"*is*more*descriptive

//**-*"3-point"*mode
//****Probe*3*arbitrary*points*on*the*bed*(that*aren't*colinear)
//****You*must*specify*the*X*&*Y*coordinates*of*all*3*points

**#define*AUTO_BED_LEVELING_GRID
**// with AUTO_BED_LEVELING_GRID, the bed is sampled in a
**// AUTO_BED_LEVELING_GRID_POINTSxAUTO_BED_LEVELING_GRID_POINTS grid
**// and least squares solution is calculated
**// Note: this feature occupies 10'206 byte
**#ifdef*AUTO_BED_LEVELING_GRID

****// set the rectangle in which to probe
****#define*LEFT_PROBE_BED_POSITION*50
****#define*RIGHT_PROBE_BED_POSITION*150
****#define*BACK_PROBE_BED_POSITION*250
****#define*FRONT_PROBE_BED_POSITION*50

*****// set the number of grid points per dimension
*****// I wouldn't see a reason to go above 3 (=9 probing points on the bed)
****#define*AUTO_BED_LEVELING_GRID_POINTS*2


**//#else  // not AUTO_BED_LEVELING_GRID
****// with no grid, just probe 3 arbitrary points.  A simple cross-product
****// is used to esimate the plane of the print bed

******//#define ABL_PROBE_PT_1_X 15
******//#define ABL_PROBE_PT_1_Y 180
******//#define ABL_PROBE_PT_2_X 15
******//#define ABL_PROBE_PT_2_Y 20
******//#define ABL_PROBE_PT_3_X 170
******//#define ABL_PROBE_PT_3_Y 20

**#endif*// AUTO_BED_LEVELING_GRID


**// these are the offsets to the probe relative to the extruder tip (Hotend - Probe)
**// X and Y offsets must be integers
**#define*X_PROBE_OFFSET_FROM_EXTRUDER*1
**#define*Y_PROBE_OFFSET_FROM_EXTRUDER*-34
**#define*Z_PROBE_OFFSET_FROM_EXTRUDER*-4

**#define*Z_RAISE_BEFORE_HOMING*15*******// (in mm) Raise Z before homing (G28) for Probe Clearance.
****************************************// Be sure you have this distance over your Z_MAX_POS in case

**#define*XY_TRAVEL_SPEED*2000*********// X and Y axis travel speed between probes, in mm/min

**#define*Z_RAISE_BEFORE_PROBING*3****//How much the extruder will be raised before traveling to the first probing point.
**#define*Z_RAISE_BETWEEN_PROBINGS*3**//How much the extruder will be raised when traveling from between next probing points

**//#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 defined, the Probe servo will be turned on only during movement and then turned off to avoid jerk
**//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.
**// You MUST HAVE the SERVO_ENDSTOPS defined to use here a value higher than zero otherwise your code will not compile.

//**#define*PROBE_SERVO_DEACTIVATION_DELAY*300


//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 probe outside the bed area.
**************************// When defined, it will:
**************************// - Allow Z homing only after X and Y homing AND stepper drivers still enabled
**************************// - If stepper drivers timeout, it will need X and Y homing again before Z homing
**************************// - Position the probe in a defined XY point before Z Homing when homing all axis (G28)
**************************// - Block Z homing only when the probe is outside bed area.

**#ifdef*Z_SAFE_HOMING

****#define*Z_SAFE_HOMING_X_POINT*(X_MAX_LENGTH/2)****// X point for Z homing when homing all axis (G28)
****#define*Z_SAFE_HOMING_Y_POINT*(Y_MAX_LENGTH/2)****// Y point for Z homing when homing all axis (G28)

**#endif

**#ifdef*AUTO_BED_LEVELING_GRID	// Check if Probe_Offset * Grid Points is greater than Probing Range
****#if*X_PROBE_OFFSET_FROM_EXTRUDER*<*0
******#if*(-(X_PROBE_OFFSET_FROM_EXTRUDER***AUTO_BED_LEVELING_GRID_POINTS)*>=*(RIGHT_PROBE_BED_POSITION*-*LEFT_PROBE_BED_POSITION))
	*****#error*"The X axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS"
	**#endif
	#else
******#if*((X_PROBE_OFFSET_FROM_EXTRUDER***AUTO_BED_LEVELING_GRID_POINTS)*>=*(RIGHT_PROBE_BED_POSITION*-*LEFT_PROBE_BED_POSITION))
	*****#error*"The X axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS"
	**#endif
	#endif
****#if*Y_PROBE_OFFSET_FROM_EXTRUDER*<*0
******#if*(-(Y_PROBE_OFFSET_FROM_EXTRUDER***AUTO_BED_LEVELING_GRID_POINTS)*>=*(BACK_PROBE_BED_POSITION*-*FRONT_PROBE_BED_POSITION))
	*****#error*"The Y axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS"
	**#endif
	#else
******#if*((Y_PROBE_OFFSET_FROM_EXTRUDER***AUTO_BED_LEVELING_GRID_POINTS)*>=*(BACK_PROBE_BED_POSITION*-*FRONT_PROBE_BED_POSITION))
	*****#error*"The Y axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS"
	**#endif
	#endif

	
**#endif
**
#endif*// ENABLE_AUTO_BED_LEVELING


//*The*position*of*the*homing*switches
//#define*MANUAL_HOME_POSITIONS**//*If*defined,*MANUAL_*_HOME_POS*below*will*be*used
//#define*BED_CENTER_AT_0_0**//*If*defined,*the*center*of*the*bed*is*at*(X=0,*Y=0)

//Manual*homing*switch*locations:
//*For*deltabots*this*means*top*and*center*of*the*Cartesian*print*volume.
#define*MANUAL_X_HOME_POS*0
#define*MANUAL_Y_HOME_POS*0
#define*MANUAL_Z_HOME_POS*0
//#define*MANUAL_Z_HOME_POS*402*//*For*delta:*Distance*between*nozzle*and*print*surface*after*homing.

////*MOVEMENT*SETTINGS
#define*NUM_AXIS*4*// The axis order in all axis related arrays is X, Y, Z, E
#define*HOMING_FEEDRATE*{50*48,*50*48,*4*45,*0}**// set the homing speeds (mm/min)

//*default*settings

#define*DEFAULT_AXIS_STEPS_PER_UNIT***{80,80,4000,146}**// default steps per unit for Ultimaker
#define*DEFAULT_MAX_FEEDRATE**********{300,*300,*3,*150}****// (mm/sec)
#define*DEFAULT_MAX_ACCELERATION******{1000,1000,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 max acceleration in mm/s^2 for printing moves
#define*DEFAULT_RETRACT_ACCELERATION**1000***// X, Y, Z and E max acceleration in mm/s^2 for retracts

//*Offset*of*the*extruders*(uncomment*if*using*more*than*one*and*relying*on*firmware*to*position*when*changing).
//*The*offset*has*to*be*X=0,*Y=0*for*the*extruder*0*hotend*(default*extruder).
//*For*the*other*hotends*it*is*their*distance*from*the*extruder*0*hotend.
//*#define*EXTRUDER_OFFSET_X*{0.0,*20.00}*//*(in*mm)*for*each*extruder,*offset*of*the*hotend*on*the*X*axis
//*#define*EXTRUDER_OFFSET_Y*{0.0,*5.00}**//*(in*mm)*for*each*extruder,*offset*of*the*hotend*on*the*Y*axis

//*The*speed*change*that*does*not*require*acceleration*(i.e.*the*software*might*assume*it*can*be*done*instantaneously)
#define*DEFAULT_XYJERK****************20.0****// (mm/sec)
#define*DEFAULT_ZJERK*****************0.4*****// (mm/sec)
#define*DEFAULT_EJERK*****************5.0****// (mm/sec)

//===========================================================================
//=============================Additional*Features===========================
//===========================================================================

//*Custom*M*code*points
#define*CUSTOM_M_CODES
#ifdef*CUSTOM_M_CODES
**#define*CUSTOM_M_CODE_SET_Z_PROBE_OFFSET*851
**#define*Z_PROBE_OFFSET_RANGE_MIN*-15
**#define*Z_PROBE_OFFSET_RANGE_MAX*-5
#endif


//*EEPROM
//*The*microcontroller*can*store*settings*in*the*EEPROM,*e.g.*max*velocity...
//*M500*-*stores*parameters*in*EEPROM
//*M501*-*reads*parameters*from*EEPROM*(if*you*need*reset*them*after*you*changed*them*temporarily).
//*M502*-*reverts*to*the*default*"factory*settings".**You*still*need*to*store*them*in*EEPROM*afterwards*if*you*want*to.
//define*this*to*enable*EEPROM*support
//#define*EEPROM_SETTINGS
//to*disable*EEPROM*Serial*responses*and*decrease*program*space*by*~1700*byte:*comment*this*out:
//*please*keep*turned*on*if*you*can.
//#define*EEPROM_CHITCHAT

//*Preheat*Constants
#define*PLA_PREHEAT_HOTEND_TEMP*220
#define*PLA_PREHEAT_HPB_TEMP*60
#define*PLA_PREHEAT_FAN_SPEED*0***// Insert Value between 0 and 255

#define*ABS_PREHEAT_HOTEND_TEMP*245
#define*ABS_PREHEAT_HPB_TEMP*90
#define*ABS_PREHEAT_FAN_SPEED*0***// Insert Value between 0 and 255

//LCD*and*SD*support
//#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*SDSLOW*//*Use*slower*SD*transfer*mode*(not*normally*needed*-*uncomment*if*you're*getting*volume*init*error)
//#define*SD_CHECK_AND_RETRY*//*Use*CRC*checks*and*retries*on*the*SD*communication
//#define*ENCODER_PULSES_PER_STEP*1*//*Increase*if*you*have*a*high*resolution*encoder
//#define*ENCODER_STEPS_PER_MENU_ITEM*5*//*Set*according*to*ENCODER_PULSES_PER_STEP*or*your*liking
//#define*ULTIMAKERCONTROLLER*//as*available*from*the*Ultimaker*online*store.
//#define*ULTIPANEL**//the*UltiPanel*as*on*Thingiverse
//#define*LCD_FEEDBACK_FREQUENCY_HZ*1000	//*this*is*the*tone*frequency*the*buzzer*plays*when*on*UI*feedback.*ie*Screen*Click
//#define*LCD_FEEDBACK_FREQUENCY_DURATION_MS*100*//*the*duration*the*buzzer*plays*the*UI*feedback*sound.*ie*Screen*Click

//*The*MaKr3d*Makr-Panel*with*graphic*controller*and*SD*support
//*http://reprap.org/wiki/MaKr3d_MaKrPanel
//#define*MAKRPANEL

//*The*RepRapDiscount*Smart*Controller*(white*PCB)
//*http://reprap.org/wiki/RepRapDiscount_Smart_Controller
//#define*REPRAP_DISCOUNT_SMART_CONTROLLER

//*The*GADGETS3D*G3D*LCD/SD*Controller*(blue*PCB)
//*http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel
//#define*G3D_PANEL

//*The*RepRapDiscount*FULL*GRAPHIC*Smart*Controller*(quadratic*white*PCB)
//*http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller
//
//*==>*REMEMBER*TO*INSTALL*U8glib*to*your*ARDUINO*library*folder:*http://code.google.com/p/u8glib/wiki/u8glib
//#define*REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER

//*The*RepRapWorld*REPRAPWORLD_KEYPAD*v1.1
//*http://reprapworld.com/?products_details&products_id=202&cPath=1591_1626
//#define*REPRAPWORLD_KEYPAD
//#define*REPRAPWORLD_KEYPAD_MOVE_STEP*10.0*//*how*much*should*be*moved*when*a*key*is*pressed,*eg*10.0*means*10mm*per*click

//*The*Elefu*RA*Board*Control*Panel
//*http://www.elefu.com/index.php?route=product/product&product_id=53
//*REMEMBER*TO*INSTALL*LiquidCrystal_I2C.h*in*your*ARDUINO*library*folder:*https://github.com/kiyoshigawa/LiquidCrystal_I2C
//#define*RA_CONTROL_PANEL

//automatic*expansion
#if*defined*(MAKRPANEL)
*#define*DOGLCD
*#define*SDSUPPORT
*#define*ULTIPANEL
*#define*NEWPANEL
*#define*DEFAULT_LCD_CONTRAST*17
#endif

#if*defined*(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
*#define*DOGLCD
*#define*U8GLIB_ST7920
*#define*REPRAP_DISCOUNT_SMART_CONTROLLER
#endif

#if*defined(ULTIMAKERCONTROLLER)*||*defined(REPRAP_DISCOUNT_SMART_CONTROLLER)*||*defined(G3D_PANEL)
*#define*ULTIPANEL
*#define*NEWPANEL
#endif

#if*defined(REPRAPWORLD_KEYPAD)
**#define*NEWPANEL
**#define*ULTIPANEL
#endif
#if*defined(RA_CONTROL_PANEL)
*#define*ULTIPANEL
*#define*NEWPANEL
*#define*LCD_I2C_TYPE_PCA8574
*#define*LCD_I2C_ADDRESS*0x27***// I2C Address of the port expander
#endif

//I2C*PANELS

//#define*LCD_I2C_SAINSMART_YWROBOT
#ifdef*LCD_I2C_SAINSMART_YWROBOT
**// This uses the LiquidCrystal_I2C library ( https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home )
**// Make sure it is placed in the Arduino libraries directory.
**#define*LCD_I2C_TYPE_PCF8575
**#define*LCD_I2C_ADDRESS*0x27***// I2C Address of the port expander
**#define*NEWPANEL
**#define*ULTIPANEL
#endif

//*PANELOLU2*LCD*with*status*LEDs,*separate*encoder*and*click*inputs
//#define*LCD_I2C_PANELOLU2
#ifdef*LCD_I2C_PANELOLU2
**// This uses the LiquidTWI2 library v1.2.3 or later ( https://github.com/lincomatic/LiquidTWI2 )
**// Make sure the LiquidTWI2 directory is placed in the Arduino or Sketchbook libraries subdirectory.
**// (v1.2.3 no longer requires you to define PANELOLU in the LiquidTWI2.h library header file)
**// Note: The PANELOLU2 encoder click input can either be directly connected to a pin
**//       (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1).
**#define*LCD_I2C_TYPE_MCP23017
**#define*LCD_I2C_ADDRESS*0x20*// I2C Address of the port expander
**#define*LCD_USE_I2C_BUZZER*//comment out to disable buzzer on LCD
**#define*NEWPANEL
**#define*ULTIPANEL

**#ifndef*ENCODER_PULSES_PER_STEP
	#define*ENCODER_PULSES_PER_STEP*4
**#endif

**#ifndef*ENCODER_STEPS_PER_MENU_ITEM
	#define*ENCODER_STEPS_PER_MENU_ITEM*1
**#endif


**#ifdef*LCD_USE_I2C_BUZZER
	#define*LCD_FEEDBACK_FREQUENCY_HZ*1000
	#define*LCD_FEEDBACK_FREQUENCY_DURATION_MS*100
**#endif

#endif

//*Panucatt*VIKI*LCD*with*status*LEDs,*integrated*click*&*L/R/U/P*buttons,*separate*encoder*inputs
//#define*LCD_I2C_VIKI
#ifdef*LCD_I2C_VIKI
**// This uses the LiquidTWI2 library v1.2.3 or later ( https://github.com/lincomatic/LiquidTWI2 )
**// Make sure the LiquidTWI2 directory is placed in the Arduino or Sketchbook libraries subdirectory.
**// Note: The pause/stop/resume LCD button pin should be connected to the Arduino
**//       BTN_ENC pin (or set BTN_ENC to -1 if not used)
**#define*LCD_I2C_TYPE_MCP23017
**#define*LCD_I2C_ADDRESS*0x20*// I2C Address of the port expander
**#define*LCD_USE_I2C_BUZZER*//comment out to disable buzzer on LCD (requires LiquidTWI2 v1.2.3 or later)
**#define*NEWPANEL
**#define*ULTIPANEL
#endif

//*Shift*register*panels
//*---------------------
//*2*wire*Non-latching*LCD*SR*from:
//*https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/schematics#!shiftregister-connection*

//#define*SAV_3DLCD
#ifdef*SAV_3DLCD
***#define*SR_LCD_2W_NL****// Non latching 2 wire shiftregister
***#define*NEWPANEL
***#define*ULTIPANEL
#endif


#ifdef*ULTIPANEL
//**#define*NEWPANEL**//enable*this*if*you*have*a*click-encoder*panel
**#define*SDSUPPORT
**#define*ULTRA_LCD
**#ifdef*DOGLCD*// Change number of lines to match the DOG graphic display
****#define*LCD_WIDTH*20
****#define*LCD_HEIGHT*5
**#else
****#define*LCD_WIDTH*20
****#define*LCD_HEIGHT*4
**#endif
#else*//no panel but just LCD
**#ifdef*ULTRA_LCD
**#ifdef*DOGLCD*// Change number of lines to match the 128x64 graphics display
****#define*LCD_WIDTH*20
****#define*LCD_HEIGHT*5
**#else
****#define*LCD_WIDTH*16
****#define*LCD_HEIGHT*2
**#endif
**#endif
#endif

//*default*LCD*contrast*for*dogm-like*LCD*displays
#ifdef*DOGLCD
#*ifndef*DEFAULT_LCD_CONTRAST
#**define*DEFAULT_LCD_CONTRAST*32
#*endif
#endif

//*Increase*the*FAN*pwm*frequency.*Removes*the*PWM*noise*but*increases*heating*in*the*FET/Arduino
//#define*FAST_PWM_FAN

//*Temperature*status*LEDs*that*display*the*hotend*and*bet*temperature.
//*If*all*hotends*and*bed*temperature*and*temperature*setpoint*are*<*54C*then*the*BLUE*led*is*on.
//*Otherwise*the*RED*led*is*on.*There*is*1C*hysteresis.
//#define*TEMP_STAT_LEDS

//*Use*software*PWM*to*drive*the*fan,*as*for*the*heaters.*This*uses*a*very*low*frequency
//*which*is*not*ass*annoying*as*with*the*hardware*PWM.*On*the*other*hand,*if*this*frequency
//*is*too*low,*you*should*also*increment*SOFT_PWM_SCALE.
//#define*FAN_SOFT_PWM

//*Incrementing*this*by*1*will*double*the*software*PWM*frequency,
//*affecting*heaters,*and*the*fan*if*FAN_SOFT_PWM*is*enabled.
//*However,*control*resolution*will*be*halved*for*each*increment;
//*at*zero*value,*there*are*128*effective*control*positions.
#define*SOFT_PWM_SCALE*0

//*M240**Triggers*a*camera*by*emulating*a*Canon*RC-1*Remote
//*Data*from:*http://www.doc-diy.net/photo/rc-1_hacked/
//*#define*PHOTOGRAPH_PIN*****23

//*SF*send*wrong*arc*g-codes*when*using*Arc*Point*as*fillet*procedure
//#define*SF_ARC_FIX

//*Support*for*the*BariCUDA*Paste*Extruder.
//#define*BARICUDA

//define*BlinkM/CyzRgb*Support
//#define*BLINKM

/*********************************************************************\
**R/C*SERVO*support
**Sponsored*by*TrinityLabs,*Reworked*by*codexmas
**********************************************************************/

//*Number*of*servos
//
//*If*you*select*a*configuration*below,*this*will*receive*a*default*value*and*does*not*need*to*be*set*manually
//*set*it*manually*if*you*have*more*servos*than*extruders*and*wish*to*manually*control*some
//*leaving*it*undefined*or*defining*as*0*will*disable*the*servo*subsystem
//*If*unsure,*leave*commented*/*disabled
//
//#define*NUM_SERVOS*3*//*Servo*index*starts*with*0*for*M280*command

//*Servo*Endstops
//
//*This*allows*for*servo*actuated*endstops,*primary*usage*is*for*the*Z*Axis*to*eliminate*calibration*or*bed*height*changes.
//*Use*M206*command*to*correct*for*switch*height*offset*to*actual*nozzle*height.*Store*that*setting*with*M500.
//
//#define*SERVO_ENDSTOPS*{-1,*-1,*0}*//*Servo*index*for*X,*Y,*Z.*Disable*with*-1
//#define*SERVO_ENDSTOP_ANGLES*{0,0,*0,0,*70,0}*//*X,Y,Z*Axis*Extend*and*Retract*angles

/**********************************************************************\
***Support*for*a*filament*diameter*sensor
***Also*allows*adjustment*of*diameter*at*print*time*(vs**at*slicing)
***Single*extruder*only*at*this*point*(extruder*0)
***
***Motherboards
***34*-*RAMPS1.4*-*uses*Analog*input*5*on*the*AUX2*connector*
***81*-*Printrboard*-*Uses*Analog*input*2*on*the*Exp1*connector*(version*B,C,D,E)
***301*-*Rambo**-*uses*Analog*input*3
***Note*may*require*analog*pins*to*be*defined*for*different*motherboards
***********************************************************************/
//*Uncomment*below*to*enable
//#define*FILAMENT_SENSOR

#define*FILAMENT_SENSOR_EXTRUDER_NUM	0**//The number of the extruder that has the filament sensor (0,1,2)
#define*MEASUREMENT_DELAY_CM			14**//measurement delay in cm.  This is the distance from filament sensor to middle of barrel

#define*DEFAULT_NOMINAL_FILAMENT_DIA**1.75**//Enter the diameter (in mm) of the filament generally used (3.0 mm or 1.75 mm) - this is then used in the slicer software.  Used for sensor reading validation
#define*MEASURED_UPPER_LIMIT**********2.05**//upper limit factor used for sensor reading validation in mm
#define*MEASURED_LOWER_LIMIT**********1.45**//lower limit factor for sensor reading validation in mm
#define*MAX_MEASUREMENT_DELAY			20**//delay buffer size in bytes (1 byte = 1cm)- limits maximum measurement delay allowable (must be larger than MEASUREMENT_DELAY_CM  and lower number saves RAM)

//defines*used*in*the*code
#define*DEFAULT_MEASURED_FILAMENT_DIA**DEFAULT_NOMINAL_FILAMENT_DIA**//set measured to nominal initially 

//When*using*an*LCD,*uncomment*the*line*below*to*display*the*Filament*sensor*data*on*the*last*line*instead*of*status.**Status*will*appear*for*5*sec.
//#define*FILAMENT_LCD_DISPLAY






#include*"Configuration_adv.h"
#include*"thermistortables.h"

#endif*//__CONFIGURATION_H
 

Elton100

Erfahrener Benutzer
#2
edit: den sensor habe ich übrigens vor dem hotend montiert, also wenn ich vor dem drucker stehe, sehe ich zuerst den sensor. Dahinter ist das Hotend.

Hier noch die configuration_adv.h.

Habe auch dieses laut Anleitung auf 3dproto aktiviert: #define ENDSTOPS_ONLY_FOR_HOMING

Code:
#ifndef*CONFIGURATION_ADV_H
#define*CONFIGURATION_ADV_H

//===========================================================================
//=============================Thermal*Settings**============================
//===========================================================================

#ifdef*BED_LIMIT_SWITCHING
**#define*BED_HYSTERESIS*2*//only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
#endif
#define*BED_CHECK_INTERVAL*5000*//ms between checks in bang-bang control

////*Heating*sanity*check:
//*This*waits*for*the*watch*period*in*milliseconds*whenever*an*M104*or*M109*increases*the*target*temperature
//*If*the*temperature*has*not*increased*at*the*end*of*that*period,*the*target*temperature*is*set*to*zero.
//*It*can*be*reset*with*another*M104/M109.*This*check*is*also*only*triggered*if*the*target*temperature*and*the*current*temperature
//**differ*by*at*least*2x*WATCH_TEMP_INCREASE
//#define*WATCH_TEMP_PERIOD*40000*//40*seconds
//#define*WATCH_TEMP_INCREASE*10**//Heat*up*at*least*10*degree*in*20*seconds

#ifdef*PIDTEMP
**// this adds an experimental additional term to the heating power, proportional to the extrusion speed.
**// if Kc is chosen well, the additional required power due to increased melting should be compensated.
**#define*PID_ADD_EXTRUSION_RATE
**#ifdef*PID_ADD_EXTRUSION_RATE
****#define**DEFAULT_Kc*(1)*//heating power=Kc*(e_speed)
**#endif
#endif


//automatic*temperature:*The*hot*end*target*temperature*is*calculated*by*all*the*buffered*lines*of*gcode.
//The*maximum*buffered*steps/sec*of*the*extruder*motor*are*called*"se".
//You*enter*the*autotemp*mode*by*a*M109*S<mintemp>*B<maxtemp>*F<factor>
//*the*target*temperature*is*set*to*mintemp+factor*se[steps/sec]*and*limited*by*mintemp*and*maxtemp
//*you*exit*the*value*by*any*M109*without*F*
//*Also,*if*the*temperature*is*set*to*a*value*<mintemp,*it*is*not*changed*by*autotemp.
//*on*an*Ultimaker,*some*initial*testing*worked*with*M109*S215*B260*F1*in*the*start.gcode
#define*AUTOTEMP
#ifdef*AUTOTEMP
**#define*AUTOTEMP_OLDWEIGHT*0.98
#endif

//Show*Temperature*ADC*value
//The*M105*command*return,*besides*traditional*information,*the*ADC*value*read*from*temperature*sensors.
//#define*SHOW_TEMP_ADC_VALUES

//**extruder*run-out*prevention.
//if*the*machine*is*idle,*and*the*temperature*over*MINTEMP,*every*couple*of*SECONDS*some*filament*is*extruded
//#define*EXTRUDER_RUNOUT_PREVENT
#define*EXTRUDER_RUNOUT_MINTEMP*190
#define*EXTRUDER_RUNOUT_SECONDS*30.
#define*EXTRUDER_RUNOUT_ESTEPS*14.*//mm filament
#define*EXTRUDER_RUNOUT_SPEED*1500.**//extrusion speed
#define*EXTRUDER_RUNOUT_EXTRUDE*100

//These*defines*help*to*calibrate*the*AD595*sensor*in*case*you*get*wrong*temperature*measurements.
//The*measured*temperature*is*defined*as*"actualTemp*=*(measuredTemp***TEMP_SENSOR_AD595_GAIN)*+*TEMP_SENSOR_AD595_OFFSET"
#define*TEMP_SENSOR_AD595_OFFSET*0.0
#define*TEMP_SENSOR_AD595_GAIN***1.0

//This*is*for*controlling*a*fan*to*cool*down*the*stepper*drivers
//it*will*turn*on*when*any*driver*is*enabled
//and*turn*off*after*the*set*amount*of*seconds*from*last*driver*being*disabled*again
#define*CONTROLLERFAN_PIN*-1*//Pin used for the fan to cool controller (-1 to disable)
#define*CONTROLLERFAN_SECS*60*//How many seconds, after all motors were disabled, the fan should run
#define*CONTROLLERFAN_SPEED*255**// == full speed

//*When*first*starting*the*main*fan,*run*it*at*full*speed*for*the
//*given*number*of*milliseconds.**This*gets*the*fan*spinning*reliably
//*before*setting*a*PWM*value.*(Does*not*work*with*software*PWM*for*fan*on*Sanguinololu)
//#define*FAN_KICKSTART_TIME*100

//*Extruder*cooling*fans
//*Configure*fan*pin*outputs*to*automatically*turn*on/off*when*the*associated
//*extruder*temperature*is*above/below*EXTRUDER_AUTO_FAN_TEMPERATURE.
//*Multiple*extruders*can*be*assigned*to*the*same*pin*in*which*case
//*the*fan*will*turn*on*when*any*selected*extruder*is*above*the*threshold.
#define*EXTRUDER_0_AUTO_FAN_PIN***-1
#define*EXTRUDER_1_AUTO_FAN_PIN***-1
#define*EXTRUDER_2_AUTO_FAN_PIN***-1
#define*EXTRUDER_AUTO_FAN_TEMPERATURE*50
#define*EXTRUDER_AUTO_FAN_SPEED***255**// == full speed


//===========================================================================
//=============================Mechanical*Settings===========================
//===========================================================================

#define*ENDSTOPS_ONLY_FOR_HOMING*// If defined the endstops will only be used for homing


////*AUTOSET*LOCATIONS*OF*LIMIT*SWITCHES
////*Added*by*ZetaPhoenix*09-15-2012
#ifdef*MANUAL_HOME_POSITIONS**// Use manual limit switch locations
**#define*X_HOME_POS*MANUAL_X_HOME_POS
**#define*Y_HOME_POS*MANUAL_Y_HOME_POS
**#define*Z_HOME_POS*MANUAL_Z_HOME_POS
#else*//Set min/max homing switch positions based upon homing direction and min/max travel limits
**//X axis
**#if*X_HOME_DIR*==*-1
****#ifdef*BED_CENTER_AT_0_0
******#define*X_HOME_POS*X_MAX_LENGTH***-0.5
****#else
******#define*X_HOME_POS*X_MIN_POS
****#endif*//BED_CENTER_AT_0_0
**#else
****#ifdef*BED_CENTER_AT_0_0
******#define*X_HOME_POS*X_MAX_LENGTH***0.5
****#else
******#define*X_HOME_POS*X_MAX_POS
****#endif*//BED_CENTER_AT_0_0
**#endif*//X_HOME_DIR == -1

**//Y axis
**#if*Y_HOME_DIR*==*-1
****#ifdef*BED_CENTER_AT_0_0
******#define*Y_HOME_POS*Y_MAX_LENGTH***-0.5
****#else
******#define*Y_HOME_POS*Y_MIN_POS
****#endif*//BED_CENTER_AT_0_0
**#else
****#ifdef*BED_CENTER_AT_0_0
******#define*Y_HOME_POS*Y_MAX_LENGTH***0.5
****#else
******#define*Y_HOME_POS*Y_MAX_POS
****#endif*//BED_CENTER_AT_0_0
**#endif*//Y_HOME_DIR == -1

**// Z axis
**#if*Z_HOME_DIR*==*-1*//BED_CENTER_AT_0_0 not used
****#define*Z_HOME_POS*Z_MIN_POS
**#else
****#define*Z_HOME_POS*Z_MAX_POS
**#endif*//Z_HOME_DIR == -1
#endif*//End auto min/max positions
//END*AUTOSET*LOCATIONS*OF*LIMIT*SWITCHES*-ZP


//#define*Z_LATE_ENABLE*//*Enable*Z*the*last*moment.*Needed*if*your*Z*driver*overheats.

//*A*single*Z*stepper*driver*is*usually*used*to*drive*2*stepper*motors.
//*Uncomment*this*define*to*utilize*a*separate*stepper*driver*for*each*Z*axis*motor.
//*Only*a*few*motherboards*support*this,*like*RAMPS,*which*have*dual*extruder*support*(the*2nd,*often*unused,*extruder*driver*is*used
//*to*control*the*2nd*Z*axis*stepper*motor).*The*pins*are*currently*only*defined*for*a*RAMPS*motherboards.
//*On*a*RAMPS*(or*other*5*driver)*motherboard,*using*this*feature*will*limit*you*to*using*1*extruder.
//#define*Z_DUAL_STEPPER_DRIVERS

#ifdef*Z_DUAL_STEPPER_DRIVERS
**#undef*EXTRUDERS
**#define*EXTRUDERS*1
#endif

//*Same*again*but*for*Y*Axis.
//#define*Y_DUAL_STEPPER_DRIVERS

//*Define*if*the*two*Y*drives*need*to*rotate*in*opposite*directions
#define*INVERT_Y2_VS_Y_DIR*true

#ifdef*Y_DUAL_STEPPER_DRIVERS
**#undef*EXTRUDERS
**#define*EXTRUDERS*1
#endif

#if*defined*(Z_DUAL_STEPPER_DRIVERS)*&&*defined*(Y_DUAL_STEPPER_DRIVERS)
**#error*"You cannot have dual drivers for both Y and Z"
#endif

//*Enable*this*for*dual*x-carriage*printers.
//*A*dual*x-carriage*design*has*the*advantage*that*the*inactive*extruder*can*be*parked*which
//*prevents*hot-end*ooze*contaminating*the*print.*It*also*reduces*the*weight*of*each*x-carriage
//*allowing*faster*printing*speeds.
//#define*DUAL_X_CARRIAGE
#ifdef*DUAL_X_CARRIAGE
//*Configuration*for*second*X-carriage
//*Note:*the*first*x-carriage*is*defined*as*the*x-carriage*which*homes*to*the*minimum*endstop;
//*the*second*x-carriage*always*homes*to*the*maximum*endstop.
#define*X2_MIN_POS*80*****// set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
#define*X2_MAX_POS*353****// set maximum to the distance between toolheads when both heads are homed
#define*X2_HOME_DIR*1*****// the second X-carriage always homes to the maximum endstop position
#define*X2_HOME_POS*X2_MAX_POS*// default home position is the maximum carriage position
****// However: In this mode the EXTRUDER_OFFSET_X value for the second extruder provides a software
****// override for X2_HOME_POS. This also allow recalibration of the distance between the two endstops
****// without modifying the firmware (through the "M218 T1 X???" command).
****// Remember: you should set the second extruder x-offset to 0 in your slicer.

//*Pins*for*second*x-carriage*stepper*driver*(defined*here*to*avoid*further*complicating*pins.h)
#define*X2_ENABLE_PIN*29
#define*X2_STEP_PIN*25
#define*X2_DIR_PIN*23

//*There*are*a*few*selectable*movement*modes*for*dual*x-carriages*using*M605*S<mode>
//****Mode*0:*Full*control.*The*slicer*has*full*control*over*both*x-carriages*and*can*achieve*optimal*travel*results
//***************************as*long*as*it*supports*dual*x-carriages.*(M605*S0)
//****Mode*1:*Auto-park*mode.*The*firmware*will*automatically*park*and*unpark*the*x-carriages*on*tool*changes*so
//***************************that*additional*slicer*support*is*not*required.*(M605*S1)
//****Mode*2:*Duplication*mode.*The*firmware*will*transparently*make*the*second*x-carriage*and*extruder*copy*all
//***************************actions*of*the*first*x-carriage.*This*allows*the*printer*to*print*2*arbitrary*items*at
//***************************once.*(2nd*extruder*x*offset*and*temp*offset*are*set*using:*M605*S2*[Xnnn]*[Rmmm])

//*This*is*the*default*power-up*mode*which*can*be*later*using*M605.
#define*DEFAULT_DUAL_X_CARRIAGE_MODE*0

//*As*the*x-carriages*are*independent*we*can*now*account*for*any*relative*Z*offset
#define*EXTRUDER1_Z_OFFSET*0.0***********// z offset relative to extruder 0

//*Default*settings*in*"Auto-park*Mode"
#define*TOOLCHANGE_PARK_ZLIFT***0.2******// the distance to raise Z axis when parking an extruder
#define*TOOLCHANGE_UNPARK_ZLIFT*1********// the distance to raise Z axis when unparking an extruder

//*Default*x*offset*in*duplication*mode*(typically*set*to*half*print*bed*width)
#define*DEFAULT_DUPLICATION_X_OFFSET*100

#endif*//DUAL_X_CARRIAGE

//homing*hits*the*endstop,*then*retracts*by*this*distance,*before*it*tries*to*slowly*bump*again:
#define*X_HOME_RETRACT_MM*5
#define*Y_HOME_RETRACT_MM*5
#define*Z_HOME_RETRACT_MM*2
//#define*QUICK_HOME**//if*this*is*defined,*if*both*x*and*y*are*to*be*homed,*a*diagonal*move*will*be*performed*initially.

#define*AXIS_RELATIVE_MODES*{false, false, false, false}
#ifdef*CONFIG_STEPPERS_TOSHIBA
#define*MAX_STEP_FREQUENCY*10000*// Max step frequency for Toshiba Stepper Controllers
#else
#define*MAX_STEP_FREQUENCY*40000*// Max step frequency for Ultimaker (5000 pps / half step)
#endif
//By*default*pololu*step*drivers*require*an*active*high*signal.*However,*some*high*power*drivers*require*an*active*low*signal*as*step.
#define*INVERT_X_STEP_PIN*false
#define*INVERT_Y_STEP_PIN*false
#define*INVERT_Z_STEP_PIN*false
#define*INVERT_E_STEP_PIN*false

//default*stepper*release*if*idle
#define*DEFAULT_STEPPER_DEACTIVE_TIME*60

#define*DEFAULT_MINIMUMFEEDRATE*******0.0*****// minimum feedrate
#define*DEFAULT_MINTRAVELFEEDRATE*****0.0

//*Feedrates*for*manual*moves*along*X,*Y,*Z,*E*from*panel
#ifdef*ULTIPANEL
#define*MANUAL_FEEDRATE*{50*60,*50*60,*4*60,*60}**// set the speeds for manual moves (mm/min)
#endif

//Comment*to*disable*setting*feedrate*multiplier*via*encoder
#ifdef*ULTIPANEL
****#define*ULTIPANEL_FEEDMULTIPLY
#endif

//*minimum*time*in*microseconds*that*a*movement*needs*to*take*if*the*buffer*is*emptied.
#define*DEFAULT_MINSEGMENTTIME********20000

//*If*defined*the*movements*slow*down*when*the*look*ahead*buffer*is*only*half*full
#define*SLOWDOWN

//*Frequency*limit
//*See*nophead's*blog*for*more*info
//*Not*working*O
//#define*XY_FREQUENCY_LIMIT**15

//*Minimum*planner*junction*speed.*Sets*the*default*minimum*speed*the*planner*plans*for*at*the*end
//*of*the*buffer*and*all*stops.*This*should*not*be*much*greater*than*zero*and*should*only*be*changed
//*if*unwanted*behavior*is*observed*on*a*user's*machine*when*running*at*very*slow*speeds.
#define*MINIMUM_PLANNER_SPEED*0.05// (mm/sec)

//*MS1*MS2*Stepper*Driver*Microstepping*mode*table
#define*MICROSTEP1*LOW,LOW
#define*MICROSTEP2*HIGH,LOW
#define*MICROSTEP4*LOW,HIGH
#define*MICROSTEP8*HIGH,HIGH
#define*MICROSTEP16*HIGH,HIGH

//*Microstep*setting*(Only*functional*when*stepper*driver*microstep*pins*are*connected*to*MCU.
#define*MICROSTEP_MODES*{16,16,16,16,16}*// [1,2,4,8,16]

//*Motor*Current*setting*(Only*functional*when*motor*driver*current*ref*pins*are*connected*to*a*digital*trimpot*on*supported*boards)
#define*DIGIPOT_MOTOR_CURRENT*{135,135,135,135,135}*// Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)

//*uncomment*to*enable*an*I2C*based*DIGIPOT*like*on*the*Azteeg*X3*Pro
//#define*DIGIPOT_I2C
//*Number*of*channels*available*for*I2C*digipot,*For*Azteeg*X3*Pro*we*have*8
#define*DIGIPOT_I2C_NUM_CHANNELS*8
//*actual*motor*currents*in*Amps,*need*as*many*here*as*DIGIPOT_I2C_NUM_CHANNELS
#define*DIGIPOT_I2C_MOTOR_CURRENTS*{1.0,*1.0,*1.0,*1.0,*1.0,*1.0,*1.0,*1.0}

//===========================================================================
//=============================Additional*Features===========================
//===========================================================================

//#define*CHDK*4********//Pin*for*triggering*CHDK*to*take*a*picture*see*how*to*use*it*here*http://captain-slow.dk/2014/03/09/3d-printing-timelapses/
#define*CHDK_DELAY*50*//How long in ms the pin should stay HIGH before going LOW again

#define*SD_FINISHED_STEPPERRELEASE*true  //if sd support and the file is finished: disable steppers?
#define*SD_FINISHED_RELEASECOMMAND*"M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.

#define*SDCARD_RATHERRECENTFIRST**//reverse file order of sd card menu display. Its sorted practically after the file system block order.
//*if*a*file*is*deleted,*it*frees*a*block.*hence,*the*order*is*not*purely*chronological.*To*still*have*auto0.g*accessible,*there*is*again*the*option*to*do*that.
//*using:
//#define*MENU_ADDAUTOSTART

//*Show*a*progress*bar*on*the*LCD*when*printing*from*SD?
//#define*LCD_PROGRESS_BAR

#ifdef*LCD_PROGRESS_BAR
**// Amount of time (ms) to show the bar
**#define*PROGRESS_BAR_BAR_TIME*2000
**// Amount of time (ms) to show the status message
**#define*PROGRESS_BAR_MSG_TIME*3000
**// Amount of time (ms) to retain the status message (0=forever)
**#define*PROGRESS_MSG_EXPIRE***0
**// Enable this to show messages for MSG_TIME then hide them
**//#define PROGRESS_MSG_ONCE
#endif

//*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

#ifdef*USE_WATCHDOG
//*If*you*have*a*watchdog*reboot*in*an*ArduinoMega2560*then*the*device*will*hang*forever,*as*a*watchdog*reset*will*leave*the*watchdog*on.
//*The*"WATCHDOG_RESET_MANUAL"*goes*around*this*by*not*using*the*hardware*reset.
//**However,*THIS*FEATURE*IS*UNSAFE!,*as*it*will*only*work*if*interrupts*are*disabled.*And*the*code*could*hang*in*an*interrupt*routine*with*interrupts*disabled.
//#define*WATCHDOG_RESET_MANUAL
#endif

//*Enable*the*option*to*stop*SD*printing*when*hitting*and*endstops,*needs*to*be*enabled*from*the*LCD*menu*when*this*option*is*enabled.
//#define*ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED

//*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
#ifdef*BABYSTEPPING
**#define*BABYSTEP_XY**//not only z, but also XY in the menu. more clutter, more functions
**#define*BABYSTEP_INVERT_Z*false  //true for inverse movements in Z
**#define*BABYSTEP_Z_MULTIPLICATOR*2*//faster z movements

**#ifdef*COREXY
****#error*BABYSTEPPING*not*implemented*for COREXY yet.
**#endif

**#ifdef*DELTA
****#ifdef*BABYSTEP_XY
******#error*BABYSTEPPING*only*implemented*for Z axis on deltabots.
****#endif
**#endif
#endif

//*extruder*advance*constant*(s2/mm3)
//
//*advance*(steps)*=*STEPS_PER_CUBIC_MM_E***EXTRUDER_ADVANCE_K***cubic*mm*per*second*^*2
//
//*Hooke's*law*says:		force*=*k***distance
//*Bernoulli's*principle*says:	v*^*2*/*2*+*g*.*h*+*pressure*/*density*=*constant
//*so:*v*^*2*is*proportional*to*number*of*steps*we*advance*the*extruder
//#define*ADVANCE

#ifdef*ADVANCE
**#define*EXTRUDER_ADVANCE_K*.0

**#define*D_FILAMENT*2.85
**#define*STEPS_MM_E*836
**#define*EXTRUSION_AREA*(0.25***D_FILAMENT***D_FILAMENT***3.14159)
**#define*STEPS_PER_CUBIC_MM_E*(axis_steps_per_unit[E_AXIS]/*EXTRUSION_AREA)

#endif*// ADVANCE

//*Arc*interpretation*settings:
#define*MM_PER_ARC_SEGMENT*1
#define*N_ARC_CORRECTION*25

const unsigned int dropsegments=5; //everything with less than this number of steps will be ignored as move and joined with the next movement

//*If*you*are*using*a*RAMPS*board*or*cheap*E-bay*purchased*boards*that*do*not*detect*when*an*SD*card*is*inserted
//*You*can*get*round*this*by*connecting*a*push*button*or*single*throw*switch*to*the*pin*defined*as*SDCARDCARDDETECT
//*in*the*pins.h*file.**When*using*a*push*button*pulling*the*pin*to*ground*this*will*need*inverted.**This*setting*should
//*be*commented*out*otherwise
#define*SDCARDDETECTINVERTED

#ifdef*ULTIPANEL
*#undef*SDCARDDETECTINVERTED
#endif

//*Power*Signal*Control*Definitions
//*By*default*use*ATX*definition
#ifndef*POWER_SUPPLY
**#define*POWER_SUPPLY*1
#endif
//*1*=*ATX
#if*(POWER_SUPPLY*==*1)
**#define*PS_ON_AWAKE**LOW
**#define*PS_ON_ASLEEP*HIGH
#endif
//*2*=*X-Box*360*203W
#if*(POWER_SUPPLY*==*2)
**#define*PS_ON_AWAKE**HIGH
**#define*PS_ON_ASLEEP*LOW
#endif

//*Control*heater*0*and*heater*1*in*parallel.
//#define*HEATERS_PARALLEL

//===========================================================================
//=============================Buffers***********============================
//===========================================================================

//*The*number*of*linear*motions*that*can*be*in*the*plan*at*any*give*time.
//*THE*BLOCK_BUFFER_SIZE*NEEDS*TO*BE*A*POWER*OF*2,*i.g.*8,16,32*because*shifts*and*ors*are*used*to*do*the*ring-buffering.
#if*defined*SDSUPPORT
**#define*BLOCK_BUFFER_SIZE*16***// SD,LCD,Buttons take more memory, block buffer needs to be smaller
#else
**#define*BLOCK_BUFFER_SIZE*16*// maximize block buffer
#endif


//The*ASCII*buffer*for*receiving*from*the*serial:
#define*MAX_CMD_SIZE*96
#define*BUFSIZE*4


//*Firmware*based*and*LCD*controlled*retract
//*M207*and*M208*can*be*used*to*define*parameters*for*the*retraction.
//*The*retraction*can*be*called*by*the*slicer*using*G10*and*G11
//*until*then,*intended*retractions*can*be*detected*by*moves*that*only*extrude*and*the*direction.
//*the*moves*are*than*replaced*by*the*firmware*controlled*ones.

//*#define*FWRETRACT**//ONLY*PARTIALLY*TESTED
#ifdef*FWRETRACT
**#define*MIN_RETRACT*0.1****************//minimum extruded mm to accept a automatic gcode retraction attempt
**#define*RETRACT_LENGTH*3***************//default retract length (positive mm)
**#define*RETRACT_LENGTH_SWAP*13*********//default swap retract length (positive mm), for extruder change
**#define*RETRACT_FEEDRATE*45************//default feedrate for retracting (mm/s)
**#define*RETRACT_ZLIFT*0****************//default retract Z-lift
**#define*RETRACT_RECOVER_LENGTH*0*******//default additional recover length (mm, added to retract length when recovering)
**#define*RETRACT_RECOVER_LENGTH_SWAP*0**//default additional swap recover length (mm, added to retract length when recovering from extruder change)
**#define*RETRACT_RECOVER_FEEDRATE*8*****//default feedrate for recovering from retraction (mm/s)
#endif

//adds*support*for*experimental*filament*exchange*support*M600;*requires*display
#ifdef*ULTIPANEL
**#define*FILAMENTCHANGEENABLE
**#ifdef*FILAMENTCHANGEENABLE
****#define*FILAMENTCHANGE_XPOS*3
****#define*FILAMENTCHANGE_YPOS*3
****#define*FILAMENTCHANGE_ZADD*10
****#define*FILAMENTCHANGE_FIRSTRETRACT*-2
****#define*FILAMENTCHANGE_FINALRETRACT*-100
**#endif
#endif

#ifdef*FILAMENTCHANGEENABLE
**#ifdef*EXTRUDER_RUNOUT_PREVENT
****#error*EXTRUDER_RUNOUT_PREVENT*currently*incompatible*with*FILAMENTCHANGE
**#endif
#endif

//===========================================================================
//=============================**Define*Defines**============================
//===========================================================================

#if*defined*(ENABLE_AUTO_BED_LEVELING)*&&*defined*(DELTA)
**#error*"Bed Auto Leveling is still not compatible with Delta Kinematics."
#endif

#if*EXTRUDERS*>*1*&&*defined*TEMP_SENSOR_1_AS_REDUNDANT
**#error*"You cannot use TEMP_SENSOR_1_AS_REDUNDANT if EXTRUDERS > 1"
#endif

#if*EXTRUDERS*>*1*&&*defined*HEATERS_PARALLEL
**#error*"You cannot use HEATERS_PARALLEL if EXTRUDERS > 1"
#endif

#if*TEMP_SENSOR_0*>*0
**#define*THERMISTORHEATER_0*TEMP_SENSOR_0
**#define*HEATER_0_USES_THERMISTOR
#endif
#if*TEMP_SENSOR_1*>*0
**#define*THERMISTORHEATER_1*TEMP_SENSOR_1
**#define*HEATER_1_USES_THERMISTOR
#endif
#if*TEMP_SENSOR_2*>*0
**#define*THERMISTORHEATER_2*TEMP_SENSOR_2
**#define*HEATER_2_USES_THERMISTOR
#endif
#if*TEMP_SENSOR_BED*>*0
**#define*THERMISTORBED*TEMP_SENSOR_BED
**#define*BED_USES_THERMISTOR
#endif
#if*TEMP_SENSOR_0*==*-1
**#define*HEATER_0_USES_AD595
#endif
#if*TEMP_SENSOR_1*==*-1
**#define*HEATER_1_USES_AD595
#endif
#if*TEMP_SENSOR_2*==*-1
**#define*HEATER_2_USES_AD595
#endif
#if*TEMP_SENSOR_BED*==*-1
**#define*BED_USES_AD595
#endif
#if*TEMP_SENSOR_0*==*-2
**#define*HEATER_0_USES_MAX6675
#endif
#if*TEMP_SENSOR_0*==*0
**#undef*HEATER_0_MINTEMP
**#undef*HEATER_0_MAXTEMP
#endif
#if*TEMP_SENSOR_1*==*0
**#undef*HEATER_1_MINTEMP
**#undef*HEATER_1_MAXTEMP
#endif
#if*TEMP_SENSOR_2*==*0
**#undef*HEATER_2_MINTEMP
**#undef*HEATER_2_MAXTEMP
#endif
#if*TEMP_SENSOR_BED*==*0
**#undef*BED_MINTEMP
**#undef*BED_MAXTEMP
#endif


#endif*//__CONFIGURATION_ADV_H
 
Zuletzt bearbeitet:

Elton100

Erfahrener Benutzer
#3
Update:
Habe ein M119 gesendet: xmin xmax ymin ymax zmin zmax, alle sind "triggered", also ausgelöst. Das kann nicht sein. Einen defekt am Schalter oder mega2560 bzw. Ramps 1.4 kann ich ausschließen, da der drucker einwandfrei läuft, sobald ich die alte Firmware ohne ABL aufspiele. Habe daraufhin die endstop settings von true auf false gesetzt.
Zuerst nur diesen:

const bool Y_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.

Siehe da: Das bett bewegte sich nach hinten! Allerdings knallte es gegen den Anschlag. Der Endschalter löste nicht aus!

Dann zum Test auch noch den MAX invertiert:

const bool Y_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.

Gleiches Ergebnis.

Ich bin absolut ratlos.
Für heute mach ich erst mal Schluss. Vieleicht hat ja doch noch jemand eine Idee!?????

BG, Elton
 

Elton100

Erfahrener Benutzer
#4
Habe jetzt folgendes aktiviert:

#define ENDSTOPPULLUPS

und Y endstop inverting wieder auf true gesetzt.

Jetzt fährt das Bett korrekt nach hinten und der Y Endschalter löst aus.

X & Y fahren nun also korrekt an den Endschalter beim homen. Allerdings bewegt sich nun die Z Achse kein stück mehr!

Habe daraufhin die Z Endstops invertiert:

const bool X_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Y_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Z_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool X_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Y_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Z_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.

Die Z Achse macht immer noch keinen mucks.

Jetzt, wo die XY Achsen laufen, sehe ich, dass beide Achsen sich nur ca. 100mm vom Endschalter verfahren lassen. Dann ist Ende!

Ich schätze, jetzt muss ich wieder bei den ABL einstellungen suchen. Nur wo?

Eieiei...
 
Zuletzt bearbeitet:
#5
Hi Elton,

erst einmal auf Corexy umstellen/aktivieren, dann den Rest wie bei deiner alten Config + ABL

Grüße Jörg
 
#7
Hi Elton,

dann rück doch mal Daten raus, so kann man nicht helfen, und da die Stepper anscheinend nur den halben? Weg fahren, hörte sich das nach CoreXY an. Hast ja einen;)

Grüße Jörg
 

Elton100

Erfahrener Benutzer
#8
Sorry, aber welche Daten denn noch?

Hmm, hier ist das nächste krasse Phänomen: Bis jetzt habe ich den drucker mit Repetier-Host 1.0.6 angesteuert. Zum Test habe ich ihn mit S3D angesteuert. Die XY Achsen lassen sich mit S3D bis zum Ende fahren!

Häää??

Ok, die Z-Achse rührt sich aber immer noch nicht. edit: auch nicht wenn ich die z endstops wieder invertiere!

Da stimmt doch etwas vorne und hinten nicht...
 
Zuletzt bearbeitet:

Elton100

Erfahrener Benutzer
#9
Könnte es an der Marlin Version liegen? diese habe ich am 15.08.15 runtergeladen. Soo alt ist sie ja noch nicht. Kann man die Versionsnummer irgendwo einsehen? hab da nix gefunden. nutze arduino 1.5.8



EDIT: Hab ne readme Datei gefunden:

# Marlin 3D Printer Firmware
<img align="right" src="Documentation/Logo/Marlin%20Logo%20GitHub.png" />

Documentation has moved to [marlinfirmware.org](http://www.marlinfirmware.org).

## Release Branch

The Release branch contains the latest tagged version of Marlin (currently 1.0.2-1 – January 2015). It also includes a version 1.0.1 (December 2014). Any version of Marlin before 1.0.1 (when we started tagging versions) can be collectively referred to as Marlin 1.0.0.

## Patches - 1.0.x Branch

Any patches developed for this family of releases will be found on the [1.0.x branch](https://github.com/MarlinFirmware/Marlin/tree/1.0.x) of this repository.
 
Zuletzt bearbeitet:
#10
was für ein Drucker ist das, wo ist was montiert, das du ein Ramps 1.4 benutzt ist klar, Marlin Version ist die //#define*STRING_VERSION*"1.0.2"
 

Elton100

Erfahrener Benutzer
#11
Habe noch mal ein M119 gesendet:
X & Y min. sind triggered. der rest steht auf open.

Wenn ich die z achse manuell verfahre und einen gegenstand an den sensor halte, dann leuchtet dieser auf, aber die achse bleibt nicht stehen. (egal ob invertiert oder nicht).

Bin wieder ratlos...
 
#13
Wieso sollte sie stehen bleiben, wenn sie noch nicht gehomed sind?
Das Verhalten ist normal, da die Endstops nicht als Notabschaltung aktiv sind, sondern zum Referenzieren benutzt werden.
Da müsstest du in der configuration_adv.h Endstopcheck aktivieren.

Wie ist denn die Schaltung deines Kapazitiven Sensors, alles über 5V?
 

Elton100

Erfahrener Benutzer
#14
Wieso sollte sie stehen bleiben, wenn sie noch nicht gehomed sind?
Das Verhalten ist normal, da die Endstops nicht als Notabschaltung aktiv sind, sondern zum Referenzieren benutzt werden.
Da müsstest du in der configuration_adv.h Endstopcheck aktivieren.

Wie ist denn die Schaltung deines Kapazitiven Sensors, alles über 5V?
Hi helijoy,
Ah, OK, das ist mir bis jetzt noch nie so aufgefallen.

Genau so wie im Anschlussbild auf dieser Seite:
http://www.3d-proto.de/index.php?p=tips_autobed
Was da als z-min bezeichnet wird, geht bei mir auf dem ramps1.4 halt auf s. das zweite kabel auf -.

Die Schalter sind ganz normale Druckschalter ohne LED, die bei druck schließen.

Der Sensor ist ein NPN Schließer, genauer dieser: LJC18A3-H-Z/BX

BG, Elton
 
Zuletzt bearbeitet:

Elton100

Erfahrener Benutzer
#15
Hi, ich noch mal,

so schnell gebe ich ja nicht auf :popcorn:

habe mir nun mal die aktuelle Marlin Firmware runtergeladen (Marlin RC). Alles angepasst und Auto bed leveling erst mal aus gelassen.

Nun habe ich das problem, dass beim homen die Z achse zwar runter fährt, aber nicht stoppt obwohl der Sensor auslöst (LED am Sensor leuchtet auf).
Dieses Problem hat die alte Firmware nicht gemacht. ohne ABL hat er ganz normal gehomed.

Jetzt vieleicht jemand ne Idee?

Hier noch die aktuelle config.h:

Code:
#ifndef*CONFIGURATION_H
#define*CONFIGURATION_H

#include*"boards.h"
#include*"macros.h"

//===========================================================================
//=============================*Getting*Started*=============================
//===========================================================================
/*
Here*are*some*standard*links*for*getting*your*machine*calibrated:
***http://reprap.org/wiki/Calibration
***http://youtu.be/wAL9d7FgInk
***http://calculator.josefprusa.cz
***http://reprap.org/wiki/Triffid_Hunter%27s_Calibration_Guide
***http://www.thingiverse.com/thing:5573
***https://sites.google.com/site/repraplogphase/calibration-of-your-reprap
***http://www.thingiverse.com/thing:298812
*/

//*This*configuration*file*contains*the*basic*settings.
//*Advanced*settings*can*be*found*in*Configuration_adv.h
//*BASIC*SETTINGS:*select*your*board*type,*temperature*sensor*type,*axis*scaling,*and*endstop*configuration

//===========================================================================
//=============================*DELTA*Printer*===============================
//===========================================================================
//*For*a*Delta*printer*replace*the*configuration*files*with*the*files*in*the
//*example_configurations/delta*directory.
//

//===========================================================================
//=============================*SCARA*Printer*===============================
//===========================================================================
//*For*a*Scara*printer*replace*the*configuration*files*with*the*files*in*the
//*example_configurations/SCARA*directory.
//

//*@section*info

#if*ENABLED(USE_AUTOMATIC_VERSIONING)
**#include*"_Version.h"
#else
**#include*"Default_Version.h"
#endif

//*User-specified*version*info*of*this*build*to*display*in*[Pronterface,*etc]*terminal*window*during
//*startup.*Implementation*of*an*idea*by*Prof*Braino*to*inform*user*that*any*changes*made*to*this
//*build*by*the*user*have*been*successfully*uploaded*into*firmware.
#define*STRING_CONFIG_H_AUTHOR*"(none, default config)" // Who made the changes.
#define*SHOW_BOOTSCREEN
#define*STRING_SPLASH_LINE1*SHORT_BUILD_VERSION*// will be shown during bootup in line 1
//#define*STRING_SPLASH_LINE2*STRING_DISTRIBUTION_DATE*//*will*be*shown*during*bootup*in*line*2

//*@section*machine

//*SERIAL_PORT*selects*which*serial*port*should*be*used*for*communication*with*the*host.
//*This*allows*the*connection*of*wireless*adapters*(for*instance)*to*non-default*port*pins.
//*Serial*port*0*is*still*used*by*the*Arduino*bootloader*regardless*of*this*setting.
//*:[0,1,2,3,4,5,6,7]
#define*SERIAL_PORT*0

//*This*determines*the*communication*speed*of*the*printer
//*:[2400,9600,19200,38400,57600,115200,250000]
#define*BAUDRATE*115200

//*Enable*the*Bluetooth*serial*interface*on*AT90USB*devices
//#define*BLUETOOTH

//*The*following*define*selects*which*electronics*board*you*have.
//*Please*choose*the*name*from*boards.h*that*matches*your*setup
#ifndef*MOTHERBOARD
**#define*MOTHERBOARD*BOARD_RAMPS_13_EFB
#endif

//*Optional*custom*name*for*your*RepStrap*or*other*custom*machine
//*Displayed*in*the*LCD*"Ready"*message
//#define*CUSTOM_MACHINE_NAME*"3D*Printer"

//*Define*this*to*set*a*unique*identifier*for*this*printer,*(Used*by*some*programs*to*differentiate*between*machines)
//*You*can*use*an*online*service*to*generate*a*random*UUID.*(eg*http://www.uuidgenerator.net/version4)
//#define*MACHINE_UUID*"00000000-0000-0000-0000-000000000000"

//*This*defines*the*number*of*extruders
//*:[1,2,3,4]
#define*EXTRUDERS*1

//*Offset*of*the*extruders*(uncomment*if*using*more*than*one*and*relying*on*firmware*to*position*when*changing).
//*The*offset*has*to*be*X=0,*Y=0*for*the*extruder*0*hotend*(default*extruder).
//*For*the*other*hotends*it*is*their*distance*from*the*extruder*0*hotend.
//#define*EXTRUDER_OFFSET_X*{0.0,*20.00}*//*(in*mm)*for*each*extruder,*offset*of*the*hotend*on*the*X*axis
//#define*EXTRUDER_OFFSET_Y*{0.0,*5.00}**//*(in*mm)*for*each*extruder,*offset*of*the*hotend*on*the*Y*axis

////*The*following*define*selects*which*power*supply*you*have.*Please*choose*the*one*that*matches*your*setup
//*1*=*ATX
//*2*=*X-Box*360*203Watts*(the*blue*wire*connected*to*PS_ON*and*the*red*wire*to*VCC)
//*:{1:'ATX',2:'X-Box*360'}

#define*POWER_SUPPLY*1

//*Define*this*to*have*the*electronics*keep*the*power*supply*off*on*startup.*If*you*don't*know*what*this*is*leave*it.
//#define*PS_DEFAULT_OFF

//*@section*temperature

//===========================================================================
//=============================*Thermal*Settings*============================
//===========================================================================
//
//--NORMAL*IS*4.7kohm*PULLUP!--*1kohm*pullup*can*be*used*on*hotend*sensor,*using*correct*resistor*and*table
//
////*Temperature*sensor*settings:
//*-2*is*thermocouple*with*MAX6675*(only*for*sensor*0)
//*-1*is*thermocouple*with*AD595
//*0*is*not*used
//*1*is*100k*thermistor*-*best*choice*for*EPCOS*100k*(4.7k*pullup)
//*2*is*200k*thermistor*-*ATC*Semitec*204GT-2*(4.7k*pullup)
//*3*is*Mendel-parts*thermistor*(4.7k*pullup)
//*4*is*10k*thermistor*!!*do*not*use*it*for*a*hotend.*It*gives*bad*resolution*at*high*temp.*!!
//*5*is*100K*thermistor*-*ATC*Semitec*104GT-2*(Used*in*ParCan*&*J-Head)*(4.7k*pullup)
//*6*is*100k*EPCOS*-*Not*as*accurate*as*table*1*(created*using*a*fluke*thermocouple)*(4.7k*pullup)
//*7*is*100k*Honeywell*thermistor*135-104LAG-J01*(4.7k*pullup)
//*71*is*100k*Honeywell*thermistor*135-104LAF-J01*(4.7k*pullup)
//*8*is*100k*0603*SMD*Vishay*NTCS0603E3104FXT*(4.7k*pullup)
//*9*is*100k*GE*Sensing*AL03006-58.2K-97-G1*(4.7k*pullup)
//*10*is*100k*RS*thermistor*198-961*(4.7k*pullup)
//*11*is*100k*beta*3950*1%*thermistor*(4.7k*pullup)
//*12*is*100k*0603*SMD*Vishay*NTCS0603E3104FXT*(4.7k*pullup)*(calibrated*for*Makibox*hot*bed)
//*13*is*100k*Hisens*3950**1%*up*to*300°C*for*hotend*"Simple*ONE*"*&*"Hotend*"All*In*ONE"
//*20*is*the*PT100*circuit*found*in*the*Ultimainboard*V2.x
//*60*is*100k*Maker's*Tool*Works*Kapton*Bed*Thermistor*beta=3950
//
//****1k*ohm*pullup*tables*-*This*is*not*normal,*you*would*have*to*have*changed*out*your*4.7k*for*1k
//**************************(but*gives*greater*accuracy*and*more*stable*PID)
//*51*is*100k*thermistor*-*EPCOS*(1k*pullup)
//*52*is*200k*thermistor*-*ATC*Semitec*204GT-2*(1k*pullup)
//*55*is*100k*thermistor*-*ATC*Semitec*104GT-2*(Used*in*ParCan*&*J-Head)*(1k*pullup)
//
//*1047*is*Pt1000*with*4k7*pullup
//*1010*is*Pt1000*with*1k*pullup*(non*standard)
//*147*is*Pt100*with*4k7*pullup
//*110*is*Pt100*with*1k*pullup*(non*standard)
//*998*and*999*are*Dummy*Tables.*They*will*ALWAYS*read*25°C*or*the*temperature*defined*below.
//*****Use*it*for*Testing*or*Development*purposes.*NEVER*for*production*machine.
//#define*DUMMY_THERMISTOR_998_VALUE*25
//#define*DUMMY_THERMISTOR_999_VALUE*100
//*:{*'0':*"Not*used",*'4':*"10k*!!*do*not*use*for*a*hotend.*Bad*resolution*at*high*temp.*!!",*'1':*"100k*/*4.7k*-*EPCOS",*'51':*"100k*/*1k*-*EPCOS",*'6':*"100k*/*4.7k*EPCOS*-*Not*as*accurate*as*Table*1",*'5':*"100K*/*4.7k*-*ATC*Semitec*104GT-2*(Used*in*ParCan*&*J-Head)",*'7':*"100k*/*4.7k*Honeywell*135-104LAG-J01",*'71':*"100k*/*4.7k*Honeywell*135-104LAF-J01",*'8':*"100k*/*4.7k*0603*SMD*Vishay*NTCS0603E3104FXT",*'9':*"100k*/*4.7k*GE*Sensing*AL03006-58.2K-97-G1",*'10':*"100k*/*4.7k*RS*198-961",*'11':*"100k*/*4.7k*beta*3950*1%",*'12':*"100k*/*4.7k*0603*SMD*Vishay*NTCS0603E3104FXT*(calibrated*for*Makibox*hot*bed)",*'13':*"100k*Hisens*3950**1%*up*to*300°C*for*hotend*'Simple*ONE*'*&*hotend*'All*In*ONE'",*'60':*"100k*Maker's*Tool*Works*Kapton*Bed*Thermistor*beta=3950",*'55':*"100k*/*1k*-*ATC*Semitec*104GT-2*(Used*in*ParCan*&*J-Head)",*'2':*"200k*/*4.7k*-*ATC*Semitec*204GT-2",*'52':*"200k*/*1k*-*ATC*Semitec*204GT-2",*'-2':*"Thermocouple*+*MAX6675*(only*for*sensor*0)",*'-1':*"Thermocouple*+*AD595",*'3':*"Mendel-parts*/*4.7k",*'1047':*"Pt1000*/*4.7k",*'1010':*"Pt1000*/*1k*(non*standard)",*'20':*"PT100*(Ultimainboard*V2.x)",*'147':*"Pt100*/*4.7k",*'110':*"Pt100*/*1k*(non-standard)",*'998':*"Dummy*1",*'999':*"Dummy*2"*}
#define*TEMP_SENSOR_0*11
#define*TEMP_SENSOR_1*-1
#define*TEMP_SENSOR_2*0
#define*TEMP_SENSOR_3*0
#define*TEMP_SENSOR_BED*5

//*This*makes*temp*sensor*1*a*redundant*sensor*for*sensor*0.*If*the*temperatures*difference*between*these*sensors*is*to*high*the*print*will*be*aborted.
//#define*TEMP_SENSOR_1_AS_REDUNDANT
#define*MAX_REDUNDANT_TEMP_SENSOR_DIFF*10

//*Actual*temperature*must*be*close*to*target*for*this*long*before*M109*returns*success
#define*TEMP_RESIDENCY_TIME*10**// (seconds)
#define*TEMP_HYSTERESIS*3*******// (degC) range of +/- temperatures considered "close" to the target one
#define*TEMP_WINDOW*****1*******// (degC) Window around target to start the residency timer x degC early.

//*The*minimal*temperature*defines*the*temperature*below*which*the*heater*will*not*be*enabled*It*is*used
//*to*check*that*the*wiring*to*the*thermistor*is*not*broken.
//*Otherwise*this*would*lead*to*the*heater*being*powered*on*all*the*time.
#define*HEATER_0_MINTEMP*5
#define*HEATER_1_MINTEMP*5
#define*HEATER_2_MINTEMP*5
#define*HEATER_3_MINTEMP*5
#define*BED_MINTEMP*5

//*When*temperature*exceeds*max*temp,*your*heater*will*be*switched*off.
//*This*feature*exists*to*protect*your*hotend*from*overheating*accidentally,*but**NOT**from*thermistor*short/failure!
//*You*should*use*MINTEMP*for*thermistor*short/failure*protection.
#define*HEATER_0_MAXTEMP*295
#define*HEATER_1_MAXTEMP*295
#define*HEATER_2_MAXTEMP*295
#define*HEATER_3_MAXTEMP*295
#define*BED_MAXTEMP*150

//*If*your*bed*has*low*resistance*e.g.*.6*ohm*and*throws*the*fuse*you*can*duty*cycle*it*to*reduce*the
//*average*current.*The*value*should*be*an*integer*and*the*heat*bed*will*be*turned*on*for*1*interval*of
//*HEATER_BED_DUTY_CYCLE_DIVIDER*intervals.
//#define*HEATER_BED_DUTY_CYCLE_DIVIDER*4

//*If*you*want*the*M105*heater*power*reported*in*watts,*define*the*BED_WATTS,*and*(shared*for*all*extruders)*EXTRUDER_WATTS
//#define*EXTRUDER_WATTS*(12.0*12.0/6.7)*//**P=I^2/R
//#define*BED_WATTS*(12.0*12.0/1.1)******//*P=I^2/R

//===========================================================================
//=============================*PID*Settings*================================
//===========================================================================
//*PID*Tuning*Guide*here:*http://reprap.org/wiki/PID_Tuning

//*Comment*the*following*line*to*disable*PID*and*enable*bang-bang.
#define*PIDTEMP
#define*BANG_MAX*180*// limits current to nozzle while in bang-bang mode; 255=full current
#define*PID_MAX*BANG_MAX*// limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
#if*ENABLED(PIDTEMP)
**//#define PID_DEBUG // Sends debug data to the serial port.
**//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
**//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
**//#define PID_PARAMS_PER_EXTRUDER // Uses separate PID parameters for each extruder (useful for mismatched extruders)
************************************// Set/get with gcode: M301 E[extruder number, 0-2]
**#define*PID_FUNCTIONAL_RANGE*10*// If the temperature difference between the target temperature and the actual temperature
**********************************// is more then PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
**#define*PID_INTEGRAL_DRIVE_MAX*PID_MAX**//limit for the integral term
**#define*K1*0.95*//smoothing factor within the PID

**// If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
**// Ultimaker
**#define**DEFAULT_Kp*22.2
**#define**DEFAULT_Ki*1.08
**#define**DEFAULT_Kd*114

**// MakerGear
**//#define  DEFAULT_Kp 7.0
**//#define  DEFAULT_Ki 0.1
**//#define  DEFAULT_Kd 12

**// Mendel Parts V9 on 12V
**//#define  DEFAULT_Kp 63.0
**//#define  DEFAULT_Ki 2.25
**//#define  DEFAULT_Kd 440

#endif*// PIDTEMP

//===========================================================================
//=============================*PID*>*Bed*Temperature*Control*===============
//===========================================================================
//*Select*PID*or*bang-bang*with*PIDTEMPBED.*If*bang-bang,*BED_LIMIT_SWITCHING*will*enable*hysteresis
//
//*Uncomment*this*to*enable*PID*on*the*bed.*It*uses*the*same*frequency*PWM*as*the*extruder.
//*If*your*PID_dT*is*the*default,*and*correct*for*your*hardware/configuration,*that*means*7.689Hz,
//*which*is*fine*for*driving*a*square*wave*into*a*resistive*load*and*does*not*significantly*impact*you*FET*heating.
//*This*also*works*fine*on*a*Fotek*SSR-10DA*Solid*State*Relay*into*a*250W*heater.
//*If*your*configuration*is*significantly*different*than*this*and*you*don't*understand*the*issues*involved,*you*probably
//*shouldn't*use*bed*PID*until*someone*else*verifies*your*hardware*works.
//*If*this*is*enabled,*find*your*own*PID*constants*below.
//#define*PIDTEMPBED

//#define*BED_LIMIT_SWITCHING

//*This*sets*the*max*power*delivered*to*the*bed,*and*replaces*the*HEATER_BED_DUTY_CYCLE_DIVIDER*option.
//*all*forms*of*bed*control*obey*this*(PID,*bang-bang,*bang-bang*with*hysteresis)
//*setting*this*to*anything*other*than*255*enables*a*form*of*PWM*to*the*bed*just*like*HEATER_BED_DUTY_CYCLE_DIVIDER*did,
//*so*you*shouldn't*use*it*unless*you*are*OK*with*PWM*on*your*bed.**(see*the*comment*on*enabling*PIDTEMPBED)
#define*MAX_BED_POWER*255*// limits duty cycle to bed; 255=full current

//#define*PID_BED_DEBUG*//*Sends*debug*data*to*the*serial*port.

#if*ENABLED(PIDTEMPBED)

**#define*PID_BED_INTEGRAL_DRIVE_MAX*MAX_BED_POWER*//limit for the integral term

**//120v 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
**//from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, aggressive factor of .15 (vs .1, 1, 10)
**#define**DEFAULT_bedKp*10.00
**#define**DEFAULT_bedKi*.023
**#define**DEFAULT_bedKd*305.4

**//120v 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
**//from pidautotune
**//#define  DEFAULT_bedKp 97.1
**//#define  DEFAULT_bedKi 1.41
**//#define  DEFAULT_bedKd 1675.16

**// FIND YOUR OWN: "M303 E-1 C8 S90" to run autotune on the bed at 90 degreesC for 8 cycles.
#endif*// PIDTEMPBED

//*@section*extruder

//this*prevents*dangerous*Extruder*moves,*i.e.*if*the*temperature*is*under*the*limit
//can*be*software-disabled*for*whatever*purposes*by
#define*PREVENT_DANGEROUS_EXTRUDE
//if*PREVENT_DANGEROUS_EXTRUDE*is*on,*you*can*still*disable*(uncomment)*very*long*bits*of*extrusion*separately.
#define*PREVENT_LENGTHY_EXTRUDE

#define*EXTRUDE_MINTEMP*170
#define*EXTRUDE_MAXLENGTH*(X_MAX_LENGTH+Y_MAX_LENGTH)*//prevent extrusion of very large distances.

//===========================================================================
//========================*Thermal*Runaway*Protection*=======================
//===========================================================================

/**
***Thermal*Runaway*Protection*protects*your*printer*from*damage*and*fire*if*a
***thermistor*falls*out*or*temperature*sensors*fail*in*any*way.
**
***The*issue:*If*a*thermistor*falls*out*or*a*temperature*sensor*fails,
***Marlin*can*no*longer*sense*the*actual*temperature.*Since*a*disconnected
***thermistor*reads*as*a*low*temperature,*the*firmware*will*keep*the*heater*on.
**
***The*solution:*Once*the*temperature*reaches*the*target,*start*observing.
***If*the*temperature*stays*too*far*below*the*target*(hysteresis)*for*too*long,
***the*firmware*will*halt*as*a*safety*precaution.
**/

#define*THERMAL_PROTECTION_HOTENDS*// Enable thermal protection for all extruders
#define*THERMAL_PROTECTION_BED*****// Enable thermal protection for the heated bed

//===========================================================================
//=============================*Mechanical*Settings*=========================
//===========================================================================

//*@section*machine

//*Uncomment*this*option*to*enable*CoreXY*kinematics
//#define*COREXY

//*Uncomment*this*option*to*enable*CoreXZ*kinematics
//#define*COREXZ

//*Enable*this*option*for*Toshiba*steppers
//#define*CONFIG_STEPPERS_TOSHIBA

//*@section*homing

//*coarse*Endstop*Settings
#define*ENDSTOPPULLUPS*// Comment this out (using // at the start of the line) to disable the endstop pullup resistors

#if*DISABLED(ENDSTOPPULLUPS)
**// fine endstop settings: Individual pullups. will be ignored if ENDSTOPPULLUPS is defined
**//#define ENDSTOPPULLUP_XMAX
**//#define ENDSTOPPULLUP_YMAX
**//#define ENDSTOPPULLUP_ZMAX
**//#define ENDSTOPPULLUP_XMIN
**//#define ENDSTOPPULLUP_YMIN
**//#define ENDSTOPPULLUP_ZMIN
**//#define ENDSTOPPULLUP_ZMIN_PROBE
#endif

//*Mechanical*endstop*with*COM*to*ground*and*NC*to*Signal*uses*"false"*here*(most*common*setup).
const bool X_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Y_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Z_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool X_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Y_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Z_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
//#define*DISABLE_MAX_ENDSTOPS
//#define*DISABLE_MIN_ENDSTOPS

//*If*you*want*to*enable*the*Z*probe*pin,*but*disable*its*use,*uncomment*the*line*below.
//*This*only*affects*a*Z*probe*endstop*if*you*have*separate*Z*min*endstop*as*well*and*have
//*activated*Z_MIN_PROBE_ENDSTOP*below.*If*you*are*using*the*Z*Min*endstop*on*your*Z*probe,
//*this*has*no*effect.
//#define*DISABLE_Z_MIN_PROBE_ENDSTOP

//*For*Inverting*Stepper*Enable*Pins*(Active*Low)*use*0,*Non*Inverting*(Active*High)*use*1
//*:{0:'Low',1:'High'}
#define*X_ENABLE_ON*0
#define*Y_ENABLE_ON*0
#define*Z_ENABLE_ON*0
#define*E_ENABLE_ON*0*// For all extruders

//*Disables*axis*when*it's*not*being*used.
//*WARNING:*When*motors*turn*off*there*is*a*chance*of*losing*position*accuracy!
#define*DISABLE_X*false
#define*DISABLE_Y*false
#define*DISABLE_Z*false

//*@section*extruder

#define*DISABLE_E*false // For all extruders
#define*DISABLE_INACTIVE_EXTRUDER*true //disable only inactive extruders and keep active extruder enabled

//*@section*machine

//*Invert*the*stepper*direction.*Change*(or*reverse*the*motor*connector)*if*an*axis*goes*the*wrong*way.
#define*INVERT_X_DIR*false
#define*INVERT_Y_DIR*true
#define*INVERT_Z_DIR*false

//*@section*extruder

//*For*direct*drive*extruder*v9*set*to*true,*for*geared*extruder*set*to*false.
#define*INVERT_E0_DIR*false
#define*INVERT_E1_DIR*false
#define*INVERT_E2_DIR*false
#define*INVERT_E3_DIR*false

//*@section*homing

//*ENDSTOP*SETTINGS:
//*Sets*direction*of*endstops*when*homing;*1=MAX,*-1=MIN
//*:[-1,1]
#define*X_HOME_DIR*-1
#define*Y_HOME_DIR*-1
#define*Z_HOME_DIR*-1

#define*min_software_endstops*true // If true, axis won't move to coordinates less than HOME_POS.
#define*max_software_endstops*true  // If true, axis won't move to coordinates greater than the defined lengths below.

//*@section*machine

//*Travel*limits*after*homing*(units*are*in*mm)
#define*X_MIN_POS*0
#define*Y_MIN_POS*0
#define*Z_MIN_POS*0
#define*X_MAX_POS*200
#define*Y_MAX_POS*300
#define*Z_MAX_POS*203

//===========================================================================
//=========================*Filament*Runout*Sensor*==========================
//===========================================================================
//#define*FILAMENT_RUNOUT_SENSOR*//*Uncomment*for*defining*a*filament*runout*sensor*such*as*a*mechanical*or*opto*endstop*to*check*the*existence*of*filament
*********************************// In RAMPS uses servo pin 2. Can be changed in pins file. For other boards pin definition should be made.
*********************************// It is assumed that when logic high = filament available
*********************************//                    when logic  low = filament ran out
#if*ENABLED(FILAMENT_RUNOUT_SENSOR)
**const bool FIL_RUNOUT_INVERTING = true;  // Should be uncommented and true or false should assigned
**#define*ENDSTOPPULLUP_FIL_RUNOUT*// Uncomment to use internal pullup for filament runout pins if the sensor is defined.
**#define*FILAMENT_RUNOUT_SCRIPT*"M600"
#endif

//===========================================================================
//===========================*Manual*Bed*Leveling*===========================
//===========================================================================

//#define*MANUAL_BED_LEVELING**//*Add*display*menu*option*for*bed*leveling.
//#define*MESH_BED_LEVELING****//*Enable*mesh*bed*leveling.

#if*ENABLED(MANUAL_BED_LEVELING)
**#define*MBL_Z_STEP*0.025**// Step size while manually probing Z axis.
#endif**// MANUAL_BED_LEVELING

#if*ENABLED(MESH_BED_LEVELING)
**#define*MESH_MIN_X*10
**#define*MESH_MAX_X*(X_MAX_POS*-*MESH_MIN_X)
**#define*MESH_MIN_Y*10
**#define*MESH_MAX_Y*(Y_MAX_POS*-*MESH_MIN_Y)
**#define*MESH_NUM_X_POINTS*3**// Don't use more than 7 points per axis, implementation limited.
**#define*MESH_NUM_Y_POINTS*3
**#define*MESH_HOME_SEARCH_Z*4**// Z after Home, bed somewhere below but above 0.0.
#endif**// MESH_BED_LEVELING

//===========================================================================
//============================*Bed*Auto*Leveling*============================
//===========================================================================

//*@section*bedlevel

//#define*AUTO_BED_LEVELING_FEATURE*//*Delete*the*comment*to*enable*(remove*//*at*the*start*of*the*line)
//#define*DEBUG_LEVELING_FEATURE
#define*Z_MIN_PROBE_REPEATABILITY_TEST**// If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled.

#if*ENABLED(AUTO_BED_LEVELING_FEATURE)

**// There are 2 different ways to specify probing locations:
**//
**// - "grid" mode
**//   Probe several points in a rectangular grid.
**//   You specify the rectangle and the density of sample points.
**//   This mode is preferred because there are more measurements.
**//
**// - "3-point" mode
**//   Probe 3 arbitrary points on the bed (that aren't colinear)
**//   You specify the XY coordinates of all 3 points.

**// Enable this to sample the bed in a grid (least squares solution).
**// Note: this feature generates 10KB extra code size.
**#define*AUTO_BED_LEVELING_GRID

**#if*ENABLED(AUTO_BED_LEVELING_GRID)

****#define*LEFT_PROBE_BED_POSITION*15
****#define*RIGHT_PROBE_BED_POSITION*170
****#define*FRONT_PROBE_BED_POSITION*20
****#define*BACK_PROBE_BED_POSITION*170

****#define*MIN_PROBE_EDGE*10*// The Z probe 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).
****#define*AUTO_BED_LEVELING_GRID_POINTS*2

**#else**// !AUTO_BED_LEVELING_GRID

******// Arbitrary points to probe.
******// A simple cross-product is used to estimate the plane of the bed.
******#define*ABL_PROBE_PT_1_X*15
******#define*ABL_PROBE_PT_1_Y*180
******#define*ABL_PROBE_PT_2_X*15
******#define*ABL_PROBE_PT_2_Y*20
******#define*ABL_PROBE_PT_3_X*170
******#define*ABL_PROBE_PT_3_Y*20

**#endif*// AUTO_BED_LEVELING_GRID

**// Offsets to the Z probe relative to the nozzle tip.
**// X and Y offsets must be integers.
**#define*X_PROBE_OFFSET_FROM_EXTRUDER*-25*****// Z probe to nozzle X offset: -left  +right
**#define*Y_PROBE_OFFSET_FROM_EXTRUDER*-29*****// Z probe to nozzle Y offset: -front +behind
**#define*Z_PROBE_OFFSET_FROM_EXTRUDER*-12.35**// Z probe to nozzle Z offset: -below (always!)

**#define*Z_RAISE_BEFORE_HOMING*4*******// (in mm) Raise Z axis before homing (G28) for Z probe clearance.
****************************************// Be sure you have this distance over your Z_MAX_POS in case.

**#define*XY_TRAVEL_SPEED*8000*********// X and Y axis travel speed between probes, in mm/min.

**#define*Z_RAISE_BEFORE_PROBING*15***// How much the Z axis will be raised before traveling to the first probing point.
**#define*Z_RAISE_BETWEEN_PROBINGS*5**// How much the Z axis will be raised when traveling from between next probing points.
**#define*Z_RAISE_AFTER_PROBING*15****// How much the Z axis will be raised after the last probing point.

//#define*Z_PROBE_END_SCRIPT*"G1*Z10*F12000\nG1*X15*Y330\nG1*Z0.5\nG1*Z10"*//*These*commands*will*be*executed*in*the*end*of*G29*routine.
****************************************************************************// Useful to retract a deployable Z probe.

**//#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
**//#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.


**//If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
**//it is highly recommended you let this Z_SAFE_HOMING enabled!!!

**#define*Z_SAFE_HOMING***// This feature is meant to avoid Z homing with Z probe outside the bed area.
**************************// When defined, it will:
**************************// - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
**************************// - If stepper drivers timeout, it will need X and Y homing again before Z homing.
**************************// - Position the Z probe in a defined XY point before Z Homing when homing all axis (G28).
**************************// - Block Z homing only when the Z probe is outside bed area.

**#if*ENABLED(Z_SAFE_HOMING)

****#define*Z_SAFE_HOMING_X_POINT*((X_MIN_POS*+*X_MAX_POS)*/*2)****// X point for Z homing when homing all axis (G28).
****#define*Z_SAFE_HOMING_Y_POINT*((Y_MIN_POS*+*Y_MAX_POS)*/*2)****// Y point for Z homing when homing all axis (G28).

**#endif

**// Support for a dedicated Z probe endstop separate from the Z min endstop.
**// If you would like to use both a Z probe and a Z min endstop together,
**// uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below.
**// If you still want to use the Z min endstop for homing, disable Z_SAFE_HOMING above.
**// Example: To park the head outside the bed area when homing with G28.
**//
**// WARNING:
**// The Z min endstop will need to set properly as it would without a Z probe
**// to prevent head crashes and premature stopping during a print.
**//
**// To use a separate Z probe endstop, you must have a Z_MIN_PROBE_PIN
**// defined in the pins_XXXXX.h file for your control board.
**// If you are using a servo based Z probe, you will need to enable NUM_SERVOS,
**// Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C SERVO support below.
**// RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin
**// in the Aux 4 section of the RAMPS board. Use 5V for powered sensors,
**// otherwise connect to ground and D32 for normally closed configuration
**// and 5V and D32 for normally open configurations.
**// Normally closed configuration is advised and assumed.
**// The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin.
**// Z_MIN_PROBE_PIN is setting the pin to use on the Arduino.
**// Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
**// D32 is currently selected in the RAMPS 1.3/1.4 pin file.
**// All other boards will need changes to the respective pins_XXXXX.h file.
**//
**// WARNING:
**// Setting the wrong pin may have unexpected and potentially disastrous outcomes.
**// Use with caution and do your homework.
**//
**//#define Z_MIN_PROBE_ENDSTOP

#endif*// AUTO_BED_LEVELING_FEATURE


//*@section*homing

//*The*position*of*the*homing*switches
//#define*MANUAL_HOME_POSITIONS**//*If*defined,*MANUAL_*_HOME_POS*below*will*be*used
//#define*BED_CENTER_AT_0_0**//*If*defined,*the*center*of*the*bed*is*at*(X=0,*Y=0)

//*Manual*homing*switch*locations:
//*For*deltabots*this*means*top*and*center*of*the*Cartesian*print*volume.
#if*ENABLED(MANUAL_HOME_POSITIONS)
**#define*MANUAL_X_HOME_POS*0
**#define*MANUAL_Y_HOME_POS*0
**#define*MANUAL_Z_HOME_POS*0
**//#define MANUAL_Z_HOME_POS 402 // For delta: Distance between nozzle and print surface after homing.
#endif

//*@section*movement

/**
***MOVEMENT*SETTINGS
**/

#define*HOMING_FEEDRATE*{50*48,*50*48,*4*45,*0}**// set the homing speeds (mm/min)

//*default*settings

#define*DEFAULT_AXIS_STEPS_PER_UNIT***{80,80,4000,146}**// default steps per unit for Ultimaker
#define*DEFAULT_MAX_FEEDRATE**********{300,*300,*3,*150}****// (mm/sec)
#define*DEFAULT_MAX_ACCELERATION******{1000,1000,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_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)
#define*DEFAULT_XYJERK****************20.0****// (mm/sec)
#define*DEFAULT_ZJERK*****************0.4*****// (mm/sec)
#define*DEFAULT_EJERK*****************5.0****// (mm/sec)


//=============================================================================
//=============================*Additional*Features*===========================
//=============================================================================

//*@section*more

//*Custom*M*code*points
#define*CUSTOM_M_CODES
#if*ENABLED(CUSTOM_M_CODES)
**#if*ENABLED(AUTO_BED_LEVELING_FEATURE)
****#define*CUSTOM_M_CODE_SET_Z_PROBE_OFFSET*851
****#define*Z_PROBE_OFFSET_RANGE_MIN*-20
****#define*Z_PROBE_OFFSET_RANGE_MAX*20
**#endif
#endif

//*@section*extras

//*EEPROM
//*The*microcontroller*can*store*settings*in*the*EEPROM,*e.g.*max*velocity...
//*M500*-*stores*parameters*in*EEPROM
//*M501*-*reads*parameters*from*EEPROM*(if*you*need*reset*them*after*you*changed*them*temporarily).
//*M502*-*reverts*to*the*default*"factory*settings".**You*still*need*to*store*them*in*EEPROM*afterwards*if*you*want*to.
//define*this*to*enable*EEPROM*support
//#define*EEPROM_SETTINGS

#if*ENABLED(EEPROM_SETTINGS)
**// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
**#define*EEPROM_CHITCHAT*// Please keep turned on if you can.
#endif

//
//*M100*Free*Memory*Watcher
//
//#define*M100_FREE_MEMORY_WATCHER*//*uncomment*to*add*the*M100*Free*Memory*Watcher*for*debug*purpose

//*@section*temperature

//*Preheat*Constants
#define*PLA_PREHEAT_HOTEND_TEMP*220
#define*PLA_PREHEAT_HPB_TEMP*60
#define*PLA_PREHEAT_FAN_SPEED*0***// Insert Value between 0 and 255

#define*ABS_PREHEAT_HOTEND_TEMP*245
#define*ABS_PREHEAT_HPB_TEMP*90
#define*ABS_PREHEAT_FAN_SPEED*0***// Insert Value between 0 and 255

//==============================LCD*and*SD*support=============================
//*@section*lcd

//*Define*your*display*language*below.*Replace*(en)*with*your*language*code*and*uncomment.
//*en,*pl,*fr,*de,*es,*ru,*bg,*it,*pt,*pt-br,*fi,*an,*nl,*ca,*eu,*kana,*kana_utf8,*cn,*test
//*See*also*language.h
#define*LANGUAGE_INCLUDE*GENERATE_LANGUAGE_INCLUDE(en)

//*Choose*ONE*of*these*3*charsets.*This*has*to*match*your*hardware.*Ignored*for*full*graphic*display.
//*To*find*out*what*type*you*have*-*compile*with*(test)*-*upload*-*click*to*get*the*menu.*You'll*see*two*typical*lines*from*the*upper*half*of*the*charset.
//*See*also*documentation/LCDLanguageFont.md
**#define*DISPLAY_CHARSET_HD44780_JAPAN********// this is the most common hardware
**//#define DISPLAY_CHARSET_HD44780_WESTERN
**//#define DISPLAY_CHARSET_HD44780_CYRILLIC

//#define*ULTRA_LCD**//general*LCD*support,*also*16x2
//#define*DOGLCD**//*Support*for*SPI*LCD*128x64*(Controller*ST7565R*graphic*Display*Family)
//#define*SDSUPPORT*//*Enable*SD*Card*Support*in*Hardware*Console
//*Changed*behaviour!*If*you*need*SDSUPPORT*uncomment*it!
//#define*SDSLOW*//*Use*slower*SD*transfer*mode*(not*normally*needed*-*uncomment*if*you're*getting*volume*init*error)
//#define*SDEXTRASLOW*//*Use*even*slower*SD*transfer*mode*(not*normally*needed*-*uncomment*if*you're*getting*volume*init*error)
//#define*SD_CHECK_AND_RETRY*//*Use*CRC*checks*and*retries*on*the*SD*communication
//#define*ENCODER_PULSES_PER_STEP*1*//*Increase*if*you*have*a*high*resolution*encoder
//#define*ENCODER_STEPS_PER_MENU_ITEM*5*//*Set*according*to*ENCODER_PULSES_PER_STEP*or*your*liking
//#define*ULTIMAKERCONTROLLER*//as*available*from*the*Ultimaker*online*store.
//#define*ULTIPANEL**//the*UltiPanel*as*on*Thingiverse
//#define*SPEAKER*//*The*sound*device*is*a*speaker*-*not*a*buzzer.*A*buzzer*resonates*with*his*own*frequency.
//#define*LCD_FEEDBACK_FREQUENCY_DURATION_MS*100*//*the*duration*the*buzzer*plays*the*UI*feedback*sound.*ie*Screen*Click
//#define*LCD_FEEDBACK_FREQUENCY_HZ*1000*********//*this*is*the*tone*frequency*the*buzzer*plays*when*on*UI*feedback.*ie*Screen*Click
*************************************************// 0 to disable buzzer feedback. Test with M300 S<frequency Hz> P<duration ms>
//*PanelOne*from*T3P3*(via*RAMPS*1.4*AUX2/AUX3)
//*http://reprap.org/wiki/PanelOne
//#define*PANEL_ONE

//*The*MaKr3d*Makr-Panel*with*graphic*controller*and*SD*support
//*http://reprap.org/wiki/MaKr3d_MaKrPanel
//#define*MAKRPANEL

//*The*Panucatt*Devices*Viki*2.0*and*mini*Viki*with*Graphic*LCD
//*http://panucatt.com
//*==>*REMEMBER*TO*INSTALL*U8glib*to*your*ARDUINO*library*folder:*http://code.google.com/p/u8glib/wiki/u8glib
//#define*VIKI2
//#define*miniVIKI

//*This*is*a*new*controller*currently*under*development.**https://github.com/eboston/Adafruit-ST7565-Full-Graphic-Controller/
//
//*==>*REMEMBER*TO*INSTALL*U8glib*to*your*ARDUINO*library*folder:*http://code.google.com/p/u8glib/wiki/u8glib
//#define*ELB_FULL_GRAPHIC_CONTROLLER
//#define*SD_DETECT_INVERTED

//*The*RepRapDiscount*Smart*Controller*(white*PCB)
//*http://reprap.org/wiki/RepRapDiscount_Smart_Controller
//#define*REPRAP_DISCOUNT_SMART_CONTROLLER

//*The*GADGETS3D*G3D*LCD/SD*Controller*(blue*PCB)
//*http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel
//#define*G3D_PANEL

//*The*RepRapDiscount*FULL*GRAPHIC*Smart*Controller*(quadratic*white*PCB)
//*http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller
//
//*==>*REMEMBER*TO*INSTALL*U8glib*to*your*ARDUINO*library*folder:*http://code.google.com/p/u8glib/wiki/u8glib
//#define*REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER

//*The*RepRapWorld*REPRAPWORLD_KEYPAD*v1.1
//*http://reprapworld.com/?products_details&products_id=202&cPath=1591_1626
//#define*REPRAPWORLD_KEYPAD
//#define*REPRAPWORLD_KEYPAD_MOVE_STEP*10.0*//*how*much*should*be*moved*when*a*key*is*pressed,*eg*10.0*means*10mm*per*click

//*The*Elefu*RA*Board*Control*Panel
//*http://www.elefu.com/index.php?route=product/product&product_id=53
//*REMEMBER*TO*INSTALL*LiquidCrystal_I2C.h*in*your*ARDUINO*library*folder:*https://github.com/kiyoshigawa/LiquidCrystal_I2C
//#define*RA_CONTROL_PANEL

//*The*MakerLab*Mini*Panel*with*graphic*controller*and*SD*support
//*http://reprap.org/wiki/Mini_panel
//#define*MINIPANEL

/**
***I2C*Panels
**/

//#define*LCD_I2C_SAINSMART_YWROBOT

//*PANELOLU2*LCD*with*status*LEDs,*separate*encoder*and*click*inputs
//
//*This*uses*the*LiquidTWI2*library*v1.2.3*or*later*(*https://github.com/lincomatic/LiquidTWI2*)
//*Make*sure*the*LiquidTWI2*directory*is*placed*in*the*Arduino*or*Sketchbook*libraries*subdirectory.
//*(v1.2.3*no*longer*requires*you*to*define*PANELOLU*in*the*LiquidTWI2.h*library*header*file)
//*Note:*The*PANELOLU2*encoder*click*input*can*either*be*directly*connected*to*a*pin
//*******(if*BTN_ENC*defined*to*!=*-1)*or*read*through*I2C*(when*BTN_ENC*==*-1).
//#define*LCD_I2C_PANELOLU2

//*Panucatt*VIKI*LCD*with*status*LEDs,*integrated*click*&*L/R/U/P*buttons,*separate*encoder*inputs
//#define*LCD_I2C_VIKI
**
//*SSD1306*OLED*generic*display*support
//*==>*REMEMBER*TO*INSTALL*U8glib*to*your*ARDUINO*library*folder:*http://code.google.com/p/u8glib/wiki/u8glib
//#define*U8GLIB_SSD1306

//*Shift*register*panels
//*---------------------
//*2*wire*Non-latching*LCD*SR*from:
//*https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/schematics#!shiftregister-connection
//*LCD*configuration:*http://reprap.org/wiki/SAV_3D_LCD
//#define*SAV_3DLCD

//*@section*extras

//*Increase*the*FAN*pwm*frequency.*Removes*the*PWM*noise*but*increases*heating*in*the*FET/Arduino
//#define*FAST_PWM_FAN

//*Use*software*PWM*to*drive*the*fan,*as*for*the*heaters.*This*uses*a*very*low*frequency
//*which*is*not*as*annoying*as*with*the*hardware*PWM.*On*the*other*hand,*if*this*frequency
//*is*too*low,*you*should*also*increment*SOFT_PWM_SCALE.
//#define*FAN_SOFT_PWM

//*Incrementing*this*by*1*will*double*the*software*PWM*frequency,
//*affecting*heaters,*and*the*fan*if*FAN_SOFT_PWM*is*enabled.
//*However,*control*resolution*will*be*halved*for*each*increment;
//*at*zero*value,*there*are*128*effective*control*positions.
#define*SOFT_PWM_SCALE*0

//*Temperature*status*LEDs*that*display*the*hotend*and*bet*temperature.
//*If*all*hotends*and*bed*temperature*and*temperature*setpoint*are*<*54C*then*the*BLUE*led*is*on.
//*Otherwise*the*RED*led*is*on.*There*is*1C*hysteresis.
//#define*TEMP_STAT_LEDS

//*M240**Triggers*a*camera*by*emulating*a*Canon*RC-1*Remote
//*Data*from:*http://www.doc-diy.net/photo/rc-1_hacked/
//#define*PHOTOGRAPH_PIN*****23

//*SkeinForge*sends*the*wrong*arc*g-codes*when*using*Arc*Point*as*fillet*procedure
//#define*SF_ARC_FIX

//*Support*for*the*BariCUDA*Paste*Extruder.
//#define*BARICUDA

//define*BlinkM/CyzRgb*Support
//#define*BLINKM

/*********************************************************************\
**R/C*SERVO*support
**Sponsored*by*TrinityLabs,*Reworked*by*codexmas
**********************************************************************/

//*Number*of*servos
//
//*If*you*select*a*configuration*below,*this*will*receive*a*default*value*and*does*not*need*to*be*set*manually
//*set*it*manually*if*you*have*more*servos*than*extruders*and*wish*to*manually*control*some
//*leaving*it*undefined*or*defining*as*0*will*disable*the*servo*subsystem
//*If*unsure,*leave*commented*/*disabled
//
//#define*NUM_SERVOS*3*//*Servo*index*starts*with*0*for*M280*command

//*Servo*Endstops
//
//*This*allows*for*servo*actuated*endstops,*primary*usage*is*for*the*Z*Axis*to*eliminate*calibration*or*bed*height*changes.
//*Use*M851*to*set*the*Z*probe*vertical*offset*from*the*nozzle.*Store*that*setting*with*M500.
//
//#define*X_ENDSTOP_SERVO_NR*1
//#define*Y_ENDSTOP_SERVO_NR*2
//#define*Z_ENDSTOP_SERVO_NR*0
//#define*SERVO_ENDSTOP_ANGLES*{{0,0},*{0,0},*{70,0}}*//*X,Y,Z*Axis*Extend*and*Retract*angles

//*Servo*deactivation
//
//*With*this*option*servos*are*powered*only*during*movement,*then*turned*off*to*prevent*jitter.
//#define*DEACTIVATE_SERVOS_AFTER_MOVE

#if*ENABLED(DEACTIVATE_SERVOS_AFTER_MOVE)
**// Delay (in microseconds) before turning the servo off. This depends on the servo speed.
**// 300ms is a good value but you can try less delay.
**// If the servo can't reach the requested position, increase it.
**#define*SERVO_DEACTIVATION_DELAY*300
#endif

/**********************************************************************\
***Support*for*a*filament*diameter*sensor
***Also*allows*adjustment*of*diameter*at*print*time*(vs**at*slicing)
***Single*extruder*only*at*this*point*(extruder*0)
**
***Motherboards
***34*-*RAMPS1.4*-*uses*Analog*input*5*on*the*AUX2*connector
***81*-*Printrboard*-*Uses*Analog*input*2*on*the*Exp1*connector*(version*B,C,D,E)
***301*-*Rambo**-*uses*Analog*input*3
***Note*may*require*analog*pins*to*be*defined*for*different*motherboards
***********************************************************************/
//*Uncomment*below*to*enable
//#define*FILAMENT_SENSOR

#define*FILAMENT_SENSOR_EXTRUDER_NUM*0***//The number of the extruder that has the filament sensor (0,1,2)
#define*MEASUREMENT_DELAY_CM********14***//measurement delay in cm.  This is the distance from filament sensor to middle of barrel

#define*DEFAULT_NOMINAL_FILAMENT_DIA*1.75**//Enter the diameter (in mm) of the filament generally used (3.0 mm or 1.75 mm) - this is then used in the slicer software.  Used for sensor reading validation
#define*MEASURED_UPPER_LIMIT*********2.05**//upper limit factor used for sensor reading validation in mm
#define*MEASURED_LOWER_LIMIT*********1.45**//lower limit factor for sensor reading validation in mm
#define*MAX_MEASUREMENT_DELAY*******20*****//delay buffer size in bytes (1 byte = 1cm)- limits maximum measurement delay allowable (must be larger than MEASUREMENT_DELAY_CM  and lower number saves RAM)

//defines*used*in*the*code
#define*DEFAULT_MEASURED_FILAMENT_DIA**DEFAULT_NOMINAL_FILAMENT_DIA**//set measured to nominal initially

//When*using*an*LCD,*uncomment*the*line*below*to*display*the*Filament*sensor*data*on*the*last*line*instead*of*status.**Status*will*appear*for*5*sec.
//#define*FILAMENT_LCD_DISPLAY

#include*"Configuration_adv.h"
#include*"thermistortables.h"

#endif*//CONFIGURATION_H
 
#16
Ok, der Sensor sollte mit dieser Schaltung ein sauberes Signal liefern.
Aber auch hier ist M119 dein Freund, check doch mal wie der Status ist, wenn der Sensor auslöst/die Lampe leuchtet.
Nur darüber kannst du/wir mehr erfahren, wo das Problem ist. Sonst sieht alles Ok aus, mußt halt schauen, ob die Logik des Z-Sensors stimmt, damit er das Richtige macht.
 

Elton100

Erfahrener Benutzer
#17
hi helijoy,
zmin ist open, obwohl die led leuchtet, wenn ich etwas dran halte. wenn sie nicht leuchtet ist zmin übrigens auch open. der rest ist triggered! ich muss jedes mal den strom abschalten wenn ich versuche zu homen. z stoppt logischerweise nicht.
da der sensor mit der alten software ohne abl ja bereits erfolgreich ausgelöst hat, kann ich einen hardware-defekt ausschließen.

bg, elton
 
Zuletzt bearbeitet:

SteBa

Erfahrener Benutzer
#18
Hast du denn jetzt endlich mal den Status mit M119 gecheckt ?????
 
#19
Hallo Elton100,

ich empfehle folgende Einstellung zu testen, vorausgesetzt der Z-Sensor steckt auf Z-Min Pin (5-Reihe, aber bist ja schon nen alter Hase) auf dem Ramps:

//#define ENDSTOPPULLUPS


und da du keine Max Endstops hast:

#define DISABLE_MAX_ENDSTOPS

Somit läßt sich deine Aussage, und der Rest ist "triggered", auch besser analysieren.

Solltest du Probleme mit diesem Setting bei X/Y-Endstop haben, wie folgt aus kommentieren:

#define ENDSTOPPULLUP_XMIN
#define ENDSTOPPULLUP_YMIN

Grüße Jörg
 

Elton100

Erfahrener Benutzer
#20
@ helijoy: Setzen, 1+ mit Sternchen!! Genau so hat es funktioniert. Ich Danke dir vielmals! :wow:

Den Rest sollte ich selbst auf die Reihe bekommen. ABL habe ich auch aktiviert. Funktioniert im Trockenlauf so wie es soll. Er homed jetzt in der mitte des Druckbetts. Das ist schon mal sehr gut. Hatte befürchtet, dass ich von meinem schönen großen Druckbett (200x300) doch wieder ein paar cm verliere durch das leveln. Aber das scheinen die Jungs vom Marlin-Team ja gut gelöst zu haben.
Jetzt fehlt mir nur noch der passende Start g-code für repetier host und s3d. Den bastel ich mir dann am WE. mal zusammen. Falls jemand einen funktionierenden hat: Gerne her damit :rolleyes:

Danke noch mal und

beste Grüße,

Elton

Ps.: @ SteBa: In post nr. 17 habe ich dies getan!
 
FPV1

Banggood

Oben Unten