TinyCNC Two steps forward, one step back!

Intermediate version with minor design changes

Intermediate version with minor design changes

Above is a picture of the most recent version of this robot.  It includes two nifty changes and one design aspect1 that will probably involve me using design elements I had discarded earlier.  Here’s what I’m working on:

  1. No tools.
    1. The problem with using set screws to affix printed gears to the servos is that too little tightening means the gears will slip2 and too much tightening will strip the micro servo gears almost without warning.3 I’ve redesigned the pinions (gears) so that you can just push the servo horn through the gear and then push it onto the servo gear.  If you wish, for smoother and more reliable operation, you can always add the servo set screw to the servo horn, but it isn’t necessary. Best of all, you’re not going to strip your micro servo gears when you do this.
    2. This design did not come without concession.  I had to compromise on my ideal of removing overhangs.  All published parts to date have been printable with completely flat bases and without even slight overhangs to improve and ease printability.  In order to create the smaller pinion above, I had to add an overhang.  However, it’s a short overhang, which should still easy enough for most printers.
  2. Redesigned motor mounts.  I’ve changed the motor mounts so the fit the4 micro servo motors I purchased.  Hopefully they’ll fit yours too.  🙂  
  3. Improving the X axis.
    1. I’m reasonably happy with the X axis.  It’s not idea – but it works.  I’m designing a way to invert the X rack, so it is trapped by the X pinion and the entire robot can stay together.  This is still in an early design stage and so far requires lots of other design changes, so I’m trying to solve the Z axis and Y axis problems before working my way out to a better X axis.
  4. Improving the Y axis.  
    1. The problem.  The Y axis I created for the version 0.29 steady as the the Y axis in the version 0.18.  With the earlier version the Y axis slid on either side of the X motor mount, so that it was difficult for it to wobble side-to-side.  The newer version only slides along one side and incorporates this a long “fin” intended to stabilize the Y axis’ side-to-side motion.  That “fin” also had a long groove in it that was designed to help with up-and-down motion stability.  I think it worked for the most part.  In reality, the Y axis can wobble as much as a 1-2mm to the left and right in the new version.  One of the reasons I moved to the system used in the version 0.29 is that it allowed me to place all the motors in a very compact area while keeping the Y axis relatively short.  This conserved plastic, kept the part sizes small, and kept most of the mass in the robot in one area – which I felt would help reduce wobble.  
    2. The solution?  
      1. One obvious route is to go back to the Y axis alignment system used in version 0.18, where it slid along both sides of the X motor mount.  I moved away from this system because there didn’t seem to be a good way to mount the Z motor.  Not having a really great solution to mounting the Z axis motor isn’t that big a deal.  The current motor configuration is reasonably symmetrical and aesthetically pleasing, but not critical by any means.  As long as the robot isn’t operated at ridiculous speeds, the unsymmetrical motor mounting shouldn’t be that big of a problem.  While I have another design option, I think this is the system I’ll end up using.
      2. The other option is to cut a long groove in the Y axis with a tab sticking out of the X motor mount5 to keep it steady. As the Y axis slides back and forth, it should be kept in line by the tab.  Similar to this, I could also put a groove in the X axis where the Y axis slides to keep the Y axis in line.
  5. Improving the Z axis.
    1. The Z axis is a little wobbly.  While a little wibbly-wobbly-ness is to be expected, when there’s a little introduced with each axis, the effect is compounded in the end result.  This isn’t a problem for large gross manipulations, but becomes more obvious when drawing.  One of the reasons I’m tuning this robot to draw well6 is that if it can draw well, chances are it can do other tasks well too.
  6. Improving the X axis.
    1. I know this isn’t in any obvious order.  🙂  However, I’m reasonably happy with the X axis.  It’s not idea – but it works.  I’m designing a way to invert the X rack, so it is trapped by the X pinion and the entire robot can stay together.  This is still in an early design stage and so far requires lots of other design changes, so
  7. Things to try out.
    1. Drawing without pens.  Recently the idea occurred to me that drawing with a pen may not be ideal.  A pen is designed for the human hand – so it has heft, grip, length, and all sorts of other attributes that aren’t ideal for a robot.  However, the pen cartridge/ink reservoir is shorter and has considerably less mass.  So, why not just pull that out of a pen and scrap everything else?  Heck, there might even be an interesting way to incorporate the pen’s own spring into the design.  I think it would be incredibly interesting to use that spring as the basis for a pen holder.7
    2. Smaller, more numerous teeth.  I honestly don’t know if these are beneficial.  I’m guessing there’s a law of diminishing returns when it comes to using smaller teeth.  Smaller teeth are harder to print and may be easier to break or more prone to skipping.  On the other hand, it is possible they might allow for smoother and more reliable operation.  I’ll try it both ways and let you know!
    3. Closer meshing between pinions and racks.  I’ve designed the robot with a degree of “slop” between the pinion and rack teeth.  This is so that I can make parts that I know will fit and work on many different robots.  I like to think I’ve got my Replicator 1 dialed in pretty well – so it’s entirely possible I could place the teeth closer together.  I figure closer meshing probably involves more stress on the motors, but that’s another problem for another day and another blog post.  😉
    4. Designing with fasteners in mind.  One interesting solution from Joseph is to put zip ties around the various parts to keep them in place.  The zip ties are apparently smooth enough that the parts still slide and stay together.  I love this solution.  I think it could be even better if zip tie solutions were further incorporated into the design as fasteners.
    5. Putting it all together.  The new-ish design you see at the top allows for the use of servo set screws without actually requiring them.  They’ll help, but aren’t critical.

  1. The Y axis []
  2. Even with foam rubber stickers! []
  3. There’s a slightly sickening crunch as you do.  I don’t recommend it []
  4. Many, many []
  5. This makes more sense if you’re inside my head []
  6. As well as can be expected for a bunch of plastic parts and cheap motors []
  7. I’m not sure if this would be cannibalistic or meta.  Thoughts? []

Competing Design Ideals in a Drawing Robot

New possible design direction for the Tiny 3-Axis CNC

New possible design direction for the Tiny 3-Axis CNC

I find myself at a design crossroads, as it were, with the Tiny 3-Axis CNC.  There are certain improvements that I think are necessary to make the overall robot more functional and reliable.  However, to adjust these designs to accomplish these improvements would require a compromise of some part of the design ideals I’ve been employing so far.

One unintended consequence of having a low number of interlocking parts is that when I make a design change to one part of the robot, the design implications ripple throughout the rest of the robot.  Thankfully, this is made slightly easier by using OpenSCAD which automatically adjusts parts depending upon changes to variables.  These changes also have the side effect of making each version of the robot unique enough that almost no parts are compatible with other versions.  As a result, I’ve got a pile of parts from intermediate non-functional versions which don’t really work with any robot version.

In order to overcome some problems with the last design1 , I basically now need to choose what I value most:

  • Elegance.  Design elegance is a very murky and personal topic.  I think of design elegance as incorporating the fewest possible number of parts, simplicity, and (when possible) symmetry or the reuse of parts.  Even “simplicity” is a convoluted and subjective ideal.  I think of this as the least amount of plastic and least amount of complex features.
  • Low Part Count.  I love the idea of a super low part count.  If I were to print parts with support structures or had a very complex design for injection molding, I could probably reduce the part count to the absolute bare minimum possible number of parts – 7.2 However, if I try to make the parts easily printable without overhangs or support structures I have to increase the number of parts.
  • Easy to Print.  Even if a 3D printer is capable of printing with mild overhangs and support structures, a design is more easily printed if it doesn’t include such features.  It is very important to me that the parts are easy for people to replicate on their own.  For me, part of being “easy” to print is having as little plastic as is required.  The most recent stable version of this design takes about 2 hours of printing on my Replicator.  I think I can do better.
  • Easy to Assemble.  Generally, I’ve found the more complex and numerous the parts, the more difficult and less intuitive a thing is to assemble.  I would really like this robot to be able to be assembled by my 6 year old with minimal adult intervention.  She’s pretty good at building Lego designs from the graphical instructions and I’d like to have something similar here.  Fortunately, OpenSCAD make it really easy to create Ikea/Lego style graphical assembly instructions.

After discussing these issues with some friends, I think I’m going to sacrifice the super low part count as I push the design forward.  I don’t anticipate this will cause the design to have a higher plastic content – just a few more pieces.  Overall, if I had to sacrifice one particular design ideal in order to adhere more closely to the others, I would have to choose the super low part count.  After all, I could always publish an additional version that combines two or more parts into a version that could be printed with support structures.  🙂

  1. Principally the XYZ carriage tipping out of the X rack []
  2. I think this would require: the X rack/base, the X pinion, X motor mount, Y pinion, Y rack, Z pinion, and Z rack. []