From Prototype to Kickstarter to Production

How blink(1) was made using Arduino & 3D printing

blink(1)

Maker Faire Bay Area 18 May 2013 Tod E. Kurt

blink(1)
USB RGB Notification Light

What is blink(1)? It’s just an RGB LED that you can control over USB. You can control it via many different applications and programming languages. Make anything visible to your computer, visible as a flashing colored light.

blink(1)
Connect the Cloud to a Color via IFTTT

Via IFTTT or your own code, you can hook blink(1) up to events in the cloud.

In mid 2012 we decided to try out Kickstarter as a way to help us fund the initial production run. It ended up being a *lot* more popular than we anticipated.

My Background

But first, who am I? I write occasionally for Make. I make open source tools for the Arduino community like the WingShield and the Wiichuck adapter. I founded a hackerspace in Los Angeles, and sometimes I make big kinetic art installations with others. But what I mainly do is...

BlinkM Family

So blink(1) was easy then, right? Well...
ThingM, the company I co-founded with Mike Kuniavsky. ThingM produces the BlinkM line of Smart LED products, which we’ve sold tens of thousands of units of. Here’s a quick demo of some of our BlinkM products. The original BlinkM is a superbright RGB LED with a tiny computer behind it, and gives you a simple serial interface and scripting engine to controlling 3-channel PWM for RGB LEDs. BlinkM was designed for Arduino and lets you save PWM pins on your Arduino and saves you from coding a color-mixing engine in your Arduino sketches. The BlinkM MinM is the same as the BlinkM, but tiny and works great for wearables. The BlinkM MaxM works just like the BlinkM but adds inputs to the scripting engine and lets you control several watts of LED clusters or LED strip tape. We also have our LinkM USB adapter for BlinkMs if you don’t want to use an Arduino. And since all BlinkMs use the same class of AVR chip that’s in an Arduino, you can reprogram any BlinkM to run Arduino sketches. You might think that since we’ve had so much experience in manufacturing, blink(1) would’ve been easy right?

blink(1) hardware Timeline
idea prototype kickstarter production

2 weeks

3 months

1 month

3 months

actually, it took both less time and more time....
Well, sort of. The amount of time it took is a difficult question, because blink(1) is similar to other products we’ve done. In one since, it took less time, because if we didn’t focus so much on the enclosure and software, we could’ve made it to Kickstarter faster. In our paticular case, it took longer because I’ve been thinking about USB LEDs for quite a while.

blink(1) Process
■ Arduino sketch to prove the hardware ■ Migrate to smaller chip ■ Add USB ■ Iterate, iterate, iterate ■ Design enclosure, packaging, software ■ Iterate enclosures, 3d print variations ■ Commit to production
This was the rough process for the blink(1) hardware. It doesn’t cover the software, retail packaging, customer service, etc. etc. All these are actually more important than the hardware, depending on the device you are creating. We would’ve done better by focussing on the non-hardware aspects earlier.

How it Started
“a.k.a my first Arduino sketch”

red

green

blue

if( Serial.available() == 3 ) { redVal = Serial.read(); grnVal = Serial.read(); bluVal = Serial.read(); analogWrite( redPin, redVal ); analogWrite( grnPin, grnVal ); analogWrite( bluPin, bluVal ); }

I got started playing with Arduino in mid 2006. Arduino was a game-changer. I wrote a widely-distributed post called “Arduino, the Basic Stamp Killer” that highlighted what I felt were many of the benefits of Arduino over the previous easy-to-use embedded kit. (http://todbot.com/blog/2006/09/25/arduino-the-basic-stamp-killer/) I quickly started using RGB LEDs with it. But that used up a lot of the I/O of the board, particularly, it used up all three of the PWMs available at the time.

Smart LED Prototypes

At the same time I was exploring the tiniest microcontrollers at the time. These are “ATtiny” chips. These chips have just enough I/O for controlling an RGB LED and some sort of control input. I experimented with sensor-based input and then started thinking about combining this with the problems of I/O-limitations of Arduino. The techniques (and much of the code) for these chips is the same as an Arduino sketch. For more details, see: http://todbot.com/blog/2007/03/25/smart-led-prototypes/

Smart LED Prototypes to BlinkM

BlinkM!
After several iterations of the Smart LED idea, the result was BlinkM. BlinkM is designed to plug directly into Arduino for programming, but can work on its own without an Arduino. It’s been a great hit. I later generalized my desire for smart components in the talk “Smart Interface Components” at Sketching07. For more details, see: http://todbot.com/blog/2007/07/03/smart-interfacecomponents-my-sketching07-talk/

AVR USB RGB LED FOB

The same time the Smart LED research was happening, I also was experimenting with USB. Here in 2007 I strapped an RGB LED to my USB research and created the “AVR USB RGB LED FOB”. This used lightly-modified Arduino sketches plopped into an “AVR-USB” demo.

LinkM USB adapter

The USB RGB FOB turned into LinkM, a BlinkM programmer. By this time, we had many BlinkM users and some wanted to program them without needing an Arduino. Thus LinkM. It let us play a little bit with injection-molded enclosures and the logistics issues of managing PCB assembly vs. final packaging assembly. But it was not meant to be a huge seller; we made it more as a convenience for our users.

blink(1)
+

So in many ways, blink(1) is the shrunk-down combination of a BlinkM and a LinkM.

=
blink(1)

BlinkM

LinkM

Explore Making it Small

The first real blink(1) task then was making it small like a proper USB dongle should be. Using Eagle for drawing schematics, and then SketchUp (with EagleUp), let’s you get a good idea. EagleUp is a plugin for SketchUp. Having a board design with dimensionally-accurate parts is a great way to explore the “physicalness” of a design without spending a lot of money on prototypes.

Make it smaller

Here is another size study I did using Eagle, SketchUp and EagleUp. This particular case was testing the size difference between a proper metal USB connector vs a connector created by traces on a PCB. We found that while the area size shrunk, the height increase (particularly the distance between the top of the LED to the top of the case), was too much for us. Also, the PCB-based connector could have flakey electrical connections.

Enclosure Visualization

And with 3D models of the circuit board, we can start fitting it into enclosure ideas to see how things might all go together. It’s incredibly instructive.

3D Print Enclosures

With a 3D printer like a Makerbot, Ultimaker, Bukobot, or similar, we could try out a bunch of ideas in physical form using prototype electronics. This lets us get very close to a production look & feel. Unfortunately, consumer 3d printers don’t have the same resolution as injection-molding, so we had to intuit a bit what was actually possible for the finer details.

Kickstarter!

And with that we had enough to make a video and launch a kickstarter.

Finalize the Design

You hope. Then you change it yet again.
During the Kickstarter, we finalized the design and started getting production quotes. And we found that some aspects of our design weren’t actually manufacturable. 3d printers and injection molding & CNC techniques have different requirements on what’s actually possible. The biggest issue is that all vertical walls in a molded part actually are at a slight angle, so the part can be pulled out of the mold.

Many many attempts
Makerbot -> Shapeways -> ProtoMold -> CNC

So we did a few more design iterations using 3d printers, Shapeways (which produces higher-res 3d prints), and ProtoMold to do CNC versions.

Final, really

A CNC and SLA production sample. Finally.

Production!
Congratulations! You’re done!*

*Nope

Production Problems

Expect production problems. They will cost you money, cost you time, make you feel dumb. In the top photo are three ways the blink(1)s metal tops were bad: too thick, too thin, or crooked. In the bottom photo, we had a sizable portion of our retail boxes damaged in shipping.

Production w/ Friends

Don’t do this if you have sizable quantities
And our original production process had the finished electronics being snapped into the enclosure by me and some friends. This is okay for a few hundred units, but not for 6000.

Production!

But we got them built.

Time To Ship

And finally shipped all the hardware to our fulfillment house to be shipped to our backers.

Not Covered Here
■ Software Design & Implementation for multiple platforms ■ Shipping / Handling Logistics ■ Shipping Mistakes / Returns / Customs ■ Ongoing Customer Support

In blink(1)’s case, there’s a large aspect of the product that exists as software. And it has to exist on Mac, Windows, Linux, Raspberry Pi, WRT, Beaglebone, etc. And the Mac & Windows versions need to be user-friendly, stable, and have good design. This is something we definitely didn’t have much experience in and we should have started it much sooner. Shipping 6000 units to 2500 people means there’s lots of ways you can screw up shipments. Having a third-party help with this can save you from going crazy but even they will make mistakes. And even if you don’t make any obvious mistakes in packing & addressing, international orders have an additional level of complexity. And even if you get all that correct, your shipments may still be held up in customs for no understandable reason. Particularly if it’s German customs, for some reason. And the most important thing to consider is that you’re making a product. You will have ongoing customer support questions to handle. You will need to put in place mechanisms to help people. But Kickstarter is a great community to get to try your product. They are curious, eager to help you do well, and love to see the details of how you’re doing what you’re doing. Show them your mistakes, even though it pains you. Part of the fun of being a Kickstarter backer is learning how people go about creating, so don’t deprive backers of the full story. Show them your successes and your mistakes.

What’s Next?
■ Improve the hardware ■ Improve the software ■ Find better manufacturing partner ■ Streamline fulfillment with resellers ■ Increase production

For blink(1), we’re still working on it. We’re working on a improving the hardware to work on even more USB hosts. We’re planning a major update to the software that will be easier and more powerful. We’re also looking at different ways of manufacturing. We used the same company we used for BlinkMs, who is a great PCB and assembly company, but doesn’t do retail packaging. Maybe we find someone who can do everything. We’re also trying to get blink(1)s out there quicker and more efficiently by finding resellers (particularly in EU) And once we have those in place, we can really ramp up production.

Thank You
@thingm / @todbot http://thingm.com/ http://todbot.com/blog/

Please feel free to contact me if you’d like to learn more. Thank you!

Sign up to vote on this title
UsefulNot useful