Welcome! Log In Create A New Profile

Advanced

Piezoelectric disks for Z contact detect and bed levelling

Posted by leadinglights 
Re: Piezoelectric disks for Z contact detect and bed levelling
April 22, 2016 09:08AM
Wow, I have a tiny rod of peek that I bought for making valves - the block you made that fitting from must have cost a fortune!

The reduced sensitivity is interesting as I eventually hope to use a heated enclosure. I assume sensitivity recovers again when the temperature is reduced?

Having not made any progress on implementing this yet, I don't have much idea about how it would be used. Would it be practical to use it to map the bed and set Z0 as a one off activity (say after changing a hotend or extruder) which could be done with the chamber cold? Or does it make more sense to have it as part of the start-gcode for every print?
Re: Piezoelectric disks for Z contact detect and bed levelling
April 22, 2016 09:23AM
I used about 1/4 of a block of PEEK that cost me £11 from ebay. The big white chunk in the photo is cuttlefish bone which I often use as a cheap high temperature insulator.
The sensitivity recovers completely on cooldown. I will do some trials cycling both temperature and pressure to check that there are no more unpleasant surprises.
I have tried it both before each print and just to check that things have not moved when I do any maintenance. My take on how it should work is that the Z probe should check and report back if anything had changed. This would allow you to make any adjustments - with the option of letting the printer do the leveling etc.

Mike
Re: Piezoelectric disks for Z contact detect and bed levelling
April 22, 2016 09:38AM
Sounds like you got a bargain. A 12x12x1/2" sheet of peek from onlinemetals (one of the best value suppliers I know, at least for metals) is 725 US dollars plus tax and shipping (!!). Although I did find an ebay listing for the same size at only US 264 - positively cheap in comparison smiling smiley
Re: Piezoelectric disks for Z contact detect and bed levelling
April 22, 2016 09:54AM
The ebay store I got it from was [stores.ebay.co.uk]
These are obviously offcut prices

Mike
Re: Piezoelectric disks for Z contact detect and bed levelling
April 22, 2016 09:58AM
That looks really good! Sadly they don't ship to Canada - presumably why I didn't find them in my search. I really need to find some good local suppliers for plastic and metal, especially with the current exchange rate it's become very expensive to import materials.
Re: Piezoelectric disks for Z contact detect and bed levelling
April 23, 2016 09:56AM
The Thingiverse entry [www.thingiverse.com] has been updated with latest PDF having a newer circuit diagram and enlarged appendix covering the temperature behavior of the piezoelectric disks. I have ordered a bunch of Murata 7BB-27-4 discs to do a thermal comparison. The Murata disks are £0.43 instead of the £0.18 than no-name piezo disks can be purchased for.

Mike
Re: Piezoelectric disks for Z contact detect and bed levelling
April 26, 2016 09:30AM
The world is a happy place again. I just received some Murata 7BB-27-4 piezo disks. After soldering them on and putting them in the hot jig I got an output of 5V at 105 degrees flatlining just above 110 degrees. While I wouldn't use these directly under the heated bed, they will be fine for use at 80 degrees. Since my plan for fame and world domination† needed a small fully enclosed Delta printer that would work with a chamber temperature of up to 80 degrees the "no-name" piezos were not an option.

Mike

† Mwahahaha
Re: Piezoelectric disks for Z contact detect and bed levelling
April 26, 2016 09:33AM
smiling smiley

Yes, I was thinking a delta would be ideal for a high temp enclosure. I'm interested in Delrin/pom - what are you thinking of?
Re: Piezoelectric disks for Z contact detect and bed levelling
May 07, 2016 05:41PM
I just started playing with the piezo disks and they really are amazing. Seeing a 20V signal with a moderate squeeze of the disk is quite something. Signal conditioning looks promising with the parts I already have, although if I touch the metal of the disk it seems to pick up a lot of noise. I'm not sure if that's going to be a problem or not when the disks are mounted.
Re: Piezoelectric disks for Z contact detect and bed levelling
May 08, 2016 04:30PM
I have had no trouble from electrical noise. I think that neither side of the piezo should connect to ground - at least in my published amplifier. If the disk is being mounted on a metal substrate then a thin sheet of insulating material such as Kapton should be good enough.

Please let me know how you get on.

Mike
Re: Piezoelectric disks for Z contact detect and bed levelling
May 20, 2016 06:58AM
I have been continuing to make progress with the piezoelectric disc sensors. On the first printer, a Cartesian Prusa Mendel type, bed leveling with the Piezos now works reliably and is very accurate. An early problem was that a G32 to probe the bed needs to be preceded by a G0 instruction to move to the first probing position as the deceleration from a normal move causes false triggering - moves between probing positions are trouble free. The second printer is a Rostock type Delta which is undergoing a complete rebuild at the moment. Preliminary results show no false triggering.

The no-name piezo disks were quite temperature sensitive and became unusable above 80°C. Murata piezoelectric disks were better at up to 110°C but have a higher source impedance, more variable output between disks and their output was in the reverse sense to the no-name product (pressure release gives a negative going signal cf. positive for the no-name). Some work is needed to find a completely reliable and repeatable specification/source for the disks.

An interesting and unexpected problem was caused by the longer adjusting screws needed to accommodate the parallel mechanism. The small additional length of these encourages the adjusting nuts to unwind during printing. The solution is to make nuts from Nylon with a fairly stiff fit on the screws.

So no show stoppers, just the normal niggles.

Mike
Re: Piezoelectric disks for Z contact detect and bed levelling
June 14, 2016 06:44PM
Hi Mike,

I have relay enjoyed following your work on this. Any progress on finding a more suitable sensor?

Jarl
Re: Piezoelectric disks for Z contact detect and bed levelling
June 15, 2016 03:56AM
Hi Jarl,

I have to admit that I haven't looked any further for other sources of piezo disks as I have been doing a complete rebuild of one of my printers. At the moment I am somewhat happier with the no-name disks but I realize that this means that each batch may be differently specified or even from a different maker.

The rebuild of the present printer did show up another downside: The space taken up by the sensor and parallel mechanism may be hard to accommodate as a retro-fit. On the printer that I am rebuilding I have had to go to the extent of building a sub-frame to carry the sensors - picture below.



The picture also shows the anti-unwind nylon nuts mentioned in the previous post

On the good side though, early indication is that the sensors on this printer should at least win a gold medal for sensitivity and low crosstalk.

Mike

Quote
Norc
Hi Mike,

I have relay enjoyed following your work on this. Any progress on finding a more suitable sensor?

Jarl

Re: Piezoelectric disks for Z contact detect and bed levelling
July 25, 2016 08:24AM
Back in early April Chri pointed out in this thread that piezoelectric ring sensors did exist. At that time I didn't follow it up as they were not nearly as widely available as piezoelectric discs. I have just tried modifying some disks by drilling a hole in the middle and checking if they still worked and found that they worked very well indeed - output voltage is unchanged and capacity falls to about 16nF - nearly in accord with the loss of piexzoelectric ceramic area.. I tried 5 disks, the first was destroyed by hamfistedness as the brass is a lot harder than I expected. The other four worked perfectly.

Using a ring sensor should eliminate the need for having something like the parallel mechanism and possible slightly reduce the already low compliance of the setup. Photo below of a drilled sensor and a cross sectional drawing of how i envisage it being set up.



In other news, the first (Cartesian) printer is in regular use and the piezo leveling works well. There are occasional glitches - always at the first probing position but these are obvious. I will fix this problemif and when I learn to program in anything other than assembler. The second (Delta) printer is on the final leg of its complete rebuild but early indications are that the piezo sensors will be even better on this one.

Mike
Re: Piezoelectric disks for Z contact detect and bed levelling
July 25, 2016 08:33AM
Interesting development - that simplifies things quite a bit.
Re: Piezoelectric disks for Z contact detect and bed levelling
July 25, 2016 08:48AM
Quote
leadinglights
Back in early April Chri pointed out in this thread that piezoelectric ring sensors did exist. At that time I didn't follow it up as they were not nearly as widely available as piezoelectric discs. I have just tried modifying some disks by drilling a hole in the middle and checking if they still worked and found that they worked very well indeed - output voltage is unchanged and capacity falls to about 16nF - nearly in accord with the loss of piexzoelectric ceramic area.. I tried 5 disks, the first was destroyed by hamfistedness as the brass is a lot harder than I expected. The other four worked perfectly.

Using a ring sensor should eliminate the need for having something like the parallel mechanism and possible slightly reduce the already low compliance of the setup. Photo below of a drilled sensor and a cross sectional drawing of how i envisage it being set up.

[attachment 81789 20160725_1106211.jpg][attachment 81788 RingPiezo.png]

In other news, the first (Cartesian) printer is in regular use and the piezo leveling works well. There are occasional glitches - always at the first probing position but these are obvious. I will fix this problemif and when I learn to program in anything other than assembler. The second (Delta) printer is on the final leg of its complete rebuild but early indications are that the piezo sensors will be even better on this one.

Mike

Cool, exactly as i i thought about it thumbs up

A first step to real autobedlevel, now there are "only" 3 motors needed on all three adjusting nut`s and a software to do real autobedlevel grinning smiley

smiling smiley Chri


[chrisu02.wordpress.com] Quadmax Intel Delid Tools
Re: Piezoelectric disks for Z contact detect and bed levelling
July 25, 2016 10:53AM
Hmm, now if you uses a piezoelectric motor to twiddle the nuts it could probably also be used for the nozzle contact detection. A video and some info on [capolight.wordpress.com]

Having said that, I fear I am a bit old fashioned: Bed level detection should only auto-adjust for trivial errors - below say ±0.05mm. Anything from that to middling errors (say ±0.2mm) the software should make a beep-boop noise and ask if it should correct or if you want to adjust the bed yourself - with any more serious errors marked by the blowing of a raspberry (BRAAAAK) and a warning that something is out of whack.

Mike
Re: Piezoelectric disks for Z contact detect and bed levelling
July 30, 2016 05:29PM
As I have now completed the rebuild of my Rostock printer which I have fitted with Piezo disc sensors I think that this will be my final posting on this particular thread.
On the Rostock printer it has been possible to increase the sensitivity so that the trip point is 0.1N (about 10 grams) and there has only been one single spurious trip after 23 Repetier bed mappings and many other operations such as G32 and G32 calls. After the printer had the factors kludged using the escher3d Delta printer least-squares calibration calculator I got all of the errors within 0.05mm of flat and found that there was negligible variation between mappings

At this point I think that this method of bed leveling is at least as good as any others that I have seen - if I am wrong, please tell me what is better.

Mike
Re: Piezoelectric disks for Z contact detect and bed levelling
July 31, 2016 02:11AM
Quote
leadinglights
Hmm, now if you uses a piezoelectric motor to twiddle the nuts it could probably also be used for the nozzle contact detection. A video and some info on [capolight.wordpress.com]

Having said that, I fear I am a bit old fashioned: Bed level detection should only auto-adjust for trivial errors - below say ±0.05mm. Anything from that to middling errors (say ±0.2mm) the software should make a beep-boop noise and ask if it should correct or if you want to adjust the bed yourself - with any more serious errors marked by the blowing of a raspberry (BRAAAAK) and a warning that something is out of whack.

Mike

for sure any automatic bed adjustmend should only be for the fine adjustment, the approximate adjustment should also be done via hand, thats also not that often necessary.

And on Delta`s you don`t need to have actuators to correct the bed leveling, this would only be usefull on cartesian printers.

Chri


[chrisu02.wordpress.com] Quadmax Intel Delid Tools
Re: Piezoelectric disks for Z contact detect and bed levelling
July 31, 2016 01:36PM
How well would the system work if the piezo were placed between the hotend and its mount rather than beneath the bed? This has the benefit of only requiring one disk. It would obviously only help with z level detection, though, and not compensation.

Edited 1 time(s). Last edit at 07/31/2016 01:38PM by NathanaelXYZ.
Re: Piezoelectric disks for Z contact detect and bed levelling
July 31, 2016 03:11PM
Quote
NathanaelXYZ
How well would the system work if the piezo were placed between the hotend and its mount rather than beneath the bed? This has the benefit of only requiring one disk. It would obviously only help with z level detection, though, and not compensation.

Several people have tried this using different sensors and with varying degrees of success. Earlier in this thread Moriquendi reported some success [forums.reprap.org] but I haven't heard if he got any further.
A single disc will be as suitable for compensation as disks under each leg. Compensation only requires that at least three positions are mapped to work and these come from where the nozzle is in X and Y when contact is made.

Mike
Re: Piezoelectric disks for Z contact detect and bed levelling
August 22, 2016 01:59PM
Right, I've finally had a chance to play with my printers z-probing again and I've had a lot of success.

I'm back to using 20mm disks but now they're under the bed on a printed (ABS) compliant mechanism.





The sensor conditioning circuit is still on a breadboard with trimmers so I can tune it but I'll probably put one together on a protoboard soon.

It works amazingly well, the deflection from touch to trigger is of the order of 0.01mm and repeatability is within one step over 25 probe cycles (that is to say 25 probes each produce a reading of 389 steps)

I'm starting to wonder whether I should be doing a piezo endstop for my axis in stead of the microswitches that are there at the moment.

Moriquendi
Re: Piezoelectric disks for Z contact detect and bed levelling
August 23, 2016 07:57AM
Sensitivity and repeatability can be quite amazing with piezo disks. My Cartesian printer is set very insensitive (about 100 grams) so that I don't get false triggering from caused by cross talk from mechanical vibration immediately after XY movements. Repeatability on this is also better than 0.025mm.
On my Delta printer I have increased the gain and set the trip point closer to zero so that I get good detection at well under 10 grams. I have not measured the repeatability in steps but it is always with 1 digit on tests like G30 etc..

The high sensitivity caused an interesting behavior which caused me some worry until I ran it to ground. While the build stage was being bought up to temperature the output stayed in "contact detected". This is caused by the disks giving an output with changing temperature - just as it gives an output with changing pressure. The immediate resolution is to allow the bed to stabilize for 10 minutes before running a G32 command to set the level. As waiting 10 minutes is a pain in the butt, the longer term solution will be to put some insulation between the heated build stage and the plate which carries the piezo disks and possibly to tweak the amplifier to increase the low frequency cut off a bit.

I am a bit in two minds about using piezos for endstops as the carriage may already be against the end of travel thus preventing it from detecting the position. There may be workarounds but they will probably involve some software work to check before homing.

Mike
Re: Piezoelectric disks for Z contact detect and bed levelling
August 26, 2016 07:38AM
Joining the thread a bit late, but I figured I would chime in. I'm the Njål referenced in the first post btw.

I haven't really used my printer much the last year, so there hasn't been any development from my side. Around christmas however I got a PCB of my circuit from a Korean user on thingiverse who implemented it, and obviously this is a bit more reliable than the breadboard version. But after installing it I still had some problems with binding of the leveling spring/screw, uneven sensitivity of the piezos. So I tried something I had been thinking of for the last 7-8 months, which was to just glue the piezo disc to the x-carriage, on the "bridge" between the two linear bearings. Any force acting upon the hot-end from the bed will bend (not visually though) this part of the carriage, and the piezo is also very sensitive to bending.

Anyway, I just glued it on with CA and it worked instantly. Very sensitive, very easy and very robust. The only remaining problem now is that the EMI from the y-stepper triggers the circuit, and because of the low-cut filter in the circuit design it stays triggered a second or so after it has stopped. So I just fixed this by adding a 3s (overkill) pause between moving the x-y and z-probing in firmware. If anyone needs the fix I'l post it. I just yesterday got an aluminum box to put the pcb in, and I'll try to use some 2-wire shielded cable for the piezo. If I had added an voltage inverter to the circuit (e.g. so the op-amps had -5 to 5v) I could've had the pad of the piezo as GND, and used a coaxial cable (rg316), but I didn't so I can't sad smiley

I'm working on rebuilding a new better z-bed/stage, as well as moving to core x-y, so this whole auto-level thing will probably take some time before I'm completely done. I also ordered a cheap strain gauge sensor from ali-express that I'll test when it arrives in the mail. If this works (since right now I'm using the piezo as a strain gauge) this would be cheaper and easier for most people to implement

Anyway, I added some pictures to better explain at
[www.thingiverse.com]

edit:
If anyone needs to insert a pause (becuase of vibrations/whatever) between movement and probing, this can be done by edditing BedLeveling.cpp.
In the function measureAutoLevelPlane(), there are three copies (one for each probe point) that look something like this:

Printer::moveTo(EEPROM::zProbeX1(),EEPROM::zProbeY1(),IGNORE_COORDINATE,IGNORE_COORDINATE,EEPROM::zProbeXYSpeed());
h = Printer::runZProbe(false,false);

insert these lines in between those two:
Commands::waitUntilEndOfAllMoves();
HAL::delayMilliseconds(3000);

This will make sure that after the movement is over, it will wait 3000 milliseconds before probing. 1000 is probably enough. If you set this value too high the firmware will pause too long, triggering the watchdog timer and the arduino will auto-reset.

Edited 1 time(s). Last edit at 08/26/2016 08:25AM by elenhinan.
Re: Piezoelectric disks for Z contact detect and bed levelling
August 26, 2016 08:46AM
leadinglights, it was very nice to see your experiments on the temperature dependence of the piezo elements, you made a nice rig for testing smiling smiley

I wonder if your results were made worse by you using a voltage amplifier, as the voltage from the piezo element is dependent on the internal resistance of the piezo element, which drops with temperature. Since the piezo element acts as a current source, this should lead to a drop in output voltage from the piezo at higher temperatures. The circuit I use is a transimpedance (current to voltage) amplifier, with close to zero input impedance. The amplified output should then (in theory) be independent of the change in internal resistance of the piezo disc at different temperatures. I don't know how the piezoelectric coefficient varies with temperature though, so it might still pose a problem.

Any thoughts?

Edited 1 time(s). Last edit at 08/26/2016 08:46AM by elenhinan.
Re: Piezoelectric disks for Z contact detect and bed levelling
August 26, 2016 10:35AM
Hi elenhinan, it's good to see you on the forum.
I had avoided trying bending of the piezo elements myself as there seemed to be too many variables - I am mostly familiar with industrial measurements with monolithic piezo ceramic disks and copied the techniques with the readily available and cheap disks.
I only used the temperature testing jig briefly and had put it aside until recently when I discovered that the rate of change of temperature was giving problems. I am presently resurrecting the jig for some more extensive work - I will add checks for internal resistance at various temperatures to the schedule.
The early tests that I did conduct showed that the cheap Chinese piezo disks were very repeatable between disks within a batch and mostly between batches but the more expensive Murata disks were not nearly as good - this is possibly because the cheap ones had attached wires but I had to solder wires to the Murata ones.

Mike.

p.s., Thanks for the lines of code, I will use them initially on my Cartesian printer. I fear tht I am almost epically bad at programming in high level languages though quite handy in some dialects of assembler.
Re: Piezoelectric disks for Z contact detect and bed levelling
August 28, 2016 01:09PM
Quote
elenhinan
leadinglights, it was very nice to see your experiments on the temperature dependence of the piezo elements, you made a nice rig for testing smiling smiley

I wonder if your results were made worse by you using a voltage amplifier, as the voltage from the piezo element is dependent on the internal resistance of the piezo element, which drops with temperature. Since the piezo element acts as a current source, this should lead to a drop in output voltage from the piezo at higher temperatures. The circuit I use is a transimpedance (current to voltage) amplifier, with close to zero input impedance. The amplified output should then (in theory) be independent of the change in internal resistance of the piezo disc at different temperatures. I don't know how the piezoelectric coefficient varies with temperature though, so it might still pose a problem.

Any thoughts?

I don't have more than the most tenuous grasp of the physics of what is going on in a piezo disks, despite having spent some time looking at anything I could find on the internet. This lack of understanding possibly warrants a bit more experimentation - if I built another amplifier configured as a charge amplifier do you think that it would be reasonably equivalent to your transimpendance amplifier?

Mike
Re: Piezoelectric disks for Z contact detect and bed levelling
September 12, 2016 01:36PM


Order from OSH Park

I've run up a PCB for the circuit I'm using to process the three 20mm piezo sensors under the bed of my kossel mini. All credit to Leadinglights, it's essentially the circuit he posted except that I've used trimmer potentiometers in two places to allow tunability.

The PCB is all 0603 SMD which should be hand solderable though I haven't tried it yet.

I intend to post a BOM as well as a basic tuning guide in the near future.

Moriquendi

Edited 2 time(s). Last edit at 09/12/2016 05:02PM by Moriquendi.
Re: Piezoelectric disks for Z contact detect and bed levelling
September 12, 2016 04:29PM
That OHSpark link gives me a 404 error I'm afraid.
Re: Piezoelectric disks for Z contact detect and bed levelling
September 12, 2016 05:04PM
My Bad, fixed now.

I'm still working on this so there may be changes to the layout.

Moriquendi
Sorry, only registered users may post in this forum.

Click here to login