MarlinFirmware / Marlin

Marlin is an optimized firmware for RepRap 3D printers based on the Arduino platform. Many commercial 3D printers come with Marlin installed. Check with your vendor if you need source code for your specific machine.
https://marlinfw.org
GNU General Public License v3.0
16.28k stars 19.23k forks source link

Homing problems #147

Closed wildBill83 closed 12 years ago

wildBill83 commented 12 years ago

I have been trying to get quick home (home both x and y at same time) to work, is this currently supported or still developmental?

Also when homing, my printer only hits the end stops once, even though in the firmware I am telling it to retract and slowly home after hitting the end stop. Am I the only one seeing this behaviour?

bkubicek commented 12 years ago

On 4/19/2012 9:32 PM, wildBill83 wrote:

I have been trying to get quick home (home both x and y at same time) to work, is this currently supported or still developmental? Not sure it anything changed, but I use quickhome now since january, without problems.

Also when homing, my printer only hits the end stops once, even though in the firmware I am telling it to retract and slowly home after hitting the end stop. Am I the only one seeing this behaviour? not clue, I am not up to date.

wildBill83 commented 12 years ago

bkubicek, I haven't been able to ever get it to work in any version. I'll post my config.h when I get home. I think it has to do with non-standard end stop configuration.

Hardwarekiller commented 12 years ago

I have the same Problem See # 145.

And no reaktion of my Post !

Hardwarekiller

bkubicek commented 12 years ago

quickhome is fixed now.

muffinman00770 commented 12 years ago

Sorry bkubicek but i get exactly the same issues as wildBill83 (quick home fails (not that I am concerned) and there is no home retract).

I think your Marlin is brilliant (i have tried several others)

Current set-up: reprap prusa mendel Marlin- ErikZalm-Marlin-v1.0.0.RC2-94-gffea800 Pronterface Slic3r

bkubicek commented 12 years ago

So exactly, can you post your configurations files? What is your machine? What kind of enstops do you have?

muffinman00770 commented 12 years ago

My machine is a Reprap Prusa Mendel with wades extruder running (Arduino Mega 2560 rev3, RAMPS 1.4 (Arduino Mega Pololu Shield), pololu stepper drivers (Pololu A4988)).

Latest fully functional firmware (Sprinter - kliment-Sprinter-7d45ae9)

I am currently using mechanical endstops (micro switches (normally open))

If i can be of any further assistance (i.e. help you help others) - just send me an email I am more than willing ;-)

Here are my config files:

ifndef __CONFIGURATION_H

define __CONFIGURATION_H

// This configurtion 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

//User specified version info of THIS file 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 file by the user have been successfully uploaded into firmware.

define STRING_VERSION_CONFIG_H "2012-02-23 v2_0" //Personal revision number for changes to THIS file.

define STRING_CONFIG_H_AUTHOR "Muffin" //Who made the changes.

// This determines the communication speed of the printer

define BAUDRATE 250000

//#define BAUDRATE 115200

//// The following define selects which electronics board you have. Please choose the one that matches your setup // Gen7 custom (Alfons3 Version) = 10 "https://github.com/Alfons3/Generation_7_Electronics" // Gen7 v1.1, v1.2 = 11 // Gen7 v1.3 = 12 // Gen7 v1.4 = 13 // MEGA/RAMPS up to 1.2 = 3 // RAMPS 1.3 = 33 (Power outputs: Extruder, Bed, Fan) // RAMPS 1.3 = 34 (Power outputs: Extruder0, Extruder1, Bed) // Gen6 = 5 // Gen6 deluxe = 51 // Sanguinololu 1.2 and above = 62 // Ultimaker = 7 // Teensylu = 8 // Gen3+ =9

ifndef MOTHERBOARD

define MOTHERBOARD 33

endif

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

//// 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 // 2 is 200k thermistor // 3 is mendel-parts thermistor // 4 is 10k thermistor !! do not use it for a hotend. It gives bad resolution at high temp. !! // 5 is ParCan supplied 104GT-2 100K // 6 is EPCOS 100k // 7 is 100k Honeywell thermistor 135-104LAG-J01

define TEMP_SENSOR_0 6

define TEMP_SENSOR_1 0

define TEMP_SENSOR_2 0

define TEMP_SENSOR_BED 6

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

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

define HEATER_1_MAXTEMP 275

define HEATER_2_MAXTEMP 275

define BED_MAXTEMP 150

// PID settings: // Comment the following line to disable PID and enable bang-bang.

define PIDTEMP

define PID_MAX 255 // limits current to nozzle; 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 sets the output power in %

define PID_INTEGRAL_DRIVE_MAX 255 //limit for the integral term

define K1 0.95 //smoothing factor withing the PID

define PID_dT ((16.0 * 8.0)/(F_CPU / 64.0 / 256.0)) //sampling period of the

// If you are using a preconfigured 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

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

define EXTRUDE_MINTEMP 170

define EXTRUDE_MAXLENGTH (X_MAX_LENGTH+Y_MAX_LENGTH) //prevent extrusion of very large distances.

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

// Endstop Settings

define ENDSTOPPULLUPS // Comment this out (using // at the start of the line) to disable the endstop pullup resistors

// The pullups are needed if you directly connect a mechanical endswitch between the signal and ground pins. const bool X_ENDSTOPS_INVERTING = false; // set to true to invert the logic of the endstops. const bool Y_ENDSTOPS_INVERTING = false; // set to true to invert the logic of the endstops. const bool Z_ENDSTOPS_INVERTING = false; // set to true to invert the logic of the endstops. //#define DISABLE_MAX_ENDSTOPS

// 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 INVERT_X_DIR true // for Mendel set to false, for Orca set to true

define INVERT_Y_DIR false // for Mendel set to true, for Orca set to false

define INVERT_Z_DIR true // 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 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.

define X_MAX_LENGTH 164

define Y_MAX_LENGTH 164

define Z_MAX_LENGTH 60

// The position of the homing switches. Use MAX_LENGTH * -0.5 if the center should be 0, 0, 0

define X_HOME_POS 0

define Y_HOME_POS 0

define Z_HOME_POS 0

//// MOVEMENT SETTINGS

define NUM_AXIS 4 // The axis order in all axis related arrays is X, Y, Z, E

define HOMING_FEEDRATE {20_60, 20_60, 1*60, 0} // set the homing speeds (mm/min)

// default settings

//++++++++++++++++++++++++++++++++AXIS CALIBRATION+++++++++++++++++++++++++++++++++++++++++++++++++ //#define DEFAULT_AXIS_STEPS_PER_UNIT {78.7402,78.7402,200_8/3,760_1.1} // default steps per unit for ultimaker

define DEFAULT_AXIS_STEPS_PER_UNIT {80,80,3200/1.25,715} // Metric Prusa Mendel with Wade Extruder: 3mm PLA green - tim 22/04/12

//++++++++++++++++++++++++++++++++AXIS CALIBRATION+++++++++++++++++++++++++++++++++++++++++++++++++

define DEFAULT_MAX_FEEDRATE {500, 500, 5, 45} // (mm/sec)

define DEFAULT_MAX_ACCELERATION {9000,9000,100,10000} // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for skeinforge 40+, for older versions raise them a lot.

define DEFAULT_ACCELERATION 3000 // X, Y, Z and E max acceleration in mm/s^2 for printing moves

define DEFAULT_RETRACT_ACCELERATION 3000 // X, Y, Z and E max acceleration in mm/s^2 for r retracts

//

define DEFAULT_XYJERK 20.0 // (mm/sec)

define DEFAULT_ZJERK 0.4 // (mm/sec)

define DEFAULT_EJERK 5.0 // (mm/sec)

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

// EEPROM // the microcontroller can store settings in the EEPROM, e.g. max velocity... // M500 - stores paramters 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

//LCD and SD support //#define ULTRA_LCD //general lcd support, also 16x2 //#define SDSUPPORT // Enable SD Card Support in Hardware Console

//#define ULTIPANEL

ifdef ULTIPANEL

// #define NEWPANEL //enable this if you have a click-encoder panel

define SDSUPPORT

define ULTRA_LCD

define LCD_WIDTH 20

define LCD_HEIGHT 4

// Preheat Constants

define PLA_PREHEAT_HOTEND_TEMP 180

define PLA_PREHEAT_HPB_TEMP 70

define PLA_PREHEAT_FAN_SPEED 255 // Insert Value between 0 and 255

define ABS_PREHEAT_HOTEND_TEMP 240

define ABS_PREHEAT_HPB_TEMP 100

define ABS_PREHEAT_FAN_SPEED 255 // Insert Value between 0 and 255

else //no panel but just lcd

ifdef ULTRA_LCD

#define LCD_WIDTH 16
#define LCD_HEIGHT 2  

endif

endif

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

include "Configuration_adv.h"

include "thermistortables.h"

endif //__CONFIGURATION_H

Hardwarekiller commented 12 years ago

OK.

All Versions from Marlin include the Version from Apr 12 2012 works ! After this Version works Home NOT correct This Version have 2 Bugs !

Normaly must work

  1. If I have an axis X or whether X or Z in the host software to go home then drove towards end stop. Once it has now hit the end stop, the axis stops short, then the axis moves a little back from the end stop away, and goes back to the end stop, and then stops.

This Bug-Version make If the axis is driven home to them is just standing there and drives do not return shortly, and again at the end stop

2 If the axis is already at home and now I press the Home button, the axis normal to make the same as when I come from a different position, which makes them not!

This Bug-Version make If the axis is already at home and I press the Home button then ride the short axis NOT the end stop off and back on it but, the stepper motor makes them very short little steps towards home, and that every time I use the Home button actuated

It is NOT the way to the Configuration, since even if there is nothing he does makes the wrong Since its release on 15 April changes were made​​, the problem has occurred. The version dated 12 April and earlier worked flawlessly all

Hardwarekiller

bkubicek commented 12 years ago

in git, you can download individual states after commits. please try the following commits: a) https://github.com/ErikZalm/Marlin/zipball/67cf105bc69c555547d1c2ba1974b03a2a2c70c3 this one should probably work

b) if it as you say, this one is most likely not to work: https://github.com/ErikZalm/Marlin/tree/67cf105bc69c555547d1c2ba1974b03a2a2c70c3

c) if you have a non-workign set: does the problem still occur, if you change the home position to i.E.

define X_HOME_POS -10

define Y_HOME_POS -10

define Z_HOME_POS -10

muffinman00770 commented 12 years ago

Thanks for the great response! a) - no change in operation (still no retract when homing and quick home (x and y axis at same time) fails to work (yes i have uncommented #define QUICK_HOME)

b) improves situation: quick home is successful when uncommented (#define QUICK_HOME ) AND no longer need to comment #ifdef ULTIPANEL when using ramps #define MOTHERBOARD 33 - this problem was not listed but now no longer needs a workaround :D (//#ifdef ULTIPANEL) BUT still no retract when homing

c) changing the home position makes no change in operation (when as set as above)

define X_HOME_POS -10

define Y_HOME_POS -10

define Z_HOME_POS -10

bkubicek commented 12 years ago

muffinman: That is very very difficult to debug. You guys state that the version before 12.April worked. I send you a link to this version, a, and you tell me its not retracing, although its from 12. april. That does not fit together.

have you changed something in the configuration_adv.h? somewhere close to

define X_HOME_RETRACT_MM 5

define Y_HOME_RETRACT_MM 5

define Z_HOME_RETRACT_MM 1

?

muffinman00770 commented 12 years ago

Hey bkubicek :-),

I have never said 12 April version works (the version I am currently playing around with is (ErikZalm-Marlin-v1.0.0.RC2-98-ge4d2138).

The only setting that i have changed in configuration_adv.h is uncommenting #define QUICK_HOME (retract did not work with it either commented or uncommented.

Here is my configuration_adv.h file for you to look at (if you need to that is). I do appreciate your help (I have been talking to one of my mates about the issue and he is having a look into it as well (another programmer)).

Could it be something to do with an error in the actual marlin code:

define HOMEAXIS(LETTER) \

if ((LETTER##_MIN_PIN > -1 && LETTER##_HOME_DIR==-1) || (LETTER##_MAX_PIN > -1 && LETTER##_HOME_DIR==1))\ { \ current_position[LETTER##_AXIS] = 0; \ plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); \ destination[LETTER##_AXIS] = 1.5 * LETTER##_MAX_LENGTH * LETTER##_HOME_DIR; \ feedrate = homing_feedrate[LETTER##_AXIS]; \ plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate/60, active_extruder); \ st_synchronize();\ \ current_position[LETTER##_AXIS] = 0;\ plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);\ destination[LETTER##_AXIS] = -LETTER##_HOME_RETRACT_MM * LETTER##_HOME_DIR;\ plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate/60, active_extruder); \ st_synchronize();\ \ destination[LETTER##_AXIS] = 2LETTER##_HOME_RETRACT_MM \ LETTER##_HOME_DIR;\ feedrate = homing_feedrate[LETTER##_AXIS]/2 ; \ plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate/60, active_extruder); \ st_synchronize();\ \ current_position[LETTER##_AXIS] = (LETTER##_HOME_DIR == -1) ? LETTER##_HOME_POS : LETTER##_MAX_LENGTH;\ destination[LETTER##_AXIS] = current_position[LETTER##_AXIS];\ feedrate = 0.0;\ endstops_hit_on_purpose();\ }

I understand what and how it does but not why it does (currently reading a C++ book on it).

Here is my configuration_adv.h setup:

ifndef __CONFIGURATION_ADV_H

define __CONFIGURATION_ADV_H

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

// Select one of these only to define how the bed temp is read. // //#define BED_LIMIT_SWITCHING

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

//// Heating sanity check: // This waits for the watchperiod 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 //#define WATCHPERIOD 20000 //20 seconds

// Wait for Cooldown // This defines if the M109 call should not block if it is cooling down. // example: From a current temp of 220, you set M109 S200. // if CooldownNoWait is defined M109 will not wait for the cooldown to finish

define CooldownNoWait true

ifdef PIDTEMP

// this adds an experimental additional term to the heatingpower, proportional to the extrusion speed. // if Kc is choosen 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) //heatingpower=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 T F // the target temperature is set to mintemp+factorse[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

// 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 23 //Pin used for the fan to cool controller, comment out to disable this function

define CONTROLLERFAN_SEC 60 //How many seconds, after all motors were disabled, the fan should run

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

// This defines the number of extruders

define EXTRUDERS 1

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

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

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

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}

define MAX_STEP_FREQUENCY 40000 // Max step frequency for Ultimaker (5000 pps / half step)

//default stepper release if idle

define DEFAULT_STEPPER_DEACTIVE_TIME 60

define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate

define DEFAULT_MINTRAVELFEEDRATE 0.0

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

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

define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?

define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // no z because of layer shift.

// The hardware watchdog should halt the Microcontroller, in case the firmware gets stuck somewhere. However: // the Watchdog is not working well, so please only enable this for testing // this enables the watchdog interrupt. //#define USE_WATCHDOG //#ifdef USE_WATCHDOG // you cannot reboot on a mega2560 due to a bug in he bootloader. Hence, you have to reset manually, and this is done hereby: //#define RESET_MANUAL //#define WATCHDOG_TIMEOUT 4 //seconds //#endif

// extruder advance constant (s2/mm3) // // advance (steps) = STEPS_PER_CUBIC_MM_E * EXTUDER_ADVANCE_K * cubic mm per second ^ 2 // // hooke's law says: force = k * distance // bernoulli's priniciple 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 EXTRUTION_AREA (0.25 * D_FILAMENT * D_FILAMENT * 3.14159)

define STEPS_PER_CUBIC_MM_E (axis_steps_per_unit[E_AXIS]/ EXTRUTION_AREA)

endif // ADVANCE

// Arc interpretation settings:

define MM_PER_ARC_SEGMENT 1

define N_ARC_CORRECTION 25

const 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

//=========================================================================== //=============================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 ringbuffering.

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 recieving from the serial:

define MAX_CMD_SIZE 96

define BUFSIZE 4

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

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

wildBill83 commented 12 years ago

This is my configuration.h

I have an old prusa with RAMPS 1.4 and mechanical end stops (micro switches)

ifndef __CONFIGURATION_H

define __CONFIGURATION_H

// This configurtion 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

//User specified version info of THIS file 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 file by the user have been successfully uploaded into firmware.

define STRING_VERSION_CONFIG_H "2012-03-17" //Personal revision number for changes to THIS file.

define STRING_CONFIG_H_AUTHOR "wildBill" //Who made the changes.

// This determines the communication speed of the printer

define BAUDRATE 250000

//#define BAUDRATE 115200

//// The following define selects which electronics board you have. Please choose the one that matches your setup // Gen7 custom (Alfons3 Version) = 10 "https://github.com/Alfons3/Generation_7_Electronics" // Gen7 v1.1, v1.2 = 11 // Gen7 v1.3 = 12 // Gen7 v1.4 = 13 // MEGA/RAMPS up to 1.2 = 3 // RAMPS 1.3 = 33 (Power outputs: Extruder, Bed, Fan) // RAMPS 1.3 = 34 (Power outputs: Extruder0, Extruder1, Bed) // Gen6 = 5 // Gen6 deluxe = 51 // Sanguinololu 1.2 and above = 62 // Ultimaker = 7 // Teensylu = 8 // Gen3+ =9

define MOTHERBOARD 33

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

//// 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 // 2 is 200k thermistor // 3 is mendel-parts thermistor // 4 is 10k thermistor !! do not use it for a hotend. It gives bad resolution at high temp. !! // 5 is ParCan supplied 104GT-2 100K // 6 is EPCOS 100k // 7 is 100k Honeywell thermistor 135-104LAG-J01

define TEMP_SENSOR_0 7

define TEMP_SENSOR_1 0

define TEMP_SENSOR_2 0

define TEMP_SENSOR_BED 7

// Actual temperature must be close to target for this long before M109 returns success

define TEMP_RESIDENCY_TIME 0 // (seconds)

define TEMP_HYSTERESIS 5 // (degC) range of +/- temperatures considered "close" to the target one

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

define HEATER_1_MAXTEMP 275

define HEATER_2_MAXTEMP 275

define BED_MAXTEMP 150

// PID settings: // Comment the following line to disable PID and enable bang-bang.

define PIDTEMP

define PID_MAX 255 // limits current to nozzle; 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 sets the output power in %

define PID_INTEGRAL_DRIVE_MAX 255 //limit for the integral term

define K1 0.95 //smoothing factor withing the PID

define PID_dT 0.128 //sampling period of the PID

// If you are using a preconfigured hotend then you can use one of the value sets by uncommenting it // Ultimaker // #define DEFAULT_Kp 22.2 // #define DEFAULT_Ki (1.25*PID_dT)
// #define DEFAULT_Kd (99/PID_dT)

// 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*PID_dT)
// #define DEFAULT_Kd (440/PID_dT)

endif // PIDTEMP

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

define EXTRUDE_MINTEMP 170

define EXTRUDE_MAXLENGTH (X_MAX_LENGTH+Y_MAX_LENGTH) //prevent extrusion of very large distances.

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

// Endstop Settings

define ENDSTOPPULLUPS // Comment this out (using // at the start of the line) to disable the endstop pullup resistors

// The pullups are needed if you directly connect a mechanical endswitch between the signal and ground pins. const bool X_ENDSTOPS_INVERTING = false; // set to true to invert the logic of the endstops. const bool Y_ENDSTOPS_INVERTING = false; // set to true to invert the logic of the endstops. const bool Z_ENDSTOPS_INVERTING = false; // set to true to invert the logic of the endstops.

// 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 INVERT_X_DIR true // for Mendel set to false, for Orca set to true

define INVERT_Y_DIR false // for Mendel set to true, for Orca set to false

define INVERT_Z_DIR true // for Mendel set to false, for Orca set to true

define INVERT_E0_DIR false // 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 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.

define X_MAX_LENGTH 180

define Y_MAX_LENGTH 180

define Z_MAX_LENGTH 140

// The position of the homing switches. Use MAX_LENGTH * -0.5 if the center should be 0, 0, 0

define X_HOME_POS 0

define Y_HOME_POS 0

define Z_HOME_POS 0

//// MOVEMENT SETTINGS

define NUM_AXIS 4 // The axis order in all axis related arrays is X, Y, Z, E

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

define HOMING_FEEDRATE {1500, 1500, 300, 0} // set the homing speeds (mm/min)

// default settings

define DEFAULT_AXIS_STEPS_PER_UNIT {59.25925925925926,59.25925925925926,2267.71654,475}

define DEFAULT_MAX_FEEDRATE {400, 400, 5, 60} // (mm/sec)

define DEFAULT_MAX_ACCELERATION {1000,1000,80,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 3000 // X, Y, Z and E max acceleration in mm/s^2 for r retracts

//

define DEFAULT_XYJERK 10.0 // (mm/sec)

define DEFAULT_ZJERK 0.4 // (mm/sec)

define DEFAULT_EJERK 5.0 // (mm/sec)

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

// EEPROM // the microcontroller can store settings in the EEPROM, e.g. max velocity... // M500 - stores paramters 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

//LCD and SD support //#define ULTRA_LCD //general lcd support, also 16x2 //#define SDSUPPORT // Enable SD Card Support in Hardware Console

define ULTIPANEL

ifdef ULTIPANEL

define NEWPANEL //enable this if you have a click-encoder panel

define SDSUPPORT

define ULTRA_LCD

define LCD_WIDTH 20

define LCD_HEIGHT 4

// Preheat Constants

define PLA_PREHEAT_HOTEND_TEMP 170

define PLA_PREHEAT_HPB_TEMP 60

define PLA_PREHEAT_FAN_SPEED 255 // Insert Value between 0 and 255

define ABS_PREHEAT_HOTEND_TEMP 240

define ABS_PREHEAT_HPB_TEMP 100

define ABS_PREHEAT_FAN_SPEED 255 // Insert Value between 0 and 255

else //no panel but just lcd

ifdef ULTRA_LCD

define LCD_WIDTH 16

define LCD_HEIGHT 2

endif

endif

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

include "Configuration_adv.h"

include "thermistortables.h"

endif //__CONFIGURATION_H

This is my configuration_adv.h

ifndef __CONFIGURATION_ADV_H

define __CONFIGURATION_ADV_H

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

// Select one of these only to define how the bed temp is read. // //#define BED_LIMIT_SWITCHING

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

//// Heating sanity check: // This waits for the watchperiod 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 //#define WATCHPERIOD 20000 //20 seconds

// Wait for Cooldown // This defines if the M109 call should not block if it is cooling down. // example: From a current temp of 220, you set M109 S200. // if CooldownNoWait is defined M109 will not wait for the cooldown to finish

define CooldownNoWait true

ifdef PIDTEMP

// this adds an experimental additional term to the heatingpower, proportional to the extrusion speed. // if Kc is choosen 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) //heatingpower=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 T F // the target temperature is set to mintemp+factorse[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 T260 F0.1 in the start.gcode //#define AUTOTEMP

ifdef AUTOTEMP

define AUTOTEMP_OLDWEIGHT 0.98

endif

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

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

// This defines the number of extruders

define EXTRUDERS 1

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

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

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

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}

define MAX_STEP_FREQUENCY 40000 // Max step frequency for Ultimaker (5000 pps / half step)

//default stepper release if idle

define DEFAULT_STEPPER_DEACTIVE_TIME 60

define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate

define DEFAULT_MINTRAVELFEEDRATE 0.0

// minimum time in microseconds that a movement needs to take if the buffer is emptied. Increase this number if you see blobs while //printing high speed & high detail. It will slowdown on the detailed stuff.

define DEFAULT_MINSEGMENTTIME 20000 // Obsolete delete this

// 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 2.0 // (mm/sec)

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

define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?

define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // no z because of layer shift.

// The hardware watchdog should halt the Microcontroller, in case the firmware gets stuck somewhere. However: // the Watchdog is not working well, so please only enable this for testing // this enables the watchdog interrupt. //#define USE_WATCHDOG //#ifdef USE_WATCHDOG // you cannot reboot on a mega2560 due to a bug in he bootloader. Hence, you have to reset manually, and this is done hereby: //#define RESET_MANUAL //#define WATCHDOG_TIMEOUT 4 //seconds //#endif

// extruder advance constant (s2/mm3) // // advance (steps) = STEPS_PER_CUBIC_MM_E * EXTUDER_ADVANCE_K * cubic mm per second ^ 2 // // hooke's law says: force = k * distance // bernoulli's priniciple 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.73

define STEPS_MM_E 625

define EXTRUTION_AREA (0.25 * D_FILAMENT * D_FILAMENT * 3.14159)

define STEPS_PER_CUBIC_MM_E (axis_steps_per_unit[E_AXIS]/ EXTRUTION_AREA)

endif // ADVANCE

// A debugging feature to compare calculated vs performed steps, to see if steps are lost by the software. //#define DEBUG_STEPS

// Arc interpretation settings:

define MM_PER_ARC_SEGMENT 1

define N_ARC_CORRECTION 25

const 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

//=========================================================================== //=============================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 ringbuffering.

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 recieving from the serial:

define MAX_CMD_SIZE 96

define BUFSIZE 4

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

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

stohn commented 12 years ago

Hello,

I spent last week to get my old JTAG ICE MKII working with Arduino1280+RAMPS14. It was a real pain to get Arduino and Marlin to compile and work in AVRStudio5...

...but now I'm able to use a proper development environment with hardware breakpoints and easy debugging.

Today I spoke with hardwarekiller about his problem and after a short debug session we found the problem mentioned in this thread (maybe it also is a solution for other people with similar problem.


Symptom: Homing was not working properly - In fact the retract never happend.

Problem: In "PINS.H" the "X_MAX_PIN" / "Y_MAX_PIN" / "Z_MAX_PIN" been defined (this is Marlin default) and "X_ENDSTOPS_INVERTING" / "Y_ENDSTOPS_INVERTING" / "Z_ENDSTOPS_INVERTING" was set to false.

==> BUT THERE WERE NO ENDSTOPS CONNECTED TO X_MAX / Y_MAX / Z_MAX

==> The endstop for X/Y/Z max was ALWAYS signalled ==> No retract

Solution: Check your "pins.h" and set X_MAX_PIN / Y_MAX_PIN / Z_MAX PIN to "-1" to disable the endstops in case your machine does not have endstops connected.

Hope this solves the problem for others as well.

Maik

BTW: I found some programing mistakes/bugs in Marlin firmware with AVR-Studio (e.g. it is not a good idea to have a static variable of a class which initializes a lot of hardware inside of the constructor -> "MainMenu". This showed a lot of problems in AVRStudio during startup. Better call a dedicated INIT function from either setup() or loop() - AFTER Arduino library did their own initilization).

wildBill83 commented 12 years ago

I will try that. Any chance this enables dual axis homing?

Hardwarekiller commented 12 years ago

Now ist Works !

Thanks !!!!

Hardwarekiller

bkubicek commented 12 years ago

so, to tidy up, as far as I understand, this is not an issue of the marlin code, but a configuration problem. I will hence close this issue, if there is furher trouble, please feel free to reopen it. all the best, bernhard

muffinman00770 commented 12 years ago

THank-you all who helped fix this problem i very much appreciate it :D

Muffin

wildBill83 commented 12 years ago

setting X_MAX_PIN / Y_MAX_PIN / Z_MAX PIN to "-1" did not solve my problem. Individual axis homing works.

Any fix for dual axis homing?

muffinman00770 commented 12 years ago

Hi WildBill83,

Make sure you change it in the right section - if you are using ramps 1.4 it should now look like this:

/****

//////////////////FIX THIS//////////////

ifndef AVR_ATmega1280

ifndef AVR_ATmega2560

error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu.

endif

endif

// uncomment one of the following lines for RAMPS v1.3 or v1.0, comment both for v1.2 or 1.1 // #define RAMPS_V_1_3 // #define RAMPS_V_1_0

if MOTHERBOARD == 33 || MOTHERBOARD == 34

define X_STEP_PIN 54

define X_DIR_PIN 55

define X_ENABLE_PIN 38

define X_MIN_PIN 3

define X_MAX_PIN -1 //2 //Max endstops default to disabled "-1", set to commented value to enable.

define Y_STEP_PIN 60

define Y_DIR_PIN 61

define Y_ENABLE_PIN 56

define Y_MIN_PIN 14

define Y_MAX_PIN -1 //15

define Z_STEP_PIN 46

define Z_DIR_PIN 48

define Z_ENABLE_PIN 62

define Z_MIN_PIN 18

define Z_MAX_PIN -1 //19

the parts we are interested in is

define X_MAX_PIN -1 //2 //Max endstops default to disabled "-1", set to commented value to enable.

define Y_MAX_PIN -1 //15

define Z_MAX_PIN -1 //19

Please note this is not the whole pins.h file.

Muffin

wildBill83 commented 12 years ago

I have the pins.h set that way, it enables the correct homing. I still need to resolve dual axis homing.

github-actions[bot] commented 2 years ago

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.