New update!
I've been busy with other house projects, so the CNC retrofit has been on hold quite a bit. Yesterday, I managed to get a few more hours in and made some solid progress.
Oiling system upgrade
I switched out the oiling system for a volumetric distribution setup. The OEM system just worked on random restriction, which was fine when everything was new, but after 30 years, all the oil was flowing to the ATC gearbox while the rest wasn't getting any lubrication.
New setup: volumetric distribution ensures oil is properly allocated to all necessary components.
I also had to replace the OEM Shore oil pump as it no longer builds pressure. A shame, since it's a quality unit, but presumably a seal has failed. I'll replace it with a "China special" for now.
ATC swingarm gearbox & shaft adapter upgrade
Switched out the DIY ATC swingarm gearbox-to-shaft adapter. The previous servo gearbox had a messed-up keyway, so at higher loads or faster speeds, it would just rotate despite my shrink-fit solution.
New setup: a custom shaft adapter that clamps onto the gearbox shaft with four M6 bolts. Even though it's custom, it was surprisingly cheap from China.
Also swapped the 1:40 gearbox for a 1:20 to reduce torque.
ATC clamp-unclamp sensor upgrade:
I was not that amazed by the OEM sensing method to detect clamp/unclamping of the tool. This is probably more due to a lack of understanding on my side than anything else... So I just made my own "encoder disk" + sensor.
The idea is to just cut the slots out of the encoder disk, so it triggers the tool clamp/unclamp whenever desired.
Centroid Hickory breakout board
Started working on a custom breakout board for the Centroid Hickory. The idea is to mount it on top of the Hickory, with all I/Os routed to the breakout board, where it will get the necessary circuitry and connectors to interface with other components.
This also replaces the relay boards that Centroid uses for the Hickory.
The main issue with my current wiring is that every sensor needs 24V, ground, and one or two signal wires. Without proper provisions, this turns into a wiring mess. The OEM system also uses relays for outputs, but most of my outputs just send 24V to a VFD input, for example. Anything that actually needs a higher-power relay usually requires a dedicated one anyway.
I also added ready-to-go provisions for:
- Renishaw 3D toolsetter (5V TTL)
- Coolant pump (Delta MS300 VFD)
- Wireless 3D probe
All the outputs go through photorelays (130mA capable, up to 350V AC/DC).
I'll also add proper connectors to hook up all relevant signals to the VFD and other components.
Did something similar in my MightyMill build, and it solved about 90% of my wiring issues. Should make things a lot cleaner.
It needs a bit more work but in essence it is a very simple pcba.
Enclosure
Most of the glass panels are mounted, I just need to glue some hardware on it. I'm just focussing on the small things here and there around the CNC.
ATC PLC code
I'm not that happy with the methods that the PLC has to interface with things such as EtherCAT. Well, to my understanding, it doesn't have any. The problem is that if you want to do sensor checks using G-code, it’s just too slow to react. It lags behind ~1000ms compared to the PLC/actual I/O. So while it currently works, it’s not as nice as I want it to be.
One dumb workaround I could do is stopping the ATC arm by triggering the Motor Stop IO (configurable) on the Delta B3 drive. But it could be that the drive goes in an alarm state at that point, so i need to test if that is a possible workaround.
There's some slack in the ATC system, and because of limitations like G-code delays and the PLC not being able to interface with the EtherCAT drive, I currently have to blindly command the ATC swingarm servo to move a certain number of steps and then stop. But due to the slack in the system, it will slowly drift away from the home position over time. Homing via G-code is possible, but because of the delays, it only works at relatively slow speeds. All in all not a very nice solution.
Now I'm considering just making it dumb—removing it from EtherCAT and driving the swingarm servo in PR mode, while misusing the high-speed homing mode for the swingarm action. In this setup, I could handle the full ATC drive using simple PLC logic, as the interface would essentially just need an alarm out and an enable PR bit 0 input.
The OEM kitamura method worked like this.