Monday 11 September 2017

Bridgeport CNC conversion - resurrection!

Just before we upped sticks and moved back to the UK from Canada, I was working on the CNC conversion of my manual Taiwanese Bridgeport clone milling machine. 

To convert a machine like this to CNC, you need a range of parts:

  • Machine controller. In this case a Mini-ITX form factor (ie very small), passive cooled PC with a spare ISA expansion slot. The other obvious option would be to go for a stand-alone CNC controller like the one used on The Shiz. That could still be an option but as I've already coughed up for the PC-based system, I may as well stick with it by now. If I find myself losing the will to live when I get stuck in to the LinuxCNC, I may change my mind....
  • Motion control software. If you go for the PC-based controller concept, you need some suitable software to take the g-code and drive the motors. I've gone for LinuxCNC, as it's free and highly configurable. The other serious option would be Mach 3 or Mach 4, which actually grew out of LinuxCNC (originally called "EMC" - Enhanced Machine Controller) but it's proprietary now, so the options to customise are more limited. And it costs.
  • A MESA Systems 5i25 / 7i76 FPGA motion control board. The 5i25 sits in the ISA slot and  talks to the 7i76 (remote breakout board). As the 5i25 has an FPGA onboard, much of the fast computation is done there, saving the motherboard and main processor from that burden. So latency issues are not a concern, as they would be with a motherboard-breakout board combination. As well as the servo drive signals, the 7i76 has a host of analog and digital IO as well as a "digital potentiometer" for driving the 0-10V speed signal for the main spindle VFD. They are available as a "Plug and Go" pair for $200, which is pretty reasonable.
  • Motors and motor drivers. 
    • I have a Leadshine iES-2320 Integrated Easy Servo Motor (2.0 Nm NEMA 23 with 1,000-Line Encoder) for the Z axis. This uses an encoder on the motor to compare actual position against demanded position. You can specify the maximum allowable deviation before an error is flagged but within that range, the driver will hold (or recover) position. The motor driver is built in to the motor, so installation is very simple - 36V PSU and logic level control signals.
    • For the X and Y axes, I got a pair of DMM Technologies servo motors and drives. They are based in Vancouver, so I actually drove over and picked them up in person. They are a great deal cheaper than "proper" industrial servos from the likes of Yaskawa, Panasonic etc but for a hobby conversion like this, they seem to be a reasonable compromise. As a product developer myself, I can see that they are some way short of industrial in terms of construction (and almost certainly reliability).
    • Both the Leadshine and DMM drives use Step and Direction logic signals rather than analogue signals, even though the DMM drives are servos rather than steppers. The 7i76 breakout board is intended to provide step and direction signals, so it works with both.
    • For the PSUs, you need to be able to withstand a degree of overvoltage due to fast regen braking without upsetting the PSU. The Leadshine "RPS" PSUs are claimed to be optimised for use with servos and judging by their other products will be well engineered. I got a 36V model for the Z axis and a pair of 48V for the X and Y. I suspect I could manage with a single shared PSU for the X and Y but it's very difficult to estimate the peak power requirement, so safest to go this route.
  • Pulleys, belts, brackets etc to mount the motors, leadscrews, bearings etc.
  • Ballscrew / ballnut assemblies. Normal leadscrews and nuts have too much backlash and can't be adjusted for the subsequent wear.
  • Limit switches to control extent of movement, to prevent buggering the ballscrews, slides etc.
  • Control box to house the PC, 7i76, PSUs, servo drives, VFD, switchgear, SSRs etc.

I have all of the above ready to go, part from some of the large X and Y brackets etc. I've even set up the LinuxCNC software on the controller and had the servos spinning whilst machining a virtual part. They are safely boxed up in the workshop, waiting the day I am ready to fit them. But first there are a few missing parts required:

  • X and Y axis "brackets". These bolt to the table and knee respectively. The servo motors are mounted to them and they also house a couple of toothed belt pulleys and a jockey tensioner. 
  • Jockey tensioner wheels.
  • Cover plates for the brackets.
  • Yoke for the X and Y axis ballscrews. The original yoke needs to be bored out slightly from about 38mm to 40mm, so hopefully I can avoid making a new one which would be a major task. My crude measurements suggest it should be possible to bore them out on the Bantam.
  • Obtaining and mechanically fettling the control box.

I'd already made the Z axis parts and was part way into machining the main Y axis bracket when everything had to come to a stop. This was all manual stuff, involving lots of hand cranking, rotary table etc. With the Chinese 3-axis DRO system I had fitted to the machine, it was possible to work with a fair degree of accuracy and at a faster rate than using the dials on the machine. To be fair, if I hadn't fitted the DRO, the backlash on the leadscrews would have prevented me from achieving an acceptable level of accuracy.

Whatever happens, the backlash in the existing leadscrews is awful, so it would make sense to fit the ballscrews whatever happens. And I want to finish the brackets I started, so that I have completed the kit of parts.

So the next chapter in my CNC experience will be to machine up the X and Y brackets and associated gubbins.....

No comments:

Post a Comment

Final assembly and test of the spindle nose adaptor - RESULT!!

After the recent distraction caused by the 3D scanner, resurrecting the 3D printer and buggering about with the throttle bodies for my Honda...