I am in need for a z-measurement device for my cnc. So I checked ebay and got me a used mitotuyo depth gauge for ~60€. It has an ‘SPC’-Interface for digital readout. Fortunately there is some information on the Web on howto access that interface.
![IMG_2912.small](https://ca.rstenpresser.de/wp-files/2016/02/IMG_2912.small_-1024x683.jpg)
I didn’t want to buy an expensive Mitutoyo-cable, so I decided to solder on my own connector.
Pinout is:
1. GND (red cable)
2. Serial Data Out (OpenCollector)
3. Serial Clock Out (OpenCollector)
4. (unused)
5. Request In
The USB-Conversion is done by a tinymega microcontroller board which features an Atmega32U4 CPU. With the LUFA USB-Stack it presents itself to the host as a virtual serial port.
The implementation of the SPC-Protocol decoding is pretty straightforward. Send a request on one pin, read in data via SPI. I chose to do all of this in software with one interrupt (not using the SPI peripheral of the CPU). You can see my implementation here on github.
![caliper + tinymega](https://ca.rstenpresser.de/wp-files/2016/02/IMG_2918.small_-1024x317.jpg)
Now all that is left is to hook it up to linuxcnc. I haven’t done that yet, but most likely it only requires 10 lines of python to generate a HAL-Module.