mirror of
git://projects.qi-hardware.com/wernermisc.git
synced 2024-11-21 15:37:31 +02:00
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.
This commit is contained in:
parent
8418a19db1
commit
cd80647273
@ -17,11 +17,17 @@ GP2RML = $(CAE_TOOLS)/gp2rml/gp2rml
|
||||
# Z1 = -44
|
||||
# PIECE_Z = 7.9
|
||||
|
||||
X0 = 5
|
||||
Y0 = 45
|
||||
Z1 = -44
|
||||
# run with acrylic (corner at 4, 0)
|
||||
# #1: 15, 10
|
||||
# #2: 15, 50
|
||||
# #3: 80, 10
|
||||
# PIECE_Z = 5.15
|
||||
|
||||
X0 = 80
|
||||
Y0 = 10
|
||||
Z1 = -45
|
||||
PIECE = -5 -5 30 55
|
||||
PIECE_Z = 5.5
|
||||
PIECE_Z = 5.15
|
||||
Z_STEP = 2
|
||||
CLEARANCE = 2
|
||||
SPEED_XY = 1
|
||||
@ -32,13 +38,21 @@ Z_OFFSET = 0.1
|
||||
FIN_SPEED_XY = 3
|
||||
FIN_SPEED_Z = 3
|
||||
|
||||
PARAMS = X0=$(X0)mm Y0=$(Y0)mm Z1=$(Z1)mm PIECE_Z=$(PIECE_Z)mm \
|
||||
# acrylic
|
||||
# ~0.1 mm / 12 mil tool correction # not needed
|
||||
#MILL = 120mil
|
||||
SPEED_XY = 2
|
||||
SPEED_Z = 2
|
||||
FIN_SPEED_XY = 5
|
||||
FIN_SPEED_Z = 5
|
||||
|
||||
PARAMS = X0=$(X0)mm Y0=$(Y0)mm Z1=$(Z1)mm MILL=$(MILL) PIECE_Z=$(PIECE_Z)mm \
|
||||
Z_OFFSET=$(Z_OFFSET)mm
|
||||
|
||||
PARTS = top mid bot
|
||||
PART = top
|
||||
|
||||
.PHONY: all plot mill pos cng clean
|
||||
.PHONY: all plot plot-fin mill pos cng clean
|
||||
|
||||
all: $(PART)-mill.rml $(PART)-finish.rml
|
||||
|
||||
@ -73,7 +87,10 @@ $(PART)-finish.rml: $(PART)-finish.gp Makefile
|
||||
$< >$@ || { rm -f $@; exit 1; }
|
||||
|
||||
plot: $(PART)-mill.gp
|
||||
echo 'splot "$(PART)-mill.gp" with lines' | gnuplot -persist
|
||||
echo 'splot "$<" with lines' | gnuplot -persist
|
||||
|
||||
plot-fin: $(PART)-finish.gp
|
||||
echo 'splot "$<" with lines' | gnuplot -persist
|
||||
|
||||
mill: $(PART)-mill.rml $(PART)-finish.rml
|
||||
PORT=/dev/ttyUSB0 $(SPOOL) $^
|
||||
@ -88,5 +105,9 @@ clean:
|
||||
rm -f case.gp
|
||||
rm -f $(PARTS:%=%-piece.gp) $(PARTS:%=%.gp)
|
||||
rm -f $(PARTS:%=%-area.gp)
|
||||
rm -f $(PARTS:%=%-mill.gp) $(PARTS:%=%-mill.rml)
|
||||
rm -f $(PARTS:%=%-finish.gp) $(PARTS:%=%-finish.rml)
|
||||
rm -f $(PARTS:%=%-mill.gp)
|
||||
rm -f $(PARTS:%=%-finish.gp)
|
||||
|
||||
spotless: clean
|
||||
rm -f $(PARTS:%=%-mill.rml)
|
||||
rm -f $(PARTS:%=%-finish.rml)
|
||||
|
@ -5,7 +5,7 @@ while [ "$1" ]; do
|
||||
done
|
||||
|
||||
: ${MILL:=125mil}
|
||||
: ${OVERLAP:=0.5mm}
|
||||
: ${OVERLAP:=1.6mm}
|
||||
: ${X0:=0mm}
|
||||
: ${Y0:=0mm}
|
||||
: ${Z1:=0mm}
|
||||
|
@ -76,11 +76,12 @@ frame top_window {
|
||||
frame top_pcb {
|
||||
loop if = 1, top_pcb
|
||||
|
||||
set off = topborder+topridge
|
||||
set inside = topborder+topridge
|
||||
|
||||
frame top_outline @
|
||||
ll: vec @(off, off)
|
||||
RRECT(pcb_, ll, width-2*off, length-2*off, ri_ridge)
|
||||
ro: vec @(topborder, topborder)
|
||||
ri: vec ro(topridge, topridge)
|
||||
RRECT(ridge_i_, ri, width-2*inside, length-2*inside, ri_ridge)
|
||||
}
|
||||
|
||||
frame top_ridge {
|
||||
@ -264,13 +265,13 @@ table
|
||||
{ part, z, top_surface, top_window, top_pcb, top_ridge,
|
||||
mid_ridge, mid_pcb, mid_body,
|
||||
bot_posts, bot_base, bot_surface}
|
||||
{ "top_surface", 2.5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
|
||||
{ "top_window", 1.5, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }
|
||||
// { "top_pcb", 0.5, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 }
|
||||
{ "top_surface", 3.3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
|
||||
{ "top_window", 2.3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }
|
||||
{ "top_pcb", 1.2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 }
|
||||
{ "top_ridge", 0.5, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 }
|
||||
{ "mid_ridge", 0.5, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 }
|
||||
{ "mid_pcb", 1.0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 }
|
||||
{ "mid_body", 4.5, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 }
|
||||
{ "mid_ridge", 0.6, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 }
|
||||
{ "mid_pcb", 1.2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 }
|
||||
{ "mid_body", 4.7, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 }
|
||||
{ "bot_posts", 1.2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 }
|
||||
{ "bot_base", 2.0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 }
|
||||
{ "bot_surface", 2.7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 }
|
||||
@ -291,8 +292,9 @@ table
|
||||
|
||||
table
|
||||
/* usb_roff = offset from right outer case edge */
|
||||
/* usb_d = 10 mm for prototypes (mini-USB); reduce to 6.0 mm for micro */
|
||||
{ usb_w, usb_d, usb_roff }
|
||||
{ 8.5mm, 6.0mm, 4.5mm }
|
||||
{ 8.6mm, 10.0mm, 4.9mm }
|
||||
|
||||
table
|
||||
/* post_y is from the edge of the battery bay. post_x is from the edge */
|
||||
@ -331,8 +333,8 @@ frame bot_surface @
|
||||
|
||||
measx top_outline.edge_ul -> top_outline.edge_ur 4mm
|
||||
measy top_outline.edge_ll -> top_outline.edge_ul 4mm
|
||||
measx top_pcb.pcb_ul -> top_pcb.pcb_ur 3mm
|
||||
measy top_pcb.pcb_ll -> top_pcb.pcb_ul 3mm
|
||||
//measx top_pcb.pcb_ul -> top_pcb.pcb_ur 3mm
|
||||
//measy top_pcb.pcb_ll -> top_pcb.pcb_ul 3mm
|
||||
|
||||
measx top_ridge.ridge_o_ul -> top_ridge.ridge_o_ur 4mm
|
||||
measy top_ridge.ridge_o_ll -> top_ridge.ridge_o_ul 4mm
|
||||
|
80
fisl2012/Makefile
Normal file
80
fisl2012/Makefile
Normal file
@ -0,0 +1,80 @@
|
||||
SHELL=/bin/bash
|
||||
|
||||
#DL=USB.png Nano_cola.jpg Atben_atusb_prod_03.jpg Atben_atusb_prod_05.jpg \
|
||||
# M1_dmx_video.jpg \
|
||||
# UBB_production_08.JPG ubb-vga-pub-plugged-medium.jpg \
|
||||
# ubb-vga-pub-1024-medium.jpg SIE_KICAD.png
|
||||
#GEN=schhist.png fped.png kicad.png achieve.pdf flow.pdf
|
||||
#PNG=atusb-front.png
|
||||
|
||||
.PHONY: spotless clean upload upload-es
|
||||
|
||||
all: talk.pdf
|
||||
xpdf talk.pdf
|
||||
|
||||
talk.pdf: talk.tex $(GEN) $(DL) $(PNG)
|
||||
pdflatex talk
|
||||
|
||||
talk-es.pdf: talk-es.tex $(GEN) $(DL) $(PNG)
|
||||
pdflatex talk-es
|
||||
|
||||
kicad.png: eeschema.xwd pcbnew.xwd
|
||||
pnmcomp -xoff=0 -yoff=300 \
|
||||
<(convert eeschema.xwd ppm:-) \
|
||||
<(convert pcbnew.xwd ppm:- | \
|
||||
pnmpad -white -left=900 -bottom=300) | \
|
||||
convert - $@
|
||||
|
||||
schhist.png: schhist.xwd
|
||||
convert $< $@
|
||||
|
||||
fped.png: fped.xwd
|
||||
convert $< $@
|
||||
|
||||
USB.png:
|
||||
wget http://projects.qi-hardware.com/schhist/atusb/847b3546d90d7271690bcd17014cf2cae9482538/diff/USB.png
|
||||
|
||||
Nano_cola.jpg:
|
||||
wget http://en.qi-hardware.com/w/images/7/78/Nano_cola.jpg
|
||||
|
||||
Atben_atusb_prod_03.jpg:
|
||||
wget http://en.qi-hardware.com/w/images/0/06/Atben_atusb_prod_03.jpg
|
||||
|
||||
Atben_atusb_prod_05.jpg:
|
||||
wget http://en.qi-hardware.com/w/images/c/ce/Atben_atusb_prod_05.jpg
|
||||
|
||||
M1_dmx_video.jpg:
|
||||
wget http://en.qi-hardware.com/w/images/5/55/M1_dmx_video.jpg
|
||||
|
||||
UBB_production_08.JPG:
|
||||
wget http://en.qi-hardware.com/w/images/8/83/UBB_production_08.JPG
|
||||
|
||||
ubb-vga-pub-plugged-medium.jpg:
|
||||
wget http://downloads.qi-hardware.com/people/werner/ubb/vga/web/ubb-vga-pub-plugged-medium.jpg
|
||||
|
||||
ubb-vga-pub-1024-medium.jpg:
|
||||
wget http://downloads.qi-hardware.com/people/werner/ubb/vga/web/ubb-vga-pub-1024-medium.jpg
|
||||
|
||||
SIE_KICAD.png:
|
||||
wget http://linuxencaja.com/images/9/9d/SIE_KICAD.png
|
||||
|
||||
achieve.pdf: achieve.fig
|
||||
fig2dev -L pdf $< $@
|
||||
|
||||
flow.pdf: flow.fig
|
||||
fig2dev -L pdf $< $@
|
||||
|
||||
talk.ps: talk.pdf
|
||||
pdf2ps $< $@
|
||||
|
||||
p16: talk.ps
|
||||
mpage -8 $< | lpr
|
||||
|
||||
spotless:
|
||||
rm -f $(DL)
|
||||
|
||||
clean:
|
||||
rm -f $(GEN) talk.ps
|
||||
|
||||
upload: talk.pdf
|
||||
qippl talk.pdf fisl13.pdf
|
18
fisl2012/abstract.txt
Normal file
18
fisl2012/abstract.txt
Normal file
@ -0,0 +1,18 @@
|
||||
Making Hardware with KiCad and Friends
|
||||
|
||||
KiCad is a well-established Open Source EDA suite that provides tools
|
||||
for most of the basic tasks in circuit design. In larger projects,
|
||||
and especially those of an open and collaborative nature, additional
|
||||
requirements appear that KiCad can only partially satisfy.
|
||||
|
||||
Specifically, collaborative projects benefit from visualization that
|
||||
helps to quickly follow the work of others and to track a project's
|
||||
revision history. Furthermore, an automated and thus easily
|
||||
reproducible workflow lowers the barrier of entry and avoids costly
|
||||
mistakes.
|
||||
|
||||
In the Qi-Hardware project, we use KiCad as the centerpiece for various
|
||||
hardware designs and enhance its functionality with patches or external
|
||||
programs. This presentation will describe the complete workflow from
|
||||
design to fabrication, introduce the various tools we use to complement
|
||||
KiCad, and also briefly address common design rules.
|
10
fisl2012/bio.txt
Normal file
10
fisl2012/bio.txt
Normal file
@ -0,0 +1,10 @@
|
||||
Werner got hooked on Linux in the days of the 0.12 kernel and started
|
||||
to get his hands dirty from early on with contributions like the LILO
|
||||
boot loader, the initial RAM disk (initrd), and the MS-DOS file system.
|
||||
Later activities led him into networking, with the Linux-ATM project as
|
||||
part of his PhD thesis, and he eventually landed in the Openmoko project.
|
||||
|
||||
Having had a taste of hardware there, but eager to do more, he then
|
||||
journeyed deeper into the world of electronics and finally joined the
|
||||
Qi-Hardware project, where he now dabbles with making gadgets that aim
|
||||
to blend software and hardware under common principles of freedom.
|
443
fisl2012/talk.tex
Normal file
443
fisl2012/talk.tex
Normal file
@ -0,0 +1,443 @@
|
||||
\documentclass[14pt,trans]{beamer}
|
||||
\usepackage{color}
|
||||
\usepackage{url}
|
||||
\usepackage{colortbl}
|
||||
%\usepackage{soul}
|
||||
%\usepackage{verbatim}
|
||||
\usefonttheme{structurebold}
|
||||
\setbeamertemplate{navigation symbols}{}
|
||||
\setbeamertemplate{items}[ball]
|
||||
%\setbeamersize{sidebar width left=-5mm}
|
||||
\title{\Large Making Hardware with KiCad and Friends}
|
||||
\author{Werner Almesberger \\\url{werner@almesberger.net}}
|
||||
\date{July 21, 2012}
|
||||
|
||||
%\setul{}{1.5pt}
|
||||
|
||||
\begin{document}
|
||||
|
||||
\begin{frame}
|
||||
\titlepage
|
||||
\end{frame}
|
||||
|
||||
% --- Overview ----------------------------------------------------------------
|
||||
|
||||
\begin{frame}{Overview}
|
||||
\begin{itemize}
|
||||
\item KiCad introduction
|
||||
\item Qi-Hardware workflow
|
||||
\item $\dots$ and tools
|
||||
\end{itemize}
|
||||
|
||||
\url{downloads.qi-hardware.com/people/werner/fisl13.pdf}
|
||||
\end{frame}
|
||||
|
||||
% --- KiCad Introduction ------------------------------------------------------
|
||||
|
||||
\begin{frame}{KiCad}
|
||||
\begin{itemize}
|
||||
\item Complete EDA solution
|
||||
\item Free Software: GPL, LGPL
|
||||
\item Text files $\rightarrow$ extensible
|
||||
\item C++, wxWidgets
|
||||
\item Multi-platform: Linux, Windows, Mac
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
% --- Schematics --------------------------------------------------------------
|
||||
|
||||
\begin{frame}{KiCad: Schematics}
|
||||
eeschema + component editor: netlist, BOM
|
||||
|
||||
SCREENSHOTS
|
||||
\end{frame}
|
||||
|
||||
% --- Layout ------------------------------------------------------------------
|
||||
|
||||
\begin{frame}{KiCad: Layout}
|
||||
cvpcb + pcbnew + module editor -> gerbers (gerbv)
|
||||
|
||||
SCREENSHOTS
|
||||
\end{frame}
|
||||
|
||||
% --- Fped --------------------------------------------------------------------
|
||||
|
||||
\begin{frame}{Footprint Editor (fped)}
|
||||
%\begin{center}
|
||||
% \includegraphics[height=6cm]{fped.png}
|
||||
%\end{center}
|
||||
SCREENSHOT (highlight vector)
|
||||
|
||||
\begin{itemize}
|
||||
\item Fully parametric
|
||||
\item Automated repetition (loops, tables, sub-frames)
|
||||
\item GUI or text-based
|
||||
\item Automatic measurements
|
||||
\item Output: KiCad, Postscript, Gnuplot
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
% --- Qi-Hardware -------------------------------------------------------------
|
||||
|
||||
\begin{frame}{Qi-Hardware}
|
||||
\begin{itemize}
|
||||
\item Collection of loosely connected projects
|
||||
\item Loose collective of like-minded developers
|
||||
\item Copyleft Hardware with Free Software
|
||||
\item Development and manufacturing
|
||||
\item Toolmaking
|
||||
\end{itemize}
|
||||
|
||||
Products:
|
||||
\begin{itemize}
|
||||
\item Ben NanoNote (Handheld computer)
|
||||
\item Ben-WPAN (IEEE 802.15.4 wireless)
|
||||
\item Milkymist One (FPGA-based Video synthesizer)
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
% --- Collaborative Design ----------------------------------------------------
|
||||
|
||||
\begin{frame}{Collaborative Design}
|
||||
\begin{itemize}
|
||||
\item Track other people's work
|
||||
\item Review other people's work (libraries)
|
||||
\item Shared design information
|
||||
\item Shared version control (git)
|
||||
\item Shared procedures and rules
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
% --- KiCad Limitations -------------------------------------------------------
|
||||
|
||||
\begin{frame}{KiCad Limitations}
|
||||
\begin{itemize}
|
||||
\item No integrated version control system support
|
||||
\item Integration leads to weak peripheral tools
|
||||
\begin{itemize}
|
||||
\item Footprint editor
|
||||
\item Component catalog
|
||||
\item Module catalog
|
||||
\end{itemize}
|
||||
\item Scattered libraries CHECK
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
% --- Qi-Wardware Adaptation --------------------------------------------------
|
||||
|
||||
\begin{frame}{Qi-Hardware Adaptation}
|
||||
\begin{itemize}
|
||||
\item Command-line oriented use
|
||||
\item Extend KiCad with patches
|
||||
\item External scripts/programs
|
||||
\item Own component and module libraries with common rules
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
% --- What goes into git ------------------------------------------------------
|
||||
|
||||
\begin{frame}{What goes into git}
|
||||
KiCad:
|
||||
\begin{itemize}
|
||||
\item Project file: {\tt {\em project}.pro}
|
||||
\item Schematics: {\tt {\em project}.sch}, {\tt {\em subsheet}.sch}
|
||||
\item Footprint mapping: {\tt {\em project}.cmp}
|
||||
\item Layout: {\tt {\em project}.brd}
|
||||
\end{itemize}
|
||||
|
||||
Qi-Hardware:
|
||||
\begin{itemize}
|
||||
\item Makefile ({\tt sch}, {\tt brd}, {\tt fab}, {\tt clean})
|
||||
\item Bookshelf (for dsv)
|
||||
\item Project-local libraries
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
% --- What doesn't ------------------------------------------------------------
|
||||
|
||||
\begin{frame}{What doesn't}
|
||||
KiCad:
|
||||
\begin{itemize}
|
||||
\item Netlist: {\tt {\em project}.net} \\
|
||||
Generate with eeschema from {\tt *.sch} and {\tt {\em project}.cmp}
|
||||
\item Caches and backups: {\tt {\em project}.bak}, {\tt {\em project}.000},
|
||||
{\tt {\em project}-cache.lib}
|
||||
\item Postscript: {\tt {\em project}-{\em layer}.g{\em XX}}
|
||||
\item Gerbers: {\tt {\em project}-{\em layer}.g{\em XX}}
|
||||
\item BOMs: {\tt {\em project}.lst}, {\tt {\em project}.cvs}
|
||||
\item Fab outputs: {\tt {\em project}.drl}, {\tt {\em project}.pos}
|
||||
\item And so on: {\tt {\em project}.erc}, {\tt {\em project}.rpt},
|
||||
{\tt {\em project}.wrl}, $\ldots$
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
% --- Project File ------------------------------------------------------------
|
||||
|
||||
\begin{frame}{Project File}
|
||||
Project settings. Lists of libraries.
|
||||
|
||||
Issues:
|
||||
\begin{itemize}
|
||||
\item Local absolute paths
|
||||
\item Default libraries
|
||||
\item Timestamps $\rightarrow$ commit noise
|
||||
\end{itemize}
|
||||
|
||||
Solution:
|
||||
\begin{itemize}
|
||||
\item Maintain manually
|
||||
\item {\tt purge} script \\
|
||||
\url{wernermisc/bin/purge}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
% --- Makefile ----------------------------------------------------------------
|
||||
|
||||
\begin{frame}[fragile]{Makefile}
|
||||
Issues:
|
||||
\begin{itemize}
|
||||
\item Shortcuts
|
||||
\item Glue tools together
|
||||
\item Avoid mistakes
|
||||
\item Share common procedures
|
||||
\end{itemize}
|
||||
|
||||
Example:
|
||||
\begin{verbatim}
|
||||
front:
|
||||
pcbnew --plot=ps --plot-fill-all-zones --layers=Front \
|
||||
--plot-mirror $(PROJECT).brd
|
||||
lpr $(PROJECT)-Front.ps
|
||||
\end{verbatim}
|
||||
\end{frame}
|
||||
|
||||
% --- KiCad Command-Line Patches ----------------------------------------------
|
||||
|
||||
\begin{frame}{KiCad Command-Line Patches}
|
||||
Original hack by Werner Almesberger, clean rewrite by Wolfgang Spraul.
|
||||
\begin{itemize}
|
||||
\item Idea: command-line access to main output functions
|
||||
\item eeschema
|
||||
\begin{itemize}
|
||||
\item Visualization: Postscript (and SVG, DXF)
|
||||
\item BOM $\rightarrow$ BOOM
|
||||
\item Netlist, ERC
|
||||
\end{itemize}
|
||||
\item pcbnew
|
||||
\begin{itemize}
|
||||
\item Fabrication: Gerbers, drill (Excellon), component positions
|
||||
\item Visualization and DIY: Postscript
|
||||
\item Attributes: mirror, size, origin, fill zones, $\ldots$
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
|
||||
\url{eda-tools/kicad-patches}
|
||||
\end{frame}
|
||||
|
||||
% --- Data Sheet Viewer (dsv) -------------------------------------------------
|
||||
|
||||
\begin{frame}[fragile]{Data Sheet Viewer (dsv)}
|
||||
\begin{itemize}
|
||||
\item Bookshelf: name and aliases $rightarrow$ PDF or ZIP with PDF
|
||||
\item Download (wget) to local cache
|
||||
\item Hierarchical lookup by name or alias
|
||||
\item Example: \\
|
||||
{\tt dsv avr} $\rightarrow$ ATtiny87 ({\tt doc8265.pdf})
|
||||
$\rightarrow$ xpdf
|
||||
\end{itemize}
|
||||
|
||||
Bookshelf example:
|
||||
|
||||
\begin{verbatim}
|
||||
N: attiny87
|
||||
A: attiny167
|
||||
A: avr
|
||||
D: http://www.atmel.com/Images/doc8265.pdf
|
||||
\end{verbatim}
|
||||
\end{frame}
|
||||
|
||||
% --- Data Sheet Viewer (dsv) -------------------------------------------------
|
||||
|
||||
\begin{frame}{dsv Motivation}
|
||||
\begin{itemize}
|
||||
\item Make sure everybody uses the same data sheet
|
||||
\begin{itemize}
|
||||
\item Same component
|
||||
\item Same manufacturer
|
||||
\item Same data sheet revision
|
||||
\end{itemize}
|
||||
\item Copyright: can't just check in PDF
|
||||
\item Industrial pragmatism: mail or ``internal'' repository
|
||||
\item Qi-Hardware: send {\tt BOOKSHELF} around
|
||||
\end{itemize}
|
||||
|
||||
\url{eda-tools/dsv}
|
||||
\end{frame}
|
||||
|
||||
% --- Schematics Symbol Catalog ----------------------------------------------
|
||||
|
||||
\begin{frame}{Schematics Symbol Catalog}
|
||||
\begin{itemize}
|
||||
\item For selection, review
|
||||
\item Hierarchical order with alphabetic index
|
||||
\item Short descriptions and data sheet links
|
||||
\item Added value: indicate pin types
|
||||
\item TODO: connect to dsv
|
||||
\end{itemize}
|
||||
|
||||
DRAWING (hierarchy + descr + com libs ---genkicat--> PDF)
|
||||
\end{frame}
|
||||
|
||||
% --- Footprint Catalog ------------------------------------------------------
|
||||
|
||||
\begin{frame}{Footprint Catalog}
|
||||
\begin{itemize}
|
||||
\item Likewise, for footprints
|
||||
\item Added value: measurements, pad types
|
||||
\end{itemize}
|
||||
|
||||
DRAWING (hierarchy + descr + com libs ---genkicat--> PDF)
|
||||
|
||||
\url{eda-tools/genkicat}
|
||||
\end{frame}
|
||||
|
||||
% --- Schematics History ------------------------------------------------------
|
||||
|
||||
\begin{frame}{Schematics History}
|
||||
\begin{itemize}
|
||||
\item Schematics revision history
|
||||
\item {\tt git diff} produces gibberish
|
||||
\end{itemize}
|
||||
|
||||
EXAMPLE
|
||||
|
||||
\url{http://projects.qi-hardware.com/schhist/}
|
||||
\end{frame}
|
||||
|
||||
% --- Schematics History (cont'd) ---------------------------------------------
|
||||
|
||||
\begin{frame}{Schematics History (cont'd)}
|
||||
How it works:
|
||||
\begin{itemize}
|
||||
\item Walk git revision history
|
||||
\item Check out project whenever schematics change
|
||||
\item Run eeschema to make Postscript
|
||||
\item Convert to PNG (find diffs, with highlighting) and PDF
|
||||
\item Wrap in HTML
|
||||
\end{itemize}
|
||||
|
||||
Issues:
|
||||
\begin{itemize}
|
||||
\item Nasty shell script
|
||||
\item Resource-hungry (partial caching)
|
||||
\item Large schematics get confusing
|
||||
\item Projects spanning multiple repositories
|
||||
\end{itemize}
|
||||
|
||||
\url{eda-tools/schhist}
|
||||
\end{frame}
|
||||
|
||||
% --- Layout History ----------------------------------------------------------
|
||||
|
||||
\begin{frame}{Layout History}
|
||||
\begin{itemize}
|
||||
\item Layout revision history
|
||||
\item To do $\ldots$
|
||||
\end{itemize}
|
||||
|
||||
\url{eda-tools/brdhist}
|
||||
\end{frame}
|
||||
|
||||
% --- Gerber Renderer ---------------------------------------------------------
|
||||
|
||||
\begin{frame}{Gerber Renderer}
|
||||
\begin{itemize}
|
||||
\item ``Photorealistic'' view of PCB
|
||||
\item Combines Gerber and Excellon
|
||||
\item Easy see issues with solder paste, silk screen, solder mask, $\ldots$
|
||||
\item Uses gerbv for rendering
|
||||
\end{itemize}
|
||||
|
||||
EXAMPLE
|
||||
|
||||
\url{eda-tools/prettygerbv}
|
||||
\end{frame}
|
||||
|
||||
% --- BOM Processor -----------------------------------------------------------
|
||||
|
||||
\begin{frame}{BOM Processor (BOOM)}
|
||||
\begin{itemize}
|
||||
\item BOM $\rightarrow$ select components $\rightarrow$ find supplier
|
||||
$\rightarrow$ shopping list
|
||||
\item Work in progress. Rewrite from Perl to C
|
||||
\begin{itemize}
|
||||
\item Faster
|
||||
\item Less headache with data structures
|
||||
\item Better parsing
|
||||
\end{itemize}
|
||||
\item Snag: Digi-Key spider no longer works
|
||||
\item Future: help with component selection
|
||||
\end{itemize}
|
||||
|
||||
\url{eda-tools/b2}
|
||||
\end{frame}
|
||||
|
||||
% --- BOOM Data Flow ----------------------------------------------------------
|
||||
|
||||
\begin{frame}{BOOM Data Flow}
|
||||
DRAWING
|
||||
\end{frame}
|
||||
|
||||
% --- Schematics Design Rules -------------------------------------------------
|
||||
|
||||
\begin{frame}{Schematics Design Rules}
|
||||
...
|
||||
|
||||
URL
|
||||
\end{frame}
|
||||
|
||||
% --- Libraries ---------------------------------------------------------------
|
||||
|
||||
\begin{frame}{Libraries}
|
||||
Goals:
|
||||
\begin{itemize}
|
||||
\item Consistent naming
|
||||
\item Known origin of design information
|
||||
\item Documented development process
|
||||
\end{itemize}
|
||||
|
||||
To do:
|
||||
\begin{itemize}
|
||||
\item Improve organization
|
||||
\item Better integrate background information
|
||||
\item Reviews !
|
||||
\end{itemize}
|
||||
|
||||
\url{kicad-libs/components}, \url{kicad-libs/modueles}
|
||||
\end{frame}
|
||||
|
||||
% --- Qi-Hardware Workflow ----------------------------------------------------
|
||||
|
||||
\begin{frame}{Qi-Hardware Workflow}
|
||||
DIAGRAM
|
||||
\end{frame}
|
||||
|
||||
% --- Conclusion --------------------------------------------------------------
|
||||
|
||||
\begin{frame}{Conclusion}
|
||||
\begin{itemize}
|
||||
\item KiCad is a good basis for collaborative projects
|
||||
\item Open design allows extension with scripts
|
||||
\item Workflow is complex and needs careful consideration
|
||||
\end{itemize}
|
||||
|
||||
To do:
|
||||
\begin{itemize}
|
||||
\item Spread the word
|
||||
\item Improve quality of libraries
|
||||
\item Integrate patches into mainline KiCad
|
||||
\item Finish BOOM and write brdhist
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\end{document}
|
@ -4,7 +4,7 @@ http://lists.en.qi-hardware.com/pipermail/discussion/
|
||||
2009 85 141 137 157 99 145
|
||||
2010 180 180 263 214 412 218 492 295 260 132 116 174
|
||||
2011 150 155 125 108 71 127 49 106 129 69 71 33
|
||||
2012 39 20 38 36 15
|
||||
2012 39 20 38 36 15 23
|
||||
|
||||
http://lists.milkymist.org/pipermail/devel-milkymist.org/
|
||||
|
||||
@ -12,4 +12,4 @@ http://lists.milkymist.org/pipermail/devel-milkymist.org/
|
||||
2009 3 8 15 27 33 14 24 14
|
||||
2010 29 28 36 28 22 25 35 14 27 39 17 12
|
||||
2011 61 43 59 81 17 48 43 35 24 78 116 183
|
||||
2012 52 67 48 30 35
|
||||
2012 52 67 48 30 36 16
|
||||
|
Loading…
Reference in New Issue
Block a user