Welcome! Log In Create A New Profile

Advanced

Living with a bottom Z limit switch

Posted by nophead 
Living with a bottom Z limit switch
May 30, 2012 01:14PM
I have always homed my Z axis to the top with my own hardware and firmware but I built my second Mendel90 with a bottom limit switch and a Sanguinololu running Marlin.

I originally thought I could home a little above the bed (I have heard people talk about the thickness of paper) but Marlin doesn't let you go lower than the home pos, so I would have to set it to the lowest layer height I ever wanted to print. Since people have gone below 0.01mm it seems you have pretty much have to crash the nozzle into the bed. As there is usually some plastic hanging from the nozzle this means you would have to clean it before homing.

G28 with no parameters doesn't work for me either because I have clips in the corner of my bed. It would home X and Y to the corner and then ram the nozzle into the clip when homing Z. This means I can't use the home button on Pronterface. To home I have to use a macro with

G28X
G1X0F9000
G28Y
G1Y0F9000
G28Z
G1Z10F300

(my origin is in the centre of the bed)
I also have to make sure Y is inside the clips before running this, and obviously there can be nothing on the bed.

It all seems crazy to me. What does everybody else do?

Edited 3 time(s). Last edit at 05/30/2012 01:18PM by nophead.


[www.hydraraptor.blogspot.com]
Re: Living with a bottom Z limit switch
May 30, 2012 01:32PM
I don't use Marlin, but I thought there was a configuration option to only check the limit switches while homing.
I know I found it impossible to accurately adjust limit switches to on the bed.
Re: Living with a bottom Z limit switch
May 30, 2012 01:58PM
I heat the nozzle before homing so that any plastic on it doesn't matter when it gets close to the bed. I also don't have any obstructions on the bed inside the homing or build area.
Re: Living with a bottom Z limit switch
May 30, 2012 02:10PM
Yes I have it only checking the limit switches during homing. It is the soft limits that prevent it going below the home pos. I could disable those but I like having them.


[www.hydraraptor.blogspot.com]
Re: Living with a bottom Z limit switch
May 30, 2012 02:29PM
Why can't you just, home to a Z position above the build platform, then set your soft limits to be 1mm below the point (or however far your bed is)? I use this method even with mechanical switches and it seems to work fine (bending that leaf spring an extra 1mm doesn't really do anything as far as I can tell). I use Marlin, and I have the end stops only active during homing.
Re: Living with a bottom Z limit switch
May 30, 2012 02:39PM
A lot of people home off of the bed so this is not an issue.

I home x and y first and then home Z. Right after homing Z I move up a few mm's and then move to the center of the bed. This stops the head from hitting my clips and dragging across the bed. Once it is in the center the first gcode sends Z back to where it needs to be for printing.

Another way I have done it is to home x and y and z10 then I move to the center of the bed and then home Z. But this only works if you have springs on the bed or don't mind the nozzle hitting the bed.


FFF Settings Calculator Gcode post processors Geometric Object Deposition Tool Blog
Tantillus.org Mini Printable Lathe How NOT to install a Pololu driver
Re: Living with a bottom Z limit switch
May 30, 2012 03:14PM
I have my glass clips at the front and back, 2 at each end, and I always home just off the glass in the corner about 15mm away from the heated platform, you can then get the height correct and purge / clean the nozzle really easily with R/A tweezers, I have a bit of Kapton tape on the edge of the glass to catch any last bits of filament just before it prints. I have been meaning to make a silicon nozzle wiper just off the side, but not got around to it yet.
I limit the first move speed, so it goes slowly to the start position and does the outline.

I never adjust home position after it's first level and setup.


[richrap.blogspot.com]
Re: Living with a bottom Z limit switch
May 30, 2012 03:15PM
I played with the homing and max limits for quite a while when setting my unit up. I have it so that when I put the clips on there is no concern of the head crashing (as long as same clips used each time!) It comes very close but doesnt hit them. I also fully tested my Z max to make sure that the X and Z limits didnt crash the cooling system I put on the extrude motor against any frame sections.

Of course I could have a larger foot print at lower heights where the cooling fan clears the frame, but I havn't needed that much build area yet.

As for setting the minimum z I have a trick that works for me because of my ceramic bed , this bright white ceramic marks very easily so I find the points where my nozzle just, and I really mean just, leaves a mark. I have it set at a height that if i go to true z=0 it wont leave the said "mark." I originally tried that paper trick but wanted slightly lower incase I am ever able to produce ultra high quality prints (hopefully some day sad smiley )


Ryan
Quality Engineer & Hobbyist
thingsandtrains.blogspot.com
Re: Living with a bottom Z limit switch
May 30, 2012 05:04PM
I just move the clip over a bit that is near my nozzle when homing.
Re: Living with a bottom Z limit switch
May 30, 2012 06:02PM
Quote

Why can't you just, home to a Z position above the build platform, then set your soft limits to be 1mm below the point (or however far your bed is)?

Because in Marlin the Z_HOME_POS is also the soft limit. Obviously I could change that but I was hoping to simply provide a configuration file for people rather than a fork of the firmware.

I am not able to move off the glass because my build area is defined as 200x200. The axes have 2mm clearance but the glass is bigger than that. I don't think there is a way of homing that can start from any position and guarantee to not hit something. Possibly I could set the Z_MAX_LENGTH a few mm lower than it should be so it would always be able to go up a few mm before homing X and Y. That assumes you never switch it off when it is homing from the max Z position. This is why I normally home Z upwards with a limit switch at the top, it is always safe, even with a bed full of objects. I don't use an adjustable switch, I just define where the bottom is in my host software and tweak it to get the first layer the correct height. I think the reprap way means you have to tweak it in the firmware or have a hardware adjustment.

Ideally the clips would be outside the build area but I am using the Prusa PCB and small bulldog clips, so I have no choice unless I make the build area smaller than 200x200. I don't need a purge area because I use the bed to block the nozzle while it is warming up.

It has been a very frustrating day, I have stripped the filament in the extruder and crashed the head more time than I have in the last 5 years I think. The objects I have printed have faults I have never had before. The extruder seems to generally give the correct flow rate, but occasionally squirt out far too much that shoots out over the side of the object. I also had a build just lock up with:

Error:Line Number is not Last Line Number+1, Last Line:433
Resend:434
echo:Unknown command:"03"

Edited 1 time(s). Last edit at 05/30/2012 06:29PM by nophead.


[www.hydraraptor.blogspot.com]
Re: Living with a bottom Z limit switch
May 30, 2012 06:29PM
nophead Wrote:
-------------------------------------------------------
> The extruder seems to
> generally give the correct flow rate, but
> occasionally squirt out far too much that shoots
> out over the side of the object. I also had a

I have seen it do that when it can't process the moves fast enough, usually when printing via serial on a slow PC with very high-res objects with lots and lots of tiny moves, even at 250k baud I have observed that, it does not seem to be the generated Gcode, but some sort of buffer catch-up / underflow/overflow issue or an acceleration issue in the firmware.

> I also had a build just lock up with:
> Error:Line Number is not Last Line Number+1, Last
> Line:433
> Resend:434
> echo:Unknown command:"03"

Welcome to the world of printing with a serial link!
Marlin V0.9 was very bad for doing that, but since V1 RC2, I have never seen that again on 3 different machines.


[richrap.blogspot.com]
Re: Living with a bottom Z limit switch
May 30, 2012 06:32PM
Yes I printed the same G code 3 times and they came out better each time. Go figure!


[www.hydraraptor.blogspot.com]
Re: Living with a bottom Z limit switch
May 30, 2012 07:04PM
Just an observation, but I know comments in the repetier code suggest that running at the highest possible baud rate isn't necessarily the fastest solution because of errors and resends.
I've never actually done the tests myself, but I could see it as a possible issue if error rates get high enough.
I'm not running prints as fast as many on here, but I don't see stalls with serial speeds well below 250K.
Re: Living with a bottom Z limit switch
May 31, 2012 03:29AM
I think the comms error was due to having "Monitor Printer" ticked and I think the printing errors were trying to rewind the extruder too fast. The default in Slic3r was 30mm/s, which appears to be too fast for my Wades with the acceleration setting I have. I dropped it to 20mm/s and the prints are now good.

I am using 115200 baudrate as people have problems with 250000 and I am only printing simple things at 60mm/s, so I think it will be fast enough at the moment.


[www.hydraraptor.blogspot.com]
Re: Living with a bottom Z limit switch
May 31, 2012 06:43AM
nophead Wrote:

> Because in Marlin the Z_HOME_POS is also the soft
> limit. Obviously I could change that but I was
> hoping to simply provide a configuration file for
> people rather than a fork of the firmware.

I can't run marlin here, but a look at the source suggests that the soft limits don't account for G92 offsets.
Re: Living with a bottom Z limit switch
May 31, 2012 04:26PM
On my Mendel I have two clip at the rear of the glass plate but only one on the front, so the nozzle don't touch anything when moving from Home(XYZ) to the centre.

On the Huxley I replaced the clips by kapton tape on all sides :


On the Foldarap too

[edit : there is not yet a glass plate but I use the same following zero+leveling tips at least]

For the zero, I had an opto-switch on the Mendel, but replaced it by an Hall-O when it died (the adjusting pot seemed interesting).
But with the eMaker Huxley I found another way to live with mechanical switch everywhere and especially on the Z (without needing any precise adjuster addition) :

I make the zero when I level the bed. I start by roughly leveling it, then put the nozzle on the lowest point and adjust the 3 screws to level it regarding that height (by turning them until the homing move stop lowering the springs).
So the zero is exactly when the nozzle touch the bed (true for the four corners+center), I only add a little offset in Skeinforge/Slic3r to have the desired height for the first layer.
By moving to the center of the bed from the zero height, the nozzle is also wiped by the side of the bed from any purged plastic (only work if your nozzle can be a little offset from the edge of the bed).

(now that make me think to add that to the user manual ^^)


about // liberapay // flickr // wiki // thingiverse - github
Re: Living with a bottom Z limit switch
June 12, 2012 11:17AM
I'm with NopHead on this one -- one of the things I liked about working with the makerbot TOM was the homing switch at the top, followed by setting an offset down to the build bed. Being able to use that workflow with Marlin would be nice.
Re: Living with a bottom Z limit switch
June 12, 2012 12:24PM
I couldn't live with it at the bottom. I ripped the tape on my bed twice and the final straw was when it tried to home with some crap on the nozzle. That stopped it reaching the endstop and spun the nuts out of my X ends requiring the axis to be levelled again hot smiley

I hacked Marlin and moved the switch to the top. It is much better. Home is always a safe operation. I can measure the thickness of the skirt and if it is 0.1mm too high I change the firmware to make the axis 0.1mm longer. Much easier than adjusting a screw and using trial and error. The soft limit is exactly when the nozzle is touching the bed and 2mm away from the end for all the other axes.

I also fixed Marlin to work with the origin in the middle of the bed instead of one corner. [github.com]


[www.hydraraptor.blogspot.com]
help me i m installing limit switch and config marlin about limit switch and homing
homing and limit switching problem
October 22, 2015 06:52AM
when i m clickin on X axis right side arrow in repetier host its moving right side and when i m clicking on X home button its moving small amount in right side when MY Limit switch is on Left side see my code that i m using in marlin firmware please help me its suckin my head i m new in 3d printer its my frist 3d printer
#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

// 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
#define E_ENABLE_ON 0 // For all extruders

// Disables axis when it's not being used.
#define DISABLE_X false
#define DISABLE_Y false
#define DISABLE_Z false
#define DISABLE_E false // For all extruders
#define DISABLE_INACTIVE_EXTRUDER true //disable only inactive extruders and keep active extruder enabled

#define INVERT_X_DIR false // for Mendel set to false, for Orca set to true
#define INVERT_Y_DIR false // for Mendel set to true, for Orca set to false
#define INVERT_Z_DIR true // for Mendel set to false, for Orca set to true
#define INVERT_E0_DIR false // for direct drive extruder v9 set to true, for geared extruder set to false
#define INVERT_E1_DIR false // for direct drive extruder v9 set to true, for geared extruder set to false
#define INVERT_E2_DIR false // for direct drive extruder v9 set to true, for geared extruder set to 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

#define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS.
#define max_software_endstops true // If true, axis won't move to coordinates greater than the defined lengths below.

// Travel limits after homing
#define X_MAX_POS 200
#define X_MIN_POS 0
#define Y_MAX_POS 180
#define Y_MIN_POS 0
#define Z_MAX_POS 180
#define Z_MIN_POS 0

#define X_MAX_LENGTH (X_MAX_POS - X_MIN_POS)
#define Y_MAX_LENGTH (Y_MAX_POS - Y_MIN_POS)
#define Z_MAX_LENGTH (Z_MAX_POS - Z_MIN_POS)


its happening with my 3 axis
and i want ti do one thing when my z axis limit switch triggering then its has to stop when is hits but its movin by 4mm up and down when its hits

i m building prusa i3 3d Printer so please me
Sorry, only registered users may post in this forum.

Click here to login