problem with getting my xyz/home situated

Just built my first 3D Printer (Prusa i3). It was surprisingly easy and fun too, although now i'm having a difficult time setting up my printer. My connection is good, Repetier firmware loaded, RH running as it should. I get some movement in the X,Y, and Z (although not always).

What now? I'm embarrassed to say, I cannot find directions or any tutorial on getting my bed ready to print. My endstops 'stop' the motors as they should, but the extruder will zoom all the way to the other side and "grind" to a stop. I tried to reduce my bed size in the settings but I'm getting lost.

Surprised how little documentation is available for what should be a simple process (since you have to do this before each print).

I'd really appreciate if someone could point me in the right direction (i love tutorials), or if it's really easy... a simple step by step here on the forum.

Thank you very much!
-PixelPusher

Comments

  • What does this mean: "but the extruder will zoom all the way to the other side and "grind" to a stop." and more important on which command does this thing happen. Normally you send G28 and are in position.
  • Thanks for replying...
    If I hit the "Home" button the extruder will move all the way to the left (x-axis) until it physically can't go any further (runs into x-carriage rod), and the motor keeps running/grinding and i have to hit Emergency Stop button. (because it probably thinks my print bed has more room).

    Basically, I think the printer has no idea "where" it's current location is on the xyz planes because i have not set that up. 

    I don't know what G28 means (assume it's G-code). For the record, and maybe this will clear things up, I'm not an engineer or even technically savvy. I'm just a 3D Artist trying to make my first print.


  • I guess G28 is 'home' or 'set home' something like that? When I entered g28 Extruder moved Down on Z until hitting endstop... good. Then it moved Left on X but since there's no endstop on left side, it kept running and had to hit Stop again. My 3% used brain matter suggests I need to either move endstop or reverse X settings? Here are my printer settings, hope i don't have to altar code using Arduino.image
  • Yes, G28 means homing the printer. You need to move to endstop or reverse the X - homing axis, which is actually not that hard.
    Just change the following the following line in Configuration.h
    #define X_HOME_DIR 1
    to
    #define X_HOME_DIR -1

    or reverse if the initial value was -1.

    then upload the code to the arduino.

  • Thank you VERY much Couri!
    I'll give it a shot.

    :) 
  • ok, reset #define X and Y home. uploaded firmware and restarted RH. Entered G28 and Z axis moved down very slowly until Endstop (so far so good), then the X and Y motors ran simultaneously until the Extruder stopped at the front right corner of my bed. Now, all three Endstop lights are on.
    I thought this meant that I correctly configured Home. So, I sent a test print (20mm cube), when i clicked print the printer bed tried to move further right and towards me (pushing up against both Endstops!) Not sure how/why this is happening.



  • Homing is always one axis at a time. If x and y home simultaneously you have most likely not set DRIVE_SYSTEM to 0 but to a core xy system. Then always both motors move if one axis should move.

    In that case moving x manually would also move y as well.
  • It's set to 0.

    woke up this morning and now my computer won't even recognize it (i did not touch firmware or anything else).

    All my problems could be because I bought a cheap kit from Replekio...cheap electronics from China. Replekio won't answer my emails.

    Thanks for your help guys. 
  • You should also experiment with 

    M119

    whcih shows what firmware thinks which endstops are triggered and configured. So you see if the endstop should be on left or right side (L = Min, R = Max). You can also check the output level of the endstop which must be near 0 or 5V depending on the state. Around 2,5v is a dead zone which you can say what the signal is.
  • I replaced my Mega2560 and everything is back to "normal." xyz manual movements seem normal. M119 produces this: <endstops hit: x_min:L y_min:L z_min:L>
    I entered G28 and Nozzle moved down very slowly until endstop, then Nozzle moved in X and Y at same time (my DRIVE_SYSTEM is, in fact, set to 0) until both X and Y endstops were hit although that didn't stop motors from chugging away like my endstops didn't exist. I had to do an emergency stop. 
    I think I must resolve my endstops "not stopping bed movement" before going further?

  • First I would solve the fact that both home together and not one after the other.

    Moving only x axis or y axis moves only one axis I assume? This is also possible without homing.

    Then check if x and y home to min position. Otherwise endstops have no effect anyway.

    Then test homing only one axis
    G28 X0
    G28 Y0
    here also only one axis should move.

    Which firmware version are you using?

  • edited September 2015
    I'm using 1.6.5

    Yes, manually I can move each axis individually.

    G28 X0: Nozzle moves Left (away from my endstop) and I must emergency stop.
    G28 Y0: Bed moves towards me (away from my endstop) and I must emergency stop.

    All three endstops are plugged into MIN pins on my board.
    I have this set up in my Config.h file:
    #define X_HOME_DIR -1
    #define Y_HOME_DIR -1
    #define Z_HOME_DIR -1

    Z endstop works fine. 

    !!! NOTE: when I manually move my bed towards my Y endstop (Y+) the endstop doesn't work. BUT, when I move my bed away from Y endstop (Y-) and I press endstop with my finger... it works! This is the same for X endstop.
    So, this thing is working, I just have my settings backwards. 
    *Assembling X and Y Endstops to opposite ends of bed is not an option for me.
  • Ok, you are using wrong directions.

    X Axis - min is left side so homing is right direction but your endstop is at x max position. Put that endstop to the left or home x axis in direction 1 and make that pin x max endstop.

    Y if it moves towards you that is y max direction. So you need to invert y motor direction.

    After that the homing will stop at the endstops.
  • thank you for helping me get my head around this. I know the logic is simple, I just can't figure this out yet. I've tried several combinations of (0,1,and -1). I was actually able to get 'home' and even send a print (although i still need to fix Z-axis speed and calibrate extruder, etc). But my x & y were reversed; it technically worked, but I hate when things are reversed.

    I made my home x axis to direction 1, still the same. I do not know how to "make that pin x max endstop."  I tried changing values to 'Endstop Configuration' section, no luck.

    Bed and Nozzle moves manually and in proper direction as they should. I wish I could just change location of Endstops then it would all work, but I can't.

    // ################# XYZ movements ###################
    #define X_ENABLE_ON 0
    #define Y_ENABLE_ON 0
    #define Z_ENABLE_ON 0
    #define DISABLE_X 0
    #define DISABLE_Y 0
    #define DISABLE_Z 0
    #define DISABLE_E 0
    #define INVERT_X_DIR 0
    #define INVERT_Y_DIR 1
    #define INVERT_Z_DIR 1
    #define X_HOME_DIR 1
    #define Y_HOME_DIR 1
    #define Z_HOME_DIR -1
    #define X_MAX_LENGTH 200
    #define Y_MAX_LENGTH 200
    #define Z_MAX_LENGTH 180
    #define X_MIN_POS 0
    #define Y_MIN_POS 0
    #define Z_MIN_POS 0

    // ################ Endstop configuration #####################
    #define ENDSTOP_PULLUP_X_MIN true
    #define ENDSTOP_X_MIN_INVERTING true
    #define MIN_HARDWARE_ENDSTOP_X true
    #define ENDSTOP_PULLUP_Y_MIN true
    #define ENDSTOP_Y_MIN_INVERTING true
    #define MIN_HARDWARE_ENDSTOP_Y true
    #define ENDSTOP_PULLUP_Z_MIN true
    #define ENDSTOP_Z_MIN_INVERTING true
    #define MIN_HARDWARE_ENDSTOP_Z true
    #define ENDSTOP_PULLUP_X_MAX true
    #define ENDSTOP_X_MAX_INVERTING false
    #define MAX_HARDWARE_ENDSTOP_X false
    #define ENDSTOP_PULLUP_Y_MAX true
    #define ENDSTOP_Y_MAX_INVERTING false
    #define MAX_HARDWARE_ENDSTOP_Y false
    #define ENDSTOP_PULLUP_Z_MAX true
    #define ENDSTOP_Z_MAX_INVERTING false
    #define MAX_HARDWARE_ENDSTOP_Z false
    #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 true
    #define max_software_endstop_y true
    #define max_software_endstop_z true
    #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 1

  • edited September 2015
    sorry, I understand now what you mean about make the pin x max endstop (thought you were talking about altering code).

    I switched the endstop on the board from Min to Max but now my endstops don't work at all. 
    Getting close, just trying to figure out correct combination of settings. 

    Question: does the way I plug enstop into my board matter? (red,blue,grn wires)  
  • I still cannot get my X and Y moving in the correct direction. The config below is what I'm using now, I know it's wrong (backwards) but at least it's working and I'm able to get some really cool prints going! Unfortunately, I have to reverse my object in 3ds Max which will be a problem in the future.
    I'm sorry, I've changing inputs around, and moving X pin to the "Max" slot on my RAMPS board... nothing seems to work.
    desperate.
    thanks for the help!

    #define INVERT_X_DIR 0
    #define INVERT_Y_DIR 0
    #define INVERT_Z_DIR 1
    #define X_HOME_DIR -1
    #define Y_HOME_DIR 1
    #define Z_HOME_DIR -1
    #define X_MIN_POS 0
    #define Y_MIN_POS 0
    #define Z_MIN_POS 0
  • If that is wrong and working you must have the xmin  endstop at real x max.
    H_HOME_DIR and X_MIN_POS are set for x min homing, so you should have x min endstop on the left. Setting INVERT_X_DIR  1 should make it move in opposite direction if needed. Or turning motor connector 180°.
  • I reversed motor connector 180, it does move in correct direction... but now my X endstop does not work. Moreover: when I move carriage towards my endstop (to the right) and depress endstop with my finger, it does not work. However, if I move to -X (to the left) and press endstop it works.
    Do I now have to change an "endstop" setting? I've tried a few, they don't make much sense to me:
    ENDSTOP_X_MIN INVERTING true
    ENDSTOP_X_MAX_INVERTING false
    etc
    these functions are difficult to understand.

    Basically, my troubles will be solved by simply moving endstop to the Left side. However, that is not an option for me right now.
  • You have a x max endstop. So your homing direction must be 1 and not -1 and you must define your endstop as x max endstop and not x min endstop. When homing in x max direction only x max ist tested.That is the simple source of your problem. You can leave it connecte dto x min but in config you have to say that x max is on x min pin and that you have no x min endstop.
  • Thank you for your help, i really do appreciate it.
    with your instruction and some trial-and-error i got x and y moving in correct direction!

    thanks again,
    Richi


Sign In or Register to comment.