Monday, June 18, 2012

Musical instrument CNC project

I'm taking a break from the Android app for a bit.  It's now to the point where it is functional, and before I go back and fix some of the little bugs, I want to play with it.  This will likely also identify a few more features I'll want to add.

So now I'm working on different CAD/CAM options.  The one that seems the most promising (but not the cheapest) is Rhinoceros and CamBam.  Through educational discounts I can get Rhino for $195, but it's still a good chunk of change.  CamBam and $149 isn't cheap either.  As a software guy, I know I don't want to reimplement Rhino, but for the feature set I need, CamBam might not be necessary.  Other options are PyCAM and HeeksCAM on the free end.

To help make things clearer, I've been using Rhino in eval mode to develop 3D models of objects, and then exporting the profile information for use in the CAM systems.  With CamBam, I find that unless I want to do a simple 3D profile, I end up redrawing some of the features (for example, to build a pocket or for a 2D profile).  I suspect this is just my lack of experience.  I'm spending most of my time in Rhino, since I'm pretty much sold on using it for CAD.


For a simple test, I did a small layout similar to a cake with a domed top, with a small sphere centered on the apex.  I dumped that as an STL, and then generated gcode for a full 3D profile.  This picture is really early in the cycle, but you can see the top surface being cut out, and the small bump that will become the sphere.  I terminated it after it got about 25k out of the 30k lines in the gcode, but if I left it to run it would have cut around the entire edge.  CamBam supports the use of tabs in this case, but I didn't use it.

Next I'm in the process of designing the solid body banjo and a neck.  I have the body layout I want, and no I'm working on the neck heel profile that I want to fit it.  I'm going to spend some more time with CamBam to see if there are clever ways to have it only do a profile cutout along the edge of the body, since the top surface is completely flat.  Using a 3D profile requires a lot of traverses that are incredibly inefficient.  I expect there's a way to do it.

Thursday, June 7, 2012

TinyG for Android v1.3

I've published a new version of both TinyG for Android and TinyG for Android USB Service.  This version cleans up the UI in a huge way, adds much better error checking/notification, and support for gcode downloads.  I'll put up a new video when I have a few minutes, but I was able to use this version to do some real routing last week.  It went through a small (660 line) gcode file without any troubles at all, and I expect it will work with arbitrarily large files since it operates a line at a time.

Let me know if you have any suggestions for improvements.  I have a few in the hopper (long press for a continuous jog for example), but I'm going to be working on CAD designs and bug fixes for a while.  I'm starting to design my solid body banjo prototype.  More on that soon too.

Friday, June 1, 2012

TinyG for Android updates

I'm making good progress on adding some new features, including support for gcode file downloads.  I'm spending a fair amount of time changing the UI to make better use of a tablet-size display where available.  To avoid a lot of duplicated code, this means expanding on the use of Fragments, and moving as much code as possible within them or related support libraries.

I'm also continuing to look at gcode generation options.  So far, CamBam seems to be the most reliable option, but I'm also still trying out HeeksCAM.

Another video when I have time to put together a real demo.