Recently I've been working on a new version of a DRO controller that will be able to read a combination of different scales. Although the project is taking much more time than I anticipated, I’m making steady [but slow] progress. Last week I had some free time, so I was finally able to button-up some stability issues with the common “Chinese” scales. Unfortunately I still haven’t finished a truly universal version, so you won’t be able to mix glass and capacitive linear scales (yet). Never the less I posted two versions of the firmware: one that read up to four scales and one that reads the common capacitive linear scales. Links to both versions are posted on the DRO Project Downloads Page.
In the near future I hope to combine them, so both types of scales can be used in combination.
Capacitive Scale Controller
So far this version of the firmware can read three types of scales: iGaging "Remote DRO"*, scales that use the 24x2 Sylvac Protocol, and inexpensive Chinese calipers. The firmware can auto-detect those protocols, so no configuration is required.
24x2 Sylvac Scales
This protocol is used by the vast majority of Chinese linear scales and some better calipers. It was originally designed in 1980 by a company called Sylvac and copied ever since. The data is sent in two consecutive streams of 24 bits each. The resolution is approximately 20,480 ticks per inch*.
*The scale I’m using on my mill reads 20,482 per inch, so I suspect there are some inconsistencies between different units. I would suggest that you calibrate the DROto your particular scale. The easiest way to do so is to set the axis (in the app) to 10,000 TPI. Next you should zero out the dial on the mill and the DRO, move the mill 10 inches (for example), divide the DRO reading by 10 and enter the result as TPI for the axis.
Inexpensive “Harbor Freight” Calipers
I should start by saying that I strongly recommend you avoid using these calipers on a DRO. Since the calipers reset completely when they shut down, they are unsuitable for proper DRO operation. Moreover, these calipers output the contents of the screen, so when you change from inches to mm and vice versa, the output changes accordingly. With that said, the controller will correctly detect and read these calipers, taking care of the units conversion as well, but it will not be able to deal with position resets. The resolution is 254000 in both modes, but as with the other scales, I suggest you calibrate the DRO to your particular unit.
The controller threats iGaging scales similar to the other two kinds. I.e. it auto-detects the protocol and reads the scales properly. There is one caveat, though: the firmware can’t provide the clock to the scales yet, so unless this feature is added you will need to use the iGaging display unit to do so. Using a piece of mini-USB cable, connect Vcc and Ground (red and black wires) from the display to the appropriate lines on the adapter board and the white clock wire to the clock inputs of the iGaging scales.
This version of the firmware can read any incremental quadrature encoders, not just glass scales. This includes rotary encoders and magnetic scales as well, since they work on the same principle, but the interface hardware might need to be tweaked a bit. To connect these encoders to the controller you will need to use the datasheet to locate Vcc, Ground, A, and B pins. Vcc and Ground should be connected to the corresponding lines on the controller. Outputs from A and B need to be connected to the “Clock” and “Data” lines. It doesn’t matter which is connected to which line, since you can reverse the direction in the application.
In addition to the obvious task of combining both firmwares into one that can handle capacitive scales side-by-side with quadrature encoders, there are a few little items I still need to address.
Clock Signal for iGaging Scales
Rather than jerry rigging the display unit, I’d like the controller to be able to provide it’s own clock. I can’t do it the way it worked in the iGaging-only version of the controller, since the firmware is completely asynchronous. Instead, I intend to use MSP430’s second timer to output the clock to a separate pin that can then be connected to the clock lines as needed.
Tachometer has been one of the top five most requested features. It looks like this controller should be able to handle tachometer input as long as the ticks per rotation aren’t too high.
Support for BCD7 Protocol
I had one caliper that used this protocol, but it suffered an untimely death. It appears that those calipers still show from time to time, so if I come across another one I will add support for it in one of the future versions.
Even though the project as a whole is still “work in progress” portions of the functionality that read common chinese scales and quadrature encoders are ready for [cautious] use. Please keep in mind though, that I had only a few hours to test the glass scales on my mill; capacitive scale testing was even more limited. If you end up using the new version of the firmware in your shop, double check that the measurements are accurate until you’re sure the controller is behaving correctly.