problem with endstops

I'm building a custom 3d printer using arduino 2560 and ramps 1.4. For X axis I use nema 17 motor with a TB 6600 driver, Y nema 23 also with TB 6600 driver and for Z axis and extruder motor nema 17 and A4899 drivers. I'm having trouble configuring the endstops. I have instaled three optical endstops blasini optical endstops. I've checked everything multiple times and the electronics are connected corectly. Tried everything. and combined almost everything in the mechanics part of the repetier firmware configuration tools and still have problems.


  • Your coordinate system looks strangely rotated. X is left/right, y is front/back and z is up/down with z min where endstop hits bed. 
    You did not tell what the problem is. Use M119 to see first if all endstops trigger and if they are named correctly min/max. Main error is either having defined end stop type min/max or having homing direction inverted because your direction in inverted you you try to fix one error with additional errors.
  • Sorry for bad explanation. I have an old Felix 1.5 3d printer which is controlled by repetierhost 2.16. I think the procedure for homing of the each axle should be the same on this custom machine, which is when manually pressed the home button, the axis goes constant speed in one direction without stoping until it reaches the endstop then it stops. But when I do exact same thing it goes  the desired direction,  but it's not coming at constant speed, only 10mm. When pressed the given times of the lenght needed it works. All endstop are connected on the min place of the ramps board and also set in the repetier firmware the min position, and the boxes for the homing in negative direction direction (towards min endstop) are checked for all three. When all is homed, the M119 command yileds endstops hit: x_min:L  y_min:L  z_min:H
  • So your problem is that it only moves 10mm per homing? Homing moves 1,5 * length of axis so it always hits an endstop. If steps per mm is too low that can be less then this.
    Also not that the felix printers move bed towards you which is y max homing so you need y max endstop for that direction.
  • Well I didn't check exactly what length, but I was thinking it should go constant speed until it reaches endstop.
    If I did understand you correctly, I should change the connector on the board to Y max position? And then change the direction of the homing in the firmware, or not?
  • For reference I'm sending this as a definitive explanation

     what the configuration looks like
  • So the bed does not move and for y the endstop is at the back if I interpret it correctly. That makes it a y max endstop and moving to back is positive Y direction.
    X endstop left is x min endstop.
    So yes Y should have homing direction 1 and define y max endstop while x and z have homing direction -1 and min end stops.
  • Thank you for your answer. I've done the changes and here is how it goes:
    It now homes incremental, it works. When homed,  the M119 command sent to the printer it says: 17:33:30.110 : endstops hit: x_min:L y_max:L z_min:H. Is that the way it should display? And I've experienced this behaviour:
    cannot move manually in the repetier host the axis in the opposite direction. Also if I turn off the power and disconnect, and manually by hand move the Y axis and again turn on the printer and connect, and home  the Y axis it does not recognize the endstop. Of these two problems, the second one is the more serious. What that could be?

  • Check in host what is says as coordinates. I guess it shows Y=0 meaning you said in printer setting y homing pos is 0 and not y max value. So it allows only moves to y max where it already is and not to min direction.

    M119 z min is triggered. Would be ok if nozzle hits bed.

    The move increments - are they always the same distance or different distances?
    Also check in eeprom what steps per mm and xyz length are. Wrong values here can lead to not doing full move. Values are only set on first upload then the stored values are used, so it is easy to have different values in eeprom.
    would copy the values from config to eeprom again. Or adjust them individually in eeprom editor.
  • Changed the homing position in printer settings to 180 and the Y axis is working correctly.
    Move increments are always the same now
    Steps per mm are the same as are the length,  done the M502 M500 commands.
    I think I should change the position of the X endstop, moving it to the side where the Y endstops are would be better for machine control, right now when I run the dry test g code (which is made n repetier, only without the start procedure, and G92 X0 Y0 Z0 ) Y works the way it should but X is moving in the direction where the endstop is and it should be moving the opposite direction. The Z was moving the wrong direction, I've inverted the direction in the firmware and now it is working properly.
    Besides that there is one more problem I've encountered- extruder stepper is not working.
    Tried swapping the A4988 driver with the one from the Felix 3d printer that is working and also nothing happened.
    Turned on the hot end, also nothing (I thought maybe it was due to cold extrusion safety feature) what would be the test g code command to try
  • M302 S2
    makes cold extrusion possible. Check in eeprom if all parameters are set correctly (steps, jerk, acceleration). 
    Also check if extruder blocks when enabling printer. Drivers differ if enable pin needs high or low. At start it should be unpowered so you should be able to rotate motor easily. When extruding it is enabled and be hard to move. If enable is wrong it will be disabled when moving so nothing happens.
Sign In or Register to comment.