Werner's Miscellanea
Sign in or create your account | Project List | Help
Werner's Miscellanea Git Source Tree
Root/
Source at commit 1c331b3b5c91d51b1b5e1ea20bfca14e0204b8bc created 12 years 5 months ago. By Werner Almesberger, m1rc3/norruption/2/Makefile: target "tar" to collect raw data files needed for further analysis | |
---|---|
1 | \documentclass[14pt,trans]{beamer} |
2 | \usepackage{color} |
3 | \usepackage{url} |
4 | \usepackage{colortbl} |
5 | \usepackage{soul} |
6 | \usefonttheme{structurebold} |
7 | \setbeamertemplate{navigation symbols}{} |
8 | \setbeamertemplate{items}[ball] |
9 | %\setbeamersize{sidebar width left=-5mm} |
10 | \title{\Large Making Copyleft Hardware} |
11 | \author{Werner Almesberger \\\url{werner@almesberger.net}} |
12 | \date{June 30, 2011} |
13 | |
14 | \setul{}{1.5pt} |
15 | |
16 | \begin{document} |
17 | |
18 | \begin{frame} |
19 | \titlepage |
20 | \end{frame} |
21 | |
22 | % --- Overview ---------------------------------------------------------------- |
23 | |
24 | \begin{frame}{Overview} |
25 | \begin{itemize} |
26 | \item Copyleft Hardware: what and why ? |
27 | \item Tools |
28 | \item Qi-Hardware projects |
29 | \item DOs and DON'Ts |
30 | \end{itemize} |
31 | \end{frame} |
32 | |
33 | % --- What is Copyleft Hardware ----------------------------------------------- |
34 | |
35 | \begin{frame}{What is Copyleft Hardware ?} |
36 | \begin{itemize} |
37 | \item Principles similar to Free Software, \\ |
38 | applied to hardware |
39 | \item Design {\color{red}\underline{and}} manufacturing |
40 | \item All material under open licenses: \\ |
41 | GPL, GFDL, CC-BY, CC-BY-SA |
42 | \item Friendly to Free Software |
43 | \end{itemize} |
44 | \end{frame} |
45 | |
46 | % --- Hardware vs. Software --------------------------------------------------- |
47 | |
48 | \begin{frame}{Hardware vs. Software} |
49 | \setlength\minrowclearance{4pt} |
50 | \setlength\arrayrulewidth{1pt} |
51 | \begin{tabular}{|l|l|l|} |
52 | \hline |
53 | \rowcolor[rgb]{0.9,0.9,0.5} |
54 | \bf Concept &\bf Software & \bf Hardware \\ |
55 | \hline |
56 | Source & Program text & Schematics, Layout \\ |
57 | \rowcolor[gray]{0.9} |
58 | Editor & Text editor & EDA system \\ |
59 | Conversion & Compiler, etc. & EDA system \\ |
60 | \rowcolor[gray]{0.9} |
61 | Testing & Run & Prototype(s) \\ |
62 | Debugging & Debugger & Lab instruments \\ |
63 | \rowcolor[gray]{0.9} |
64 | Duplication & Download & Manufacturing, \\ |
65 | \rowcolor[gray]{0.9} |
66 | & (perfect copy) & Testing \\ |
67 | Distribution & Internet & Shipping, Customs \\ |
68 | \hline |
69 | \end{tabular} |
70 | \end{frame} |
71 | |
72 | % --- The Four Freedoms ------------------------------------------------------- |
73 | |
74 | \begin{frame}{The Four Freedoms} |
75 | |
76 | According to The Free Software Definition: $[1]$ |
77 | |
78 | \begin{enumerate} |
79 | \item[0]<2-> Run the program |
80 | \begin{itemize} |
81 | \item Use the hardware |
82 | \end{itemize} |
83 | \item[1]<3-> Study the source |
84 | \begin{itemize} |
85 | \item Study design files (schematics and layout) |
86 | \end{itemize} |
87 | \item[1]<4-> Adapt the source to your needs |
88 | \begin{itemize} |
89 | \item Adapt design files |
90 | \item Access to the tools |
91 | \end{itemize} |
92 | \item[2$-$3]<5-> Redistribute copies (including modifications) |
93 | \begin{itemize} |
94 | \item Redistribute design files |
95 | \item Build or produce the hardware |
96 | \end{itemize} |
97 | \end{enumerate} |
98 | |
99 | {\small $[1]$~\url{http://www.gnu.org/philosophy/free-sw.html}} |
100 | \end{frame} |
101 | |
102 | % --- Why Copyleft Hardware --------------------------------------------------- |
103 | |
104 | \begin{frame}{Why Copyleft Hardware ?} |
105 | One can $\ldots$ |
106 | \setbeamertemplate{items}[default] |
107 | \begin{itemize} |
108 | \item learn from it (also small details) |
109 | \item know what is happening inside the ``black box'' |
110 | \begin{itemize} |
111 | \item No spyware |
112 | \item Analyze (mis)behaviour |
113 | \end{itemize} |
114 | \item adapt design for new uses or contexts |
115 | \item reuse parts of design in other projects |
116 | \item achieve longevity by $\ldots$ |
117 | \begin{itemize} |
118 | \item fixing/updating/enhancing the design |
119 | \item repairing/modifying devices |
120 | \item producing more/updated devices |
121 | \end{itemize} |
122 | \item choose suitable manufacturing site |
123 | \end{itemize} |
124 | \end{frame} |
125 | |
126 | % --- Workflow ---------------------------------------------------------------- |
127 | |
128 | \begin{frame}{Workflow} |
129 | \begin{center} |
130 | \includegraphics[width=1.1\textwidth]{flow.pdf} |
131 | \end{center} |
132 | \end{frame} |
133 | |
134 | % --- Tools: KiCad ------------------------------------------------------------ |
135 | |
136 | \begin{frame}{Tools: KiCad} |
137 | \begin{center} |
138 | \includegraphics[height=50mm]{kicad.png} |
139 | \end{center} |
140 | \begin{columns} |
141 | \begin{column}{12cm} |
142 | \begin{itemize} |
143 | \item Main devs: Jean-Pierre Charras, Dick Hollenbeck |
144 | \item Complete EDA solution |
145 | \item Text files $\rightarrow$ extensible |
146 | \item Free Software: GPL, LGPL |
147 | \end{itemize} |
148 | \end{column} |
149 | \end{columns} |
150 | \end{frame} |
151 | |
152 | % --- Tools: Schematics History ----------------------------------------------- |
153 | |
154 | \begin{frame}{Tools: Schematics History} |
155 | \begin{center} |
156 | \includegraphics[height=4.5cm]{schhist.png} |
157 | \qquad |
158 | \includegraphics[height=4cm]{USB.png} |
159 | \end{center} |
160 | \begin{itemize} |
161 | \item Schematics revision history |
162 | \item Visual highlighting of changes |
163 | \item Web output (HTML, PNG, PDF) |
164 | \end{itemize} |
165 | \end{frame} |
166 | |
167 | % --- Tools: Footprint Editor (fped) ------------------------------------------ |
168 | |
169 | \begin{frame}{Tools: Footprint Editor (fped)} |
170 | \begin{center} |
171 | \includegraphics[height=6cm]{fped.png} |
172 | \end{center} |
173 | \begin{itemize} |
174 | \item Parametric |
175 | \item GUI or text-based |
176 | \item Automatic measurements |
177 | \end{itemize} |
178 | \end{frame} |
179 | |
180 | % --- More Tools -------------------------------------------------------------- |
181 | |
182 | \begin{frame}{More Tools} |
183 | \begin{columns} |
184 | \begin{column}[l]{8cm} |
185 | \begin{itemize} |
186 | \item Data sheet viewer (dsv) |
187 | \begin{itemize} |
188 | \item Work around non-distribution |
189 | \item Download and cache |
190 | \item Quick access \\ |
191 | {\tt dsv mcu} |
192 | \end{itemize} |
193 | \item Gerber renderer (prettygerbv) |
194 | \begin{itemize} |
195 | \item Combine Gerber and Excellon |
196 | \item Realistic coloring |
197 | \end{itemize} |
198 | \item BOM processor |
199 | \begin{itemize} |
200 | \item Select components |
201 | \item Find best supplier |
202 | \item Make shopping list |
203 | \end{itemize} |
204 | \item Makefiles |
205 | \begin{itemize} |
206 | \item Shortcuts |
207 | \item Fab output |
208 | \end{itemize} |
209 | \end{itemize} |
210 | \end{column} |
211 | |
212 | \begin{column}[r]{4cm} |
213 | \includegraphics[width=3cm]{atusb-front.png} |
214 | \end{column} |
215 | \end{columns} |
216 | \end{frame} |
217 | |
218 | |
219 | % === Qi-Hardware ============================================================= |
220 | |
221 | |
222 | % --- Qi-Hardware ------------------------------------------------------------- |
223 | |
224 | \begin{frame}{Qi-Hardware} |
225 | \begin{itemize} |
226 | \item Started by ex-Openmokoers |
227 | \item Collection of loosely connected projects |
228 | \item Copyleft Hardware with Free Software |
229 | \item Development and manufacturing |
230 | \end{itemize} |
231 | |
232 | Products: |
233 | \begin{itemize} |
234 | \item Ben NanoNote (Handheld computer) |
235 | \item SIE (Development board) |
236 | \item Universal Breakout Board (UBB) |
237 | \item Ben-WPAN (IEEE 802.15.4 wireless) |
238 | \item Milkymist One (FPGA-based Video synthesizer) |
239 | \end{itemize} |
240 | \end{frame} |
241 | |
242 | % --- Ben NanoNote ------------------------------------------------------------ |
243 | |
244 | \begin{frame}{Ben NanoNote} |
245 | |
246 | \begin{center} |
247 | \includegraphics[height=2.5cm]{Nano_cola.jpg} |
248 | \end{center} |
249 | \begin{columns} |
250 | \begin{column}[r]{6cm} |
251 | \begin{itemize} |
252 | \item Objective: validate manufacturing process |
253 | \item OEM dictionary design |
254 | \item Runs Linux: OpenWrt, Jlime (OE-based) |
255 | \item 336 MHz MIPS CPU (Ingenic Jz4720) |
256 | \item 32MB RAM, 2GB NAND |
257 | \end{itemize} |
258 | \end{column} |
259 | \begin{column}[r]{6.5cm} |
260 | \begin{itemize} |
261 | \item QVGA LCD, keyboard |
262 | \item USB device, 8:10 card, audio |
263 | \item Manufactured by Sharism at Work Ltd. |
264 | \item $\approx$1300 units sold |
265 | \item Schematics open (KiCad) |
266 | \end{itemize} |
267 | \end{column} |
268 | \end{columns} |
269 | \end{frame} |
270 | |
271 | % --- SIE --------------------------------------------------------------------- |
272 | |
273 | \begin{frame}{SIE} |
274 | |
275 | \begin{center} |
276 | \includegraphics[width=38mm]{SIE_KICAD.png} |
277 | \end{center} |
278 | |
279 | \begin{itemize} |
280 | \item Objective: development board (educational) |
281 | \item Loosely based on Ben design |
282 | \item Joint work of |
283 | \begin{itemize} |
284 | \item Universidad Nacional de Colombia (UNAL) |
285 | \item Tuxbrain S.L. |
286 | \item Sharism Ltd. |
287 | \end{itemize} |
288 | \item Design 100\% open (with KiCad) |
289 | \item Continues as Linux en-Caja |
290 | \end{itemize} |
291 | \end{frame} |
292 | |
293 | % --- UBB --------------------------------------------------------------------- |
294 | |
295 | \begin{frame}{UBB} |
296 | |
297 | \includegraphics[width=40mm]{UBB_production_08.JPG} |
298 | \quad |
299 | \includegraphics[width=28mm]{ubb-vga-pub-plugged-medium.jpg} |
300 | \quad |
301 | \includegraphics[width=28mm]{ubb-vga-pub-1024-medium.jpg} |
302 | |
303 | \vskip10mm |
304 | |
305 | Universal Breakout Board |
306 | %\begin{columns} |
307 | % \begin{column}[l]{8cm} |
308 | \begin{itemize} |
309 | \item Objective: easy DIY connection to Ben |
310 | \item Original idea by Rikard Lindstrom |
311 | \item Design 100\% open (with KiCad) |
312 | \item Manufactured by Tuxbrain S.L. |
313 | \item Example: ubb-vga |
314 | \end{itemize} |
315 | \end{frame} |
316 | |
317 | % --- Ben-WPAN ---------------------------------------------------------------- |
318 | |
319 | \begin{frame}{Ben-WPAN} |
320 | |
321 | \begin{center} |
322 | \includegraphics[width=30mm]{Atben_atusb_prod_03.jpg} |
323 | \qquad |
324 | \includegraphics[width=50mm]{Atben_atusb_prod_05.jpg} |
325 | \end{center} |
326 | \begin{columns} |
327 | \begin{column}{12cm} |
328 | \begin{itemize} |
329 | \item Objective: unencumbered wireless for the Ben |
330 | \item IEEE 802.15.4 (LR-WPAN) |
331 | \item 250 kbps (2 Mbps non-standard) |
332 | \item Ben 8:10 card (atben), USB (atusb) |
333 | \item Designed by Werner Almesberger |
334 | \item Design 100\% open (with KiCad) |
335 | \item Largely automated fabrication workflow |
336 | \item Manufactured by \st{Sharism} Tuxbrain S.L. |
337 | \end{itemize} |
338 | \end{column} |
339 | \end{columns} |
340 | \end{frame} |
341 | |
342 | % --- Milkymist One ----------------------------------------------------------- |
343 | |
344 | \begin{frame}{Milkymist One} |
345 | |
346 | \begin{columns} |
347 | \begin{column}[l]{4cm} |
348 | \includegraphics[width=5cm]{M1_dmx_video.jpg} |
349 | \end{column} |
350 | \begin{column}[r]{9cm} |
351 | \begin{itemize} |
352 | \item Video synthesizer |
353 | \item By ``one man army'' Sebastien Bourdeauducq |
354 | \item Video in/out, audio, Ethernet, USB host, MIDI, $\ldots$ |
355 | \item FPGA-based (Lattice LM32 core) |
356 | \item Verilog under GPL |
357 | \item Proprietary FPGA tools |
358 | \item LLHDL: work on Open synthesis tool |
359 | \item Design files open (use Altium) |
360 | \item Manufactured by Sharism |
361 | \end{itemize} |
362 | \end{column} |
363 | \end{columns} |
364 | \end{frame} |
365 | |
366 | % --- Freedoms Status --------------------------------------------------------- |
367 | |
368 | \begin{frame}{Freedom Status} |
369 | \includegraphics[height=0.9\textheight]{achieve.pdf} |
370 | \end{frame} |
371 | |
372 | % --- Running an Open Hardware Project ---------------------------------------- |
373 | |
374 | \begin{frame}{Running an Open Hardware Project} |
375 | \begin{columns} |
376 | \begin{column}{12cm} |
377 | \begin{itemize} |
378 | \item Have clear objectives |
379 | \item Create opportunities to participate |
380 | \item Pick your challenges wisely |
381 | \begin{itemize} |
382 | \item Set realistic goals |
383 | \item Know what you can sacrifice |
384 | \item Pay attention to manufacturability |
385 | \end{itemize} |
386 | \item Think about what follows |
387 | \end{itemize} |
388 | \end{column} |
389 | \end{columns} |
390 | \end{frame} |
391 | |
392 | % --- Common Misconceptions --------------------------------------------------- |
393 | |
394 | \begin{frame}{Common Misconceptions} |
395 | \begin{columns} |
396 | \begin{column}{12cm} |
397 | \begin{itemize} |
398 | \item ``Let's make an iPhone/iPad'' |
399 | \begin{itemize} |
400 | \item Bleeding edge components are hard to get |
401 | \item They are hard to design for |
402 | \item They are expensive |
403 | \item There is fierce competition |
404 | \item You're joining the race late |
405 | \item ``Boy, did we patent it !'' |
406 | \end{itemize} |
407 | \item ``There is no tomorrow'' or ``It must be perfect'' |
408 | \begin{itemize} |
409 | \item Rampant featuritis \\ |
410 | $\Rightarrow$ Delays |
411 | \item Try to be as up to date as possible \\ |
412 | $\Rightarrow$ Redesigns $\Leftrightarrow$ Delays |
413 | \end{itemize} |
414 | \end{itemize} |
415 | \end{column} |
416 | \end{columns} |
417 | \end{frame} |
418 | |
419 | % --- Sourcing Pitfalls ------------------------------------------------------- |
420 | |
421 | \begin{frame}{Sourcing Pitfalls} |
422 | \begin{columns} |
423 | \begin{column}{12cm} |
424 | \begin{itemize} |
425 | \item ``I can get any chip I see on a vendor's Web site'' |
426 | \begin{itemize} |
427 | \item You are too small |
428 | \item Non-refundable fees |
429 | \item Consider documentation |
430 | \end{itemize} |
431 | \item ``Once a chip is announced, we can use it'' |
432 | \begin{itemize} |
433 | \item Delays until first (buggy) samples |
434 | \item Some chips are test balloons |
435 | \item Revisions may introduce drastic changes |
436 | \end{itemize} |
437 | \item Distributors |
438 | \begin{itemize} |
439 | \item Even large distributors don't stock everything |
440 | \item Minimum Order Quantity |
441 | \item Lead time |
442 | \end{itemize} |
443 | \end{itemize} |
444 | \end{column} |
445 | \end{columns} |
446 | \end{frame} |
447 | |
448 | % --- Dodging Patents --------------------------------------------------------- |
449 | |
450 | \begin{frame}{Dodging Patents} |
451 | Potential opponents: |
452 | \begin{itemize} |
453 | \item Big players (Apple, Nokia, Oracle, $\ldots$) |
454 | \item Licensing firms (Sisvel, MPEG-LA, $\ldots$) |
455 | \item Patent trolls |
456 | \end{itemize} |
457 | |
458 | Some avoidance strategies: |
459 | \begin{itemize} |
460 | \item Do not sell hardware |
461 | \item Stay remote, small, poor, and out of the news |
462 | \item Use old technology |
463 | \item Avoid areas of on-going patent wars: \\ |
464 | Mobile communication, A/V codecs, Multitouch, $\ldots$ |
465 | \item Hope for the best |
466 | \end{itemize} |
467 | \end{frame} |
468 | |
469 | % --- Conclusion -------------------------------------------------------------- |
470 | |
471 | \begin{frame}{The Future} |
472 | \begin{itemize} |
473 | \item Finishing Milkymist One |
474 | \item Ben-WPAN firmware and Linux support |
475 | \item Dreaming of Ya NanoNote |
476 | \item Improve tools (BOM, LLHDL, layout history) |
477 | \item Get better control of mechanical design |
478 | \item Smarter marketing: sell our story better |
479 | \end{itemize} |
480 | \end{frame} |
481 | |
482 | % --- URLs -------------------------------------------------------------- |
483 | |
484 | \begin{frame}{URLs} |
485 | This presentation: \\ |
486 | \url{downloads.qi-hardware.com/people/werner/fisl12.pdf} |
487 | \vskip2mm |
488 | The Qi-Hardware project: \\ |
489 | \url{www.qi-hardware.com/} |
490 | \vskip2mm |
491 | Schematics history: \\ |
492 | \url{projects.qi-hardware.com/schhist/} |
493 | \vskip2mm |
494 | Footprint editor (fped): \\ |
495 | \url{svn.openmoko.org/trunk/eda/fped/README} |
496 | \vskip2mm |
497 | Milkymist: \\ |
498 | \url{milkymist.org/} |
499 | \end{frame} |
500 | |
501 | |
502 | \end{document} |
503 | |
504 | % === Extra Slides ============================================================ |
505 | |
506 | % --- Similar Projects -------------------------------------------------------- |
507 | |
508 | \begin{frame}{Similar Projects} |
509 | \begin{itemize} |
510 | \item Arduino |
511 | \item OpenPandora |
512 | \item Openmoko Freerunner |
513 | \end{itemize} |
514 | \end{frame} |
515 | |
516 | % --- Arduino ----------------------------------------------------------------- |
517 | |
518 | \begin{frame}{Arduino} |
519 | \begin{itemize} |
520 | \item Modular embedded system (AVR-based) |
521 | \item Easy to use environment |
522 | \item Very popular |
523 | \item Active community |
524 | \item CC-BY-SA, GPL, LGPL |
525 | \item EDA system: EAGLE |
526 | \item \url{http://arduino.cc/} |
527 | \end{itemize} |
528 | \end{frame} |
529 | |
530 | % --- OpenPandora ------------------------------------------------------------- |
531 | |
532 | \begin{frame}{OpenPandora} |
533 | \begin{itemize} |
534 | \item Non-open hardware |
535 | \item A quagmire |
536 | \end{itemize} |
537 | \end{frame} |
538 | |
539 | % --- Openmoko Freerunner ----------------------------------------------------- |
540 | |
541 | \begin{frame}{Openmoko FreeRunner} |
542 | \begin{itemize} |
543 | \item GSM Smartphone |
544 | \item Designed for Free Software |
545 | \item Got a lot of attention |
546 | \item ~10'000 units sold |
547 | \item Openmoko Inc. changed course in 2009 |
548 | \item Schematics (PDF) available |
549 | \item Design files (Mentor PADS) not available |
550 | \item CAD files available |
551 | \end{itemize} |
552 | \end{frame} |
553 | |
554 | \end{document} |
555 |
Branches:
master