Electrical – using a vibration / noise sensor as edge finder in a CNC machine

acoustic-noisecncsensorvibration

I have a desktop CNC machine which has just the basic functionalities like controlling the speeds and position with a somewhat reasonable accuracy / precision. I also have an edge finder which I can use to measure things and theoretically set the origin of the coordinate systems. However when I switch tools and replace the edge finder with the spindle I have something like a 0.3mm error. It means the milling tool either cuts more or less than what was intended.

So I'm thinking of measuring acoustic noise or mechanical vibrations on the vase to detect when the milling tool actually touches the part and compensate for those errors. For example consider the set up below:

enter image description here

I want to have a acoustic sensor (e.g. microphone) or a vibration sensor (e.g. accelerometer?) on the vise and then see the noise on a computer. I know Arduino and serial communication reasonably well, but I don't know what sort of sensors I can use for this purpose and how they should be wired. Thanks for your support in advance.

P.S.1. I have also posted this question here and here on Reddit.

P.S.2. I am gonna check if I can do it myself. So here I asked a more specific question about vibration monitoring.

P.S.3. So for those who end up here, I'm still pursuing this idea as it seems the most viable option for me. Here I have asked for good microphones to record the acoustic noise. And here I managed to plot an spectrogram of an audio file recorded with my cellphone. And eventually found Friture Free, Open Source Software to get spectrorogram and FFT of auditory inputs in real time.

Best Answer

If you're familiar with Arduino you could utilize a PVDF piezoelectric sensor strip to pickup the vibrational patterns of your system. You can find them here: https://www.digikey.com/product-detail/en/te-connectivity-measurement-specialties/1002794/MSP1006-ND/279646

Wire the PVDF strip into the analog in port of the Arduino (one side into A0, one side into ground). Then you could record a normal vibration spectrum when it's not being contacted as well as a vibration spectrum when you know it's being contacted using the int value = analogRead(A0); function and do a comparison.

That being said, if you're getting vibration from the bit touching a surface, you're also getting heat / rubbing / cutting / other bad things. So, my advice would be 2 part: 1. Don't reinvent the wheel, get an edge finder. 2. If you're going to reinvent the wheel, do it well so I can buy a PVDF based edge finder and don't have to remove my bit each time. I expect to see your new edge finding invention listed on the web somewhere for less than 30$. :) Go to town!