Saturday, November 23, 2013

Shapeoko CNC router Electronics Upgrade - Part 2: Finishing the Enclosure and Electronics Mounting Parts

Preparing the Enclosure for the Electronics

I had to print three parts to get everything to fit snugly inside my new enclosure.  First, I needed a mount for my Raspberry Pi.  I found an appropriate one on Thingiverse: .

Next I needed an Arduino Uno/grbl mount:  Finally, I needed a fan grille, but I could not find any out there that I could download and print directly.  I then came across this wonderful parametric fan grille that one could download, configure and print, brilliantly written by John Ridley a couple of years ago.

I downloaded the scad file, opened it using OpenSCAD"The Programmers Solid 3D CAD Modeller" (free).  All I had to do was take some measurements with my caliper, enter all the parameters the program required and, voila! a perfect fan grille, perfectly sized, ready to be printed:

In a pleasant surprise, printing went off without a hitch.  Here are the printed parts:

The next step was to mount the emergency-stop button, fan and fan grille to the top of the box:

I then used screws and trapped nuts to put the rest of the enclosure together.

With the enclosure and mounting parts complete, I am ready for the next step:  Turn the Raspberry Pi into a dedicated gcode sender that can be wirelessly remote-controlled from any computer or tablet in the house.

Tuesday, November 19, 2013

Shapeoko CNC router Electronics Upgrade - Part 1: New Enclosure

Right now, my Shapeoko variant router works fine.  There are only a couple of issues that need to be resolved.  The main issue is that I need to use a laptop (that I would rather use elsewhere) to act as a g-code sender.  My thought is that the perfect scenario would be to replace that laptop with a Raspberry Pi running a g-code sender and a XRDP allowing me to remote into it over Wifi from any PC or tablet in the house.  If that scenario could work, I would be able to create an enclosure housing the Arduino Uno/grbl shield together with the Raspberry Pi.  I could then also include a cooling fan and a sorely-needed emergency-stop switch (until now, I have been using the power strip switch as a poor man's e-stop).

The Enclosure

I decided to mill my rectangular enclosure out of 1/4" plywood.  I want all parts to have finger joints and T-slots so that I can use screws and nuts to lock the enclosure together.  After a bit of research on how to do this I found a great, free T-slot Boxmaker extension to the also-great and free Inkscape design software that allows you to specify the box's parameters before it creates the box design for you.  These were my parameters for the enclosure:

The result was this:

I then saved it as a DXF file and opened it in my preferred CNC software:  CamBam.  The following steps were to rotate the parts (on my CNC router, my Y is longer than my X axis), delete unnecessary screw holes and T-slots, add holes for the fan and E-stop switch and wire and ventilation slots to the end pieces.  The final design for the enclosure looked like this:

So with chest full of air and heart full of pride, I start my cut...  Only to fail.  For some reason, my computer and grbl controller disconnect well into the cut.  I needed to re-zero the tool, which of course means finding that zero.  When it failed, it had already cut the following in red:

So I reset the system to 0, 0 and manually moved the bit to this point that Cambam said was at 100mm x 83mm:

I then instructed X to go to -100 and Y to go to - 83 and, voila:  the old zero was found.  I now once again reset the controller so that the new 0, 0 was recognized, disabled the previously-completed T-slot cuts, regenerated the gcode and got it to continue where it left off. 

Now, I will try to avoid boring you with the intervening failure that took so much of my time.  Sufficed to say that my machine was failing when trying to drill small holes.  It turned out that it was choking on the fact that these holes were made from thousands of useless lines of code.  Once I simplified those holes by replacing them with circles and regenerated gcode, all worked well.  

Once everything was set, I finally had my machine cut the enclosure parts from 1/4" Birch plywood.
This was the result:

I noticed one problem:  The E-stop switch will not fit a 1/4" thick surface, so I will need to consider a fix to this.  Otherwise, I am pleased with my first computer-generated finger-joint box.
On my next post, I intend to detail how to configure a Raspberry Pi to be a remote-controller for an Arduino/grbl-based CNC router such as Shapeoko.

Wednesday, November 6, 2013

Building a hexacopter drone with the help of CNC routing and 3D printing

After building a couple of 3D printers and a CNC router, I found that many of my friends would quite reasonably inquire as to what I actually make using these machines.  For a long time my reply was that I used them mostly to make 3D printer and CNC router parts, after a while allowing me to come to the realization that my obsession with these machines was, quite literally, feeding itself.

All that changes with my latest project:  to build a heavy-lifting, full-featured aerial hexacopter drone with as many parts as possible being CNC routed or 3D printed in-house.

The first thing that I had to settle on was what design to use.  I had been following the progress of many projects at DIY Drones.  One of their very active participants, Jeremy Guillory, published this blog post describing cutting a bunch of hexacopter frame parts out of Lexan (polycarbonate) using a water jet.  He also supplied the CAD DXF file that I could use to make those same parts with my CNC router.

The next step was to figure out what material to use.  People have been building multi-rotors out of almost every light/strong material imaginable.  At the Holy Grail high end is of course, carbon fiber.  But the cost is very high and if I mess up a cut, I waste a lot of money.  I could have also done it in fiberglass or Aluminum.  In the end, I was persuaded by a fellow I met at this year's NYC Makerfaire that I should use a material called Dibond.  Dibond is a composite material consisting of a polymer sandwiched between two super-thin sheets of Aluminum.  It is light, yet strong and rigid.  It also has some helpful vibration dampening qualities.  Best of all, it happens to be inexpensive.  I bought 5 1/8" Dibond sheets for about $10 each, shipping included.  Cutting all the parts required 1 and a half.  I had to kill the job at one point when an inadequately-secured part got sucked-in by the bit but I was able to zero out the CNC machine and continue.

The Aluminum arms can be acquired quite inexpensively from ($0.88 each!).

My goal, beyond documenting this build is to leave my fellow makers with instructions to build their own full-featured aerial robot at the lowest possible cost.

Stay tuned for more shortly.

Friday, October 4, 2013

More Revolution XL successes and foibles

I spent a lot of time trying to figure out how best to tune my settings to create various objects.  For example, printing a vase is a simple matter.  No retraction is required and no stringing can happen.  Other parts can be more challenging.  Probably one of the most challenging prints is a model of the Eiffel Tower, something that I aspire to print correctly soon.

My 3D printing adventures were interrupted by a failure of my X-truder, one of the more innovative features of the RXL.  Nathan, head engineer at QU-BD sent me a replacement and I wired it in and sent him back the broken one.  To my dismay, when I tried it out, I saw that the extruder fan was not working.  I ran a continuity test that ruled out a problem with the cable and surmised that the problem had to be with the fan itself.  I ruled out a polarity problem because I presumed that the fan would just spin the wrong way.  As it happened, I had a replacement fan on hand (intended for another project) and so I disconnected the non-working one (which I prematurely dissected) and replaced it with the new one.  To my frustration and astonishment, the new fan did not run.  Now, totally confused, I reversed the polarity of this DC fan and voila! it worked!  Even Nathan at QU-BD was stumped.  He later told me that he tried to reverse polarity on several fans in the workshop.  Some spun backwards, some did nothing.

So I was back up and running -- that is until my next self-induced mishap.  Noticing that a certain print was going to go on longer that my filament spool, I devised to wait right until the last of the old filament got sucked down through the extruder and then I would immediately feed the new filament through.  This did not work out as planned.  The old filament became so lodged in the extruder that I had to disassemble it to get the filament out.

Once everything was back together, I made a personal vow never to try such a dopey move again.  My next foible was unexpected.  I assumed that scaling an STL file in Slic3r would be a simple matter.  It seems to be a bug with Slic3r itself.  Here is the original Koch Snowflake vase next to a 2X scaled version:

The one on the left came out perfectly but the one on the right had holes and imperfections around its widest part:

At first I thought it was a printing fluke, but it happened a second time.  I will need to research this problem.

The only other new thing that I tried was a new type of filament, namely Taulman 645 Nylon.  It really is quite amazing.  It is both flexible and incredibly strong.  Here is the same vase being printed in Nylon:

The resulting printed part is very resilient as you can see here:

Now, onto the Eiffel Tower!

Tuesday, September 17, 2013

QU-BD Revolution XL Review Part 3

Now that I have had the opportunity to spend a bit more time with my QU-BD Revolution XL, I have learned a bit more about its capabilities and issues that can come up.  I'll begin with examples of objects that I have printed so far.

The first thing that I printed was the single-wall vase, the gcode for which QU-BD provides on the RXL product page:

One thing that I was very eager to print was emmet's brilliant, parametric gear bearing, which, once printed, can be "cracked" and used as a functional bearing.  One reason why this is such a unique and wonderful object to print is because it is a shape that can only be arrived at using 3D printing.  Because its interlocking gears and outside walls use a Herringbone pattern, the piece could not be assembled manually.  This also means that the bearing's parts are forever locked in place:

One thing that I have been unable to figure out is how to get certain shapes to print at high speed.  For example, when using Repetier Host and Slic3r to print sphynx's lovely Koch snowflake vase, I configured slicer and set all speed settings for 400mm/sec but of course configured it to do the first layer at 20% speed.  When printing The first layer goes down as predicted.  The next couple of layers go down lightning fast, as expected, but when the base of the vase has been completed it goes into low speed when doing the double wall of the vase to the point where the print took 6 hours.  This is clearly a Slic3r configuration issue but for the life of me, I have not been able to figure out what setting is holding back the speed.  In any case, the final printed piece was a thing of beauty:

There are a number of things that I have learned about the RXL, mostly through repeated print failure:

Bed Height

The initial distance between the hot-end and the bed is critical and I have found that the Z axis mechanical end-stop to not be perfectly reliable.  On three occasions, it has failed to activate, driving the bed right off one of its Z axis screws before I was able to fumble for the emergency stop.  On a few occasions, it would go off a little late so that the hot-end was so close to the bed that attempting to print would clog the nozzle.  At the beginning, I was a bit frustrated that there was no means of adjusting the end-stop distance other than bending the switch lever.  I am not completely sure but I strongly suspect that the switch's unpredictable behavior may be due to the fact that its lever touches the aluminum bed which may or may not be hot.  It may be that the heat from the bed is being conducted into the end-stop's lever, causing the problem.

In any case, I believe that I have come up with a cheap and easy workaround.  I carefully bent the lever of the end-stop incrementally until it would activate when the hot end was pressed against the bed with no clearance.  I then moved the bed down and began to add strips of clear 3M packing tape to the part of the bed that the end-stop touches.  One can conceivably even use Scotch Tape for finer increments.  The result was that I was able to use this method moth to calibrate Z height and help insulate the Z end-stop's lever from bed heat.

Anti-Ooze Retraction and Nozzle Clogs

When attempting to print several items at high speeds, I found that the print started out okay only to fail a few layers later when the nozzle would clog.  Upon examination of the extruder, I would find that the portion of filament being gripped by the extruder's gears was stripped.  After playing with a number of variables over several days, I found that the problem would not occur if I reduced my retraction from 1mm to .5mm.  This reduction also did not result in any unwanted stringing, as evidenced by this string-free 4-piece printing of MarcoAlici's Recorder that my son is still waiting for me to clean up and glue together:


The RXL is a fantastic printer.  It is super-fast (when you know how to configure Slic3r!), has a great build area and easily puts to shame printers costing $1,000 more.  I think that QU-BD did a superb job.  I am looking forward to pushing this printer much further to see what I can do with a variety of materials other than ABS, namely Nylon and LAYWOO-D3.

Coming Up

The RXL has one notable shortcoming.  It does not have any convenient places to mount a a filament spool on top (where else would one put it?).  I hope to design a spool-holder and use my CNC router to cut it out of some 1/8" Aluminum plate in time to show it to the folks at QU-BD, assuming they will be at the New York City Makerfaire that I am looking forward to attending this weekend.

Monday, September 9, 2013

QU-BD Revolution XL Review Part 2

I have spent hours upon hours putting this machine through its paces under grueling conditions and have much to report, both good as well as things that can be improved upon.  I will start with the good, actually, great.  This thing is as fast as it gets.  Check out the 3D printing of this Samsung Galaxy 4 case (

My adventures have not been without their frustrations and it is only fair that I disseminate them.  I have bathed in frustration for a few days now but I really have nobody to blame.  I have concluded that some of my problems were likely caused by software.  I originally installed Repetier Host on a family computer.  When evidence of Y-axis slippage showed itself, I jumped on hardware, probably mistakenly, but because I had experienced axis slippage in my reprap past.  After loading the software on a new laptop, things went better -- until they didn't.  I had to abort that flashlight-lit Galaxy phone case print when I noticed that the LM8UU linear bearing that supported the right side of my Y axis had shimmied loose:

I can see that a red adhesive had been used to adhere the bearing to its Y-axis parent, but not successfully.  I will ask Nathan, the head engineer at QU-BD what adhesive I should use to make sure it stays put the next time.

The second problem that I encountered is more important, notably the Z-axis end-stop.  The X and Y end-stops are not that important because they do not dictate one of the most critical factors in 3D printing:  how close is the first layer to the bed.  I have found that the mechanical end-stop on the Z axis of the RXL to be finicky.  On a couple of occasions, I tried to home my axes and the Z end-stop did not trigger.  This was bad.  I quickly hit the Emergency Stop and then spent some time re-aligning the bed.  Right now, there is no good way to calibrate the Z axis.  There is a screw-hole at every corner of the bed but only two screws were installed.  This leaves the mechanical Z-limit switch -- something that I have found works differently from one moment to the next.  Home it when the bed is cold, it is a certain distance from the bed.  Try it when the bed is hot, something different.  Right now, the only way to tweak your Z limit is to carefully bend the Z limit switch lever.  My suggestion to QU-BD is that they leave mechanical end-stops on the X and Y axes but that they substitute their Z mechanical endstop with something more precise like a hall-effect end-stop or opto-end stop and that they provide a screw to adjust it.

I don't want to seem overly-critical.  This is nothing short of a groundbreaking machine.  When I look at it, I see a labor of love;  something I would be proud to release to the world.

Saturday, September 7, 2013

QU-BD Revolution XL Review Part 1

I have had my eye on QU-BD ever since their successful Kickstarter campaign last year.  When I visited their booth at last year's Makerfair, I was impressed with the engineering and build quality of their RPM mill/3D printer.  So when they offered their Revolution and Revolution XL printers to customers willing to beta test and willing to wait in exchange for a great price ($800 for the RXL) and for what might be a truly revolutionary new 3D printer, I signed up.  That was in January, 2013.  There were of course delays and I watched over the following months as the impatient beta customers and I slowly transformed into an angry mob.  So it happened yesterday that I was rummaging through my closet looking for my pitchfork and torch when my dog announced with his usual oratory flair that a package had arrived.

The promise of the RXL's revolutionary leap beyond the current landscape of affordable FDM printers was in its speed.  Most reprap 3D printers use an extruder mounted on the X carriage.  This limits their speed.  Other printers, like Ultimaker, speed things up by removing the extruder from the carriage and using a Bowden extruder.  The downside to that approach is that anti-ooze retraction, used to prevent stringing, does not work well with a Bowden extruder.  The RXL was to have the best of all worlds -- a super-light (<6oz) extruder (they call X-truder) combined with 2 X motors and 2 Y motors.  In an early youtube video, they demonstrated 900mm/second travel speeds.  Later, after they tweaked things, QU-BD was able to demo 500+mm/second ABS printing.  For a reprapper like me used to speeds 1/10th of that, it was indeed a great promise.

The first thing I successfully printed with the RXL was a vase for which QU-BD included tweaked gcode to demonstrate the RXL's speed.  That went well.  I then moved on to printing a Filastruder hopper at conservative speeds:

After some success, I became more ambitious and set out to print an over-sized Eiffel Tower at 400mm/sec:

Check out the speed:

It seemed to be working great for a while but something seemed to "slip" somehow on my Y axis, causing the print to fail.  I will investigate and figure out what caused this failure:

Stay tuned as I continue to put this machine through it's paces.

Tuesday, July 30, 2013

Back to my obsession's beginnings: 3D printing

Following a forward looking time during my childhood in the 70's, when people were walking on the moon, my geeky hopes of living in a futuristic future steadily eroded as I aged.  Yes -- we had computers, the internet and smartphones, but it was not until I came upon the REPRAP project -- the dream of which was the development of the world's first self-replicating manufacturing machine -- that I finally was able to cast away my technological cynicism and embrace the arrival of the new age for which I so long had pined.

Beyond the promise of a machine that makes things for you ("Tea, Earl Grey, hot!" [sorry, a Star Trek reference]) was the appeal of the notion of the democratization of manufacturing.  Made with cheap open-source hardware and software, these machines could be made cost-efficiently enough for almost anyone to own.  I would credit the REPRAP movement as being the primary catalyst for the market's inundation with the increasingly cheaper and better 3D-printers that we see today.

I built my first REPRAP Mendel from a kit in early 2012:

That 3D printer eventually fell into disrepair, but not before it had printed most of its "child's" required plastic parts.  The child printer, a variant of the MendelMax 1.5, was almost completed but has been at a construction standstill while I have awaited a means of producing the remaining required parts.  Those parts were among the first ones that I milled out of Aluminum last week with my CNC router.

I am now at a mighty temporal nexus., from whom I was the 12th person to order their revolutionary and aptly-named "Revolution XL", tells me that I should expect delivery soon of the 3D printer that I ordered in January from that fledgling company.  I also believe that I have all the parts now to complete my oversized MendelMax, which I built to be quite versatile.  For example, I took many lessons from reprap legend Richard Horne (otherwise known as RichRap), who convinced me to have a machine with swappable extruders.  In this way, one could quickly replace a plastic extruder with a paste extruder capable of building structures out of materials like ceramic, cement, silicone, etc.  The possibilities are just about endless.

I hope to follow in the footsteps of those like Richard (to explore strange new worlds...) and to see what can be done.

All that said, Richard and many other brilliant and influential members of the reprap movement have gotten together to produce a brilliant online magazine for which I must provide a glowing endorsement.  You can find it at .

Saturday, July 20, 2013

Lots of failure and some success with my CNC router

The first iteration of my home-built CNC router

The one thing that I have learned while building and learning how to operate my Shapeoko variant CNC router, was that success is achieved by preventing any one of a hundred things from going wrong.  So before I show you any of my successes, I think that it is only fair to show off some of my many failures and the lessons learned:

Lesson learned:  Don't forget to use holding tabs to keep the part secured or bad things can happen.

Lesson learned:  An overloaded circuit can bring a multi-hour job to a sad end.

Lesson learned:  If your Z axis starts to drive your bit deep into the wood for no reason, check the Z stepper motor to make sure it hasn't gone bad before wasting days exploring other possible causes.

Lesson learned:  When milling Aluminum, slow down.

Now for some successful cuts:

This was cut out of pine and is about 10" wide.

This was my first successful milling of 1/8" Aluminum plate.  The parts, all with precision-drilled holes, are fastening plates for T-slotted Aluminum extrusions (like those from which this CNC router was constructed).

I look forward to milling other materials like HDPE plastic, hardwoods, cork, and if I get really brave, stainless steel.