Hello,
the next part on our journey to retrofit the Mikron WF41C is now dealing with the Heidenhain glasscales. These glasscales output two sinusoidal signals A and B that are offset to each other by 90deg. Depending on whether A is trailing B by 90 deg or the oposite way around the direction of the movement can be determinded. The period on the glasscales at hand (Heidenhain LS403C) is 0.02mm. The glasscales need to be provided with 5V and the resulting symmetric signal is around 1.3V and pretty weak/sensitive. Therefore there is some circuitary needed to process this signal up to TTL level as well as increase the resolution up to 0.001mm as provided by the original Heidenhain control.
Heidenhain provides such circuitary called EXEs. For non-Heidenhain controls they come in the form of small metal boxes. Older Heidenhain controls integrate them directly into the control unit as it is the case for our TNC355.
These EXE circuits basically interpolate the analog signal for higher resolution (in our case 5x) and output 5V TTL signals for A and B. These signals then can be read by e.g. a Mesa Card like the 7i77 on an encoder input and with quadrature enabeled in LinuxCNC (i.e. evaluating all the 4 zero-transitions of the A and B signal during a period) provide a 0.001mm resolution.
Further in the case of our LS403C there is a third index signal track. These index signals are arranged in two periodic series:
1. There is a signal every 20.00mm (let's say starting at absolut position 0mm)
2. There is also a signal every 20.02mm (starting at 10.00mm).
If you draw this up you can easily see how you can calculate the absolute position by the distance between two index signals and the relative distance traveled since passing the second index signal. Therfore the machine can be homed independent of its position after traveling a maximum of 20mm.
As we didn't want to rely on finding secondhand EXEs on eBay or similar we had to find another solution. In an old post from 2013 (
forum.linuxcnc.org/27-driver-boards/2616...-7i33?start=10#31650
) I found the reference to the icHaus iC-NV chip that seemed to do pretty much what we needed. So we bought some of those and designed a little PCB to host it.
About two weeks ago we tried it our for the first time. We tapped into the signal line going from the glasscales into the Heidenhain control. Looking at the signal on an oscilloscope showed some promise but we could not make any final conclusion if everything was working since we experienced two issues:
1. The Heidenhain control was even during constant moves makeing a lot of little ajustments which gave the oscilloscope a hard-time to properly trigger the signal.
2. Our taping into the weak signal from the glasscales quite often triggered glasscale errrors in the Heidenhain control which to our best knowledge could only be reset by restarting the Heidenhain control.
Therefore we decided to temporarily remove the y-Axis glasscale for testing. We were very pleased to find out that our little PCB just seems to work flawlessly. LinuxCNC showed the position with a resolution 0.001mm and also the index-signals were arriving as expected with the right spacing.
So the next step now is to find out how we can home the machine using these index signals. It looks to me that the the standard homeing sequences of LinuxCNC are not suited to home glasscales like the LS403C. Any help / suggestions are greatly appreciated.
Best regards,
Marc