SlideShare uma empresa Scribd logo
1 de 25
Baixar para ler offline
From Prototype
to Production
via Kickstarter
How blink(1) was made
Hackaday 10th Anniversary
4 Oct 2014
todbot / Tod E. Kurt
Tuesday, June 23, 15
Alternate title of this talk
Alternate title:
How to fail multiple times
and still ship 20k units
Tuesday, June 23, 15
Tuesday, June 23, 15
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. So in 2013, we decided to
do it again.
What I do
wiichuck adapter
ScrewShield
Crystal Monster
NCM Cash Machine
Spooky Arduino
Tuesday, June 23, 15
But first, who am I? I’ve been playing with Arduino since the beginning, creating a set of
Arduino tutorials in 2006 that still find use today. I make open source tools for the Arduino
community like the WingShield and the Wiichuck adapter. I co-founded a hackerspace in Los
Angeles, and sometimes I make big kinetic art installations with others. But I mainly do
ThingM & blink(1).
(2006)
Tuesday, June 23, 15
Hackaday came around right as I was leaving the dotcom and JPL space. It was exactly the
kind of site I needed and its coverage of my Roomba hacks led to my book deal to write the
book on Roomba hacks, called “Hacking Roomba”.
What is blink(1)?
USB RGB LED, that’s it.
Tuesday, June 23, 15
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.
Connect the Cloud to a Color via IFTTT
or, Connect System Events to a Color
Tuesday, June 23, 15
Via IFTTT or your own code, you can hook blink(1) up to events in the cloud.
Pixar
Microsoft
Sharp
CBS Sports
fluke
PARC
Twitter
Facebook
Adobe
Shutterfly
Sony Pictures
Autodesk
Google
Disney
University of California
among others
C / C++
Java
Processing
C# / .NET
command-line
Go
Python
Ruby
NodeJS
Linux kernel
APIs Used by
#	
  cd	
  /sys/class/leds/blink(1)::1234	
  
#	
  echo	
  200	
  >	
  fade	
  
#	
  echo	
  FF0000	
  >	
  rgb	
  
#	
  echo	
  255	
  >	
  brightness	
  
#	
  echo	
  0	
  >	
  brightness
entirely open source & USB HID so no drivers
Tuesday, June 23, 15
blink(1) is entirely open source. We have APIs in just about every language, including being
part of the main Linux kernel branch. blink(1) devices are used by many large companies for
server status notification or cube presence indicators.
How it Started / “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 );
}
(~2006)
Tuesday, June 23, 15
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. And one of the first sketches I (or anyone really)
wrote was one to control an RGB LED via USB.
AVR USB RGB LED FOB
AVR USB RGB LED FOB (2007)
Tuesday, June 23, 15
I also was experimenting with USB around that time. In 2007 I strapped an RGB LED to my
USB research board and created the “AVR USB RGB LED FOB”. This used lightly-modified
Arduino sketches plopped into an “AVR-USB” demo.
idea prototype kickstarter production
2 weeks 3 months 1 month 3 months
1st Kickstarter
(+5 years)
Tuesday, June 23, 15
The idea of a USB LED just kind of sat there for about five years while I and ThingM did a
bunch of ubicomp & Internet of Things work. Eventually we came back to a USB RGB LED and
thought a Kickstarter would be a great way to help cover the startup costs of doing a real
retail product.
More Details than Kits
Enclosure Design Packaging Design
End-user Apps
Tuesday, June 23, 15
Retail products have a lot of parts that kits or prototyping hardware don’t have to deal with:
enclosures, packaging, friendly software
So of course we had problems
Tuesday, June 23, 15
Production Problems
Bad CNC
Bad Packaging
Tuesday, June 23, 15
Production w/ Friends
We’re not a pizza-based economy. Don’t do this
Tuesday, June 23, 15
2nd Kickstarter
■ It’ll be so much easier!
■ Fix USB compatibility w/ awesome new PIC16F1455
■ Redesign to use WS2812
■ Hire proper dev team for GUI application
■ A slam dunk. We’ll be done in two months
Tuesday, June 23, 15
So of course we had new problems
Tuesday, June 23, 15
Chips? What chips?
These are all I could get for 6 months
Tuesday, June 23, 15
WS2812 LED timing, sigh.
Turns out not all WS2812s are created equal
Tuesday, June 23, 15
Post-production Problems
Tuesday, June 23, 15
Cross-platform Open Source
Application Development is Hard
Pick the wrong dev team, lose 4 months, do not collect $200
Tuesday, June 23, 15
But we shipped!
~20k units now
Tuesday, June 23, 15
Lessons
■ Friends don’t use friends for production
■ Lock-down inventory for any single-source component
■ Test hardware on different batches of critical components
■ If contracting s/w dev teams, parcel out smaller work units
■ Use Kickstarter to bootstrap production, not fully fund
for anyone else doing hardware products
Tuesday, June 23, 15
What’s Next?
■ Another 10k production run starting now, with SeeedStudio
■ Update IFTTT functionality & Improve the GUI app
■ Continue looking at business case for wireless version (BLE or WiFi)
& MORE LEDS!!!
Tuesday, June 23, 15
@todbot / @thingm
http://thingm.com/
http://todbot.com/blog/
Thank You
Tuesday, June 23, 15

Mais conteúdo relacionado

Semelhante a How blink(1) was made – Hackaday 10th anniversary talk

The Rise of Maker Movement in Indonesia
The Rise of Maker Movement in IndonesiaThe Rise of Maker Movement in Indonesia
The Rise of Maker Movement in IndonesiaAndri Yadi
 
Advanced View Arduino Projects List - Use Arduino for Projects-3.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-3.pdfAdvanced View Arduino Projects List - Use Arduino for Projects-3.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-3.pdfWiseNaeem
 
Advanced View Arduino Projects List - Use Arduino for Projects-3.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-3.pdfAdvanced View Arduino Projects List - Use Arduino for Projects-3.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-3.pdfWiseNaeem
 
Prototyping in code
Prototyping in codePrototyping in code
Prototyping in codeMarcin Ignac
 
Advanced View Arduino Projects List - Use Arduino for Projects.pdf
Advanced View Arduino Projects List - Use Arduino for Projects.pdfAdvanced View Arduino Projects List - Use Arduino for Projects.pdf
Advanced View Arduino Projects List - Use Arduino for Projects.pdfIsmailkhan77481
 
Advanced View Arduino Projects List - Use Arduino for Projects-2.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-2.pdfAdvanced View Arduino Projects List - Use Arduino for Projects-2.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-2.pdfWiseNaeem
 
Advanced View Arduino Projects List _ Use Arduino for Projects {2}.pdf
Advanced View Arduino Projects List _ Use Arduino for Projects {2}.pdfAdvanced View Arduino Projects List _ Use Arduino for Projects {2}.pdf
Advanced View Arduino Projects List _ Use Arduino for Projects {2}.pdfWiseNaeem
 
Advanced View Arduino Projects List - Use Arduino for Projects (2).pdf
Advanced View Arduino Projects List - Use Arduino for Projects (2).pdfAdvanced View Arduino Projects List - Use Arduino for Projects (2).pdf
Advanced View Arduino Projects List - Use Arduino for Projects (2).pdfIsmailkhan77481
 
Advanced View Arduino Projects List - Use Arduino for Projects-2.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-2.pdfAdvanced View Arduino Projects List - Use Arduino for Projects-2.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-2.pdfWiseNaeem
 
Advanced View Arduino Projects List - Use Arduino for Projects-5.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-5.pdfAdvanced View Arduino Projects List - Use Arduino for Projects-5.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-5.pdfWiseNaeem
 
Advanced View Arduino Projects List - Use Arduino for Projects 2.pdf
Advanced View Arduino Projects List - Use Arduino for Projects 2.pdfAdvanced View Arduino Projects List - Use Arduino for Projects 2.pdf
Advanced View Arduino Projects List - Use Arduino for Projects 2.pdfWiseNaeem
 
Advanced View Arduino Projects List - Use Arduino for Projects-3.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-3.pdfAdvanced View Arduino Projects List - Use Arduino for Projects-3.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-3.pdfWiseNaeem
 
Advanced View Arduino Projects List - Use Arduino for Projects-2.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-2.pdfAdvanced View Arduino Projects List - Use Arduino for Projects-2.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-2.pdfWiseNaeem
 
Advanced View Arduino Projects List - Use Arduino for Projects-5.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-5.pdfAdvanced View Arduino Projects List - Use Arduino for Projects-5.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-5.pdfWiseNaeem
 
Advanced View Arduino Projects List - Use Arduino for Projects.pdf
Advanced View Arduino Projects List - Use Arduino for Projects.pdfAdvanced View Arduino Projects List - Use Arduino for Projects.pdf
Advanced View Arduino Projects List - Use Arduino for Projects.pdfIsmailkhan77481
 
Advanced View Arduino Projects List - Use Arduino for Projects 3.pdf
Advanced View Arduino Projects List - Use Arduino for Projects 3.pdfAdvanced View Arduino Projects List - Use Arduino for Projects 3.pdf
Advanced View Arduino Projects List - Use Arduino for Projects 3.pdfWiseNaeem
 
Advanced View Arduino Projects List - Use Arduino for Projects-2.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-2.pdfAdvanced View Arduino Projects List - Use Arduino for Projects-2.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-2.pdfWiseNaeem
 

Semelhante a How blink(1) was made – Hackaday 10th anniversary talk (20)

The Rise of Maker Movement in Indonesia
The Rise of Maker Movement in IndonesiaThe Rise of Maker Movement in Indonesia
The Rise of Maker Movement in Indonesia
 
Tod kurt
Tod kurtTod kurt
Tod kurt
 
Advanced View Arduino Projects List - Use Arduino for Projects-3.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-3.pdfAdvanced View Arduino Projects List - Use Arduino for Projects-3.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-3.pdf
 
Advanced View Arduino Projects List - Use Arduino for Projects-3.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-3.pdfAdvanced View Arduino Projects List - Use Arduino for Projects-3.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-3.pdf
 
Prototyping in code
Prototyping in codePrototyping in code
Prototyping in code
 
Advanced View Arduino Projects List - Use Arduino for Projects.pdf
Advanced View Arduino Projects List - Use Arduino for Projects.pdfAdvanced View Arduino Projects List - Use Arduino for Projects.pdf
Advanced View Arduino Projects List - Use Arduino for Projects.pdf
 
Advanced View Arduino Projects List - Use Arduino for Projects-2.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-2.pdfAdvanced View Arduino Projects List - Use Arduino for Projects-2.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-2.pdf
 
Advanced View Arduino Projects List _ Use Arduino for Projects {2}.pdf
Advanced View Arduino Projects List _ Use Arduino for Projects {2}.pdfAdvanced View Arduino Projects List _ Use Arduino for Projects {2}.pdf
Advanced View Arduino Projects List _ Use Arduino for Projects {2}.pdf
 
Advanced View Arduino Projects List - Use Arduino for Projects (2).pdf
Advanced View Arduino Projects List - Use Arduino for Projects (2).pdfAdvanced View Arduino Projects List - Use Arduino for Projects (2).pdf
Advanced View Arduino Projects List - Use Arduino for Projects (2).pdf
 
Advanced View Arduino Projects List - Use Arduino for Projects-2.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-2.pdfAdvanced View Arduino Projects List - Use Arduino for Projects-2.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-2.pdf
 
Solid 2014 kobayashi
Solid 2014 kobayashiSolid 2014 kobayashi
Solid 2014 kobayashi
 
Sketching in Code
Sketching in CodeSketching in Code
Sketching in Code
 
Advanced View Arduino Projects List - Use Arduino for Projects-5.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-5.pdfAdvanced View Arduino Projects List - Use Arduino for Projects-5.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-5.pdf
 
Advanced View Arduino Projects List - Use Arduino for Projects 2.pdf
Advanced View Arduino Projects List - Use Arduino for Projects 2.pdfAdvanced View Arduino Projects List - Use Arduino for Projects 2.pdf
Advanced View Arduino Projects List - Use Arduino for Projects 2.pdf
 
Advanced View Arduino Projects List - Use Arduino for Projects-3.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-3.pdfAdvanced View Arduino Projects List - Use Arduino for Projects-3.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-3.pdf
 
Advanced View Arduino Projects List - Use Arduino for Projects-2.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-2.pdfAdvanced View Arduino Projects List - Use Arduino for Projects-2.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-2.pdf
 
Advanced View Arduino Projects List - Use Arduino for Projects-5.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-5.pdfAdvanced View Arduino Projects List - Use Arduino for Projects-5.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-5.pdf
 
Advanced View Arduino Projects List - Use Arduino for Projects.pdf
Advanced View Arduino Projects List - Use Arduino for Projects.pdfAdvanced View Arduino Projects List - Use Arduino for Projects.pdf
Advanced View Arduino Projects List - Use Arduino for Projects.pdf
 
Advanced View Arduino Projects List - Use Arduino for Projects 3.pdf
Advanced View Arduino Projects List - Use Arduino for Projects 3.pdfAdvanced View Arduino Projects List - Use Arduino for Projects 3.pdf
Advanced View Arduino Projects List - Use Arduino for Projects 3.pdf
 
Advanced View Arduino Projects List - Use Arduino for Projects-2.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-2.pdfAdvanced View Arduino Projects List - Use Arduino for Projects-2.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-2.pdf
 

Último

ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024SynarionITSolutions
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 

Último (20)

ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 

How blink(1) was made – Hackaday 10th anniversary talk

  • 1. From Prototype to Production via Kickstarter How blink(1) was made Hackaday 10th Anniversary 4 Oct 2014 todbot / Tod E. Kurt Tuesday, June 23, 15
  • 2. Alternate title of this talk Alternate title: How to fail multiple times and still ship 20k units Tuesday, June 23, 15
  • 3. Tuesday, June 23, 15 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. So in 2013, we decided to do it again.
  • 4. What I do wiichuck adapter ScrewShield Crystal Monster NCM Cash Machine Spooky Arduino Tuesday, June 23, 15 But first, who am I? I’ve been playing with Arduino since the beginning, creating a set of Arduino tutorials in 2006 that still find use today. I make open source tools for the Arduino community like the WingShield and the Wiichuck adapter. I co-founded a hackerspace in Los Angeles, and sometimes I make big kinetic art installations with others. But I mainly do ThingM & blink(1).
  • 5. (2006) Tuesday, June 23, 15 Hackaday came around right as I was leaving the dotcom and JPL space. It was exactly the kind of site I needed and its coverage of my Roomba hacks led to my book deal to write the book on Roomba hacks, called “Hacking Roomba”.
  • 6. What is blink(1)? USB RGB LED, that’s it. Tuesday, June 23, 15 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.
  • 7. Connect the Cloud to a Color via IFTTT or, Connect System Events to a Color Tuesday, June 23, 15 Via IFTTT or your own code, you can hook blink(1) up to events in the cloud.
  • 8. Pixar Microsoft Sharp CBS Sports fluke PARC Twitter Facebook Adobe Shutterfly Sony Pictures Autodesk Google Disney University of California among others C / C++ Java Processing C# / .NET command-line Go Python Ruby NodeJS Linux kernel APIs Used by #  cd  /sys/class/leds/blink(1)::1234   #  echo  200  >  fade   #  echo  FF0000  >  rgb   #  echo  255  >  brightness   #  echo  0  >  brightness entirely open source & USB HID so no drivers Tuesday, June 23, 15 blink(1) is entirely open source. We have APIs in just about every language, including being part of the main Linux kernel branch. blink(1) devices are used by many large companies for server status notification or cube presence indicators.
  • 9. How it Started / “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 ); } (~2006) Tuesday, June 23, 15 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. And one of the first sketches I (or anyone really) wrote was one to control an RGB LED via USB.
  • 10. AVR USB RGB LED FOB AVR USB RGB LED FOB (2007) Tuesday, June 23, 15 I also was experimenting with USB around that time. In 2007 I strapped an RGB LED to my USB research board and created the “AVR USB RGB LED FOB”. This used lightly-modified Arduino sketches plopped into an “AVR-USB” demo.
  • 11. idea prototype kickstarter production 2 weeks 3 months 1 month 3 months 1st Kickstarter (+5 years) Tuesday, June 23, 15 The idea of a USB LED just kind of sat there for about five years while I and ThingM did a bunch of ubicomp & Internet of Things work. Eventually we came back to a USB RGB LED and thought a Kickstarter would be a great way to help cover the startup costs of doing a real retail product.
  • 12. More Details than Kits Enclosure Design Packaging Design End-user Apps Tuesday, June 23, 15 Retail products have a lot of parts that kits or prototyping hardware don’t have to deal with: enclosures, packaging, friendly software
  • 13. So of course we had problems Tuesday, June 23, 15
  • 14. Production Problems Bad CNC Bad Packaging Tuesday, June 23, 15
  • 15. Production w/ Friends We’re not a pizza-based economy. Don’t do this Tuesday, June 23, 15
  • 16. 2nd Kickstarter ■ It’ll be so much easier! ■ Fix USB compatibility w/ awesome new PIC16F1455 ■ Redesign to use WS2812 ■ Hire proper dev team for GUI application ■ A slam dunk. We’ll be done in two months Tuesday, June 23, 15
  • 17. So of course we had new problems Tuesday, June 23, 15
  • 18. Chips? What chips? These are all I could get for 6 months Tuesday, June 23, 15
  • 19. WS2812 LED timing, sigh. Turns out not all WS2812s are created equal Tuesday, June 23, 15
  • 21. Cross-platform Open Source Application Development is Hard Pick the wrong dev team, lose 4 months, do not collect $200 Tuesday, June 23, 15
  • 22. But we shipped! ~20k units now Tuesday, June 23, 15
  • 23. Lessons ■ Friends don’t use friends for production ■ Lock-down inventory for any single-source component ■ Test hardware on different batches of critical components ■ If contracting s/w dev teams, parcel out smaller work units ■ Use Kickstarter to bootstrap production, not fully fund for anyone else doing hardware products Tuesday, June 23, 15
  • 24. What’s Next? ■ Another 10k production run starting now, with SeeedStudio ■ Update IFTTT functionality & Improve the GUI app ■ Continue looking at business case for wireless version (BLE or WiFi) & MORE LEDS!!! Tuesday, June 23, 15