Hello,
I am in the process of building an Ultimaker like Reprap using a Sanguinololu as controller with Repetier software and firmware.
It's almost finished, except for the belts and pulleys for the X\Y axis.
However, I got the following problems:
-X axis stepper only turns one way
-Z axis only homing to minimum, I need it to home to maximum
My guess is that both problems have something to do with the end stops.
The original Ultimaker uses 6 end stops, 3 min stops and 3 max stops. I am using a Sanguinololu as a controller, which only supports 3 end stops.
So what I did: I wired the min and max end stops together.
When I move the printbed up and push the end stop it just continues to move. When I move it down, the end stop works fine.
Is it possible that you can only home Z to max if you have max endstops? And if so, is there any possibility to do this with a sanguinololu?
Here is my configuration:
PS. Sorry for the bad English, it's not my native language.
Regards,
Nico
I am in the process of building an Ultimaker like Reprap using a Sanguinololu as controller with Repetier software and firmware.
It's almost finished, except for the belts and pulleys for the X\Y axis.
However, I got the following problems:
-X axis stepper only turns one way
-Z axis only homing to minimum, I need it to home to maximum
My guess is that both problems have something to do with the end stops.
The original Ultimaker uses 6 end stops, 3 min stops and 3 max stops. I am using a Sanguinololu as a controller, which only supports 3 end stops.
So what I did: I wired the min and max end stops together.
When I move the printbed up and push the end stop it just continues to move. When I move it down, the end stop works fine.
Is it possible that you can only home Z to max if you have max endstops? And if so, is there any possibility to do this with a sanguinololu?
Here is my configuration:
// ########################################################################################## // ## Endstop configuration ## // ########################################################################################## /* By default all endstops are pulled up to high. You need a pullup if you use a mechanical endstop connected with gnd. Set value to false for no pullup on this endstop. */ #define ENDSTOP_PULLUP_X_MIN true #define ENDSTOP_PULLUP_Y_MIN true #define ENDSTOP_PULLUP_Z_MIN true #define ENDSTOP_PULLUP_X_MAX true #define ENDSTOP_PULLUP_Y_MAX true #define ENDSTOP_PULLUP_Z_MAX true //set to true to invert the logic of the endstops #define ENDSTOP_X_MIN_INVERTING true #define ENDSTOP_Y_MIN_INVERTING true #define ENDSTOP_Z_MIN_INVERTING true #define ENDSTOP_X_MAX_INVERTING true #define ENDSTOP_Y_MAX_INVERTING true #define ENDSTOP_Z_MAX_INVERTING true // Set the values true where you have a hardware endstop. The Pin numbe ris taken from pins.h. #define MIN_HARDWARE_ENDSTOP_X true #define MIN_HARDWARE_ENDSTOP_Y true #define MIN_HARDWARE_ENDSTOP_Z true #define MAX_HARDWARE_ENDSTOP_X false #define MAX_HARDWARE_ENDSTOP_Y false #define MAX_HARDWARE_ENDSTOP_Z false //If your axes are only moving in one direction, make sure the endstops are connected properly. //If your axes move in one direction ONLY when the endstops are triggered, set ENDSTOPS_INVERTING to true here //// ADVANCED SETTINGS - to tweak parameters // 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 // Disables axis when it's not being used. #define DISABLE_X false #define DISABLE_Y false #define DISABLE_Z false #define DISABLE_E false // Inverting axis direction #define INVERT_X_DIR true #define INVERT_Y_DIR true #define INVERT_Z_DIR 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 // Delta robot radius endstop #define max_software_endstop_r true //If true, axis won't move to coordinates less than zero. #define min_software_endstop_x false #define min_software_endstop_y false #define min_software_endstop_z false //If true, axis won't move to coordinates greater than the defined lengths below. #define max_software_endstop_x false #define max_software_endstop_y false #define max_software_endstop_z false // If during homing the endstop is reached, ho many mm should the printer move back for the second try #define ENDSTOP_X_BACK_MOVE 5 #define ENDSTOP_Y_BACK_MOVE 5 #define ENDSTOP_Z_BACK_MOVE 5 // For higher precision you can reduce the speed for the second test on the endstop // during homing operation. The homing speed is divided by the value. 1 = same speed, 2 = half speed #define ENDSTOP_X_RETEST_REDUCTION_FACTOR 2 #define ENDSTOP_Y_RETEST_REDUCTION_FACTOR 2 #define ENDSTOP_Z_RETEST_REDUCTION_FACTOR 2 // When you have several endstops in one circuit you need to disable it after homing by moving a // small amount back. This is also the case with H-belt systems. #define ENDSTOP_X_BACK_ON_HOME 1 #define ENDSTOP_Y_BACK_ON_HOME 14 #define ENDSTOP_Z_BACK_ON_HOME 0 // You can disable endstop checking for print moves. This is needed, if you get sometimes // false signals from your endstops. If your endstops don't give false signals, you // can set it on for safety. #define ALWAYS_CHECK_ENDSTOPS true // maximum positions in mm - only fixed numbers! // For delta robot Z_MAX_LENGTH is maximum travel of the towers and should be set to the distance between the hotend // and the platform when the printer is at its home position. // If EEPROM is enabled these values will be overidden with the values in the EEPROM #define X_MAX_LENGTH 165 #define Y_MAX_LENGTH 175 #define Z_MAX_LENGTH 80 // Coordinates for the minimum axis. Can also be negative if you want to have the bed start at 0 and the printer can go to the left side // of the bed. Maximum coordinate is given by adding the above X_MAX_LENGTH values. #define X_MIN_POS 0 #define Y_MIN_POS 0 #define Z_MIN_POS 0
PS. Sorry for the bad English, it's not my native language.
Regards,
Nico