The Future Belongs to the Creators ™

LED Grid Redesign

Try again

After testing the grid prototype, some things needed to but others couldn’t change.

  1. Bottle slots were tightened
  2. Bottle spacing was not increased because the LEDs limit the bottle spacing.
  3. Parts were positioned away from edges of material to guarantee squareness and alignment of parts.
  4. Continuing to work in 0.75” plywood gives us more practice with it for Wikihouses.
  5. Side frame with rail slot has been removed since it doesn’t work with the space we have.
  6. A double rib design is a better direction so we can build free standing grid columns.
  7. Tabs were added to join header and ribs to top and bottom boxes.
  8. A column size of 8x25 pixels was selected since each LED strand contains 50 pixels.

Column 8 x 25

ShopBot on OSX

Where is zero again?

While cutting parts for an LED Grid prototype yesterday, about a third of the way through the cut file the ShopBot stuttered to a very slow movement. Thinking I’d hit something with the tool, I stopped the process. I inspected the machine, checked the bit, examined the material, and couldn’t find anything unusual. I resumed the cutting file and the ShopBot continued on normally. After another ten minutes the same thing happened only this time the cutting was off position and had dropped about 0.25” off the x-position. Since the machine was cutting 0.75” plywood it was doing multiple passes per part the later tool paths didn’t line up so that part was ruined. On a PRS Standard ShopBot the motors do not send feedback to the controller so the machine doesn’t know it is off course. The only way to remedy this is to re-zero the machine.

I re-zero all time, but have never done it mid-file. I’d heard you can restart a file from a line number so I looked at the screen and jotted down Line #102971. After a quick 3D re-zero with the SuperZero, I was ready to resume cutting. Since this is a prototype and I’d already wrecked one part, I must have read the screen to fast to restart from a line. Everything was fine until…

20140312 162218 iPhone 5

That would be the cutter ramping into the material on the way to line #102971…across what were still good parts. Clearly some more practice is needed starting midway in a file.OK, I’m busted – RTFM.

A to B to C

Random problems are the worst. If you can’t reproduce it, you can’t fix it. One way to test the ShopBot is by doing “air cuts”. Simply zero the machine but set the Z-axis Zero a few inches above the work table, turn off the router, and run a cutting file. The ShopBot will carry out the instructions but the blade doesn’t touch anything but air. Hanging up in an air cut of the previous parts would tell me if there is a problem with the material or the ShopBot movement in a certain spot.

This time the machine did stutter to a slow speed in the air, but in a different area. Recognizing that the problem was being experienced, I stopped the cut. Out of habit or reflex I looked at the tool and clicked “Resume” and the ShopBot returned to air cutting at normal speed. That felt to me like a computer communication problem, not a machine issue.

XP can you hear me?

The ShopBot is running on an old ThinkPad laptop with Windows XP, one of the few remaining Windows boxes in our ecosystem. It is the ONLY reason I still use Windows, having converted to Apple in 2006. After attending Austin ShopBot Camp 2014, I remembered that some ShopBotters are using OSX/Parallels Desktop to run the ShopBot Control Software. I use Parallels for design in V-Carve Pro/Aspire but didn’t trust virtualization to run the machine.

To isolate the XP laptop, testing a Mac laptop seemed worth trying since we have all the parts, MacBook Pro, Windows 7, and ShopBot Control.

20140314 114130 iPhone 5

Install success! After loading a part file, the MacBook Pro with Mavericks OSX ran the ShopBot without issue for 33 minutes. Repeating the same air cut again on the ThinkPad hit an issue around 9 minutes. So… that’s enough proof for me to say the ThinkPad XP is the weak link.

The only option on the ThinkPad is to bail XP which is being “end of life”-ed in a few weeks anyways. Two hours later a fresh copy of Windows 7 Home Premium was up with ShopBot Controller. Repeating the air cut test, the ThinkPad Win7 failed at 13 minutes. It made it longer than WinXP, but a fail is a fail. Time for a new computer to run the ShopBot!

LED Grid Prototype

Take Us to Blinky Town

Usually building an LED Pixel Wall is straight forward. Mount LEDs on a large flat surface, run cabling on the back, connect your controllers and turn it on. Many installations don’t even put diffusers on the LEDs and hit you with raw RGB, which is brighter but misses most of the shades of color.

We have a more unique installation. Recycled plastic bottles act as lenses for 1200 pixels that need to be stacked in a grid against a wall with no access from behind. Cabling needs to connect LEDs to power supplies and PixelPusher controllers.

We initially selected Hint Water bottles due to the pattern on the their base. When running a micrometer around a bottle to dimension it, we found another bonus. The center body of the bottle is slightly smaller than the base and neck. This creates a natural area to clamp the bottle into position and set on us on a design path.

We need two “ribs” with slots cut in them that can be stacked, holding the bottles in place. The ribs need to slide into a frame that locks the whole thing together. After a quick part drawing with two headers, multiple ribs, and two vertical frame pieces, here’s what was drawn.

Preview 16 x 25 Grid

Using a 0.25” straight end mill on 0.75” D3 Maple Plywood eventually results with our parts.

20140312 144120 BE7f FinePix X100

20140312 173755 BE7f FinePix X100

To test the prototype quick assembly with a bottle will check the fit.

20140312 175327 BE7f iPhone 5

20140313 084849 BE7f DSC RX100

20140313 084816 BE7f DSC RX100

What did we learn?

  1. More spacing between bottles would make room for frame currently blocking first and last bottle
  2. Bottle slot needs tightened because slop allows bottles to tilt down so lens is not flush with grid surface
  3. Using a double rib would make assembling easier since balancing bottles on a single rib is challenging4. 0.5” plywood could support grid of bottles if needed
  4. Need a design to prebuild grid sections
  5. Side rail slot needs to be tighter - could use aluminum track for finish
  6. Practice starting a cutting file from a specific line number
  7. Cutting parts the full width of plywood should be avoided until perfectly square alignment of material can be ensured.
  8. Our ShopBot Control computer needs upgraded.

Plastic or Beer Bottles?


A few months ago some architect friends visited the lab to see our robot and accidentally stumbled into our LED wonderland. That lead to being asked to do pixel wall in a conference room.

The Start

The original idea was to do a large grid of recycled beer bottles as the lenses for RGB LEDs. Working through the design, beer bottles present some challenges. How much does a thousand glass bottle weigh? How do you mount them? How do you wire LEDs to them? How do you control that many LEDs?

The projects our friends saw was a PixelInvader (64 LEDs), a StripInvader (240 LEDs), and the beginning of the Mega Pixel (572 LEDs). Now we were asked to scale up a project 2-3x bigger than anything we’ve done. We were already maxing out the Arduino system we’ve been using - each pixel needs needs three pieces of data to be sent over the network. Packet size/color data = ~1500/3 => ~500 pixels.

Get It Under Control

A new controller needed to be found. Since so many people are experimenting with LEDs, the search didn’t take long since we knew what we were looking for. PixelPusher by Heroic Robotics had recently been Kickstarted and checked all the boxes so we ordered one to test.

RGB LEDs, used mostly for outdoor signage, come in many form factors, have different power requirements, and are controlled by different software libraries. To best work with a beer bottle, we looked at the “thin” 12mm diffused RGB LEDs that would fit in the neck of the bottle. They run on 5V DC, use the WS2801 library, and provide 16 million colors (24-bit).

After some initial experiments with the bottles, the PixelPusher, a 5V power supply, and the LEDs things were looking good. The problems left were connecting the LEDs to the bottle and supporting the grid.

How Far Now?

The first issue is the distance between the Pixels. It is determined by the type of LED strands. The Thin 12mm strand samples we had all measured about 3.25-3.5in between pixels. When planning the grid layout on sheets of plywood, there was not enough material between the bottles to support them all safely. Increasing that distance would mean cutting and re-splicing 4-conductor cable - times hundreds of pixels!

Staying with the bottle idea and trying the “flat” 12mm RGB LEDs, we found that those pixels were spaced at 4.25-4.5in giving us another inch to work with. Attaching them to a beer bottle then gets tricky and would require more parts to figure out…

Ah Ha!

Working in the lab, drinking our favorite water - Hint honeydew-hibiscus, we noticed an empty bottle in the recycle bin. There was an interesting pattern left on the bottom from their manufacturing process. This pattern happens to catch LED light very nicely. It is plastic so it is lightweight and easily modifiable. The body of the bottle provides natural affordances between the base and the neck which means we can secure them between dimensional lumber which has longer spans versus expensive plywood.

And finally, the mouth of this bottle is larger than normal and happens to fit a Flat 12mm Diffused RGB LED. Grabbing a pair flush cutters, we were quickly able to snip tabs in the bottle cap. The cap when screwed down holds the LED in place and the wires can be locked in place with small zip ties.

Seems like we have stumbled onto the new path!

"Bottle Bottom"

"Bottle Cap"

Trying Sublime Text

This week we are looking at using Sublime Text 2 as a text editor for the team.

Remote Control Theme

The first killer feature we’re trying is using remote mapping to our blog server so we can edit the theme files locally (NOT in a web browser’s form element), commit changes to git, and sync files remotely. For this we’re using a standard Wordpress setup at Pressable and the ST2 SFTP package. Previously, we had to edit a theme file in a WP browser-based editor, download a zip of the theme, copy it over the local copy, then commit changes to git.

Text Editor Posting

Another problem we’re trying to solve is for our Content Editors to be able to write posts locally, format them in Markdown or HTML, and publish them to Wordpress. We are playing with Sublpress. It is a little tricky to get running since the latest commit in Github removed the README and trashed the files - so rolling back a commit may help you.

Haz proof. Much success!

This was posted with the ST2/Sublpress super combo.

Flying with Art


You have some artwork you need to take with you on a plane trip. You would like it to remain in the same condition it left your house in. It is too big to carry on with you - so you are going to check it. The artwork may need opened at the airport for inspection. Airlines have size and weight restrictions.


You need to make a custom, strong but lightweight “crate” to protect your artwork.


You need to figure out the largest interior dimensions of a box that will hold your stuff. Include the dimensions of your items plus padding around and between them.

For our example, we are taking a framed canvas from CanvasPress and a sunset picture printed on wood from Woodsnap. The aerial art is 41.5”[x] x 15.5” [y] x 2.25”[z] and the sunset are is 24”[x] x 14”[y] x 1”[z]. Neither item has any glass. Since both objects are roughly the same shape, we just have to see what the largest total dimensions are.

Interior [x] = 41.5” of aerial

Interior [y] = 15.5” of aerial

Interior [z] = 3.25” aerial + sunset (since we will be stacking objects

On each side, we will add foam. (2 x Foam) + [x] and (2 x Foam) + [y]

We will add a layer of foam on the top, bottom, and in between each item. Total [z] = (3 x Foam) + [z]

To make the enclosing box, we need a top, bottom, 2 sides and two ends.

Since we found 0.75” foam, we now know Total [z] = (3 x 0.75”) + 3.25” = 5.5”

A 1x6 board is actually 0.75 x 5.5”, so that is perfect for our sides and ends.

Given the thickness of the sides/ends is 0.75” we can find Total [x] = 44.5” and Total [y] = 18.5” Hint: Don’t forget to add (2 x End Thickness) for Total [x] for the dimensions of the top and bottom.

Dropping into a home supply store, we found:

  1. 2 @ 48”x24” drawer bottom sheets (Luan would also work)

  2. 6 @ 48”x14.5”x0.75” EPS Poly Panels by CelloFoam (Came in a 6 pack, or there are large 96”x48” sheets)

  3. 2 @ 1x6x96”

  4. Drywall Screws

[gallery columns=”5” ids=”965,967,971,969,963,973,975,977,979”]

Snowflake for Giants

Some friends asked us to help out on a quick project. They needed a decoration for a holiday party in 3 days. After a few emails, a delivery, file wrestling, and some machining time and we were done. They designed an 8 foot tall snowflake sculpture.

To make something that big and keep the cost reasonable, we tried a new material (for us). Coroplast is a corrugated plastic sheet material. Ours was 96”x48” in white. Using the advice of the experts at the ShopBot Forum, we used a 1/16in (0.0625”) straight end mill. Since Coroplast was only 0.17” thick, we cut it in one pass.

Things We Learned

  1. Coroplast can be held down with painter’s tape around the perimeter. Using a small diameter bit barely pushes the material at all. We had double-sided carpet tape as a back up.

  2. There is the risk that the dust shoe could pull the parts off the table during a move and run the router through them. In the future, we’ll set the safe Z height to 3”.

  3. Machining plastic generates static. Dust of all kinds stuck to the parts even when vacuuming it. There is a trick where you rub them with dryer sheets to cancel the static, but we didn’t try it.

  4. Coroplast is inexpensive, $16/sheet, but needs some structure for large projects. The snowflake will be taped together and hung. It is too flimsy to bear its own weight.

  5. Coroplast edges do feather. We ran a tiny bit, 14Krpm, 2ips, counterclockwise on this job. We didn’t experiment with our settings so we’ll need to look in to this more.

[gallery columns=”5” ids=”863,859,865,871,875”]