You are on page 1of 30

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 Notication Light

What is blink(1)? Its 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 ashing 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 rst, 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 weve sold tens of thousands of units of. Heres 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 dont want to use an Arduino. And since all BlinkMs use the same class of AVR chip thats in an Arduino, you can reprogram any BlinkM to run Arduino sketches. You might think that since weve had so much experience in manufacturing, blink(1) wouldve 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 weve done. In one since, it took less time, because if we didnt focus so much on the enclosure and software, we couldve made it to Kickstarter faster. In our paticular case, it took longer because Ive 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 doesnt 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 wouldve done better by focussing on the non-hardware aspects earlier.

How it Started
a.k.a my rst 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 benets 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. Its 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-modied 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. nal 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 rst 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), lets 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 akey electrical connections.

Enclosure Visualization

And with 3D models of the circuit board, we can start tting it into enclosure ideas to see how things might all go together. Its 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 dont have the same resolution as injection-molding, so we had to intuit a bit what was actually possible for the ner 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 nalized the design and started getting production quotes. And we found that some aspects of our design werent actually manufacturable. 3d printers and injection molding & CNC techniques have different requirements on whats 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! Youre 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

Dont do this if you have sizable quantities


And our original production process had the nished 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 nally shipped all the hardware to our fulllment 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, theres 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 denitely didnt have much experience in and we should have started it much sooner. Shipping 6000 units to 2500 people means theres 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 dont 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 its German customs, for some reason. And the most important thing to consider is that youre 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 youre doing what youre 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 dont deprive backers of the full story. Show them your successes and your mistakes.

Whats Next?
Improve the hardware Improve the software Find better manufacturing partner Streamline fulllment with resellers Increase production

For blink(1), were still working on it. Were working on a improving the hardware to work on even more USB hosts. Were planning a major update to the software that will be easier and more powerful. Were 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 doesnt do retail packaging. Maybe we nd someone who can do everything. Were also trying to get blink(1)s out there quicker and more efficiently by nding 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 youd like to learn more. Thank you!

You might also like