Welcome! Log In Create A New Profile

Advanced

home fails

Posted by isacat 
home fails
May 15, 2016 03:43PM
Long story short, I purchased a second hand Prusa I3, I was not happy with the autoleveling so I decided to start from scratch. I have no experience but let learn it the hard way :-)
So I wiped the arduino with a new Marlin firmware and started to configure it.
I manged to move X Y Z axis with pronterface using movement controls, all are moving to the right direction.
My problem now is with the endstop, when I move the extruder on the X axis to the right it hits the endstop and keep on going, it does not stop!
When I send m119 command I get this result:
x_min: open
x_max: open
y_min: open
y_max: open
z_min: open
z_max: open
When I press the endstop on the axis I get this result:
x_min: TRIGGERED
x_max: open
y_min: open
y_max: open
z_min: open
z_max: open
So the endstop is working but it does not stop the extruder.
Another problem is the home command, when I send the command G28 via pronterface the extruder is moving to the left side and hit the end of the axis. It need to move to the right side instead of the left.

All help is welcome
Re: home fails
May 15, 2016 11:28PM
Turn off everything and flip the X axis stepper connector around the opposite direction on the controller board for starters.

Edited 1 time(s). Last edit at 05/15/2016 11:29PM by MarkBot.


Just an Artist, Musician, Designer, Programmer, Maker

Using: My H-Bot w/Mega RAMPS 1.4
M Prime 1 Custom Find me @ [www.thingiverse.com]
My SCARA Project Find me @ [www.thingiverse.com]
Zenbot 2424 CNC Router w/Mach 3
Re: home fails
May 16, 2016 01:42AM
If all axis move in the correct direction, you dont flip the stepper connector....


Your issue is you haven't defined your end stops correctly

If your X endstop is on the right, then its a max endstop and must be defined as such

ie
// ENDSTOP SETTINGS:
// Sets direction of endstops when homing; 1=MAX, -1=MIN
// :[-1,1]
#define X_HOME_DIR 1

you haven’t mentioned your hardware, but ill presume its ramps, these have separate pins for min and max endstops, you need to move this plug for X endstop onto the max endstop pins


Just for completeness

Movement of a I3

X axis -x moves the head left, +x moves the head right
Y axis -y moves the bed back, +y moves bed forward
Z axis -z moves the head down, z+ moves head up

Endstops

If X endstop is on the left its min, if its on the right it a max
If Y endstop is on the back its a min, if its on the front its a max
If Z endstop is at the bed its a min, if its at the top its a max.

Edited 2 time(s). Last edit at 05/16/2016 01:45AM by Dust.
Re: home fails
May 16, 2016 04:33AM
Quote
Dust
If all axis move in the correct direction, you dont flip the stepper connector....


Your issue is you haven't defined your end stops correctly

If your X endstop is on the right, then its a max endstop and must be defined as such

ie
// ENDSTOP SETTINGS:
// Sets direction of endstops when homing; 1=MAX, -1=MIN
// :[-1,1]
#define X_HOME_DIR 1

you haven’t mentioned your hardware, but ill presume its ramps, these have separate pins for min and max endstops, you need to move this plug for X endstop onto the max endstop pins


Just for completeness

Movement of a I3

X axis -x moves the head left, +x moves the head right
Y axis -y moves the bed back, +y moves bed forward
Z axis -z moves the head down, z+ moves head up

Endstops

If X endstop is on the left its min, if its on the right it a max
If Y endstop is on the back its a min, if its on the front its a max
If Z endstop is at the bed its a min, if its at the top its a max.

Thx, that did the trick, now the extruder is moving to the endstop on the right side when launching the G28 command, the only thing is that it won't stop when it hit the endstop!
Strange thing is when I move the extruder (via movement controls in pronterface) to the left and press the endstop (manually with my finger) the extruder stops, when I do the same to the right nothing happens the extruder still move to the right.
So it seems that the endstop only works when the extruder move to the left.
Re: home fails
May 16, 2016 05:56AM
At a guess you didnt move the endstop plug from min to max position
Re: home fails
May 16, 2016 06:55AM
you are ones again right, it's working thumbs up

If have another question, on my extruder there is a servo with micro switch installed. Now my guess whas that switch also work when you send the m119 command, but this switch is not reacting on the command.
Keep in mind that my Prusa I3 does not have a Z endstop.
Any idea? I found this tutorial on youtube
Re: home fails
May 16, 2016 08:53AM
It should be wired to Z min, and yes m119 should show it.

It should be wired to S and - pins of the endstop plug (NB do not connect it across - and + pins, this will damage your mega)

pull up resistors need to be enabled in firmware for this to work
eg in marlin #define ENDSTOPPULLUPS
Re: home fails
May 16, 2016 10:23AM
I just followed the 2 cables coming from the microswitch on the servo, they are indeed connected to the S and - from the Z min
I disconnected them and connected a tester to see if the switch is stil working, and yes the switch is ok.
I connected it again on Z min and run m119, it's not showing
placed it on the Z max and this one is showing Z_max TRIGGERED
can it be that the Z min is damaged/broken or is it a setting?
Re: home fails
May 16, 2016 11:41AM
Could be a bad z_min on your controller board, try just connecting the - and S pins on z_min with a jumper and see what reading you get. (make sure not to connect + and -, sounds obvious but is easy to do).

If the Z_min is not working, you can under Marlin RC define another pin as z_probe and use it instead, or reconfigure pins.h to use a different pin as Z_min. I think the current thinking is that it might make sense to have a probe AND an absolute Z_min mechanical switch to prevent head crashes.

You also have to configure code to deploy your servo before z_homing. How exactly depends on the type of z probe you have.

Thanks for moving this over the forum many eyes make for an easier solution, glad you are getting somewhere now. I started with a second hand i3 which needed a total rebuild and reconfigure and I'd certainly recommend it as a way to learn 3d printing you have to problem solve more than you do with a new kit, and a lot more than with a functioning, assembled printer.

Edited 2 time(s). Last edit at 05/16/2016 12:10PM by DjDemonD.


Simon Khoury

Co-founder of [www.precisionpiezo.co.uk] Accurate, repeatable, versatile Z-Probes
Published:Inventions
Re: home fails
May 21, 2016 04:24AM
Ok, this week I replaced all the extruder parts, quite happy with the result
Parts where printed with my Davinci 2.0A printer.
I had to design a part myself because I did not find it on thingiverse, but yeah that's why I have my printers, to design thumbs upthumbs upthumbs up



Now back on the Prusa I3 project, today I had the idea to install a clean marlin firmware as a test, and yes the Z_min is working, so somewhere the Z_min has been disabled but I cannot find it.
I already configure the servo to deploy with the help of this youtube video
Re: home fails
May 23, 2016 09:19AM
I cannot find it :-(
anybody an idea where I can find the z_min problem, where it has been disabled?
Re: home fails
May 23, 2016 11:04AM
Which Marlin version?


Simon Khoury

Co-founder of [www.precisionpiezo.co.uk] Accurate, repeatable, versatile Z-Probes
Published:Inventions
Re: home fails
May 23, 2016 04:06PM
I am not so sure what version I have, google how to find the version, seems that I need to send m115 command
result:

SENDING:M115
FIRMWARE_NAME:Marlin V1; Sprinter/grbl mashup for gen6 FIRMWARE_URL:[github.com] PROTOCOL_VERSION:1.0 MACHINE_TYPE:Mendel EXTRUDER_COUNT:1 UUID:00000000-0000-0000-0000-000000000000
Re: home fails
May 23, 2016 07:01PM
back to M119

Send a M119 at the printer

does it show Z min in its list, if it does it is not disabled in firmware
Re: home fails
May 23, 2016 07:01PM
Okay so this is a quite old version of Marlin. The latest version is 1.1.0 RC6 and contains many useful features. If you want to be up to date I'd consider switching versions you can work out most of the settings although some have changed in the configuration files. I am not sure z_min is ever disabled.


Simon Khoury

Co-founder of [www.precisionpiezo.co.uk] Accurate, repeatable, versatile Z-Probes
Published:Inventions
Re: home fails
May 24, 2016 11:53AM
@Dust, it shows in the list but doesn't react when you press the switch. I know the Z_min is working because I installed the latest clean marlin on it and then Z_min is triggerd
Maybe I need to start again from a fresh install !
Re: home fails
May 24, 2016 12:30PM
The issue here might be how you have the sensor configured. The options "endstop pullups", and "endstop logic" might need to be changed. Your endstop can show as triggered if the logic is the wrong way around.

There are 4 combinations of endstop logic and endstop pullup that you can set for z_min. Try all 4 and test each to see that the endstop shows open when open and triggered when triggered. If all four fail to give a usable endstop signal then the wiring or the sensor/switch itself might be suspect.


Simon Khoury

Co-founder of [www.precisionpiezo.co.uk] Accurate, repeatable, versatile Z-Probes
Published:Inventions
Re: home fails
May 24, 2016 03:40PM
Quote
DjDemonD
The issue here might be how you have the sensor configured. The options "endstop pullups", and "endstop logic" might need to be changed. Your endstop can show as triggered if the logic is the wrong way around.

There are 4 combinations of endstop logic and endstop pullup that you can set for z_min. Try all 4 and test each to see that the endstop shows open when open and triggered when triggered. If all four fail to give a usable endstop signal then the wiring or the sensor/switch itself might be suspect.

sorry DjDemonD you lost me there !
This is what I have now
//=============================Mechanical Settings===========================
//===========================================================================

// Uncomment the following line to enable CoreXY kinematics
// #define COREXY

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

#ifndef ENDSTOPPULLUPS
  // fine endstop settings: Individual pullups. will be ignored if ENDSTOPPULLUPS is defined
  // #define ENDSTOPPULLUP_XMAX
  // #define ENDSTOPPULLUP_YMAX
  // #define ENDSTOPPULLUP_ZMAX
  // #define ENDSTOPPULLUP_XMIN
  // #define ENDSTOPPULLUP_YMIN
  // #define ENDSTOPPULLUP_ZMIN
#endif

#ifdef ENDSTOPPULLUPS
  #define ENDSTOPPULLUP_XMAX
  #define ENDSTOPPULLUP_YMAX
  #define ENDSTOPPULLUP_ZMAX
  #define ENDSTOPPULLUP_XMIN
  #define ENDSTOPPULLUP_YMIN
  #define ENDSTOPPULLUP_ZMIN
#endif

// The pullups are needed if you directly connect a mechanical endswitch between the signal and ground pins.
const bool X_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Y_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Z_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool X_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Y_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
//#define DISABLE_MAX_ENDSTOPS
//#define DISABLE_MIN_ENDSTOPS

// Disable max endstops for compatibility with endstop checking routine
#if defined(COREXY) && !defined(DISABLE_MAX_ENDSTOPS)
  #define DISABLE_MAX_ENDSTOPS
#endif
Re: home fails
May 24, 2016 05:57PM
Okay so where it says endstoppullups. If you uncomment #define ENDSTOPPULLUPS, this means all the endstops have pullup resistors in use.

A pullup resistor, is a high value resistor which allows a tiny current to flow to the signal pin to bring the voltage on the endstop signal pin up. This means for a sensor which works by grounding the signal pin, the voltage goes up to 5v until the sensor triggers and then the voltage drops to 0v, by grounding through the sensor. The arduino detects this as this particular pin going low and depending on the logic you have defined either responds with triggered or open.

If you do not have an endstop pullup defined then you need to use a sensor which outputs 5v when triggered, the signal pin sits at 0v until the sensor sends it 5v when triggered.

So depending on the sensor type (and there are many) you might need pullups ON or OFF. So try both settings. You can either leave #define ENDSTOPPULLUPS which sets all endstops to have pullups, or comment this out and define the pullups individually. Generally it makes no difference with x and y unless you are using NC switches (which is better) so leave these with pullups enabled. Just change the pullup setting for z_min..

Endstop logic determines how the firmware responds to the signal pin changing, so if the sensor is normally open, i.e. it closes a contact when triggered the logic is true. If the sensor is normally closed i.e. it opens a contact when triggered the logic is false. To be honest it could be the other way around. Electronics people find all this easy, it slightly melts my mind but I have spent a lot of time working it out.

So there are 4 possible combinations

Pullup ON
Logic TRUE

Pullup OFF
Logic FALSE

Pullup ON
Logic FALSE

Pullup OFF
Logic TRUE

Believe me its quicker to try define all four combinations in the firmware and upload and test the sensor, then try the next settings if it doesnt work, than it is to work out which sensor you have and which settings you need.


Simon Khoury

Co-founder of [www.precisionpiezo.co.uk] Accurate, repeatable, versatile Z-Probes
Published:Inventions
Re: home fails
May 24, 2016 09:26PM
What does your "Z Probe Options" section look like from your configuration.h ?
Re: home fails
May 25, 2016 01:39PM
@Dust here my settings for the servo

/*********************************************************************\
* R/C SERVO support
* Sponsored by TrinityLabs, Reworked by codexmas
**********************************************************************/

// Number of servos
//
// If you select a configuration below, this will receive a default value and does not need to be set manually
// set it manually if you have more servos than extruders and wish to manually control some
// leaving it undefined or defining as 0 will disable the servo subsystem
// If unsure, leave commented / disabled
//
#define NUM_SERVOS 1 // Servo index starts with 0 for M280 command

// Servo Endstops
//
// This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes.
// Use M206 command to correct for switch height offset to actual nozzle height. Store that setting with M500.
//
#define SERVO_ENDSTOPS {-1, -1, 0} // Servo index for X, Y, Z. Disable with -1
#define SERVO_ENDSTOP_ANGLES {0,0, 0,0, 60,160} // X,Y,Z Axis Extend and Retract angles

/**********************************************************************\
 * Support for a filament diameter sensor
 * Also allows adjustment of diameter at print time (vs  at slicing)
 * Single extruder only at this point (extruder 0)
 *
 * Motherboards
 * 34 - RAMPS1.4 - uses Analog input 5 on the AUX2 connector
 * 81 - Printrboard - Uses Analog input 2 on the Aux 2 connector
 * 301 - Rambo  - uses Analog input 3
 * Note may require analog pins to be defined for different motherboards
 **********************************************************************/
#define FILAMENT_SENSOR
#define FILAMENT_SENSOR_EXTRUDER_NUM    0  //The number of the extruder that has the filament sensor (0,1,2)
#define MEASUREMENT_DELAY_CM            14  //measurement delay in cm.  This is the distance from filament sensor to middle of barrel

#define DEFAULT_NOMINAL_FILAMENT_DIA  3.0  //Enter the diameter (in mm) of the filament generally used (3.0 mm or 1.75 mm) - this is then used in the slicer software.  Used for sensor reading validation
#define MEASURED_UPPER_LIMIT          3.30  //upper limit factor used for sensor reading validation in mm
#define MEASURED_LOWER_LIMIT          1.90  //lower limit factor for sensor reading validation in mm
#define MAX_MEASUREMENT_DELAY            20  //delay buffer size in bytes (1 byte = 1cm)- limits maximum measurement delay allowable (must be larger than MEASUREMENT_DELAY_CM  and lower number saves RAM)

//defines used in the code
#define DEFAULT_MEASURED_FILAMENT_DIA  DEFAULT_NOMINAL_FILAMENT_DIA  //set measured to nominal initially 
Re: home fails
May 25, 2016 03:26PM
Quote
Dust
What does your "Z Probe Options" section look like from your configuration.h ?

There isn't really a z-probe options section in Marlin 1.02.


Simon Khoury

Co-founder of [www.precisionpiezo.co.uk] Accurate, repeatable, versatile Z-Probes
Published:Inventions
Re: home fails
May 31, 2016 04:29AM
I decided to start from scratch with the latest Marlin firmware.
I manged to move X Y Z axis with pronterface using movement controls and they stop at the endstops :-)
Time to run a G28 command, so the X move the right and stop, then Y go to the back and stop but then Z need to move down but it seems that the motor is blocking, I hear sound and both motors are shaking.
I was so close :-(
anybody an idea what the problem can be?
Re: home fails
May 31, 2016 06:02AM
Motor current is probably too low. Look up how to adjust this there is a lot of info on line. Here's how I do it; attach your multimeter negative to the negative rail on your power supply. Use a small cross headed screwdriver, if you want to be extra safe wrap insulating tape around the screwdriver shaft leaving just the head exposed and small area by the handle (for your multimeter probe) - this is to prevent accidentally shorting the motor driver which will kill it.

Place screwdriver onto the trim pot on the motor driver, with the power to the printer on, the z motor driver is the one furthest away from the 12v power connector on the ramps. Place the positive of your multimeter on the screwdriver shaft and read the voltage. For most standard nema 17 1.68A 40mm motors you're looking for 0.4-0.6v but with z-axis you have 2 motors in parallel so maybe 0.8v-1.0v.

Now try the motors again. Generally humming and whining is too little current, whereas loud buzzing and noisy movement is too much.

Once you have it set, run the motors for a while and see how hot they get. As long as you can put your hand on it (up to 60 degC) that's fine), any hotter and you might want to turn the current down a little, trying to find a balance between enough current to move the motors smoothly, and without skipping steps, and not so much that they get hot and are noisy in use. Also note if your printer has motors attached to PLA parts then keep your motors below 45 DegC or they will soften and deform the PLA.


Simon Khoury

Co-founder of [www.precisionpiezo.co.uk] Accurate, repeatable, versatile Z-Probes
Published:Inventions
Re: home fails
May 31, 2016 06:39AM
Thanks for the reply, but why do you think it's due to current to low? I can move the Z up and down without any problem via the pronterface using movement controls
Re: home fails
May 31, 2016 08:35AM
It most likely the default max z feed rate, its to high for most I3's with threaded rod Z axis.

The default is
#define DEFAULT_MAX_FEEDRATE {300, 300, 5, 25}

change to
#define DEFAULT_MAX_FEEDRATE {300, 300, 3, 25}

Could also just be the homeing feed rate #define HOMING_FEEDRATE {50*60, 50*60, 4*60, 0}
change to #define HOMING_FEEDRATE {50*60, 50*60, 2*60, 0}
Re: home fails
May 31, 2016 03:32PM
thanks Dust, I changed does settings like this and now the Z axis is moving down thumbs up

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

// default settings

#define DEFAULT_AXIS_STEPS_PER_UNIT   {80,80,1600,180}  // default steps per unit for Ultimaker
#define DEFAULT_MAX_FEEDRATE          {200, 200, 5, 35}    // (mm/sec)
#define DEFAULT_MAX_ACCELERATION      {2000,2000,100,2000}    // 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          2000    // X, Y, Z and E max acceleration in mm/s^2 for printing moves
#define DEFAULT_RETRACT_ACCELERATION  2000   // X, Y, Z and E max acceleration in mm/s^2 for retracts

Quote
Dust
It most likely the default max z feed rate, its to high for most I3's with threaded rod Z axis.

The default is
#define DEFAULT_MAX_FEEDRATE {300, 300, 5, 25}

change to
#define DEFAULT_MAX_FEEDRATE {300, 300, 3, 25}

Could also just be the homeing feed rate #define HOMING_FEEDRATE {50*60, 50*60, 4*60, 0}
change to #define HOMING_FEEDRATE {50*60, 50*60, 2*60, 0}
Sorry, only registered users may post in this forum.

Click here to login