mirror of
git://projects.qi-hardware.com/wernermisc.git
synced 2024-11-28 07:58:26 +02:00
555 lines
15 KiB
TeX
555 lines
15 KiB
TeX
\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}
|