Werner's Miscellanea
Sign in or create your account | Project List | Help
Werner's Miscellanea Commit Details
Date: | 2012-07-22 06:02:40 (11 years 8 months ago) |
---|---|
Author: | Werner Almesberger |
Commit: | cd806472730585efe99a13640560ff7104ded631 |
Message: | fisl2012/: first outline of FISL13 talk; abstract and biography Grmbl. Some junk ended up in this commit as well. Don't dare to disentangle the mess. |
Files: |
bacon/case/Makefile (4 diffs) bacon/case/cam.sh (1 diff) bacon/case/case.fpd (4 diffs) fisl2012/Makefile (1 diff) fisl2012/abstract.txt (1 diff) fisl2012/bio.txt (1 diff) fisl2012/talk.tex (1 diff) ircstat/ML (2 diffs) |
Change Details
bacon/case/Makefile | ||
---|---|---|
17 | 17 | # Z1 = -44 |
18 | 18 | # PIECE_Z = 7.9 |
19 | 19 | |
20 | X0 = 5 | |
21 | Y0 = 45 | |
22 | Z1 = -44 | |
20 | # run with acrylic (corner at 4, 0) | |
21 | # #1: 15, 10 | |
22 | # #2: 15, 50 | |
23 | # #3: 80, 10 | |
24 | # PIECE_Z = 5.15 | |
25 | ||
26 | X0 = 80 | |
27 | Y0 = 10 | |
28 | Z1 = -45 | |
23 | 29 | PIECE = -5 -5 30 55 |
24 | PIECE_Z = 5.5 | |
30 | PIECE_Z = 5.15 | |
25 | 31 | Z_STEP = 2 |
26 | 32 | CLEARANCE = 2 |
27 | 33 | SPEED_XY = 1 |
... | ... | |
32 | 38 | FIN_SPEED_XY = 3 |
33 | 39 | FIN_SPEED_Z = 3 |
34 | 40 | |
35 | PARAMS = X0=$(X0)mm Y0=$(Y0)mm Z1=$(Z1)mm PIECE_Z=$(PIECE_Z)mm \ | |
41 | # acrylic | |
42 | # ~0.1 mm / 12 mil tool correction # not needed | |
43 | #MILL = 120mil | |
44 | SPEED_XY = 2 | |
45 | SPEED_Z = 2 | |
46 | FIN_SPEED_XY = 5 | |
47 | FIN_SPEED_Z = 5 | |
48 | ||
49 | PARAMS = X0=$(X0)mm Y0=$(Y0)mm Z1=$(Z1)mm MILL=$(MILL) PIECE_Z=$(PIECE_Z)mm \ | |
36 | 50 | Z_OFFSET=$(Z_OFFSET)mm |
37 | 51 | |
38 | 52 | PARTS = top mid bot |
39 | 53 | PART = top |
40 | 54 | |
41 | .PHONY: all plot mill pos cng clean | |
55 | .PHONY: all plot plot-fin mill pos cng clean | |
42 | 56 | |
43 | 57 | all: $(PART)-mill.rml $(PART)-finish.rml |
44 | 58 | |
... | ... | |
73 | 87 | $< >$@ || { rm -f $@; exit 1; } |
74 | 88 | |
75 | 89 | plot: $(PART)-mill.gp |
76 | echo 'splot "$(PART)-mill.gp" with lines' | gnuplot -persist | |
90 | echo 'splot "$<" with lines' | gnuplot -persist | |
91 | ||
92 | plot-fin: $(PART)-finish.gp | |
93 | echo 'splot "$<" with lines' | gnuplot -persist | |
77 | 94 | |
78 | 95 | mill: $(PART)-mill.rml $(PART)-finish.rml |
79 | 96 | PORT=/dev/ttyUSB0 $(SPOOL) $^ |
... | ... | |
88 | 105 | rm -f case.gp |
89 | 106 | rm -f $(PARTS:%=%-piece.gp) $(PARTS:%=%.gp) |
90 | 107 | rm -f $(PARTS:%=%-area.gp) |
91 | rm -f $(PARTS:%=%-mill.gp) $(PARTS:%=%-mill.rml) | |
92 | rm -f $(PARTS:%=%-finish.gp) $(PARTS:%=%-finish.rml) | |
108 | rm -f $(PARTS:%=%-mill.gp) | |
109 | rm -f $(PARTS:%=%-finish.gp) | |
110 | ||
111 | spotless: clean | |
112 | rm -f $(PARTS:%=%-mill.rml) | |
113 | rm -f $(PARTS:%=%-finish.rml) |
bacon/case/cam.sh | ||
---|---|---|
5 | 5 | done |
6 | 6 | |
7 | 7 | : ${MILL:=125mil} |
8 | : ${OVERLAP:=0.5mm} | |
8 | : ${OVERLAP:=1.6mm} | |
9 | 9 | : ${X0:=0mm} |
10 | 10 | : ${Y0:=0mm} |
11 | 11 | : ${Z1:=0mm} |
bacon/case/case.fpd | ||
---|---|---|
76 | 76 | frame top_pcb { |
77 | 77 | loop if = 1, top_pcb |
78 | 78 | |
79 | set off = topborder+topridge | |
79 | set inside = topborder+topridge | |
80 | 80 | |
81 | 81 | frame top_outline @ |
82 | ll: vec @(off, off) | |
83 | RRECT(pcb_, ll, width-2*off, length-2*off, ri_ridge) | |
82 | ro: vec @(topborder, topborder) | |
83 | ri: vec ro(topridge, topridge) | |
84 | RRECT(ridge_i_, ri, width-2*inside, length-2*inside, ri_ridge) | |
84 | 85 | } |
85 | 86 | |
86 | 87 | frame top_ridge { |
... | ... | |
264 | 265 | { part, z, top_surface, top_window, top_pcb, top_ridge, |
265 | 266 | mid_ridge, mid_pcb, mid_body, |
266 | 267 | bot_posts, bot_base, bot_surface} |
267 | { "top_surface", 2.5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } | |
268 | { "top_window", 1.5, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } | |
269 | // { "top_pcb", 0.5, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } | |
268 | { "top_surface", 3.3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } | |
269 | { "top_window", 2.3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } | |
270 | { "top_pcb", 1.2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } | |
270 | 271 | { "top_ridge", 0.5, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } |
271 | { "mid_ridge", 0.5, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } | |
272 | { "mid_pcb", 1.0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } | |
273 | { "mid_body", 4.5, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } | |
272 | { "mid_ridge", 0.6, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } | |
273 | { "mid_pcb", 1.2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } | |
274 | { "mid_body", 4.7, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } | |
274 | 275 | { "bot_posts", 1.2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } |
275 | 276 | { "bot_base", 2.0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } |
276 | 277 | { "bot_surface", 2.7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } |
... | ... | |
291 | 292 | |
292 | 293 | table |
293 | 294 | /* usb_roff = offset from right outer case edge */ |
295 | /* usb_d = 10 mm for prototypes (mini-USB); reduce to 6.0 mm for micro */ | |
294 | 296 | { usb_w, usb_d, usb_roff } |
295 | { 8.5mm, 6.0mm, 4.5mm } | |
297 | { 8.6mm, 10.0mm, 4.9mm } | |
296 | 298 | |
297 | 299 | table |
298 | 300 | /* post_y is from the edge of the battery bay. post_x is from the edge */ |
... | ... | |
331 | 333 | |
332 | 334 | measx top_outline.edge_ul -> top_outline.edge_ur 4mm |
333 | 335 | measy top_outline.edge_ll -> top_outline.edge_ul 4mm |
334 | measx top_pcb.pcb_ul -> top_pcb.pcb_ur 3mm | |
335 | measy top_pcb.pcb_ll -> top_pcb.pcb_ul 3mm | |
336 | //measx top_pcb.pcb_ul -> top_pcb.pcb_ur 3mm | |
337 | //measy top_pcb.pcb_ll -> top_pcb.pcb_ul 3mm | |
336 | 338 | |
337 | 339 | measx top_ridge.ridge_o_ul -> top_ridge.ridge_o_ur 4mm |
338 | 340 | measy top_ridge.ridge_o_ll -> top_ridge.ridge_o_ul 4mm |
fisl2012/Makefile | ||
---|---|---|
1 | SHELL=/bin/bash | |
2 | ||
3 | #DL=USB.png Nano_cola.jpg Atben_atusb_prod_03.jpg Atben_atusb_prod_05.jpg \ | |
4 | # M1_dmx_video.jpg \ | |
5 | # UBB_production_08.JPG ubb-vga-pub-plugged-medium.jpg \ | |
6 | # ubb-vga-pub-1024-medium.jpg SIE_KICAD.png | |
7 | #GEN=schhist.png fped.png kicad.png achieve.pdf flow.pdf | |
8 | #PNG=atusb-front.png | |
9 | ||
10 | .PHONY: spotless clean upload upload-es | |
11 | ||
12 | all: talk.pdf | |
13 | xpdf talk.pdf | |
14 | ||
15 | talk.pdf: talk.tex $(GEN) $(DL) $(PNG) | |
16 | pdflatex talk | |
17 | ||
18 | talk-es.pdf: talk-es.tex $(GEN) $(DL) $(PNG) | |
19 | pdflatex talk-es | |
20 | ||
21 | kicad.png: eeschema.xwd pcbnew.xwd | |
22 | pnmcomp -xoff=0 -yoff=300 \ | |
23 | <(convert eeschema.xwd ppm:-) \ | |
24 | <(convert pcbnew.xwd ppm:- | \ | |
25 | pnmpad -white -left=900 -bottom=300) | \ | |
26 | convert - $@ | |
27 | ||
28 | schhist.png: schhist.xwd | |
29 | convert $< $@ | |
30 | ||
31 | fped.png: fped.xwd | |
32 | convert $< $@ | |
33 | ||
34 | USB.png: | |
35 | wget http://projects.qi-hardware.com/schhist/atusb/847b3546d90d7271690bcd17014cf2cae9482538/diff/USB.png | |
36 | ||
37 | Nano_cola.jpg: | |
38 | wget http://en.qi-hardware.com/w/images/7/78/Nano_cola.jpg | |
39 | ||
40 | Atben_atusb_prod_03.jpg: | |
41 | wget http://en.qi-hardware.com/w/images/0/06/Atben_atusb_prod_03.jpg | |
42 | ||
43 | Atben_atusb_prod_05.jpg: | |
44 | wget http://en.qi-hardware.com/w/images/c/ce/Atben_atusb_prod_05.jpg | |
45 | ||
46 | M1_dmx_video.jpg: | |
47 | wget http://en.qi-hardware.com/w/images/5/55/M1_dmx_video.jpg | |
48 | ||
49 | UBB_production_08.JPG: | |
50 | wget http://en.qi-hardware.com/w/images/8/83/UBB_production_08.JPG | |
51 | ||
52 | ubb-vga-pub-plugged-medium.jpg: | |
53 | wget http://downloads.qi-hardware.com/people/werner/ubb/vga/web/ubb-vga-pub-plugged-medium.jpg | |
54 | ||
55 | ubb-vga-pub-1024-medium.jpg: | |
56 | wget http://downloads.qi-hardware.com/people/werner/ubb/vga/web/ubb-vga-pub-1024-medium.jpg | |
57 | ||
58 | SIE_KICAD.png: | |
59 | wget http://linuxencaja.com/images/9/9d/SIE_KICAD.png | |
60 | ||
61 | achieve.pdf: achieve.fig | |
62 | fig2dev -L pdf $< $@ | |
63 | ||
64 | flow.pdf: flow.fig | |
65 | fig2dev -L pdf $< $@ | |
66 | ||
67 | talk.ps: talk.pdf | |
68 | pdf2ps $< $@ | |
69 | ||
70 | p16: talk.ps | |
71 | mpage -8 $< | lpr | |
72 | ||
73 | spotless: | |
74 | rm -f $(DL) | |
75 | ||
76 | clean: | |
77 | rm -f $(GEN) talk.ps | |
78 | ||
79 | upload: talk.pdf | |
80 | qippl talk.pdf fisl13.pdf |
fisl2012/abstract.txt | ||
---|---|---|
1 | Making Hardware with KiCad and Friends | |
2 | ||
3 | KiCad is a well-established Open Source EDA suite that provides tools | |
4 | for most of the basic tasks in circuit design. In larger projects, | |
5 | and especially those of an open and collaborative nature, additional | |
6 | requirements appear that KiCad can only partially satisfy. | |
7 | ||
8 | Specifically, collaborative projects benefit from visualization that | |
9 | helps to quickly follow the work of others and to track a project's | |
10 | revision history. Furthermore, an automated and thus easily | |
11 | reproducible workflow lowers the barrier of entry and avoids costly | |
12 | mistakes. | |
13 | ||
14 | In the Qi-Hardware project, we use KiCad as the centerpiece for various | |
15 | hardware designs and enhance its functionality with patches or external | |
16 | programs. This presentation will describe the complete workflow from | |
17 | design to fabrication, introduce the various tools we use to complement | |
18 | KiCad, and also briefly address common design rules. |
fisl2012/bio.txt | ||
---|---|---|
1 | Werner got hooked on Linux in the days of the 0.12 kernel and started | |
2 | to get his hands dirty from early on with contributions like the LILO | |
3 | boot loader, the initial RAM disk (initrd), and the MS-DOS file system. | |
4 | Later activities led him into networking, with the Linux-ATM project as | |
5 | part of his PhD thesis, and he eventually landed in the Openmoko project. | |
6 | ||
7 | Having had a taste of hardware there, but eager to do more, he then | |
8 | journeyed deeper into the world of electronics and finally joined the | |
9 | Qi-Hardware project, where he now dabbles with making gadgets that aim | |
10 | to blend software and hardware under common principles of freedom. |
fisl2012/talk.tex | ||
---|---|---|
1 | \documentclass[14pt,trans]{beamer} | |
2 | \usepackage{color} | |
3 | \usepackage{url} | |
4 | \usepackage{colortbl} | |
5 | %\usepackage{soul} | |
6 | %\usepackage{verbatim} | |
7 | \usefonttheme{structurebold} | |
8 | \setbeamertemplate{navigation symbols}{} | |
9 | \setbeamertemplate{items}[ball] | |
10 | %\setbeamersize{sidebar width left=-5mm} | |
11 | \title{\Large Making Hardware with KiCad and Friends} | |
12 | \author{Werner Almesberger \\\url{werner@almesberger.net}} | |
13 | \date{July 21, 2012} | |
14 | ||
15 | %\setul{}{1.5pt} | |
16 | ||
17 | \begin{document} | |
18 | ||
19 | \begin{frame} | |
20 | \titlepage | |
21 | \end{frame} | |
22 | ||
23 | % --- Overview ---------------------------------------------------------------- | |
24 | ||
25 | \begin{frame}{Overview} | |
26 | \begin{itemize} | |
27 | \item KiCad introduction | |
28 | \item Qi-Hardware workflow | |
29 | \item $\dots$ and tools | |
30 | \end{itemize} | |
31 | ||
32 | \url{downloads.qi-hardware.com/people/werner/fisl13.pdf} | |
33 | \end{frame} | |
34 | ||
35 | % --- KiCad Introduction ------------------------------------------------------ | |
36 | ||
37 | \begin{frame}{KiCad} | |
38 | \begin{itemize} | |
39 | \item Complete EDA solution | |
40 | \item Free Software: GPL, LGPL | |
41 | \item Text files $\rightarrow$ extensible | |
42 | \item C++, wxWidgets | |
43 | \item Multi-platform: Linux, Windows, Mac | |
44 | \end{itemize} | |
45 | \end{frame} | |
46 | ||
47 | % --- Schematics -------------------------------------------------------------- | |
48 | ||
49 | \begin{frame}{KiCad: Schematics} | |
50 | eeschema + component editor: netlist, BOM | |
51 | ||
52 | SCREENSHOTS | |
53 | \end{frame} | |
54 | ||
55 | % --- Layout ------------------------------------------------------------------ | |
56 | ||
57 | \begin{frame}{KiCad: Layout} | |
58 | cvpcb + pcbnew + module editor -> gerbers (gerbv) | |
59 | ||
60 | SCREENSHOTS | |
61 | \end{frame} | |
62 | ||
63 | % --- Fped -------------------------------------------------------------------- | |
64 | ||
65 | \begin{frame}{Footprint Editor (fped)} | |
66 | %\begin{center} | |
67 | % \includegraphics[height=6cm]{fped.png} | |
68 | %\end{center} | |
69 | SCREENSHOT (highlight vector) | |
70 | ||
71 | \begin{itemize} | |
72 | \item Fully parametric | |
73 | \item Automated repetition (loops, tables, sub-frames) | |
74 | \item GUI or text-based | |
75 | \item Automatic measurements | |
76 | \item Output: KiCad, Postscript, Gnuplot | |
77 | \end{itemize} | |
78 | \end{frame} | |
79 | ||
80 | % --- Qi-Hardware ------------------------------------------------------------- | |
81 | ||
82 | \begin{frame}{Qi-Hardware} | |
83 | \begin{itemize} | |
84 | \item Collection of loosely connected projects | |
85 | \item Loose collective of like-minded developers | |
86 | \item Copyleft Hardware with Free Software | |
87 | \item Development and manufacturing | |
88 | \item Toolmaking | |
89 | \end{itemize} | |
90 | ||
91 | Products: | |
92 | \begin{itemize} | |
93 | \item Ben NanoNote (Handheld computer) | |
94 | \item Ben-WPAN (IEEE 802.15.4 wireless) | |
95 | \item Milkymist One (FPGA-based Video synthesizer) | |
96 | \end{itemize} | |
97 | \end{frame} | |
98 | ||
99 | % --- Collaborative Design ---------------------------------------------------- | |
100 | ||
101 | \begin{frame}{Collaborative Design} | |
102 | \begin{itemize} | |
103 | \item Track other people's work | |
104 | \item Review other people's work (libraries) | |
105 | \item Shared design information | |
106 | \item Shared version control (git) | |
107 | \item Shared procedures and rules | |
108 | \end{itemize} | |
109 | \end{frame} | |
110 | ||
111 | % --- KiCad Limitations ------------------------------------------------------- | |
112 | ||
113 | \begin{frame}{KiCad Limitations} | |
114 | \begin{itemize} | |
115 | \item No integrated version control system support | |
116 | \item Integration leads to weak peripheral tools | |
117 | \begin{itemize} | |
118 | \item Footprint editor | |
119 | \item Component catalog | |
120 | \item Module catalog | |
121 | \end{itemize} | |
122 | \item Scattered libraries CHECK | |
123 | \end{itemize} | |
124 | \end{frame} | |
125 | ||
126 | % --- Qi-Wardware Adaptation -------------------------------------------------- | |
127 | ||
128 | \begin{frame}{Qi-Hardware Adaptation} | |
129 | \begin{itemize} | |
130 | \item Command-line oriented use | |
131 | \item Extend KiCad with patches | |
132 | \item External scripts/programs | |
133 | \item Own component and module libraries with common rules | |
134 | \end{itemize} | |
135 | \end{frame} | |
136 | ||
137 | % --- What goes into git ------------------------------------------------------ | |
138 | ||
139 | \begin{frame}{What goes into git} | |
140 | KiCad: | |
141 | \begin{itemize} | |
142 | \item Project file: {\tt {\em project}.pro} | |
143 | \item Schematics: {\tt {\em project}.sch}, {\tt {\em subsheet}.sch} | |
144 | \item Footprint mapping: {\tt {\em project}.cmp} | |
145 | \item Layout: {\tt {\em project}.brd} | |
146 | \end{itemize} | |
147 | ||
148 | Qi-Hardware: | |
149 | \begin{itemize} | |
150 | \item Makefile ({\tt sch}, {\tt brd}, {\tt fab}, {\tt clean}) | |
151 | \item Bookshelf (for dsv) | |
152 | \item Project-local libraries | |
153 | \end{itemize} | |
154 | \end{frame} | |
155 | ||
156 | % --- What doesn't ------------------------------------------------------------ | |
157 | ||
158 | \begin{frame}{What doesn't} | |
159 | KiCad: | |
160 | \begin{itemize} | |
161 | \item Netlist: {\tt {\em project}.net} \\ | |
162 | Generate with eeschema from {\tt *.sch} and {\tt {\em project}.cmp} | |
163 | \item Caches and backups: {\tt {\em project}.bak}, {\tt {\em project}.000}, | |
164 | {\tt {\em project}-cache.lib} | |
165 | \item Postscript: {\tt {\em project}-{\em layer}.g{\em XX}} | |
166 | \item Gerbers: {\tt {\em project}-{\em layer}.g{\em XX}} | |
167 | \item BOMs: {\tt {\em project}.lst}, {\tt {\em project}.cvs} | |
168 | \item Fab outputs: {\tt {\em project}.drl}, {\tt {\em project}.pos} | |
169 | \item And so on: {\tt {\em project}.erc}, {\tt {\em project}.rpt}, | |
170 | {\tt {\em project}.wrl}, $\ldots$ | |
171 | \end{itemize} | |
172 | \end{frame} | |
173 | ||
174 | % --- Project File ------------------------------------------------------------ | |
175 | ||
176 | \begin{frame}{Project File} | |
177 | Project settings. Lists of libraries. | |
178 | ||
179 | Issues: | |
180 | \begin{itemize} | |
181 | \item Local absolute paths | |
182 | \item Default libraries | |
183 | \item Timestamps $\rightarrow$ commit noise | |
184 | \end{itemize} | |
185 | ||
186 | Solution: | |
187 | \begin{itemize} | |
188 | \item Maintain manually | |
189 | \item {\tt purge} script \\ | |
190 | \url{wernermisc/bin/purge} | |
191 | \end{itemize} | |
192 | \end{frame} | |
193 | ||
194 | % --- Makefile ---------------------------------------------------------------- | |
195 | ||
196 | \begin{frame}[fragile]{Makefile} | |
197 | Issues: | |
198 | \begin{itemize} | |
199 | \item Shortcuts | |
200 | \item Glue tools together | |
201 | \item Avoid mistakes | |
202 | \item Share common procedures | |
203 | \end{itemize} | |
204 | ||
205 | Example: | |
206 | \begin{verbatim} | |
207 | front: | |
208 | pcbnew --plot=ps --plot-fill-all-zones --layers=Front \ | |
209 | --plot-mirror $(PROJECT).brd | |
210 | lpr $(PROJECT)-Front.ps | |
211 | \end{verbatim} | |
212 | \end{frame} | |
213 | ||
214 | % --- KiCad Command-Line Patches ---------------------------------------------- | |
215 | ||
216 | \begin{frame}{KiCad Command-Line Patches} | |
217 | Original hack by Werner Almesberger, clean rewrite by Wolfgang Spraul. | |
218 | \begin{itemize} | |
219 | \item Idea: command-line access to main output functions | |
220 | \item eeschema | |
221 | \begin{itemize} | |
222 | \item Visualization: Postscript (and SVG, DXF) | |
223 | \item BOM $\rightarrow$ BOOM | |
224 | \item Netlist, ERC | |
225 | \end{itemize} | |
226 | \item pcbnew | |
227 | \begin{itemize} | |
228 | \item Fabrication: Gerbers, drill (Excellon), component positions | |
229 | \item Visualization and DIY: Postscript | |
230 | \item Attributes: mirror, size, origin, fill zones, $\ldots$ | |
231 | \end{itemize} | |
232 | \end{itemize} | |
233 | ||
234 | \url{eda-tools/kicad-patches} | |
235 | \end{frame} | |
236 | ||
237 | % --- Data Sheet Viewer (dsv) ------------------------------------------------- | |
238 | ||
239 | \begin{frame}[fragile]{Data Sheet Viewer (dsv)} | |
240 | \begin{itemize} | |
241 | \item Bookshelf: name and aliases $rightarrow$ PDF or ZIP with PDF | |
242 | \item Download (wget) to local cache | |
243 | \item Hierarchical lookup by name or alias | |
244 | \item Example: \\ | |
245 | {\tt dsv avr} $\rightarrow$ ATtiny87 ({\tt doc8265.pdf}) | |
246 | $\rightarrow$ xpdf | |
247 | \end{itemize} | |
248 | ||
249 | Bookshelf example: | |
250 | ||
251 | \begin{verbatim} | |
252 | N: attiny87 | |
253 | A: attiny167 | |
254 | A: avr | |
255 | D: http://www.atmel.com/Images/doc8265.pdf | |
256 | \end{verbatim} | |
257 | \end{frame} | |
258 | ||
259 | % --- Data Sheet Viewer (dsv) ------------------------------------------------- | |
260 | ||
261 | \begin{frame}{dsv Motivation} | |
262 | \begin{itemize} | |
263 | \item Make sure everybody uses the same data sheet | |
264 | \begin{itemize} | |
265 | \item Same component | |
266 | \item Same manufacturer | |
267 | \item Same data sheet revision | |
268 | \end{itemize} | |
269 | \item Copyright: can't just check in PDF | |
270 | \item Industrial pragmatism: mail or ``internal'' repository | |
271 | \item Qi-Hardware: send {\tt BOOKSHELF} around | |
272 | \end{itemize} | |
273 | ||
274 | \url{eda-tools/dsv} | |
275 | \end{frame} | |
276 | ||
277 | % --- Schematics Symbol Catalog ---------------------------------------------- | |
278 | ||
279 | \begin{frame}{Schematics Symbol Catalog} | |
280 | \begin{itemize} | |
281 | \item For selection, review | |
282 | \item Hierarchical order with alphabetic index | |
283 | \item Short descriptions and data sheet links | |
284 | \item Added value: indicate pin types | |
285 | \item TODO: connect to dsv | |
286 | \end{itemize} | |
287 | ||
288 | DRAWING (hierarchy + descr + com libs ---genkicat--> PDF) | |
289 | \end{frame} | |
290 | ||
291 | % --- Footprint Catalog ------------------------------------------------------ | |
292 | ||
293 | \begin{frame}{Footprint Catalog} | |
294 | \begin{itemize} | |
295 | \item Likewise, for footprints | |
296 | \item Added value: measurements, pad types | |
297 | \end{itemize} | |
298 | ||
299 | DRAWING (hierarchy + descr + com libs ---genkicat--> PDF) | |
300 | ||
301 | \url{eda-tools/genkicat} | |
302 | \end{frame} | |
303 | ||
304 | % --- Schematics History ------------------------------------------------------ | |
305 | ||
306 | \begin{frame}{Schematics History} | |
307 | \begin{itemize} | |
308 | \item Schematics revision history | |
309 | \item {\tt git diff} produces gibberish | |
310 | \end{itemize} | |
311 | ||
312 | EXAMPLE | |
313 | ||
314 | \url{http://projects.qi-hardware.com/schhist/} | |
315 | \end{frame} | |
316 | ||
317 | % --- Schematics History (cont'd) --------------------------------------------- | |
318 | ||
319 | \begin{frame}{Schematics History (cont'd)} | |
320 | How it works: | |
321 | \begin{itemize} | |
322 | \item Walk git revision history | |
323 | \item Check out project whenever schematics change | |
324 | \item Run eeschema to make Postscript | |
325 | \item Convert to PNG (find diffs, with highlighting) and PDF | |
326 | \item Wrap in HTML | |
327 | \end{itemize} | |
328 | ||
329 | Issues: | |
330 | \begin{itemize} | |
331 | \item Nasty shell script | |
332 | \item Resource-hungry (partial caching) | |
333 | \item Large schematics get confusing | |
334 | \item Projects spanning multiple repositories | |
335 | \end{itemize} | |
336 | ||
337 | \url{eda-tools/schhist} | |
338 | \end{frame} | |
339 | ||
340 | % --- Layout History ---------------------------------------------------------- | |
341 | ||
342 | \begin{frame}{Layout History} | |
343 | \begin{itemize} | |
344 | \item Layout revision history | |
345 | \item To do $\ldots$ | |
346 | \end{itemize} | |
347 | ||
348 | \url{eda-tools/brdhist} | |
349 | \end{frame} | |
350 | ||
351 | % --- Gerber Renderer --------------------------------------------------------- | |
352 | ||
353 | \begin{frame}{Gerber Renderer} | |
354 | \begin{itemize} | |
355 | \item ``Photorealistic'' view of PCB | |
356 | \item Combines Gerber and Excellon | |
357 | \item Easy see issues with solder paste, silk screen, solder mask, $\ldots$ | |
358 | \item Uses gerbv for rendering | |
359 | \end{itemize} | |
360 | ||
361 | EXAMPLE | |
362 | ||
363 | \url{eda-tools/prettygerbv} | |
364 | \end{frame} | |
365 | ||
366 | % --- BOM Processor ----------------------------------------------------------- | |
367 | ||
368 | \begin{frame}{BOM Processor (BOOM)} | |
369 | \begin{itemize} | |
370 | \item BOM $\rightarrow$ select components $\rightarrow$ find supplier | |
371 | $\rightarrow$ shopping list | |
372 | \item Work in progress. Rewrite from Perl to C | |
373 | \begin{itemize} | |
374 | \item Faster | |
375 | \item Less headache with data structures | |
376 | \item Better parsing | |
377 | \end{itemize} | |
378 | \item Snag: Digi-Key spider no longer works | |
379 | \item Future: help with component selection | |
380 | \end{itemize} | |
381 | ||
382 | \url{eda-tools/b2} | |
383 | \end{frame} | |
384 | ||
385 | % --- BOOM Data Flow ---------------------------------------------------------- | |
386 | ||
387 | \begin{frame}{BOOM Data Flow} | |
388 | DRAWING | |
389 | \end{frame} | |
390 | ||
391 | % --- Schematics Design Rules ------------------------------------------------- | |
392 | ||
393 | \begin{frame}{Schematics Design Rules} | |
394 | ... | |
395 | ||
396 | URL | |
397 | \end{frame} | |
398 | ||
399 | % --- Libraries --------------------------------------------------------------- | |
400 | ||
401 | \begin{frame}{Libraries} | |
402 | Goals: | |
403 | \begin{itemize} | |
404 | \item Consistent naming | |
405 | \item Known origin of design information | |
406 | \item Documented development process | |
407 | \end{itemize} | |
408 | ||
409 | To do: | |
410 | \begin{itemize} | |
411 | \item Improve organization | |
412 | \item Better integrate background information | |
413 | \item Reviews ! | |
414 | \end{itemize} | |
415 | ||
416 | \url{kicad-libs/components}, \url{kicad-libs/modueles} | |
417 | \end{frame} | |
418 | ||
419 | % --- Qi-Hardware Workflow ---------------------------------------------------- | |
420 | ||
421 | \begin{frame}{Qi-Hardware Workflow} | |
422 | DIAGRAM | |
423 | \end{frame} | |
424 | ||
425 | % --- Conclusion -------------------------------------------------------------- | |
426 | ||
427 | \begin{frame}{Conclusion} | |
428 | \begin{itemize} | |
429 | \item KiCad is a good basis for collaborative projects | |
430 | \item Open design allows extension with scripts | |
431 | \item Workflow is complex and needs careful consideration | |
432 | \end{itemize} | |
433 | ||
434 | To do: | |
435 | \begin{itemize} | |
436 | \item Spread the word | |
437 | \item Improve quality of libraries | |
438 | \item Integrate patches into mainline KiCad | |
439 | \item Finish BOOM and write brdhist | |
440 | \end{itemize} | |
441 | \end{frame} | |
442 | ||
443 | \end{document} |
ircstat/ML | ||
---|---|---|
4 | 4 | 2009 85 141 137 157 99 145 |
5 | 5 | 2010 180 180 263 214 412 218 492 295 260 132 116 174 |
6 | 6 | 2011 150 155 125 108 71 127 49 106 129 69 71 33 |
7 | 2012 39 20 38 36 15 | |
7 | 2012 39 20 38 36 15 23 | |
8 | 8 | |
9 | 9 | http://lists.milkymist.org/pipermail/devel-milkymist.org/ |
10 | 10 | |
... | ... | |
12 | 12 | 2009 3 8 15 27 33 14 24 14 |
13 | 13 | 2010 29 28 36 28 22 25 35 14 27 39 17 12 |
14 | 14 | 2011 61 43 59 81 17 48 43 35 24 78 116 183 |
15 | 2012 52 67 48 30 35 | |
15 | 2012 52 67 48 30 36 16 |
Branches:
master