Introduction: Machine Control on a Budget - Part 2
This is an update on my progress upgrading my MaxNC-10 desktop milling machine - refer to my earlier post "Machine Control On a Budget".
The pictured MaxNC-10 is back in production - visit maxnc.net!. It was off the market for a while after the previous business owners retired. However, the MaxNC machines ship with slow, low power motors and drivers so many users will want to upgrade as I am doing. Further, MaxNC has expressed an interest in offering my upgrade solution as an option when I have the system working better.
The picture was taken at the recent "Cabin Fever Expo" in Lebanon, PA. Comparing the picture with my previous post you will note several changes to the machine:
1.I added high and low limit switches to all three axes (X, Y & Z). The original stepper motors would merely stall at the limit position without damage to the machine and my CNC programs could use that as a reference position. However the more powerful motors and drivers would pull the coupling off of the motor shaft rather than stalling. This made the addition of limit switches imperative to protect the machine from CNC program errors.
Because the machine has aluminum slides, I could use miniature magnetic reed switches. Note the two switches epoxied to the front of the X slide and a tiny 1/8" magnet epoxied to the cross-slide. However, the low side Z limit switch is mounted only with cellophane tape to be adjustable for tool length. My firmware averages samples to provide a high noise immunity. The switch inputs can connect directly to µP inputs and use the internal 10K pull-up resistor, but the processor inputs should be protected from high voltage Electro-Static-Discharge (ESD) using a protection diode array, e.g., the Littlefuse SP720.
2. I have replaced the Dayton brushed AC-DC spindle motor with a hall-sensored three-phase BrushLess DC (BLDC) motor from Anaheim Automation. The BLWR235S-36V-4000-03 is currently on overstock sale for only $29.00! I wanted my machine to be able to do high speed hole drilling and tapping so the mayor had to be Variable Speed Reversible (VSR) with the rotation accurately synchronized with the Z axis motor. Other advantages are a motor that is quiet mechanically and electrically and can run with high efficiency. It also has about twice the power density, 1/5 hp., and is about the same size. The Dayton motor brushes could generate enough electrical noise to interfere with my electronics and Dayton replacement brush sets are expensive.
The BLWR235S-36V-4000-03 has impressive torque at low speed so it should work well for hole drilling and tapping. For the show, I had the motor turning slowly running open-loop at low voltage. I am still working on the hall sensor feedback Phase-Lock-Loop (PLL) to enable higher speed, higher power operation.
The Kludgy sheet metal pedestal motor mount works but should be replaced with a better design as it obscures access to the synchronous belt adjustment screws.
I used 2mm banana plugs and sockets to connect to the three-phase motor leads. These tiny connectors have a high current rating and have become the standard for quadcopter three-phase motors.
I used small diameter 4 conductor plus shied cable and mini-DIN connectors for the hall sensors. These connectors are inexpensive but I think the housing is oversized. If I were willing to spend a bit more, I might have used the SwitchCraft Tini-Q lapel microphone connectors, or if money were no object, I could use Lemo connectors with the knurled spring loaded locking ring. Or I could have used another five 2mm bullet connectors even though it doesn't need high current.
Step 1: My Control System
Comparing my motion control / motor driver configuration with my earlier configuration, you will note several changes:
1. My 36 volt 150 watt power supply was not going to work with my 176 watt spindle motor. I found a 36 volt 400 watt power supply on eBay for the same price. It is also the same dimensions as the 150 watt supply, main difference is the automatic fan. The supply arrived via USPS undamaged packaged only with bubble wrap and a padded envelop.
I moved the relay module from the hardboard to the side of power supply to provide more clearance between the AC and the circuit boards. A strong double sided foam mounting tape is working fine so far.
2. I am now using the full size of a 5" by 7" prototyping board available from eBay. This leaves me with space along one card edge for 0.1" pitch terminal blocks.These cute little blocks attach directly to the prototyping board and provide connections for the limit switches, probe, hall sensors and power relay module even more conveniently than the Grove Base BoosterPack that I was using before. The 0.1" pitch terminal blocks further provide secure connection with 0.1" pin header connectors. Note that I attach the fine wires for the hall sensor shielded cable to male pins, then insert the pins in a five position header, then trim the pin length to fit the terminal block, then insert and tighten the screw for each pin. I did the same for the ribbon cable connector to the relay module.
3. I replaced one of the TI BOOST-DRV8711 stepper motor driver boards with a TI BOOST-DRV8305EVM high power three-phase driver board for the spindle motor. The board has the same width but is 0.3" longer.
The 8305 uses a different SPI protocol than the 8711so it needs to be on different SPI controller so both BoosterPack SPI connections must be used. Note, the EK-TM4C1294XL has another two SPI controllers but using them would require adding additional connectors to the breadboard pinout area.
Running a BLDC motor smoothly at low speed, as I did in the demo, requires sinusoidal commutation. Only trapezoidal commutation is possible using the SPI interface. I use the SPI connection to set the 8305 to 3-PWM mode and then control it with 3 PWM µP outputs modulated for 1/64 micro-stepping.
Step 2: Conclusion
I can provide a schematic of my backplane interconnect wire-wrap board upon request although I am frequently updating it to support more features - an advantage of wire-wrap. Also, if anyone is interested in collaborating with me on the hardware side, let me know.
I started this project to fill a niche and bring the power of the Macintosh Cocoa GUI to the world of machine control. However, only hobbyists will take the time to interface directly with the µP board. Professionals will want fully functional and tested solutions. I believe my embedded system using a fast µP board and high power motor driver boards in flexible configurations will address the growing market for professionals wanting to upgrade aging machines with new motors and electronics. Many machines that are cost prohibitive to replace could be upgraded with this low cost system.
Although my niche started with the Mac desktop GUI, the embedding firmware uses more advanced motion control algorithms than is available in many other systems. There is now some interest in matching my firmware with PC based CNC control software. if anyone is interested in collaborating with me on this, please let me know.