PRINTER CONSTRUCTION- DIFFICULTY WITH ENDSTOPS

Hello Everybody!  I need help!  I have constructed a large printer.  I am not new to 3d printers and electronics.  The printer runs on arduino and Ramps 1.4 board.  I have also fitted endstops for both MAX and MIN limits.  My problem is that the printer will hit the limit switches and motor will not stop at all.   I have chosen to operate the endstops with Normally closed.
The switches are connected to the ramps board using the two upper terminals as explained in the documentation.
I hooked ponterface- and ran the M119 command- all results are L
If I remove a switch lead and run again M119 the switch with the broken point will show H.
therefore the switch is funstioning.
I am using a mechanical endstop V1.2 from makerbot and using the extreme leads and leaving the two center pins unused.  I checked the switch with a multimeter and works OK.  it will break the cirtcuit when pressed.
now, these are the settings in my configuration.h file.
i have used the repetier Ver 1 online configuration tool...
the Endstops commands are reproduced here below.

I appreciate any lead to solving this...
Have a great day!

#define MULTI_ZENDSTOP_HOMING 0
#define ENDSTOP_PULLUP_X_MIN true
#define ENDSTOP_X_MIN_INVERTING false
#define MIN_HARDWARE_ENDSTOP_X true
#define ENDSTOP_PULLUP_Y_MIN true
#define ENDSTOP_Y_MIN_INVERTING false
#define MIN_HARDWARE_ENDSTOP_Y true
#define ENDSTOP_PULLUP_Z_MIN true
#define ENDSTOP_Z_MIN_INVERTING false
#define MIN_HARDWARE_ENDSTOP_Z true
#define ENDSTOP_PULLUP_Z2_MINMAX true
#define ENDSTOP_Z2_MINMAX_INVERTING false
#define MINMAX_HARDWARE_ENDSTOP_Z2 false
#define ENDSTOP_PULLUP_X_MAX true
#define ENDSTOP_X_MAX_INVERTING false
#define MAX_HARDWARE_ENDSTOP_X true
#define ENDSTOP_PULLUP_Y_MAX true
#define ENDSTOP_Y_MAX_INVERTING false
#define MAX_HARDWARE_ENDSTOP_Y true
#define ENDSTOP_PULLUP_Z_MAX true
#define ENDSTOP_Z_MAX_INVERTING false
#define MAX_HARDWARE_ENDSTOP_Z true
#define ENDSTOP_PULLUP_X2_MIN true
#define ENDSTOP_PULLUP_Y2_MIN true
#define ENDSTOP_PULLUP_Z2_MINMAX true
#define ENDSTOP_PULLUP_X2_MAX true
#define ENDSTOP_PULLUP_Y2_MAX true
#define ENDSTOP_X2_MIN_INVERTING false
#define ENDSTOP_Y2_MIN_INVERTING false
#define ENDSTOP_X2_MAX_INVERTING false
#define ENDSTOP_Y2_MAX_INVERTING false
#define MIN_HARDWARE_ENDSTOP_X2 false
#define MIN_HARDWARE_ENDSTOP_Y2 false
#define MAX_HARDWARE_ENDSTOP_X2 false
#define MAX_HARDWARE_ENDSTOP_Y2 false
#define X2_MIN_PIN -1
#define X2_MAX_PIN -1
#define Y2_MIN_PIN -1
#define Y2_MAX_PIN -1
#define Z2_MINMAX_PIN -1



#define max_software_endstop_r true

#define min_software_endstop_x false
#define min_software_endstop_y false
#define min_software_endstop_z false
#define max_software_endstop_x false
#define max_software_endstop_y false
#define max_software_endstop_z false
#define DOOR_PIN -1
#define DOOR_PULLUP 1
#define DOOR_INVERTING 1
#define ENDSTOP_X_BACK_MOVE 5
#define ENDSTOP_Y_BACK_MOVE 5
#define ENDSTOP_Z_BACK_MOVE 2
#define ENDSTOP_X_RETEST_REDUCTION_FACTOR 3
#define ENDSTOP_Y_RETEST_REDUCTION_FACTOR 3
#define ENDSTOP_Z_RETEST_REDUCTION_FACTOR 3
#define ENDSTOP_X_BACK_ON_HOME 1
#define ENDSTOP_Y_BACK_ON_HOME 1
#define ENDSTOP_Z_BACK_ON_HOME 0
#define ALWAYS_CHECK_ENDSTOPS 0
#define MOVE_X_WHEN_HOMED 0
#define MOVE_Y_WHEN_HOMED 0
#define MOVE_Z_WHEN_HOMED 0


Comments

  • WHat exactly does M119 return and what are your homing directions? I see you seem to have 6 end stops connected so it should be no problem. Test if they go high when they are hit (not only disconnected). Make sure they rae on the right side, e.g. min homing will only test min endstop so if then max endstop triggers (beause they are on wrong side) nothing will happen.
  • Many thanks for coming back to me...
    I sorted out the problem and better say it for poor souls who will fall in my trap...
    The end stops have a diode and resistor, have a capacitor and another resistor. 
    These are mechanical endstop V1.2 from makerbot.  Red switch board with three leads.  Apparently, one has to use only the yellow and red leads.  With a ohm meter the switch will function ok... However when connected to the board and the switch activated with the travel, it will not open!  The electronic components on the board will provide enough resistance for the board to believe that the switch is still closed.  What I did was I just broke off the surface mount, diode, two resistors and capacitor and hey presto.... everything works.
    while at it, where can I find a list of the G and M codes which are attributed to a 3d printer?
    I wish to write a cnc program for testing the movements of the printer without the extruder, then make trials for the bed and hot ends... 
    I am building an all metal printer.  I have over 30 years experience in programming cnc machining centers and usually write most programs in a text file so I know very well.... but I know that 3d printers have specific G and M codes commonly used for most 3d printing language.
    Thanks Repetier.....
  • You could look here:
    https://reprap.org/wiki/G-code ;
    Also the Repetier file in the firmware package you used to load your board has a list.
  • Repetier firmware has all commands supported by current version in Repetier.ino in short version. Use link from Roko for full explanation.
  • Thanks.  I have noticed that the ma endstops do not work really.  As far as I know, the marlin software has a cogifguration.adv.h tab which activates the end stops as limit switches.  is this available in repertier please?  Thanks
  • sorry i mis spelt... Max endstops I mean

  • Max and min endstops are handled identically, only one side is also used for homing. During print they are only tested if ALWAYS_CHECK_ENDSTOPS is set 1. Do this only if you know you get no false signals from cross talk.
  • In my machine, put max and min limit switches in the X & Y axis.
    my machine references with Min X and Min Y and Max Z
    so there is practically no reason why a machine has the MAX X & Y end-switches?  They do not work.
    Is there a way to make them work?  Makes sense to have a limit switch if the machine hits the maximum position for some reason.  If the max endstops in X or Y hit, the motors lose steps which would require referencing to recommence.
    correct me if I am wrong.
    Thanks so much!
    Repetier said:
    Max and min endstops are handled identically, only one side is also used for homing. During print they are only tested if ALWAYS_CHECK_ENDSTOPS is set 1. Do this only if you know you get no false signals from cross talk.

  • They work as i said if you say to always check endstops and have them as hardware endstops enabled.
  • Ok will try this tgank you
  • Many thanks Repetier.  I succeed in achieving my requirement with the instruction you gave me.  Many thanks again.
Sign In or Register to comment.