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.

Simple Circuit Board On 3D-Printed Plastic

CircuitBoardHere’s a behind-the-scenes follow-up to the LED test fixtures of the previous few posts: when we only need a simple circuit for a 3D-printed project, we can meld the two instead of using a formal circuit board. In this context “meld” is meant literally: the parts of the circuit can be heated up with the soldering iron so they melt into the 3D printer plastic.

When I built the dual-LED acrylic illumination test rig, I wanted the simplest circuit possible. It’s not something I need to be durable long-term and I wanted to be up and running with my tests as quickly as possible. The full length of a resistor and its wires are almost long enough to bridge the gap between the two sides of the fixture, so I tried to make that work.

When I started soldering all the wires together, I had planned to just leave everything dangling. But the close proximity of the soldering gun to the 3D printed PLA plastic started softening the plastic and I realized I can use this to my advantage. A few seconds with the soldering iron was all it took to heat up a wire so it can be melted into and embedded into the plastic. The resistors themselves took a little more effort, but I sunk them into the plastic as well. The LEDs had been held in place by their bent legs, which was sufficiently stable but had a tiny bit of wobble. Melting the plastic around LED legs gave us a much more secure placement.

Components melted into the plastic are no longer subject to flexing and eventually breaking from metal fatigue. Add a strip of electrical tape to guard against short circuiting to complete the quick and simple circuit to light up the test rig LEDs.

Illuminate Acrylic Edge: Test Fixture 2

After running through a few acrylic test pieces looking for the best edge illumination, I decided I need a dual fixture to allow side-by-side comparison as I swap through test pieces.

IMG_5158

Another change I made in the text fixture is to remove the aluminum foil at the bottom. While the foil may be useful to direct light, it distracts from the testing. If a particular test piece is losing light to the fixture, I don’t want that light reflected back in. I want to be able to see the failure in the form of illuminated white plastic. When there are no acrylic test pieces in the fixture, the cone of illumination is clearly visible.

IMG_5159
Test fixture #2 illuminated without acrylic test pieces.

The two sides aren’t exactly identical. One of the LED is slightly brighter than the other, and the two sides ended up with slightly different textures. But it should be good enough for our comparison purposes.

The first fixture implied that the cavity surround the LED is where we should focus our attention, so let’s try a few shapes. A square and a circle seems to differ only slightly in the brightness of the center top hot spot.

IMG_5161
Square LED cavity (left) and circular LED cavity (right)

A triangular cavity was much more interesting – all the light has been diverted from the top center, sending them off to the side. And I tried a teardrop shape just to see what would happen. The important detail to note on the teardrop is that a lot of light was lost to the fixture instead of being sent to the edges. This tells us the cavity edges should be as small as possible to push its surface right up against the LED to reduce light loss.

IMG_5162
Triangular (left) and teardrop (right)

The cavity sizes were then minimized for the next set, again testing for different shapes. A flat top to the cavity didn’t work as well as the cavity shape conforming to the LED shape.

IMG_5163
Flat top cavity (left) and conforming curve cavity (right)

But the best results came from putting a small curve in front of the point of the LED. This appears to break up the central beam and sends it to the edges like we want.

LED scatter curve

From an cost/benefit ratio perspective, this small curve is a winner. It is a very minor change to the geometry and yet it delivers significant improvement to the resulting light. When put into a larger sheet of acrylic, with greater number of internal reflections, it should do quite well. And for a little extra smoothness in illumination, we can take a piece of sandpaper and lightly roughen up the surface. Adding a frosted edge reduces the reflections somewhat, but it does help even out the overall illumination.

IMG_5165
Best illumination to date with the small curve (left) which can be further enhanced by a frosted edge (right)

These experiments have been quite informative. I look forward to applying what was learned here to future acrylic projects.

Illuminate Acrylic Edge: Goals and Test Fixture

After the surprising success of LED illumination in FreeNAS v2 enclosure, I wanted to spend some time experimenting with the concept. When searching for “acrylic edge illumination” on Google, everybody seems to be talking about positioning the LED at the edge of the acrylic sheet and lighting up the pattern of something engraved on the acrylic. My goal is the opposite: I want to place the LED in the middle of the acrylic, and I want the light to shine out to the edge of the acrylic sheet.

We start with the assumption that by default, a LED shining inside a piece of acrylic will only illuminate in the direction it is pointed.

Hotspot

Our ideal goal is to determine how to direct this light so it illuminates all the edges of the acrylic sheet, not just the direction of the LED face.

Ideal

I 3D printed a small test fixture for these experiments. It has space for a 75mm x 75mm test piece of acrylic and a LED that pokes up in the middle of that space. There’s a 10mm wide border around the test piece so I can observe the pattern of illumination beyond the edge. At the outside edge of the border, a wall to observe the intensity of illumination beyond the edge. A piece of black tape covers the direction of the viewer so the LED doesn’t overwhelm the rest of the observation. A piece of aluminum foil lines the bottom of the test fixture to reflect any light back into the acrylic.

IMG_5146

The fixture lights up as expected in the absence of any acrylic.

IMG_5147

These two experiments tested cutting grooves in the acrylic. One set had straight grooves, a second set curved. They were successful in breaking up the center top hot spot, sending some of that light elsewhere. But the light seems too concentrated on the bottom third.

IMG_5151

IMG_5152

Instead of cutting grooves, this piece tested cutting entirely through the acrylic. The circular shape does seem to disperse the light fairly well.

IMG_5149

These were interesting, but the most surprising result came from a test piece of acrylic with nothing cut in the middle. I had expected the light pattern to resemble the triangular hot spot of the LED by itself without any acrylic, but we got this:

IMG_5148

It has the same basic trend of the other light patterns in this set of experiments, which tells us the majority of the light scattering is not done by the curved/straight grooves or the circle. The feature with the largest impact is actually the small cavity surrounding the LED itself.

The fixture has been informative, but it has one problem: it is difficult to make comparisons between different test acrylic pieces. Before proceeding with investigation, the test fixture will be expanded so there are two test pieces side by side for comparison.

Acrylic Lights: Infinity Mirror

I’ve played with putting lights in my 3D-printed creations for glowing illumination effects. There were limits to what I could do with 3D printing, though, because printing with a clear filament does not result in a clear object. In contrast, acrylic is clear and works as a light guide with a lot of possibilities.

I’ve noticed a few attention-getting light effects in my acrylic projects to date, most of them created by happy accident. The acrylic box with external fixture made good use of external light. The Portable External Monitor version 2.0 was built from stacks of acrylic sheets: its fluorescent back light reflected between the layers like an infinity mirror.

PEMv2_InfLights

This effect was on my exploration to-do list for the future, but I moved it to the top of the list after seeing surprisingly good results on the FreeNAS Box v2 enclosure.

I had planned for it to have the standard PC status LEDs: one for power, and one for disk activity. The acrylic plate for motherboard mounting spacer also had two cutouts for 3mm LEDs along the center line. The red hard drive activity light is to be mounted high, and the blue power light mounted down low. The idea was for the blue light to illuminate the top edge of the plate. When there is hard drive activity, red LED will light up the center of that edge, and it should blend to purple with the power light. Both LEDs were blocked from direct view by the motherboard, so all we should see is a nice soft glow emitting from behind the motherboard.

FreeNASv2LightPlan

That was the plan, the reality was different. The red activity light worked as expected: when there is disk activity, the center of the top edge had a little red glow.

The blue LED decided to ignore my “nice soft glow” plan and put on an extravagant light show. It didn’t just light the top edge, it lit every edge of that acrylic sheet and had plenty of extra light energy to throw on the surrounding shelving.

FreeNASv2_LightsAbove

Here’s a close-up of the sideways illumination.

FreeNASv2_LightsSide

The many rays visible in the side illumination, as well as the lines making up the top illumination, indicate infinity mirror action going on inside that sheet. It wasn’t directly visible, and probably very difficult to photograph even if so. Without internal reflections, the blue light would have just gone straight up. But with the smooth surfaces and edges of the acrylic reflecting inside the sheet, the light of a single LED bounced around, found different angles, and was emitted in many more directions.

This LED illumination effect warrants further investigation. It is a happy accident that I fully intend to learn from, and put into future acrylic projects.

I want every acrylic project to look this awesome!

 

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.

FreeNAS Box v2: Construction Fixture

One of the problems with FreeNAS Box v1 was that I designed it with tabs and slots to fit into each other. While it made the box easy to assemble, the slots severely weakened the structure of the box.

For FreeNAS Box v2 I avoid the tabs and slots. But I need something else in their absence to help me during construction. The answer is a fixture: Something I design along with the box that helps me build it, but not part of the end product.

Building the box will start with bonding all the major vertical pieces together. Once the cement has set hard enough for them to stand alone, the fixture pieces can be removed. The resulting assembly will then be self-supporting as the remaining pieces are attached.

The fixture pieces sit top and bottom. Pretty much where the largest horizontal pieces would eventually go, but are distinctly different from those pieces.

FreeNASv2 Fixtures.JPG
Initial assembly (gray) with assembly fixture (yellow)

The top fixture has two slots for holding two of the vertical sheets of acrylic. We’ve already established such slots are bad for the structural strength of the end product, but it’s perfectly OK (and quite useful) to have them in a fixture.

Both the top and bottom fixture have round cutouts in the corners and in the mid-span T-joint so that they stay clear of any extraneous acrylic cement that might leak out. This way we avoid accidentally cementing the fixture to the product.

Each of the fixture is made of two layers of acrylic, a main layer and a secondary layer whose shapes helps keep the box pieces in place. The small round circles visible in the picture is sized for M4 screws to fasten the fixture layers together. Using screws instead of acrylic cement allows us to later disassemble the fixture and recycle the pieces as scrap acrylic in future projects.

FreeNAS Box v2: Additional Goals

We’ve just established all the problems exposed by the v1 prototype that we want to address for v2. In addition to those issues, we also want v2 to cover a few things that are no fault of the v1 prototype.

First one is relatively obvious: actually build a complete and usable case. I knew I was trying new ideas in v1 and that something will go wrong, so it wasn’t really complete. Even if everything went right (I knew it wouldn’t) I would have had to build a v2. For one example, I didn’t bother to design an access door.

We then have a few separate items that relate to improving space efficiency.

When I placed v1 on the shelf where I expected to keep my FreeNAS box, it wasted a few inches between the back and the wall due to the angle of the power cable. I want to rearrange things so that the back of the box can sit flat against the wall.

Cooling path in v1 started with air intakes on the bottom of the case. This was part of the tribute to the Apple PowerMac G4 cube, but functionally unnecessary while consuming vertical space.

Also contributing to the vertical space consumption was pointing all the ports downwards, like the PowerMac G4 cube. This made the ports difficult to access. It would be good to align the direction of all the plugs, so power and network cables can be in parallel.

Out of all the requirements listed here and in the previous post, the greatest impact was the “make sure all fans are visible for easy verification they are spinning” goal. It meant rearranging the components so both fans face forward. This made for an interesting design challenge as it is against common convention of computer case design. Once I got that set up, the configuration was then further refined in Fusion 360 to satisfy all the remaining requirements until we have this: my FreeNAS Box v2.

FreeNASv2

FreeNAS Box v1 Problems

FreeNAS Box v1 was a good learning project for acrylic construction. Here are the issues with v1 I want to address for the next version.

  1. Non-orthogonal joints: The laser cutter only cuts right angle edges. v1 had a few joints that were impossible to cement because the edges didn’t align at right angles.
  2. Tab and slot construction: To help align joints, I designed v1 with tabs to fit into slots I had also cut into their mating surfaces. While this made the box easy to build, it destroyed durability of the end product. The sharp corners of the slots are where acrylic starts cracking under stress. I had known about the dangers of sharp internal corners, but I thought acrylic cement would bond everything together eliminating the weak point. This idea has now been proven false.

    FreeNAS1_Cracks
    Stress cracks that started at corners of slots.
  3. Unappealing tangle of wires: The v1 box design placed all of the wires up front, which turned out to look pretty ugly, and all the components (hard drives and the motherboard) were hidden under the mess.

    FreeNASv1
    Yes, there’s a computer under the tangle of wires.
  4. Difficult access to components: Besides looking bad, the mess of wires up front also blocks access to everything else. It would be difficult to perform maintenance such as replacing drives if they fail.
  5. Cooling fans vulnerable to jamming: The wiring paths were such that, if some wires should misbehave and bend slightly out of position, they would impinge upon the blades of cooling fans stopping them from turning.

    FreeNASv1_Flaw
    Several wires in this bundle poked into the fan grill where it does not belong.
  6. Cooling fans are out of sight: Compounding the problem of blocked fans is the fact that despite the clear acrylic exterior, it was not easy to notice the fans were blocked.

I had to physically build FreeNAS Box v1 before I knew known any of the above are problems. Some I had thought about and didn’t think would be a problem, the others I just hadn’t thought about at all.

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.