So last year I ordered a Shapeoko 3 to do all my CNC work. It's easily big enough to do all the work I'd like to do and being the third revision, I thought all the kinks would be worked out. This is 98% true, the machine is excellent. Mechanically, it's a very well thought out and well functioning machine. Defiantly rigid enough to handle all the hardwoods I cut with it. My only gripe with the Shapeoko 3 is the electronics:
So how a stock Shapeoko works is that you have a laptop that streams Gcode over USB to a microcontroller (Atmega328). The microcontroller then interprets the Gcodes and sends the appropriate control signals to the motors, moving the machine. Since the machine has no encoders to read the actual position of the machine (this is called open loop control) you are completely reliant on the USB not screwing up. Here's an example:
The machine is sitting at Z = 0.0". You stream out "G90 G01 Z0.25". This would lift the Z axis to the coordinate Z = 0.25". My laptop has no idea if the machine actually is in that position, as there is no feedback from the machine. A closed loop system would wait for a response from the machine, confirming that it was actually at Z = 0.25" before issuing the next command, but not the Shapeoko. So now, imagine the "G90 G01 Z0.25" never arrived. If the next command is to plunge by 0.5", the machine would plunge from 0.0" to -0.5" rather than plunging from 0.25" to -0.25". This is obviously a problem if you're trying to be accurate to a couple thousands of an inch.
So, this means you are completely reliant on the USB not screwing up at all over the course of an entire job. Well, as it turns out, it's pretty easy to mess up USB. Just start a large shop-vac on the same circuit and the inductive spike will very likely screw up a few bits. This is a problem if you want to do any kind of dust control. USB logic levels are only ~3V apart, so you don't need a ton of noise to mess up the signal. As RS232 logic levels are -15V to +15V I thought it might be more immune to noise. (I also have some theory's about the USB software layer, but haven't been able to confirm this).
So, I built a custom circuit board to test this idea. Here's the hardware chain:
1. Laptop RS232 Com Port 2. MAX232 signal conditioning (RS232 - TTL) 3. Atmega328p UART 4. Sparkfun Big Easy Drivers
I have one of these boards installed on my Shapeoko now and haven't had a problem since switching. I run 1.5hr jobs (cutting Finger Drummers) almost daily and have yet to have a problem. I also run a 6A dust collector, 1500 watts of baseboard heat and two laptops on the same phase with no problems. I've even fired up my lathe while a job is running. The only major difference between my PCB and the stock Shapeoko 3 PCB from Carbide Motion is the use of RS232 rather than USB. Here's some pics:
Atmega328 and MAX232 section. The DB9 connector is on the left:
Voltage regulators. Connection points for a fan and power:
Limit switch and spindle connections along the top. I included switch debouncing with Schmidt triggers:
And of course the Big Easy Stepper drivers. Each one is socketed with female headers, so if you burn out an axis, you can just drop in another Big Easy Driver:
Please get in touch if you'd like to get your hands on a PCB, I'm working on a version that is the same form factor as the stock Shapeoko PCB and has the same connectors, so it should be plug and play. Just e-mail firstname.lastname@example.org