josiah47 - That looks like a very nifty solution.
What level of feedback do you want on connecting it to Maple?
Is there another datasheet?
I found plenty of mechanical data, but I all I could see about the electronics is:
output phase difference: 90° (A ch leads B ch in CW direction viewed from front)
output current: 5 mA max.
output waveform: TTL voltage square wave
output signals: A, B, Z1 phase (A, B, C line driver available with CUI-10XE-10)
current consumption: 6 mA typ., 10 mA max.
supply voltage: 3.6 ~ 5.5 V dc
and a "Pin-Out" with the key of the signals available on the connector. Is there some marking on the device to get an unambiguous pin mapping?
That datasheet is a bit sparse. For example, I'd like to see clear diagram about the timing of the index signal wrt. the quadrature signals.
I assume it means TTL level square wave will be at least 2.0V for high e.g. http://www.interfacebus.com/voltage_threshold.html
Have you got access to an oscilloscope? A TTL square wave should be okay to feed into a Maple, but I'd check it before I'd connect it. With a bit more detail on the electrical signals, I'd feel happier.
I'd be tempted to isolate it from a microcontroller using something like an optical isolator/optical coupler, e.g.
http://uk.rs-online.com/web/search/searchBrowseAction.html?method=retrieveTfg&binCount=973&Ne=4294957561&N=4294767559+4294571109
It sounds from your application like it will be in an industrial setting, so isolation seems like a good idea anyway.
I'd put a resistor (say 1K) into each signal line to reduce the chances of damaging anything by shorting connections (I can be clumsy some days :-)
Once you have 'friendly' signals, at a voltage level that can't harm a microcontroller, then you could feed them into a few pins.
You could be feed the two quadrature signals into input capture inputs of a timer. Use the timer to track the quadrature signal. The index could feed into another timer, or just use it as an interrupt.
For initial experiments, you could just use a loop which does digitalRead to check each pin state and micros() to time it.