Igaging Micrometers and Calipers

Share on facebook
Share on google
Share on twitter
Share on linkedin
A VPN is an essential component of IT security, whether you’re just starting a business or are already up and running. Most business interactions and transactions happen online and VPN

I’ve added the Igaging SpeedMic and OriginCal to our list of Arduino connected Mitutoyo measurement equipment (Micrometer, Caliper, Dial Indicator, and DRO Scale). I made some improvements to our Mitutoyo Instructable to facilitate connection to the Igaging equipment. The Igaging SPC enabled gear is Mitutoyo compatible, using the same 52 bit data stream. It even uses a Mitutoyo SPC cable for connection (not the same cable as our Mitutoyo Coolant protected Micrometer).

Update: Now reading Micro-Epsilon ODC2600 Laser Mic!

Update: Now reading Harbor Freight Calipers!

Igaging SpeedMic and OriginCal

Cable for Arduino

Discuss (Yahoo)
Discuss (Facebook)



Now comes with a new professionally made board!


Order interface Boards (one for each axis):





int req = 5; //mic REQ line goes to pin 5 through q1 (arduino high pulls request line low)

int dat = 2; //mic Data line goes to pin 2

int clk = 3; //mic Clock line goes to pin 3

int i = 0; int j = 0; int k = 0;

byte mydata[14];

float num;

void setup() {


pinMode(req, OUTPUT);

pinMode(clk, INPUT_PULLUP);

pinMode(dat, INPUT_PULLUP);

digitalWrite(req,LOW); // set request at LOW


void loop() { // get data from mic

digitalWrite(req, HIGH); // generate set request

for(i = 0; i < 13; i++ ) {

k = 0;

for (j = 0; j < 4; j++) {

while( digitalRead(clk) == LOW) {// hold until clock is high


while( digitalRead(clk) == HIGH) {// hold until clock is low


bitWrite(k, j, (digitalRead(dat) & 0x1)); // read data bits, and reverse order )


// extract data

mydata[i] = k;


// sign = mydata[4];

// decimal = mydata[11];

// units = mydata[12];

// assemble measurement from bytes

char buf[7];

for(int lp=0;lp<6;lp++){



num=atol(buf); //assembled measurement, no decimal place added

Serial.println(num/1000, 3); //add decimal





Steve Spence

Steve Spence

Leave a Reply

17 thoughts on “Igaging Micrometers and Calipers”

  1. Hello,
    I tried the code and after some time of searching why it doesnt work i realized that it seems to be stuck in the " while ( digitalRead(CLK) == HIGH) {}" loop. Any ideas about how to fix this?

  2. Hey, I have a project back home and this is exactly what I need. What is the estimated delivery time for a assembled kit?

    Gr, Emiel

  3. My Mobile Kalinowski

    It is a great project…well done and thanks for the effort.
    I am a bit confused . I really would like to print score on lcd 16x 2 as you did, but I can’t see the code for this. Could you help me with this please.

Leave a Comment

Your email address will not be published. Required fields are marked *