Category Archives: misc

I am away until mid-August

If this space is looking stale, that’s because it is!  I am traveling until the middle of August.  Look forward to more robot and Pocket NC updates then!

In the meantime, check out these cool posts from the last year:

First aluminum cut on Pocket NC

Now that I made a cut in wax, my next step with the PocketNC was doing basically the same thing but in aluminum.  There is of course less room for error with the harder (but I suppose by no means actually hard) material.  It seems that I managed to use up a bit more luck than I expected, but still not too terribly costly so far.  My “learning moments” errr… goofs, so far:

Ensuring the part is contained within the stock

When I first made the toolpath, I programmed the stock a few mm larger than the actual stock to handle any mis-registration between the vise and the machine origin.  This was a good idea, as I still have about a 2 or 3mm mis-registration in the Y axis that I have yet to resolve.  However, when I did that, I managed to get the actual part about 0.5mm outside the actual stock.  This was easy to fix and for this part geometry, I even kept using the same stock for subsequent runs.

Here’s my very first aluminum chips running the first version:

Inconsistent assumptions between tool paths

As I was developing the tool paths for this part, I started out using a 3D adaptive path to cut away most of the outside material using a 3mm Datron single flute mill.


That was then followed by a series of contour paths or circular paths to finish up each of the outside edges.  However, in one incremental stage I had tweaked that first adaptive clearing to stop at the top edge of the wide flange, but still had a contour that traced it out.  Watching the simulation at high speed, I didn’t notice the problem, but when the resulting contour was run, it plunged the mill straight into unmachined material.

When running this, needless to stay the PocketNC, while tough, was in no way able to pull that off and the spindle stalled.  Fortunately, I was watching and actually got the machine safed before the spindle had completely stopped.  My camera had shut off before that point though, so I got no footage.

Switching tools

Next, I wanted to use a second longer reach tool to handle the central cavity, which goes relatively deep.  I dutifully entered the tool geometry into Fusion 360, including the fact that it was a 3 flute mill, but then managed to neglect to even look at what the chip load was and left all the feeds and speeds the same as for the 3mm single flute Datron.

Watching this live, it certainly sounded bad when it was doing the helical ramp in, but I chalked it up to chatter with the longer reach tool.  However, as soon as it started the adaptive clearing inside, it sounded much worse, but seemed to be making forward progress.  However, on the second plunge and adaptive clear, it managed to completely stall out the spindle.  I jogged the Z axis back out, fixed the feed rate, but when I spun up the spindle again, boom.  That was the end of that end-mill.

3rd (or 4th time) is the charm?

At this point, I reworked this first program to do what I could with the 3mm Datron end mill, which just meant I didn’t go all the way deep into the central cavity.  This completed all the way through with no big problems.  The last contour I did on the internal cavity also removed 0.001″ of material axially.  When that first plunged in, it did sound terrible, but only for a fraction of a second.  Still,  I probably wouldn’t do it again that way.

After all that I had this first half-part done.


The tolerances on the surfaces actually seemed to be nearly identical to the wax version, in that it was plus or minus a thousandth.  This was without any actual work to get the size I wanted, so is more of a baseline.  Presumably I can use tool width compensation or just tweak the contouring paths by a thousandth to get it where it needs to be.  That said, it was close enough out of the box that my bearing kinda fits on.


Future versions of this part

Not too long into programming this first part, I realized that with slightly different stock, I can do the entire part in a single setup with a breakaway tab by orienting the part off by 90 degrees.  That’s what I’ll try next.

Lessons learned

I guess these lessons are what I’m trying to get out of these exercises, and while they are certainly obvious to anyone who actually knows machining and CNC, I’ll write them out here as much for my reference as anything.

  • Watch at least the beginning of each tool path in simulation at real-time speed
  • Actually look at the computed chip load when configuring a new tool
  • Don’t rely on contour paths to remove any axial material
  • When it sounds bad, stop and rethink!
  • Run everything on the machine at 30 or 40% speed at least until nothing new happens before upping it to full speed

That said, I’m not trying to create a production environment here.  I’d like to be able to quickly turn my CAD models into tool paths and get parts made, and as long as the machining time is the same order of magnitude as the programming time I’ll be happy.    I am OK with breaking things now and then in service of that goal, so I don’t need to double and triple check of tool paths.

Finally, I want to thank Ed Kramer for posting his results with the Pocket NC V2-50.  All the mistakes here were mine, but he has provided a wealth of information on what feeds and speeds are possible in a range of materials with this machine.

New machine day: A second MK3S

As you may have noticed, I’ve been 3d printing a lot!

A stack of empty filament rolls
A stack of empty filament rolls
2 kilometers of filament!

Moving up to the gearbox motors for my quadruped has only made that problem worse, as all the parts are a bit bigger and heavier.  My first Prusa MK3S has been printing almost non-stop since I got it, so I figured it was time to increase my bandwidth more permanently.  Thus, a second MK3S!


This one I got from a kit so that I wouldn’t pay the 4 week lead time penalty of getting it pre-assembled.  I would have certainly preferred that, but I’m not sure I’ll be available to receive a shipment in 4 weeks, and I also could use the extra print bandwidth now.  Assembly was largely a breeze, although as predicted it did take a good 6 hours or so in total.

In any event, it looks like it is going strong right out of the box:



Quiet(er) air compressor for Pocket NC

Now that I have a PocketNC, the first thing I noticed was that I had a problem with noise volume.  The air compressor Pocket NC recommends is described as “quiet and durable”.  I can maybe believe the durable part, but quiet I have a harder time believing.

Grainger Compressor

I’m running the machine in my home office and I measured the compressor at upwards of 85dB.  That’s about the same as a bulldozer.  Despite me adding some vibration damping padding, it also did a pretty good job shaking the whole house when in operation.

Since there is no real point in having a mill I can’t run because its air accessory is too loud, I replaced it with a “quiet” compressor from California Air Tools — the 8010SPC.  Granted, no compressor is going to be silent, but this does a pretty good job.  In the office it is totally manageable.  If you close the office door, it is barely audible outside in the rest of the house.


While only about twice the cost of the Grainger unit, the bigger downside is its size and weight.  Clocking in at around 120lb, it is a beast.  Amazon reviews were nothing but shipping damage, so I had mine delivered to the local Home Depot at which it arrived seemingly unharmed, although with somewhat unorthodox packaging.  There was just a 5 sided box dropped on top of it, with the bottom caster wheels exposed out the bottom.

The next steps here are to build a table that the compressor can sit under, and the Pocket NC can sit on top of.  While running, the compressor is relatively vibration free, but it makes a pretty big kick every time it shuts off and a minor kick when it turns on.  It doesn’t seem to bother the Pocket NC that much, but it probably isn’t a good thing generally.


Pocket NC Raspberry Pi Wifi Bridge

The primary UI the Pocket NC presents is a web interface accessible over a virtual USB based ethernet port.  I wanted to be able to run mine not immediately near an ethernet jack, but also didn’t want to have to tote a laptop over every time to check on it.  I had plenty of raspberry pi’s lying around, so rigged one up as a wifi bridge.

First, I found a random case to print from thingiverse, the TurboPi:


Then I gave it a fixed IP address on my wifi network and set up IP forwarding with NAT.

iptables -A POSTROUTING -o eth1 -j MASQUERADE

Then, I saved that config:

iptables-save > /etc/iptables.ipv4.nat

And restored them in /etc/rc.local

iptables-restore < /etc/iptables.ipv4.nat

Finally, I enabled forwarding in /etc/sysctl.conf


Finally, I added a route on my desktop with the raspberry pi’s address as the gateway.  Now I can transparently access the PocketNC from anywhere!

Raspberry Pi forwarding network traffic to the Pocket NC

New machine day – Pocket NC

With my efforts to build a gearbox transmission and subsequent plans for a quadruped, there are a lot of parts which just can’t be made effectively from 3d printed plastic.  To date, I’ve sent out a few parts of the gearbox to CNC shops, which while effective, has a relatively slow turn around.  The best you can get without paying an arm and a leg is something like a week turnaround.  One thing I’ve learned from having a 3d printer on site is how transformative it is to be able to have single day turnaround for parts.  Thus, I thought I would experiment with CNC machining on a small scale locally and recently acquired a PocketNC V2-50.



Since this is the V2-50 version, it has a 50,000 rpm spindle, theoretically giving it at least passable material removal rates in aluminum.  Most of my gearbox parts look like they could be machined in an hour or so.

To date, all I’ve done is machine half of a sun gear holder out of the wax stock that ships with the mill.   I took it plenty slow and consider it a success that I managed not to break anything on the first try.

The result is approximately a thousandth off from what I was aiming for on the two critical dimensions I tested, although that probably doesn’t mean much since it was just wax.  It remains to be seen what I can achieve in aluminum.


Now I actually need to get the tools and fixturing that will let me machine the other half.



HT-18 Thermal Imager Macro Mod

While working on the improved actuators for SMMB, I wanted to be able to perform some quantitative experiments to design the thermal transfer of the controller board and enclosure.  I figured that feeling with my fingers probably wasn’t scientific enough to make consistent progress.

Enter an inexpensive Chinese thermal imager, which you can find for under $300 from time to time.  A non-affiliate Amazon link:

HT-18 Thermal Imaging Camera

It has a resolution 220×160, reads up to 300C and being intended for construction inspection has at least a little software support for reading out actual temperatures and capturing images for reports.  The only downside is the focal length.  It really can’t focus on anything less than about a meter away.  That isn’t too great for PCB inspection.

Enter this eevblog thread, describing at least one person who added a lens for a macro mod.  I gave it a try, getting an appropriately specified laser cutter lens from Amazon:  ZnSE w/ approximately 100mm focal length labeled as “Laser Engraver”.  A non-affiliate link for the exact one I got is:

I could have 3d printed a fancy lens mount, but decided I would see how well a quick and dirty hot glue gun job would work:

Macro lens mount
Macro lens mount for HT-18 Thermal Imager

And the answer is pretty good —  I can resolve individual 0603 components on the board just fine.


My First Edit to a Chromium Extension

Feedly just today came out with a Pro version with support for https support! Unfortunately, the one extension I rely on, FeedlyBackgroundTab hard-codes the URL to The required code change is trivial, just updating the list of allowed websites in the manifest file. To install it though, I wasn’t sure what to expect. First I tried just editing the file directly in my “~/.config/chromium” directory. That ended up not being successful. But then I noticed the little “Developer Mode” checkbox in the Chrome extensions page. Lo and behold, it can load unpacked extensions, or pack them for you!

Now if only the Omnibar would learn some awesomeness from the Awesome bar and I would all be set.

The state of investing in America

Presume something is becoming more and more expensive, and in fact is approaching its record for being the most costly ever. Do you:

  • a) Buy more
  • b) Buy more
  • c) Buy more
  • d) Wait for it to become even more expensive, then buy more
Yahoo Finance poll on January 27, 2013


3D Printed Cookie Cutters

For my nieces this holiday season, in addition to actual cookies, I printed up some customized cookie cutters on the Artisan’s Asylum 3D printer (A Stratasys uPrint SE Plus)


20121213-emma-inkscapeThe toolchain I used could be applied to a number of 3D projects. First, I either found an image kind of resembling what I had in mind using google images, or drew up a sketch on a piece of paper. Then, I transcribed that image into an inkscape vector drawing, similar to the elf one on the right. The inkscape drawing contained a closed shape for the outer dimensions of the part, the inner dimensions of the part, as well as closed shapes for any surface features that I wanted. I used the “Linked Offsets” feature to force the inner wall boundary to be a precise distance away from the outer wall boundary. Colors were chosen arbitrarily, as the next step ignores the fill colors entirely.


20121213-lilah-freecad.pngNext, I fired up freecad, which can import SVG elements as geometry primitives in the 3D view. Unfortunately, and what was to become the biggest annoyance with this project, is that its import of SVG paths isn’t particularly robust. Notably, for some elements it doesn’t close them properly, and for others it doesn’t even turn them into curves, rather importing them as sets of points. This was done in a hurry, and while I didn’t have enough time to actually fix the problems in freecad, I did dig around in the source enough to figure out that they were not handling paths which ended up on the exact same position as the first point correctly. One problem was that freecad would only count a path as closed if the “z” element was used to close it off. Another was that paths with kinks would just not close with no indication why, even if the kinks were too small to be visible. So, my workaround was to manually edit the .svg files in emacs after inkscape saved them and fiddle around with them afterwords to try and get freecad to import them as closed surfaces. Then for the paths that still didn’t work, I looked extra close in inkscape for any kinked paths. In this project, those largely resulted from inkscape’s linked offset paths being glitchy around regions of high curvature.

With those surfaces imported, I then proceeeded to do a series of extrusions, differences, and unions to get the parts that I was looking for. In some cases, when I ran into limitations of freecad’s boolean operation engine, I had to go back to inkscape to tweak the artwork. This was largely around different objects which were intended to share a border, which didn’t work out so well.


After getting the solid models into good shape in freecad, I exported an .STL file for each model. I pulled this .STL file into netfabb studio basic to verify the volume and to do mesh repair. Sometimes freecad will export .STL files that netfabb doesn’t complain about, but I figure it doesn’t hurt to let it fix up any problems it finds.

uPrint 3D Printer

The final step is printing. This is largely uneventful: feed in the STL files, configure the print job, hit print, and come back in a couple of hours. Usually, when printing a part, you can count on the first iteration to have some problems and this case was no exception. I had designed the cookie cutter wall thickness to be 1.25mm wide, figuring that would be 5 passes of the uPrint. However, the uPrint ended up not actually filling the inside of the wall in many places, resulting in two very thin walls separated by a small void. Given more time, but in this case I was out, so I moved onward with what I had!


So, the final test, using them to cut cookies… Well… They mostly worked. The separated outer walls caused a lot of cookie material to get wedged up inside. I also realized at this point why most cookie cutters have an exposed central area. Without one, extracting the cookies is quite challenging. I painstakingly used chopsticks and a knife, which worked adequately, if with great effort. Certainly, if I were to make a second revision, I would fix both the separated wall problem, and make the cookies easier to eject afterwards.

Below is a picture of the final 3 parts before being gummed up with a season’s worth of cookie making.