Welcome! Log In Create A New Profile

Advanced

Z height instability

Posted by dc42 
Z height instability
January 06, 2014 05:47AM
I'm finding the Z-height unstable, to the extent that getting the Z=0 nozzle height good enough to lay down the first layer needs manual adjustment each time. For example, when a print has completed, if I set run setbed.g (which homes all the axes, as well as doing bed compensation) and start another print, typically the head is too low and the extruder stutters because the head is dragging on the bed.

So I tried manually setting the head just above the bed with XY at the centre of the bed, and sending G92 Z0. Unfortunately, the bed compensation then comes into play, so instead of setting Z=0 it sets Z to something else. So I find I have to turn off all the axis compensation stuff, then manually adjust the head to be just above the bed, then send the G92 command.

I believe I have eliminated IR sensor sensitivity issues from the equation. I can see a few causes of Z axis instability:

1. The back left corner of the mdf bed is sagging. I'm guessing that after being warmed by the bed heater over a long print run, the amount of sag changes. So I agree with those who say that mdf is an unsuitable material for the bed (it would be OK with a back rib that was the full width of the bed). I'm going to replace it with aluminium, using a trapezoidal shape to reduce weight since the front two corners are not needed.

2. I've not been able to completely resolve the head sagging issues. I had to replace the 9mm x-runner bearing by 10mm AND fettle out the slot and nut trap in order to stop the head sagging. I reprinted the x-carriage part and found I had to do exactly the same with my own printed part. It really needs an 11mm bearing. The use of a slot to adjust the sag is IMO not at all satisfactory. It needs a proper screw adjustment, like the improved z-runner has. Would anyone care to design an improved part? I'm not into CAD tools yet and it will be a few weeks before I have time to learn to use one.

3. The sag problem is made worse by the fact that the IR sensor head is not in line with the nozzle. So any sag changes the height of the sensor relative to the nozzle, which messes up the Z homing until you re-do the calibration to find the correct G31 parameters. If the sensor face were directly behind the nozzle when looking along the x-axis, then small variations in head sag would not affect z-homing to the same degree. So I think the sensor board should be changed to put the sensor on the front face instead of the rear face, and then the x-carriage changed (or a spacer inserted) to bring the sensor face in line with the nozzle. The homing tab will also need to be extended, but it would be easy enough to glue an extension on to it to save having to print and fit a new part. To avoid the sensor face fouling the z-axis leadscrew, the sensor could moved from its current position at the bottom let of the board to the bottom right, and the homing tab moved to the right as well as further out.

4. The firmware should be changed so that when I tell it that Z=0 with a G92 command, it believes me rather than applying bed compensation.

Have I missed anything?

Edited 1 time(s). Last edit at 01/06/2014 05:49AM by dc42.



Large delta printer [miscsolutions.wordpress.com], E3D tool changer, Robotdigg SCARA printer, Crane Quad and Ormerod

Disclosure: I design Duet electronics and work on RepRapFirmware, [duet3d.com].
Re: Z height instability
January 06, 2014 06:02AM
Hi dc42,

I can only confirm your findings.

I'm not using the IR/ proximity option, because in my opinion it doesn't work satisfactory yet.
I have adjusted the bed manually so that there are only little differences at the outset before electronically compensating something. The biggest deviation in the Z-Axis is 0.2mm on one edge in my case.

Before every print I home the X- and Y-axis, then go to my first bed compensation point (X60, Y20) drive the nozzle down to bed height and set G92 Z0. Then I run my setbed-config file (but no proximity involved, just the manual bed and axis compensation).

From that position I start the print from the sd card and this is how it works best for me with very good results, albeit only in 0.24mm layer height for now.

But as you said one has to zero the Z-axis again before starting a new print. Maybe the z-stepper motor is loosing something when homing after finishing the print.

Markus

Edited 2 time(s). Last edit at 01/06/2014 07:02AM by markbee.


XBee & electronics blog: [lookmanowire.blogspot.com]
Re: Z height instability
January 06, 2014 06:04AM
Could try reinforcing it with carbon tube or strip. I think this Carbon square tube on ebay would fit in the insulation layer in atriangle between each screw, glue with cyanoacrylate, and you could add a further one ( may need to be e.g 10 mm strip (EDIT obviously long face vertical), but that might fit) under the mdf part along the y axis in front of the extrusion..



(not tested)

regards
Andy

Edited 1 time(s). Last edit at 01/06/2014 06:12AM by kwikius.


Ormerod #318
www.zoomworks.org - Free and Open Source Stuff smiling smiley
Re: Z height instability
January 06, 2014 06:11AM
Quote
markbee

I'm not using the IR/ proximity option, because in my opinion it doesn't work satisfactory yet. [...]

Markus

Would a capacitive sensor be more accurate. You sure have a big aluminim plate as one plate?

regards
Andy


Ormerod #318
www.zoomworks.org - Free and Open Source Stuff smiling smiley
Re: Z height instability
January 06, 2014 06:12AM
Quote
kwikius
Could try reinforcing it with carbon tube or strip. I think this Carbon square tube on ebay would fit in the insulation layer in atriangle between each screw, glue with cyanoacrylate, and you could add a further one ( may need to be e.g 10 mm strip, but that might fit) under the mdf part along the y axis in front of the extrusion..

An interesting idea! I think the plywood centre rib does a reasonably good job of supporting the front of the bed from the front bearing, so maybe a strip of that tube along the back would suffice.



Large delta printer [miscsolutions.wordpress.com], E3D tool changer, Robotdigg SCARA printer, Crane Quad and Ormerod

Disclosure: I design Duet electronics and work on RepRapFirmware, [duet3d.com].
Re: Z height instability
January 06, 2014 06:20AM
@Andy

I think the the approach with the IR proximity sensor is a valid one. As I posted before one option would be to modulate the light. I would also exchange the aluminium foil to white tape or heat resistant (white reflective) layer below the surface (in most cases used here:kapton tape). Doing more measurment points and oversample would also help.

But yes - a metal coated glass surface could also be an option for capacitive measurement. Or one might think about strain gauges for finding Z-axis 0. Many options are available. IR/ proximity is one of the cheapest. And has anyone thought about laser?

Markus


XBee & electronics blog: [lookmanowire.blogspot.com]
Re: Z height instability
January 06, 2014 06:22AM
Quote
kwikius
Would a capacitive sensor be more accurate. You sure have a big aluminium plate as one plate?

That's a thought! I think the IR sensor can be made stable, if it is lined up with the nozzle and modulation is added; but it will always have to be at one side of the nozzle and therefore sensitive to rotation about the y-axis. A cap sensor could be mounted on the hot end, with two plates on either size of the nozzle connected together, to reduce sensitivity to y-axis rotation. The heat spreader plate could be grounded via the negative thermistor lead in the ribbon cable. Electronics (probably an attiny + a few passive components) for the cap sensor would have to be mounted on the hot end, and would need to disregard capacitive coupling from the voltages in the extruder heater and bed heater when they switch on/off. The wires to the thermistor and cartridge heater would have to be securely fastened so that they can't move.



Large delta printer [miscsolutions.wordpress.com], E3D tool changer, Robotdigg SCARA printer, Crane Quad and Ormerod

Disclosure: I design Duet electronics and work on RepRapFirmware, [duet3d.com].
Re: Z height instability
January 06, 2014 06:25AM
The nice bit about having 2 beams running diagonallly forward towards the front screw is they should pass over the y-axis bearings ( Lay the beam at the back first and then butt the other 2 to it. Join front 2 to each other near front screw) , so stopping bend in that direction where the mdg goes over the bearings too.. There seems to be just about enough clearance in the insulation gap. (if not .. longer screws !)

EDIT: In fact Make it a T with diagonles. Think of e.g a car trailer...

regards
Andy

Edited 1 time(s). Last edit at 01/06/2014 06:34AM by kwikius.


Ormerod #318
www.zoomworks.org - Free and Open Source Stuff smiling smiley
Re: Z height instability
January 06, 2014 06:34AM
I think on the green machines they have switched to micro switch system, I noticed this on the wiki. I need to go find the picture.
Re: Z height instability
January 06, 2014 06:41AM
[www.reprappro.com]

Just under the stepper, I don't have this, anyone?
Re: Z height instability
January 06, 2014 06:46AM
@dieterzar

I think they switched to the proximity sensor instead of the micro switch

Markus


XBee & electronics blog: [lookmanowire.blogspot.com]
Re: Z height instability
January 06, 2014 06:48AM
How about making the bed from carbon fibre sheet like this? Does anyone know how rigid, temperature-stable, and heavy this is? Sadly the A4 sheets are slightly too small.



Large delta printer [miscsolutions.wordpress.com], E3D tool changer, Robotdigg SCARA printer, Crane Quad and Ormerod

Disclosure: I design Duet electronics and work on RepRapFirmware, [duet3d.com].
Re: Z height instability
January 06, 2014 06:53AM
@ dc42 not a great idea, biggest problem is not the carbon but the epoxy used or glass resin used. Epoxy goes a horrible yellow with time and 110'C does that quickly let alone the resins ability to handle heat. Use it a lot for model aircraft and other things molded.
Re: Z height instability
January 06, 2014 06:56AM
I have seen it used on cars where high heat is present but then a special high temp epoxy was used to laminate it.
Re: Z height instability
January 06, 2014 06:58AM
I'd much favor a dedicated Z homing location and some sort of resistive pressure sensor like this, it would require a perfectly clean nozzle to be accurate, but should be fairly simple to rig up and wouldn't require adding more complicated electronic to the moving hot end.

Matt


Limited Edition Red RS Ormerod 1 #144 of 200 - RRP 1.09fw
iamburnys Ormerod Upgrades Github
Follow me on ThingiVerse My Designs
Re: Z height instability
January 06, 2014 06:59AM
Quote
dc42
How about making the bed from carbon fibre sheet like this? Does anyone know how rigid, temperature-stable, and heavy this is? Sadly the A4 sheets are slightly too small.

The best way is to use the carbon sheet as the skins in a sandwich. The filling is either nomex honeycomb or foam ( e.g Divinycell) . Best type of carbon is (EDIT.. at that price stuff in link is glass not carbon but I hope you get the idae) triaxial carbon unidirectional fabric u. (You can use woven but its nowhere near as stiff). Lay it up in a vacuum bag on thick float glass. ..

EDIT : better link to carbon triaxialTriaxial carbon

regards
Andy

Edited 2 time(s). Last edit at 01/06/2014 07:08AM by kwikius.


Ormerod #318
www.zoomworks.org - Free and Open Source Stuff smiling smiley
Re: Z height instability
January 06, 2014 07:11AM
Quote
iamburny
I'd much favor a dedicated Z homing location and some sort of resistive pressure sensor like this, it would require a perfectly clean nozzle to be accurate, but should be fairly simple to rig up and wouldn't require adding more complicated electronic to the moving hot end.

Matt

So This would be attached somewhere on the bed and the nozzle move down on to it? I like it smiling smiley

regards
Andy


Ormerod #318
www.zoomworks.org - Free and Open Source Stuff smiling smiley
Re: Z height instability
January 06, 2014 07:40AM
Quote
kwikius
Quote
iamburny
I'd much favor a dedicated Z homing location and some sort of resistive pressure sensor like this, it would require a perfectly clean nozzle to be accurate, but should be fairly simple to rig up and wouldn't require adding more complicated electronic to the moving hot end.

Matt

So This would be attached somewhere on the bed and the nozzle move down on to it? I like it smiling smiley

regards
Andy

Yes thats exactly what I was thinking, I not a huge "leccy" boffin like alot here however if your looking for accuracy of this level, I dont think that you can beat physical contact.

maybe i'll get myself one and have a fiddle about!

Matt


Limited Edition Red RS Ormerod 1 #144 of 200 - RRP 1.09fw
iamburnys Ormerod Upgrades Github
Follow me on ThingiVerse My Designs
Re: Z height instability
January 06, 2014 08:05AM
You could have one force-sensitive resistor on each corner of the bed, then you could still do automatic bed compensation. Unlike the IR sensor, it wouldn't require any calibration because the software would only need to look for a change in resistance, not an absolute value.



Large delta printer [miscsolutions.wordpress.com], E3D tool changer, Robotdigg SCARA printer, Crane Quad and Ormerod

Disclosure: I design Duet electronics and work on RepRapFirmware, [duet3d.com].
Re: Z height instability
January 06, 2014 08:14AM
Quote
dc42
You could have one force-sensitive resistor on each corner of the bed, then you could still do automatic bed compensation. Unlike the IR sensor, it wouldn't require any calibration because the software would only need to look for a change in resistance, not an absolute value.

Ooh! now that's sounds like great idea, it may even be possible to mount them under the glass bed to avoid damage.

Is the output from the existing Z-probe just a variable resistance reading?

Matt

Edited 1 time(s). Last edit at 01/06/2014 08:15AM by iamburny.


Limited Edition Red RS Ormerod 1 #144 of 200 - RRP 1.09fw
iamburnys Ormerod Upgrades Github
Follow me on ThingiVerse My Designs
Re: Z height instability
January 06, 2014 08:26AM
The existing output is just an analog reading.

The least expensive one I found is this. Looking at the datasheet, you might get away with connecting the FSR between +3.3V and the Duet input, with a resistor of about 10 to 50K to ground, and a capacitor in parallel with the resistor to improve noise immunity. Multiple FSRs could be connected in parallel. But it would be better to use an attiny or similar to monitor all 4 sensors separately for change in resistance, and produce a single output to simulate the IR sensor.



Large delta printer [miscsolutions.wordpress.com], E3D tool changer, Robotdigg SCARA printer, Crane Quad and Ormerod

Disclosure: I design Duet electronics and work on RepRapFirmware, [duet3d.com].
Re: Z height instability
January 06, 2014 08:28AM
Alternatively, how about a single sensor that monitors the force applied to the x-runner bearing? That would be usable all over the bed, and could also serve as a head crash warning.



Large delta printer [miscsolutions.wordpress.com], E3D tool changer, Robotdigg SCARA printer, Crane Quad and Ormerod

Disclosure: I design Duet electronics and work on RepRapFirmware, [duet3d.com].
Re: Z height instability
January 06, 2014 08:45AM
If anyone is game for redesigning the x-carriage to (a) make the x-runner bearing mount adjustable, and (b) integrate a force sensing resistor to monitor the sideways load on the bearing, then I'll sort out the electronics and (if necessary) software. Just need to determine first whether the normal sideways load is within the 0.2N-20N range of that sensor, or else find a more sensitive sensor.

Edited 3 time(s). Last edit at 01/06/2014 10:30AM by dc42.



Large delta printer [miscsolutions.wordpress.com], E3D tool changer, Robotdigg SCARA printer, Crane Quad and Ormerod

Disclosure: I design Duet electronics and work on RepRapFirmware, [duet3d.com].
Re: Z height instability
January 06, 2014 09:31AM
As the glass can be trusted to be flat and unbendable, it would be better to take 3 readings rather than 4 and calculate the bed compensation from those. Any 3 points reasonably far apart and with reasonable angles between them will accurately determine the plane of the glass. One of my CNC machines at work uses a contact microphone to detect the "click" of contact between two parts. Only one such sensor would be needed to determine the point of contact at any position. I suppose another method would be to put a small conductive area around the edge of the glass and use the brass nozzle as a switch contact - though you would have to ensure it is clean of plastic each time, which is probably not practical. Possibly a single load sensor could be positioned to detect the weight of the head making contact anywhere on the glass to give a reliable -ve Z value, though I'm not sure how load sensors stand up to the protracted 110 degree temperatures used to print ABS.
Re: Z height instability
January 06, 2014 10:53AM
I just measured the sideways force on the x-carriage bearing (very unscientifically, using an elastic band and some known weights. I make it about 6.5N. So that force sensor I linked to should indeed be suitable for measuring the load on the x-bearing.



Large delta printer [miscsolutions.wordpress.com], E3D tool changer, Robotdigg SCARA printer, Crane Quad and Ormerod

Disclosure: I design Duet electronics and work on RepRapFirmware, [duet3d.com].
Re: Z height instability
January 06, 2014 11:30AM
Great, I will start re-designing the x-runner bearing mount to be adjustable and to also include a ~4mm space/slot for a FSR400 force sensor you linked earlier, so a relaxation of force e.g. greater electrical resistance will indicate the head touching the bed.

FSR 400 Datasheet

also for sale on ebay here

Matt


Limited Edition Red RS Ormerod 1 #144 of 200 - RRP 1.09fw
iamburnys Ormerod Upgrades Github
Follow me on ThingiVerse My Designs
Re: Z height instability
January 06, 2014 11:44AM
Sounds great! I'm getting slightly carried away here but if you used an accelerometer , you could subtract that from the reading to allow for motion. This would allow you to read accurately whether moving fast over the bed or not..

regards
Andy


Ormerod #318
www.zoomworks.org - Free and Open Source Stuff smiling smiley
Re: Z height instability
January 06, 2014 12:09PM
Quote
iamburny
Great, I will start re-designing the x-runner bearing mount to be adjustable and to also include a ~4mm space/slot for a FSR400 force sensor you linked earlier, so a relaxation of force e.g. greater electrical resistance will indicate the head touching the bed.

FSR 400 Datasheet

also for sale on ebay here

Matt

Thanks Matt, I just ordered one from eBay.



Large delta printer [miscsolutions.wordpress.com], E3D tool changer, Robotdigg SCARA printer, Crane Quad and Ormerod

Disclosure: I design Duet electronics and work on RepRapFirmware, [duet3d.com].
Re: Z height instability
January 06, 2014 04:21PM
Quote
dc42
I'm finding the Z-height unstable, to the extent that getting the Z=0 nozzle height good enough to lay down the first layer needs manual adjustment each time. For example, when a print has completed, if I set run setbed.g (which homes all the axes, as well as doing bed compensation) and start another print, typically the head is too low and the extruder stutters because the head is dragging on the bed.
I find that there's play in the Z gearing, and occasional binding (especially after a long run in one direction), maybe this contributes to your needing to reset after a print? I jiggle mine up and down by 0.1mm a few times while manually homing to make sure there isn't a bind. I haven't looked at the compensation code (but should do) - I presume that it's doing a matrix transformation to map the coordinates it's told to the ones that they should be, in which case once set, it'll map any new co-ordinates to that space. Do you cancel the previous compensation (M561) in setbed.g ? (maybe the instructions should suggest that setbed.g starts with this gcode...)

Quote
DC42
Alternatively, how about a single sensor that monitors the force applied to the x-runner bearing? That would be usable all over the bed, and could also serve as a head crash warning.
I thought about a few proximity sensor options when you pointed out the halogen sensitivity of the IR detector a while ago (capacitive, direct force-sensing and laser), but they all have complicating factors: capacitive would be prone to stray signals and variable coupling in the looms, as well as (probably) relative humidity, direct force sensing would require that the position of the sensor would be as low as the tip of the nozzle, laser interferometry is well beyond me. I'd thought of indirect force sensing - perhaps a strain-gauge coupled to the nozzle, and that has probably got legs - and it looks like the FSR monitoring the X-bearing load may be more elegant, but also requires some redesign of the firmware and hardware and may have variable reponse requiring a "window" comparison. Have you considered a switch (either a roller microswitch in parallel with the bearing that breaks when the bearing is unloaded, or conductivity between the bearing and a strip of foil tape running along the rib again breaking when the bearing is unloaded, along with a simple debounce circuit).
If the switch shorts the upper arm of a resistive voltage divider, it wouldn't require firmware changes (nor would the FSR if used in a divider I guess).

Either way, replacing the optical sensor would probably require a new home sensor for X (I understand there's already a mount for a microswitch) and that would require another firmware rewrite.

I'd propose that if rewriting the firmware, some of the options would be better placed in a settings/prefs/config file rather than being hardwired in the headers as seems to be the case at present.

Cheers

Ray
Re: Z height instability
January 06, 2014 05:13PM
@dc42: Going back to the initial problem, have you swapped the motors around on the axes? To eliminate a motor/wiring/stepper driver problem.

Ian
RepRapPro tech support
Sorry, only registered users may post in this forum.

Click here to login