Interfacing with a digital caliper

I would like to read linear distance measurement from my digital caliper.

Caliper itself has a simple connector, that has 4 contacts. Just 4 plain strips on the PCB. I found some photos here that explain more:

strip 1 is: -V strip 2 is: data strip 3 is: clock (What is the use for clock?) strip 4 is: +V

What interface would this be and how is it operated?

The data strip is sending some sort of data, obviously. The clock is there to make sure that the data is being sent at a common rate between the caliper and the display part. It is probably just sending pulses out at a certain frequency. I would guess the display part would send a clock signal out to all the calipers.

thanks, that is close. Anything even closer?

I can probably measure data frequency on the oscilloscope?

Question is how does one request data? I guess measurement is not sent continuously, but only on some type of request.

I guess measurement is not sent continuously, but only on some type of request.

Well my guess would have been that it just sends data continuously without any kind of request required. However a easy way to tell would be to look at the data & clock pins with a scope. I would also measure the power pins to see what logic voltage level the device is working with as it most likely in not +5vdc TTL logic voltage levels and that would have to be dealt with before it could wire to a Arduino.


These might help: They are links from the page you linked to.

It is probably just sending pulses out at a certain frequency.

The clock edge marks a time when the data on the data line is valid. So when you see a clock transition read and store the data. You need to see if it is a positive or negative transition that marks the stable part of the data. It doesn't have to be regular, the data will change only when the reading changes, that is when you slide the callipers.

thanks guys, I found some info on the old google as well.

Idea is to combine this:

with geared motor and digital caliper to make a cheapest CNC on earth ;D

Best of luck but check that the calipers will respond to movement at that speed, they are not an absolute encoder but an incremental one much like a mouse.

thanks Grumpy Mike,

Yeah, I already found that they constantly emit data at 3 Hz, in RS232 style. Whole idea is to dash to the approximate position and than do several corrections till CNC head sits right on the top of the mark with 0.02mm accuracy. Kind off ruff first, smooth second.

they constantly emit data at 3 Hz

OK but that limits the speed you can go if you are limited to only three updates per second. I am assuming you can't tolerate any overshoot.

With recently bough caliper I found out it sends data 8x times a second. Not huge improvement, but a bit faster than 3.

It is sending 24bit number that corresponds to current reading every 115mseconds. You will need to trigger interrupt on clock pulses and read data bits to make integer.

Here is the link to article I mentioned: (it's not for Arduino, but lot of information about data fomat and bit timing might still be useful)