Broken Source is not Open Source

After attending Elecia White’s “On Cats and Typing” talk, I felt a little more motivated to look into robots. The robot arm used in her demo was the MeArm by Mime Industries. It is built out of commodity micro servos and laser-cut acrylic. I looked at it and thought I could get one up and running on my own. It is sold as a self-assembled kit but in the spirit of open source, people are also allowed to laser-cut their own pieces using the open-sourced DXF file available via Github.

Or at least that was the theory.

In practice, the DXF doesn’t work. Inkscape couldn’t load it. CorelDRAW couldn’t load it. Onshape couldn’t load it. Fusion 360 – from Autodesk, the people who created AutoCAD which is where DXF came from – couldn’t load it.

MeArm Broken

Well, that was disappointing.

Google results confirm I’m not alone. I found many reports of people failing to get this DXF to work for them, and not a single success story. Of course, there’s a little selection bias here: people who encounter no problems rarely go on the internet to announce they had no problems. But I would have expected a few of the forum posts from people having problems to get some positive responses, and I didn’t find any of those.

This is frustrating. I’m unlikely to go and buy the kit when I already had most of the pieces on hand and it is in theory open source for me to make my own. It’s impossible to tell if there’s a perfectly innocent explanation or if this was done maliciously to slap on the “open source” label without actually risking any cut into sales. Whatever the explanation for why this DXF is broken, it doesn’t change the fact that it is broken. When the publicly available source file is unusable. Is it still open source?

I vote no.

FreeNAS Box v2: Construction Complete

After spending an afternoon + evening at a Tux-Lab work session, I have my FreeNAS Box v2! It’s always fun to see my idea turned into reality.

FreeNASv2 Complete

The first thing I appreciated was the fact that the components are clearly visible through the acrylic panels. And even better, the messy tangle of wires are hidden behind them. This reversal from v1 is the best aesthetic change.

The other major design requirement – that both cooling fans be visibly spinning – is also present but it doesn’t have as much of an immediate aesthetic effect.

After I’ve kept it on and running overnight, I checked the temperature around the box the following morning. I think it would be neat to check thermal performance with a FLIR thermal imaging camera but lacking such toys I went with the low-tech way of putting my hands at various places around the box to feel the temperature.

The front chamber – where the CPU and motherboard reside – has a slight temperature gradient from top to bottom but overall it was relatively cool to the touch. This was expected as the CPU basically sat idle all night. It also means I won’t need to cut a hole in the front door for a direct air intake.

The rear chamber, with the power supply and both hard drives, is where most of the heat is generated. The two drives were warm to the touch signifying that they’ve been spinning all night and getting some amount of cooling to keep them from getting hot.

The power supply fan was running and the power supply case was cool to the touch. The power meter read 30W for the FreeNAS box in this steady-state idle state. This is a very light load for a 600W-rated power supply, reflected in its cool running temperature.

Internal Fixture for Acrylic Box

Continuing my self-examination for assumptions that might be holding me back, I started thinking about the fact that all the fixtures I’ve built so far for the box exercise are external to the box. This seemed like an obvious approach – tools are almost always outside of the object that the tools are working on.

But while working with various fixtures, I’ve occasionally wished for something inside the box to brace against. At various points I thought about building an internal component to mate against the external fixture, but for one reason or another that hasn’t happened. So let’s try that now.

Internal Fixture


It turned out far more successfully than I had expected. When the fixture is on the outside of the box, my hands performing assembly had to work inside the tight internal volume. But when the fixture sits inside, my hands have far more freedom to move around outside and everything is easier to do. The assembly of a test box with this fixture was far smoother than any of the test box assemblies built with previous fixtures.

Since it worked so well, I went digging into the pile of scrap acrylic and cut panels for more boxes. While putting together these boxes by hand, I thought about how I’d automate the various tasks involved. The good news is that the fixture is no longer the biggest blocker, other aspects of box assembly now demand some problem-solving time.

Task #1: Peeling the protective paper backing off the laser-cut pieces of acrylic. At the moment this is a very tedious task that demands strong fingernails and luck. If we want to make a production line of a laser-cut acrylic product, we need a solution.

Task #2: Dispensing Weld-On 16 acrylic cement. Acrylic cements like Weld-On 4, with low viscosity and flows like water, have been outlawed by the South Coast Air Quality Management District government agency. So any dream of production will have to figure out how to work with the legal but far more viscous Weld-On 16. Applying by hand resulted in inconsistent beads of cement and aesthetically ugly joints.

Acrylic Box with External Frame

I took a pause from experimenting with fixtures for building a simple acrylic box, but it’s time to revisit the topic. While thinking about the external frames I had built, I started re-examining all the basic assumptions I had held during those experiments.

One assumption was that I must design the fixture to stay clear of the joints, lest I accidentally bond the fixture to the box with a bit of overflowing glue. So I started thinking what it might mean if i intentionally wanted to bond the box to its fixture. The result is the “exoframe box’, a box with an external support frame that also functions as the construction fixture for the box during assembly. This prototype led to the following observations:

Exoframe Box


It is stronger. Once everything is glued together, the external frame greatly increases the strength of the box. This either allows a box to handle a greater load compared to an equivalent frame-less box, or allow the box to be constructed of thinner acrylic.

It allows non-square profiles. The external frame in this prototype is rectangular, but there’s no reason why it has to be. The external frame can add contours to meet functional or artistic requirements. Say, make a network data storage computer look like an elephant, as a play on the urban legend that elephants never forget.

It lights up very nicely. The external frame adds a lot of edges and corners, which add light paths to any LED lighting in the acrylic construction. A quick test with an LED confirmed that the “bling factor” went up dramatically.


It took quite a bit of effort to keep the kerf compensation math straight. It probably shouldn’t count, though, as I assume I’ll eventually figure out a way to have the computer deal with the kerf compensation math for me instead of keeping it straight in my head.

Increased complexity in assembly since we have 9 interlocking pieces instead of 5. Somewhat mitigated by the fact that the external frame assisted in alignment of the box internal pieces, just like fixtures are supposed to, but overall a box with external frame is still much less friendly to automation than a plain box.

Portable External Monitor 2.0: Stacking Plates

Enclosure2_CADPortable External Monitor version 2.0 (PEM2) explored a different construction technique from PEM1. Instead of building a box by assembling its six side pieces (top, bottom, left, right, front back) the box is built up by stacking sheets of acrylic.

With this construction technique, it is much quicker to place components in arbitrary locations in 3D space. Control along the X/Y laser cutting axis are trivial. Control in the Z axis takes a little more effort. The components can be aligned to the thickness of the sheet of acrylic, but if that’s not enough, it is possible to use engraving operations to precisely locate the component in Z.

In contrast, when we want to locate components inside a box at a specific coordinate, we’ll have to design additional pieces – supports and brackets – to mount the item at the appropriate location in the box.

It is also very easy to assure alignment between the parts of the box. Cut a few fastener holes at the same location across all the sheets. After they are stacked up, inserting the fasteners to align all the sheets.

The downside of this approach is that it is very wasteful of material. Each layer will consume an acrylic sheet of the overall X and Y dimensions. And if we only cut away the parts we need for the components, there is potential for a lot of unnecessary acrylic in the final assembly. They add weight without usefully contributing to the structure. Putting in the design time to cut away those parts reduces the time savings of this technique, as it starts approaching the work needed to design supports and brackets in an empty box.

If there’s an upside to the wasted material, it is the fact that this glue-less technique can be easily disassembled. When we’re done evaluating this prototype, every sheet of acrylic can be reused as material for future (necessarily smaller) projects.

Lesson learned: This “stacking plates” construction technique offer a trade off of reducing design time and effort at a cost of reduced material usage efficiency.


Portable External Monitor 1.0

LCD Enclosure 1 piecesOnce the LCD panel and matching frame had been salvaged from the laptop, it’s time to build an enclosure to hold it and the associated driver board together. Since this was only the first draft, I was not very aggressive about packing the components tightly. It’s merely a simple big box to hold all the bits checking to see if I have all the mounting dimensions for all the circuit boards correct.

It was also the first time I had the chance to try acrylic sheets in a color other than clear. There was a dusty stack of 6 mm green acrylic that I enlisted into this project. Since this is just an early draft project, I valued ease of construction over appearance or strength (6 mm is more than sufficient) and so I used the interlocking tab design for self-aligning assembly.

The resulting box was functional, but not very interesting from a design viewpoint. I just wanted to prove that all the components worked together before I proceeded to the next draft.

I did not design this enclosure to stand by itself. Instead, I had designed this enclosure with a VESA standard 100x100mm mounting pattern in the back and intended to tap those laser-cut holes to take M5 fasteners. Once so prepared, I can mount this enclosure on any existing stand that conforms to the standard. That little design detail – independent of the LCD panel and driver board – sent me off on a little side exploration of plastic construction techniques.

That is a story for the next update.

Simplified Acrylic Box Fixture

After being humbled by my ambition overreaching my skills, I abandoned the idea of an articulated build fixture. To keep tolerance variations under control I wanted to build a simplified version just to make sure I can do at least the simple thing. Also, doing simple fixtures will be an useful skill for times when I want to build a one-off project that needs a fixture but doesn’t justify the investment for a complex fixture.

The simplified fixture is a stack of acrylic plates, made of a mix of designs depending on the task for that layer. The common thread along all the plates are strategic cutouts to keep away from the cement surfaces. This ensures any overflowing cement will not seep into the gaps between the box and the fixture and ruining everything.

The box is built upside-down with the side pieces going into the fixture first. Once they are in place and glued together, the bottom of the box is added last. The bottom-most plate in the stack keeps the box panels aligned vertically. The top-most plate locates the square panel that serves as the bottom of the box.

This fixture tells me the kerf compensation I had been using is a tiny bit on the aggressive side. In the previous fixture, the various errors masked this fact, but in this simplified fixture there is no escaping the truth. The four side pieces of the box inside the fixture have a very tight fit. So tight, in fact, that capillary action was unable to wick enough cement into one of the joints, which promptly fell apart after the box was removed from the fixture.

First run of the stack-of-plates fixture, with the very precise (but one corner not sufficiently bonded) box it built.

Which brings us to the advantage of the simple design: I could make an adjustment, cut replacement pieces, and have a better-fitting fixture in a fraction of the time of building the overly complex articulated version.

Laser Cut Acrylic Fixture Exercise

So after the successful kerf compensation and the reminder that thickness is important, the resulting construction fixture was much better than the 3D printed version but sadly still not good enough.

Fixture4 Open
Box assembly fixture in open position.

The holder for each of the four sides worked well – I’m especially happy at the fact they can grip the panel with just enough force to hold it in place. This was a super encouraging result of the kerf compensation math. If I were a tiny bit off one way, the side piece would be loose. If I were a tiny bit over the other way, the side piece would be gripped too hard and cause scratches. (Or wouldn’t fit at all.) Feeling the pieces fit “just right” was very satisfying.

Fixture4 Closed
Box assembly fixture in closed position.

The problem came from the multi-piece articulated design. Even though the kerf compensation was close to exact fit between two pieces (+/- 0.1 mm) the overall dimension of the fixture depends on perfect alignment of acrylic pieces across assemblies of 5-10 pieces. I was close, but each little error adds up and the resulting box built by this fixture has errors of up to 0.5 mm. Easily detectable by the eye.

Fixture4 Result
Close-up of box built with the fixture.

And, as should be obvious from the pictures, this fixture took a lot of work to assemble. Generally speaking, it is OK (and actually fairly typical) for mechanical design of a fixture to be more complex and time-consuming than the mechanical part itself, so the complexity itself is not a problem. The problem is that I have yet to learn all the ins and outs of designing the fixture so the desired tolerances can be maintained when my fixture starts getting complicated.

But that’s OK, learning from experiences like this is exactly why I’m doing it.


Building with Acrylic: Thickness Variation

Thickness failIn the previous post, the laser cutter kerf was successfully compensated, admittedly in a way that left plenty of room for improvement in the future. This post will look at a different challenge of building with acrylic: variation in thickness of acrylic sheets. So far experience showed different sheets of “6 mm” acrylic can actually be anywhere from 5.31 mm to 6.03 mm.

Since most laser-cut acrylic projects are 2D in nature, any variation in acrylic sheet thickness usually goes completely unnoticed. But when building 3D structures out of multiple interlocking pieces, the thickness dimension has a significant impact.

Fortunately for us, while thickness can vary across different sheets, the thickness is relatively consistent within a single sheet. There may be some variation from one corner of a 4′ x 8′ sheet of acrylic to another, but once cut into smaller pieces that can fit in a laser cutter, the thickness can be reasonably treated as constant.

This allows us to treat thickness as a parameter in a Fusion 360 CAD file. Any slots cut for acrylic pieces will need to reference the parameter. So that when it comes time to generate the cutting profile, the thickness parameter can be updated with the thickness of the actual sheet of acrylic, and Fusion 360 will automatically recompute all the slot widths to match.

Which brings us to the attached picture illustrating human error: the assembly on the left is built up to the proper dimensions. In contrast the assembly on the right was too thin. I made the mistake of measuring on one sheet and cutting on a different sheet that turned out to be 0.29 mm thinner. 0.29 mm is a small difference, but when the assembly is built by stacking seven pieces together, it results in a significant dimensional error of over 2 mm.

Building With Acrylic: Kerf Compensation

After learning my 3D printer’s inability to hold dimensional tolerance, I went back to practicing building with acrylic. Laser cutter kerf may be annoying but it is at least consistent. Now that I know my choice is between a consistent kerf or an inconsistent extrusion width, I choose to deal with consistency.

A bit of Google confirms laser cutter kerf compensation is a fairly common problem people have sought to deal with. What’s less common are actual practicable solutions for designing 3D structures intended to be built up from laser-cut pieces of acrylic. While 2D work on a laser cutter is common, construction for 3D structures appears to be less so.

A laser cutter workflow usually ends in a series of vector graphics commands. Common formats are DXF, DWG, SVG, and PDF. All are good for describing lines, but they only describe where to cut. They don’t contain information on which side of the line is the desired output. So while it is possible for an automated script to offset all lines, it doesn’t know which direction is “inside” vs “outside” in order to perform the proper offset for kerf compensation calculation.

The CAD software (Fusion 360) knows this information, so I thought it’s an obvious place for such mechanism to exist. Google knew of people who have devised some very clever workarounds to make it happen, but not an actual feature in the CAD software itself. Before I started using other people’s workarounds, I thought I’d try to do it manually first, adding to the kerf amount to the dimensions of individual components to CAD.

The result was very encouraging, the laser cut pieces came out at the desired dimensions and pieces fit together with their edges well aligned. This validated my manual process but added mystery. What I did was tedious for a human, simple for a computer, but for some reason the software doesn’t do it. Perhaps I will find out why as I continue learning about laser-cut acrylic construction.

Successful kerf