Bit of a pause while on holiday...

Andrei - I have been using Mach3 on a couple of machines, and I've never been entirely happy with it. The odd random crash, plugins that don't play well together, etc. That was on both my home-built CNC router and this commercial milling machine. The faults that I have had on the milling machine with its ESS could have been Mach3, the ESS plugin, the ESS hardware, or some combination. I wanted to move away from Mach3.

I didn't need to add a BOB for protection or any other reason in this case. BOBs mainly perform two functions - they act as a kind of convenient junction box with more useful connectors than a typical motion controller, and they might be useful for input/output protection and level-shifting (e.g. 24V signalling). However, in my case, this functionality was already in place on the motherboard that held all the other electronics, I/O connectors, etc.

When I looked closely at the control box, I saw that it was not even a standard ESS. Two of the five I/O connectors had been moved to the "wrong" side of the board (actually, it looked as if it had been manufactured like this, not a resoldering job) so that the ESS could plug into two matching connectors on the motherboard. I checked with the Mach3 configuration screens and confirmed that only these two ports were used, and I could identify which ports/pins were used for which purpose - including the two probe inputs which are not supported by Mach3, if you read the documentation. In fact, my machine used an undocumented function call embedded in various probing macros to be able to switch between probes as required. Comparing the I/O connections with the UC300-5PLT, it looked as if the two ESS connectors used could be emulated by two of the UC300 ports - the ones that resemble standard LPT parallel ports (that is, ports 2 and 3). By mounting the UC300 in the control box, I could make up a couple of ribbon connectors to go between the UC300 ports and the motherboard ports. I configured "ports and pins" in UCCNC to match the ESS configuration, and somewhat to my surprise it all worked. I took things like motor tuning and "pulses per..." straight across from the original Mach3 screens to UCCNC, played about with things like table travel, homing parameters, etc, and it was all fine.

The network setup was straightforward - just needed to change the ethernet address of the dedicated ethernet port on my PC. No need for a crossover cable or anything like that.

The only thing that gave me grief was the spindle speed control. I copied the Mach3 parameters as best as I could understand them to UCCNC, but speed control was poor. The spindle would take a long time to get up to part-speed, then after a bit it would get up to full speed. However, the speed reached was not very linearly linked to the demanded speed. Eventually, I discovered that one of the parameters that appeared to relate to pulse rate for the PWM output on the Mach3 spindle config page was nothing of the sort; the actual value was on another page completely. So when I changed the pulse rate from 50Hz (which is what I thought it was under Mach3) to 5KHz, which is what it should have been, all was well. Speed pretty accurate across the range, although not brilliant at the very lowest speeds which doesn't worry me too much. I don't expect to be using cutters that need spindle speeds much below 500rpm on this machine anyway.

Only job left now is to convert the tool-height setting macros that ran under Mach3 to run under UCCNC. The idea is that M6 toolchange automatically sets tool height by going to the fixed tool-setter device on the table on every tool change. It's not as good as a tool-changer but a whole lot better than manual height setting on every tool change. I also need to finish setting up the probe screens to match my hardware - that's the next job on the list.

Overall, I found the ESS to UC300 changeover to be more painless than I expected (almost just an exercise on paper to get ports and pins to match), and it has moved me away from an old hardware design and obsolete software from different manufacturers to current hardware and software from the same supplier, which must be a better bet for reliability and compatibility.