\documentclass[14pt,trans]{beamer}
\usepackage{color}
\usepackage{url}
\usepackage{colortbl}
\usepackage{soul}
\usefonttheme{structurebold}
\setbeamertemplate{navigation symbols}{}
\setbeamertemplate{items}[ball] 
%\setbeamersize{sidebar width left=-5mm}
\title{\Large Making Copyleft Hardware}
\author{Werner Almesberger \\\url{werner@almesberger.net}}
\date{June 30, 2011}

\setul{}{1.5pt}

\begin{document}

\begin{frame}
\titlepage
\end{frame}

% --- Overview ----------------------------------------------------------------

\begin{frame}{Overview}
\begin{itemize}
  \item Copyleft Hardware: what and why ?
  \item Tools
  \item Qi-Hardware projects
  \item DOs and DON'Ts
\end{itemize}
\end{frame}

% --- What is Copyleft Hardware -----------------------------------------------

\begin{frame}{What is Copyleft Hardware ?}
\begin{itemize}
  \item Principles similar to Free Software, \\
    applied to hardware
  \item Design {\color{red}\underline{and}} manufacturing
  \item All material under open licenses: \\
    GPL, GFDL, CC-BY, CC-BY-SA
  \item Friendly to Free Software
\end{itemize}
\end{frame}

% --- Hardware vs. Software ---------------------------------------------------

\begin{frame}{Hardware vs. Software}
\setlength\minrowclearance{4pt}
\setlength\arrayrulewidth{1pt}
\begin{tabular}{|l|l|l|}
  \hline
  \rowcolor[rgb]{0.9,0.9,0.5}
  \bf Concept		&\bf Software		& \bf Hardware \\
  \hline
  Source		& Program text		& Schematics, Layout \\
  \rowcolor[gray]{0.9}
  Editor		& Text editor		& EDA system \\
  Conversion		& Compiler, etc. 	& EDA system \\
  \rowcolor[gray]{0.9}
  Testing		& Run			& Prototype(s) \\
  Debugging		& Debugger		& Lab instruments \\
  \rowcolor[gray]{0.9}
  Duplication		& Download		& Manufacturing, \\
  \rowcolor[gray]{0.9}
			& (perfect copy)	& Testing \\
  Distribution		& Internet		& Shipping, Customs \\
  \hline
\end{tabular}
\end{frame}

% --- The Four Freedoms -------------------------------------------------------

\begin{frame}{The Four Freedoms}

According to The Free Software Definition: $[1]$

\begin{enumerate}
  \item[0]<2-> Run the program
    \begin{itemize}
       \item Use the hardware
    \end{itemize}
  \item[1]<3-> Study the source
    \begin{itemize}
      \item Study design files (schematics and layout)
    \end{itemize}
  \item[1]<4-> Adapt the source to your needs
    \begin{itemize}
      \item Adapt design files
      \item Access to the tools
    \end{itemize}
  \item[2$-$3]<5-> Redistribute copies (including modifications)
    \begin{itemize}
      \item Redistribute design files
      \item Build or produce the hardware
    \end{itemize}
\end{enumerate}

{\small $[1]$~\url{http://www.gnu.org/philosophy/free-sw.html}}
\end{frame}

% --- Why Copyleft Hardware ---------------------------------------------------

\begin{frame}{Why Copyleft Hardware ?}
One can $\ldots$
\setbeamertemplate{items}[default] 
\begin{itemize}
  \item learn from it (also small details)
  \item know what is happening inside the ``black box''
    \begin{itemize}
      \item No spyware
      \item Analyze (mis)behaviour
    \end{itemize}
  \item adapt design for new uses or contexts
  \item reuse parts of design in other projects
  \item achieve longevity by $\ldots$
    \begin{itemize}
      \item fixing/updating/enhancing the design
      \item repairing/modifying devices
      \item producing more/updated devices
    \end{itemize}
  \item choose suitable manufacturing site
\end{itemize}
\end{frame}

% --- Workflow ----------------------------------------------------------------

\begin{frame}{Workflow}
\begin{center}
  \includegraphics[width=1.1\textwidth]{flow.pdf}
\end{center}
\end{frame}

% --- Tools: KiCad ------------------------------------------------------------

\begin{frame}{Tools: KiCad}
\begin{center}
  \includegraphics[height=50mm]{kicad.png}
\end{center}
\begin{columns}
  \begin{column}{12cm}
    \begin{itemize}
      \item Main devs: Jean-Pierre Charras, Dick Hollenbeck
      \item Complete EDA solution
      \item Text files $\rightarrow$ extensible
      \item Free Software: GPL, LGPL
    \end{itemize}
  \end{column}
\end{columns}
\end{frame}

% --- Tools: Schematics History -----------------------------------------------

\begin{frame}{Tools: Schematics History}
\begin{center}
  \includegraphics[height=4.5cm]{schhist.png}
  \qquad
  \includegraphics[height=4cm]{USB.png}
\end{center}
\begin{itemize}
  \item Schematics revision history
  \item Visual highlighting of changes
  \item Web output (HTML, PNG, PDF)
\end{itemize}
\end{frame}

% --- Tools: Footprint Editor (fped) ------------------------------------------

\begin{frame}{Tools: Footprint Editor (fped)}
\begin{center}
  \includegraphics[height=6cm]{fped.png}
\end{center}
\begin{itemize}
  \item Parametric
  \item GUI or text-based
  \item Automatic measurements
\end{itemize}
\end{frame}

% --- More Tools --------------------------------------------------------------

\begin{frame}{More Tools}
\begin{columns}
  \begin{column}[l]{8cm}
    \begin{itemize}
      \item Data sheet viewer (dsv)
        \begin{itemize}
	  \item Work around non-distribution
	  \item Download and cache
	  \item Quick access \\
	    {\tt dsv mcu}
        \end{itemize}
      \item Gerber renderer (prettygerbv)
        \begin{itemize}
	  \item Combine Gerber and Excellon
	  \item Realistic coloring
        \end{itemize}
      \item BOM processor
        \begin{itemize}
	  \item Select components
	  \item Find best supplier
	  \item Make shopping list
        \end{itemize}
      \item Makefiles
        \begin{itemize}
	  \item Shortcuts
	  \item Fab output
        \end{itemize}
    \end{itemize}
  \end{column}

  \begin{column}[r]{4cm}
    \includegraphics[width=3cm]{atusb-front.png}
  \end{column}
\end{columns}
\end{frame}


% === Qi-Hardware =============================================================


% --- Qi-Hardware -------------------------------------------------------------

\begin{frame}{Qi-Hardware}
\begin{itemize}
  \item Started by ex-Openmokoers
  \item Collection of loosely connected projects
  \item Copyleft Hardware with Free Software
  \item Development and manufacturing
\end{itemize}

Products:
\begin{itemize}
  \item Ben NanoNote (Handheld computer)
  \item SIE (Development board)
  \item Universal Breakout Board (UBB)
  \item Ben-WPAN (IEEE 802.15.4 wireless)
  \item Milkymist One (FPGA-based Video synthesizer)
\end{itemize}
\end{frame}

% --- Ben NanoNote ------------------------------------------------------------

\begin{frame}{Ben NanoNote}

\begin{center}
  \includegraphics[height=2.5cm]{Nano_cola.jpg}
\end{center}
\begin{columns}
  \begin{column}[r]{6cm}
    \begin{itemize}
      \item Objective: validate manufacturing process
      \item OEM dictionary design
      \item Runs Linux: OpenWrt, Jlime (OE-based)
      \item 336 MHz MIPS CPU (Ingenic Jz4720)
      \item 32MB RAM, 2GB NAND
    \end{itemize}
  \end{column}
  \begin{column}[r]{6.5cm}
    \begin{itemize}
      \item QVGA LCD, keyboard
      \item USB device, 8:10 card, audio
      \item Manufactured by Sharism at Work Ltd.
      \item $\approx$1300 units sold
      \item Schematics open (KiCad)
    \end{itemize}
  \end{column}
\end{columns}
\end{frame}

% --- SIE ---------------------------------------------------------------------

\begin{frame}{SIE}

\begin{center}
  \includegraphics[width=38mm]{SIE_KICAD.png}
\end{center}

\begin{itemize}
  \item Objective: development board (educational)
  \item Loosely based on Ben design
  \item Joint work of
    \begin{itemize}
      \item Universidad Nacional de Colombia (UNAL)
      \item Tuxbrain S.L.
      \item Sharism Ltd.
    \end{itemize}
  \item Design 100\% open (with KiCad)
  \item Continues as Linux en-Caja
\end{itemize}
\end{frame}

% --- UBB ---------------------------------------------------------------------

\begin{frame}{UBB}

\includegraphics[width=40mm]{UBB_production_08.JPG}
\quad
\includegraphics[width=28mm]{ubb-vga-pub-plugged-medium.jpg}
\quad
\includegraphics[width=28mm]{ubb-vga-pub-1024-medium.jpg}

\vskip10mm

Universal Breakout Board
%\begin{columns}
%  \begin{column}[l]{8cm}
\begin{itemize}
  \item Objective: easy DIY connection to Ben
  \item Original idea by Rikard Lindstrom
  \item Design 100\% open (with KiCad)
  \item Manufactured by Tuxbrain S.L.
  \item Example: ubb-vga
\end{itemize}
\end{frame}

% --- Ben-WPAN ----------------------------------------------------------------

\begin{frame}{Ben-WPAN}

\begin{center}
  \includegraphics[width=30mm]{Atben_atusb_prod_03.jpg}
  \qquad
  \includegraphics[width=50mm]{Atben_atusb_prod_05.jpg}
\end{center}
\begin{columns}
  \begin{column}{12cm}
    \begin{itemize}
      \item Objective: unencumbered wireless for the Ben
      \item IEEE 802.15.4 (LR-WPAN)
      \item 250 kbps (2 Mbps non-standard)
      \item Ben 8:10 card (atben), USB (atusb)
      \item Designed by Werner Almesberger
      \item Design 100\% open (with KiCad)
      \item Largely automated fabrication workflow
      \item Manufactured by \st{Sharism} Tuxbrain S.L.
    \end{itemize}
  \end{column}
\end{columns}
\end{frame}

% --- Milkymist One -----------------------------------------------------------

\begin{frame}{Milkymist One}

\begin{columns}
  \begin{column}[l]{4cm}
   \includegraphics[width=5cm]{M1_dmx_video.jpg}
  \end{column}
  \begin{column}[r]{9cm}
    \begin{itemize}
      \item Video synthesizer
      \item By ``one man army'' Sebastien Bourdeauducq
      \item Video in/out, audio, Ethernet, USB host, MIDI, $\ldots$
      \item FPGA-based (Lattice LM32 core)
      \item Verilog under GPL
      \item Proprietary FPGA tools
      \item LLHDL: work on Open synthesis tool
      \item Design files open (use Altium)
      \item Manufactured by Sharism
    \end{itemize}
  \end{column}
\end{columns}
\end{frame}

% --- Freedoms Status ---------------------------------------------------------

\begin{frame}{Freedom Status}
\includegraphics[height=0.9\textheight]{achieve.pdf}
\end{frame}

% --- Running an Open Hardware Project ----------------------------------------

\begin{frame}{Running an Open Hardware Project}
\begin{columns}
  \begin{column}{12cm}
    \begin{itemize}
      \item Have clear objectives
      \item Create opportunities to participate
      \item Pick your challenges wisely
	\begin{itemize}
	  \item Set realistic goals
	  \item Know what you can sacrifice
	  \item Pay attention to manufacturability
	\end{itemize}
      \item Think about what follows
    \end{itemize}
  \end{column}
\end{columns}
\end{frame}

% --- Common Misconceptions ---------------------------------------------------

\begin{frame}{Common Misconceptions}
\begin{columns}
  \begin{column}{12cm}
    \begin{itemize}
      \item ``Let's make an iPhone/iPad''
	\begin{itemize}
	  \item Bleeding edge components are hard to get
	  \item They are hard to design for
	  \item They are expensive
	  \item There is fierce competition
	  \item You're joining the race late
	  \item ``Boy, did we patent it !''
	\end{itemize}
      \item ``There is no tomorrow'' or ``It must be perfect''
	\begin{itemize}
	  \item Rampant featuritis \\
	    $\Rightarrow$ Delays
	  \item Try to be as up to date as possible \\
	    $\Rightarrow$ Redesigns $\Leftrightarrow$ Delays
	\end{itemize}
    \end{itemize}
  \end{column}
\end{columns}
\end{frame}

% --- Sourcing Pitfalls -------------------------------------------------------

\begin{frame}{Sourcing Pitfalls}
\begin{columns}
  \begin{column}{12cm}
    \begin{itemize}
      \item ``I can get any chip I see on a vendor's Web site''
	\begin{itemize}
	  \item You are too small
	  \item Non-refundable fees
	  \item Consider documentation
	\end{itemize}
      \item ``Once a chip is announced, we can use it''
	\begin{itemize}
	  \item Delays until first (buggy) samples
	  \item Some chips are test balloons
	  \item Revisions may introduce drastic changes
	\end{itemize}
      \item Distributors
	\begin{itemize}
	  \item Even large distributors don't stock everything
	  \item Minimum Order Quantity
	  \item Lead time
	\end{itemize}
    \end{itemize}
  \end{column}
\end{columns}
\end{frame}

% --- Dodging Patents ---------------------------------------------------------

\begin{frame}{Dodging Patents}
Potential opponents:
\begin{itemize}
  \item Big players (Apple, Nokia, Oracle, $\ldots$)
  \item Licensing firms (Sisvel, MPEG-LA, $\ldots$)
  \item Patent trolls
\end{itemize}

Some avoidance strategies:
\begin{itemize}
  \item Do not sell hardware
  \item Stay remote, small, poor, and out of the news
  \item Use old technology
  \item Avoid areas of on-going patent wars: \\
    Mobile communication, A/V codecs, Multitouch, $\ldots$
  \item Hope for the best
\end{itemize}
\end{frame}

% --- Conclusion --------------------------------------------------------------

\begin{frame}{The Future}
\begin{itemize}
  \item Finishing Milkymist One
  \item Ben-WPAN firmware and Linux support
  \item Dreaming of Ya NanoNote
  \item Improve tools (BOM, LLHDL, layout history)
  \item Get better control of mechanical design
  \item Smarter marketing: sell our story better
\end{itemize}
\end{frame}

% --- URLs --------------------------------------------------------------

\begin{frame}{URLs}
This presentation: \\
\url{downloads.qi-hardware.com/people/werner/fisl12.pdf}
\vskip2mm
The Qi-Hardware project: \\
\url{www.qi-hardware.com/}
\vskip2mm
Schematics history: \\
\url{projects.qi-hardware.com/schhist/}
\vskip2mm
Footprint editor (fped): \\
\url{svn.openmoko.org/trunk/eda/fped/README}
\vskip2mm
Milkymist: \\
\url{milkymist.org/}
\end{frame}


\end{document}

% === Extra Slides ============================================================

% --- Similar Projects --------------------------------------------------------

\begin{frame}{Similar Projects}
\begin{itemize}
  \item Arduino
  \item OpenPandora
  \item Openmoko Freerunner
\end{itemize}
\end{frame}

% --- Arduino -----------------------------------------------------------------

\begin{frame}{Arduino}
\begin{itemize}
  \item Modular embedded system (AVR-based)
  \item Easy to use environment
  \item Very popular
  \item Active community
  \item CC-BY-SA, GPL, LGPL
  \item EDA system: EAGLE
  \item \url{http://arduino.cc/}
\end{itemize}
\end{frame}

% --- OpenPandora -------------------------------------------------------------

\begin{frame}{OpenPandora}
\begin{itemize}
  \item Non-open hardware
  \item A quagmire
\end{itemize}
\end{frame}

% --- Openmoko Freerunner -----------------------------------------------------

\begin{frame}{Openmoko FreeRunner}
\begin{itemize}
  \item GSM Smartphone
  \item Designed for Free Software
  \item Got a lot of attention
  \item ~10'000 units sold
  \item Openmoko Inc. changed course in 2009
  \item Schematics (PDF) available
  \item Design files (Mentor PADS) not available
  \item CAD files available
\end{itemize}
\end{frame}

\end{document}
