I've built a 3(+1) Axis mini mill which is controlled by Linux CNC + Mesa 7i43 cards. It's basically built of parts I found in dumpsters / skips and at the local scrap yard. The main parts of the machine, steppers, linear rails, lead screws came from a discarded MultiCam? CNC router and a X/Y laser etching unit (lead screws / ball nuts came from this). The only part of the machine that was purchased was a Mini-Mill head which came from 'little machine shop' in the USA and was bought back on a flight (It weighed 50lbs which was the maximum allowed weight!), and the Mesa I/O cards. The XYZA motors are driven by IMS micro-stepper units. The whole setup is driven by a 2.4GHz P4 Compaq/HP desktop, with a single parallel port driving the Mesa 7i43. Apart from home engineering, I also fiddle about with electronics design and build.
A bit of background info on the machine; The Z axis travel is about 600mm, X ~300mm and Y ~ 240mm. The bulk of the machine was recycled from an old MultiCam? engraving machine, in the pictures the Z column is in fact the old horizontal support column from the MultiCam?. Behind the Z column is the lead screw with 2 bearings on it, and another vertical support column made from 25.4mm ground bar, with recirculating bearings, this was done because I had the parts, but also for slop prevention along the spindle axis. The XY table was recovered from a local scrap yard, it was extremely rusty and was locked solid, it took several weekends of work to clean it up and free up the slide ways, which thankfully were covered in thick hardened grease. In December 2019 the machine was upgraded with new pre-loaded precision ballscrews+nuts for X and Y axis. The entire table assembly was removed, stripped down, cleaned and reassembled. Bed perpendicularity is now with in 0.001" which is acceptable.
The base of the CNC machine is a piece of steel 100mm square box section that I chopped in half to make two equal parts, these then have 6 X 10mm reamed holes in the back end which mate with 6 reamed holes in the Z column which is also 100mm square box section. 10mm ground and hardened bar is put through 4 of the 6 holes, the remainder being used for bolts. The entire machine sits on a stand made from 50mm steel box section, and welded together. The entire machine sits on anti-vibration mounting feet.
I mostly use my mill for making parts for microwave radio experiments. In fact I have a YouTube? channel with some video and pictures of the machine and its build etc. The YouTube? stuff is at http://uk.youtube.com/uhfdashsatcomdotcom
The mill generally looks like this as of April 2009;
The Dremel attachment for PCB routing is shown below;
(Feb 2009) The DC motor has been replaced with a Yakasawa VS606V7 VFD and ABB 3 phase motor. A 'Z Axis' control box has been mounted on the head to give an additional E-Stop button, Z up and down buttons, and a multi use encoder currently configured for spindle speed over-ride.
(Oct 2009) The 7i43 interface controls all aspects of the machine, including 4 X stepper motors, variable frequency pulse train output for the VFD, limit switches,estop, and the MPG pendant for XYZA control. Other useful controls have been added including a single step button and a multi purpose encoder currently set for tweaking the spindle speed.
The electronics and associated rats-nest have been now been put into a solid metal enclosure.
As mentioned, the 7i43 controls all the machines functions. The picture below shows the current line up of I/O cards. At the top is a 7I37TA which gives 16 opto isolated inputs, and 8 isolated outputs. Currently only the isolated inputs are used, mostly for normally closed limit switches, inductive proximity sensors and various buttons etc. Below this card is the 7I42TA card which gives 24 I/O lines with appropriate protection against over voltage etc. This card is used to output step/direction signals to the stepper drivers, pulse train output to the VFD along with spindle direction, machine enable signals etc. Finally, below that is the 7i43 card with direct encoder inputs from the spindle, multi purpose encoder and the MPG pendant. The nice thing about this card is that it totally removes the software step-generation and input clocking from the PC, this means that it can clock input signals from encoders at a very fast rate - the 360ppr spindle encoder is easily and precisely read when running at the top motor speed of 6000RPM (The 7i43 encoder clock runs at 50MHz!). Rigid tapping was tested in a block of plastic with an M3 tap and was easily done at 1500RPM, I expect with some tweaking of the Z axis speed, this could be improved upon. I would certainly say that if you are building a stepper CNC machine, certainly consider using a 7i43 to control your machine, it was a little daunting at first, but after chatting through the ideas with the #EMC IRC folks, it seemed to be fairly straight forward. Migrating the old par-port control over to the 7i43 took several evenings, most of the time was spent re-jigging the limit switch hardware!
Finally, the general layout of the AXIS screen for my CNC mill is shown below. The Pyvcp is used to give some additional 'handy' functions;
If you have questions or comments on my mill, please pop in to the #linuxcnc IRC channel and ask.
The milling machine is undergoing a continuous development program to improve it, with the following items on the list;
- multi function encoder on Z for spindle / feed override - done! (Jan 2009) - additional 'precision' encoder on the spindle 360ppr encoder (for rigid tapping etc) - done! (Mar 2009) - proper spindle speed control, currently variable frequency square wave pulse train - now properly done! (Oct 2009) - re-house the electronics in a metal cabinet, improve the shielding of logic signals etc - done! (Apr 2009) - fix the electrical noise generated by the VFD to braking resistor cables - done! (Apr 2009) - torque / load feedback from variable frequency drive to EMC2 for load monitoring of spindle motor - partially done (Oct 2009) - closed loop speed control for constant spindle speed under differing spindle loads - done! (Oct 2009) - build stepper motor converter for rotary axis along with micro stepper driver - in progress, A axis electronics added (Oct 2009) - replace X and Y leadscrews with decant pre-loaded ballnuts + precision leadscrews - done (December 2019) - add a spray mister coolant system - in progress (Jan 2020) - build a tool length detector for automatic 'zero' - in progress (Jan 2020) - build a touch probe
Possible 'nice to haves'
- investigate head tilt under EMC2 control - upgrade steppers to servos
My config files for the 7i43 stepper setup are online at https://pjmarsh.co.uk/cam/7i43/hm2-pjm/ - please feel free to pick through them!