Keep It Simple Stupid!
Most of us have heard that saying at some point in our lives: Keep It Simple Stupid (KISS). First coined by the US Navy as a design principle in the 1960s, it's something that I need to periodically remind myself.
Sometimes, however, the engineer gets the better of me. You can see that in the incredibly elaborate mechanical and electrical system I built for my version of the sand plotter in comparison to the simple mechanism designed by Bruce Shapiro for his Sisyphus. Though I got some great learnings from attempting to tackle that project, my version has ended up in the scrap heap.
Well, a more recent project has reminded me of this principle yet again, at the cost of a $400 burned-out circuit board, not to mention the development of the over-engineered solution, costing much more in coin and sweat over the weeks I attempted to get it working.
The Problem: Balancing the Garage Lift
I set up my CNC late last year in my workshop; to move it out of the way when not in use, I put it on the Garage Gator lift, which was the only affordable motorized lift I could find. It comes with a 4' x 6' platform, more than enough for my 1000mm X Carve, but unfortunately, it has one major limitation: the platform has only two cable attachment points to the lift mechanism. That means that if the platform isn't perfectly weight balanced from front to back, it will tilt and dump everything on the floor! (AuxxLift and PowerMax have four cable systems, but at the time, I wasn't ready to drop $1000+ on a lift, several times the cost of the GarageGator. In retrospect, that would've been a much better solution!)
So as I lift the CNC into the ceiling, I have to be very careful to make sure the platform is balanced front to back. Sure, I could do this manually... but this could get super tedious if I'm using it every day, so this led me down a tortuous path to automate the process.
Solution # I: Sliding Counterweight
Fortunately, the platform had extra space to the side of the X Carve, so I decided on a simple solution using a heavy counterweight that would be shifted back and forth based on the tilt detected by a pair of mercury switches. This was simple only in idea:
Finding the counterweight. Steel or brass would be ideal, but an 6" metal cube, weighing in at about 60 pounds, was surprisingly expensive. So I decided to pour a concrete cube. At about 30% of the density of steel, I poured a 9" cube to get the same weight. But a cube of concrete isn't as smooth as metal, even with the wood form kept on and a plastic slider underneath, so you run into problems...
Moving the counterweight. The mechanics were simple: I used a threaded rod that ran through the concrete block, attached to a geared down low speed low voltage motor. But the first motor wasn't nearly strong enough. The second motor, a "Maker Motor", had just enough torque, but drew between three and five amps, which means I had to be careful in ...
Powering the movement. 3A at 12V is fairly modest in power supplies, but no mercury switch I could find could handle that, so I had to add a pair of relays. Actually, I would have needed at least one relay anyways to make sure that a delayed opening of a mercury switch (or bad positioning of them) wouldn't lead to a short circuit in reversing the motor direction and current.
Wow that simple idea took a lot of parts and time. But it largely worked... with one major (and critical) flaw that I hadn't considered prior to putting all the pieces together: weight. The Garage Gator has a 200 pound capacity. The X Carve I have is about 110 pounds. The torsion box adds another 40 pounds. With the 60 pound counterweight, another 30 pounds of other stuff attached to the platform, and random projects left on, I'm well over the weight limit. Though I have safety chains to hold the platform in place should a Garage Gator gear fail while the platform is in the air, I don't want to run any risk of the lift dropping everything on the floor as it attempts to pull the platform to the ceiling, or of getting pancaked underneath the platform! Better safe than sorry here...
So, back to the drawing board.
Solution #2: Double-Duty Gantry
Wait! I don't need a separate 60 pound counterweight - the gantry on the X Carve itself can slide back and forth, and since it carries the hefty router as well, this would serve as a perfect counterweight without adding more pounds!
But it does add a lot of electrical complexity (which is why I did not pursue this idea first). That is, the gantry is moved by a pair of stepper motors, which are ordinarily controlled by the circuitry that comes with the X Carve (called the "X Controller"). And I definitely want to make sure I don't damage that circuitry by, perhaps, sending current back into the device when its not expecting it.
So that means there's two problems I have to tackle: first, making sure my counterbalancing system only turns on when the X Controller is off, and second, having those mercury switches activate stepper motors rather than a simple DC motor.
For the first part, I found this nifty little device and routed the X Controller power through it. When attached to a relay, that ensures that the counterbalancing controls are only powered up when the X Controller is turned off.
The second part allowed me to reuse some of the learnings (and parts) I had gained earlier with my abandoned sand plotter project, using an Arduino microcontroller and a pair of stepper motor shields, I could control the two motors.
It worked with a basic test! Or so I thought... but I'll come back to that.
Since I had a fairly large project box (and a multi-voltage power supply), I took advantage of the extra space for some other electrical enhancements I made: extra LED lighting; the power for the laser module; the foundation for a future closed loop speed controller for the router via the Super PID. So that spacious box became quite crowded afterall.
But everything "unit tests", or works when individually tested, so I plug it all in and start using it. And there's two problems.
First, it actually doesn't work. The stepper motors require a lot of power, especially given the weight of the gantry and the router. The X Controller has a very powerful chip, the Toshiba TB6600, to drive those motors. You can see the four big vertical chips at the back of this board.
The driver I'm using attached to the Arduino is puny in comparison. So while it does attempt to move the gantry in the correct direction, because that movement is against gravity - that is, if the platform is tilted forward, the circuitry will attempt to move the gantry uphill in the opposite direction until the platform starts leveling out - there just ain't enough power. I try increasing the motor voltage from 12V up to the driver limit of about 15V, but still no go. In fact, the driver starts shutting down due to overheating. Drats.
But it doesn't cause any problems, so I just leave it in place. And a few months go by, until I finally get to a project where I start using the 24V laser engraver that is also powered by wiring in the same project box. I don my goggles, get the fire extinguisher handy, turn on the laser, and start smelling something smoking. Not the smoking of a laser that is burning through the wood - I smell that too - but the smoking of burning electronics.
Still, as I'm unsure, I turn everything off, and then repeat the experiment. And this time, I start seeing smoke coming from the X Controller. Double drats!
After opening up the X Controller, I can see that one of the four high power stepper motor chips has been fried! I don't try to troubleshoot my rats nest of wiring; rather I just disconnect the whole darn thing, and cry. Or more specifically, I reach out to Inventables, the manufacturer of the X Carve, and I explain the fried chip.
Kudos to them, amazing customer service, they ship out a new circuit board with priority shipping. So a few days later, I'm back up and running, but with a much reduced and simplified wiring setup: an independent regulated power supply for the laser, and nothing else.
But I still have the problem of balancing the gantry...
Solution #3: Biomechanical Feedback System (KISS)
Finally, I've found a solution that works: turn the power to the CNC off. Then manually move - with my hand! - the gantry to the position where the platform is balanced. Voila! It works!
Granted, when I started trying to solve this problem, I thought I'd be raising and lowering the CNC daily, perhaps several times a day, whereas after a few months of use I find I lower the CNC for a project - which may last one day or three weeks - and then only when done with that project, raise it back up. So rather than balancing the platform 300-600 times a year, it'll probably be 20-30.
If I could start over, though, I'd get that more expensive garage lift... or maybe its just time for a larger workshop!