Since their initial release iGaging Absolute DRO Plus scales seem to be gaining momentum. They have a lot going for them, but unfortunately they are incompatible with the original 21-bit iGaging protocol. For some time I've been getting an increasing number of request to add support to the controller firmware, so a few months ago I went ahead and purchased a 6" scale to experiment with. Finally last weekend I added support for these scales to the "Mixed Scales" MSP430 controller firmware. In the first part of this post I will explain what's different about the Absolute DRO+ scales and provide a quick overview of the data protocol; in the second part I'll provide detailed instructions on how to connect them to the MSP430 Launchpad DRO controller.IMPORTANT NOTE: There are two versions of these scales, older version "AbsoluteDRO", and newer "AbsoluteDRO Plus". The former do not work with TouchDRO (yet), since they use some unknown data protocol.
Overall the scales look and feel very solid, much better built than the original iGaging scales. The rail and the bottom part of the reading head are precision ground from hardened stainless steel, whereas DigiMAG scales are made of extruded aluminum and plastic respectively. In fact on the outside the Absolute DRO+ scales look identical to the Accuremote scales, ignoring the color of the plastic; internals are very different though.
|AccuRemote and iGaging Absolute DRO+ Scales look identical|
According to the spec provided by iGaging, these scales are quite a bit more accurate as well. iGaging DigiMAG scales have stated accuracy of +/-0.002" per 6"; Absolute DRO+ have +/- 0.001 at 6", +/- 0.002 at 24" and 0.003 at 38". At least on paper this looks very respectable, and would be more than adequate for do-it-yourself DRO setup, much better than the DigiMAG version. Moreover, based on my experiments it appears that these are true "absolute" scales. I.e. the encoder strip reads the absolute position.
I have found a few little issues, at least with my scale. First of all, although the USB cable has aluminum foil shielding built in, the shield wasn't connected to the Mini-USB connector, thus wasn't providing hardly any benefit. Second, somewhat more alarming was a glitch at one extreme end of the scale where the reading jumped from around -7mm to 480 mm (as can be seen in the video below). This is not the display glitch: reading head provides that readout, so it's either a flaw in the reader head circuitry, or the encoder strip.
|Reading glitch at the end of the strip|
Despite the disconnected shielding and the random glitch, the readout on these scales seems to be much more reliable, though. I've tested the scales in a high-noise environment and they worked flawlessly under all sorts of torture scenarios. Moreover, they seem to be less prone to the flicker in the last digit, which will be a welcome improvement for many users.
Besides the physical differences, iGaging Absolute DRO+ scales use a completely different data interface. When I first got the scale I quickly discovered that the data format is incompatible with that used by the DigiMAG scales. iGaging Absolute scales use a five-wire protocol, as opposed to the 4 wires used by their older counterparts. Figuring out the connections was pretty easy: there are labeled test points on the PCB inside the reading head, so there was no mystery there. The connections are as follows:
- Brown - Vdd (+3V)
- Red - Ground
- White - Data
- Green - Clock
- Black - "Req"
- Blue - not connected
|I/O test points are clearly marked on the board|
With the connections figured out I tried powering up the scales and the reading head while keeping the data, clock and "req" lines disconnected. To my surprise disconnecting any of those lines immediately stopped the data stream. After some experiments and measurements I discovered that both clock, and data stream come from the reading head. The head would send the data when the "Req" line was pulled to the ground, as long as the display was connected to the data and clock lines. When the display is on, there is about 100 KOhms of resistance between those two inputs and Vcc line; pulling the lines to Vcc using a pair of 100 KOhm resistors did the trick.
You might recall that DigiMAG scales use a simple 21-bit protocol: display unit provided the clock (21 pulses) and the head responded with the data bits. In contrast, Absolute DRO+ reading head provides the data in a 52-bit format. Moreover, the clock speed is much faster and so is the refresh rate at 2KHz and 250 Hz respectively. A while ago I was told that the data protocol is identical to the one used by Mitutoyo DIgiMatic scales, which indeed turned out to be true. Each data stream consists of 13 digits (sometimes called "niblets"), represented using 4 bits each, with LSB on the left and MSB on the right. This way each niblet can be used to encode digits from 0 to 9. The data stream is laid out of follows:
- Digits 1-4 are not used and all bits are set to 1
- Digit 5 indicates the sign (0 - positive, 8 - negative)
- Digits 6-11 represent the position in millimeters
- Digit 12 indicates the position of the decimal point (not important in this application, since we know that the readout is in xxxx.xx format)
- Digit 13 indicates units (again, not important since they are always set to millimeters)
In other words the only things that we care about are the last bit of the fifth digit, and the 24 bits of the position data.
iGaging Absolute DRO+ scales are a bit trickier to interface to the DRO controller but the complexity is more than offset by the superior build quality, better accuracy and much better reliability. To recap, these scales are incompatible with the original iGaging scales and required a completely different [asynchronous] approach. Fortunately the "Mixed Scale" firmware provided a good foundation, so I was able to make the necessary modifications relatively easily. In the next post I will show how to build the simple interface board and connect the scales to MSP430 LaunchPad board. Finally, the updated version of the firmware is available on the Downloads page. I've tested it to the extent I could with a single scale, but there might be minor bugs still lingering. As usual, I would really appreciate any feedback, and especially bug reports.