making hardware with kicad and friendsdownloads.qi-hardware.com/people/werner/fisl13.pdf · making...
TRANSCRIPT
![Page 2: Making Hardware with KiCad and Friendsdownloads.qi-hardware.com/people/werner/fisl13.pdf · Making Hardware with KiCad and Friends Werner Almesberger werner@almesberger.net July 27,](https://reader030.vdocuments.us/reader030/viewer/2022040113/5e01280a9dde792d0200a32f/html5/thumbnails/2.jpg)
Overview
KiCad introduction
Collaborative design in Qi-Hardware
Tools to improve KiCad
Workflow overview
downloads.qi-hardware.com/people/werner/fisl13.pdf
![Page 3: Making Hardware with KiCad and Friendsdownloads.qi-hardware.com/people/werner/fisl13.pdf · Making Hardware with KiCad and Friends Werner Almesberger werner@almesberger.net July 27,](https://reader030.vdocuments.us/reader030/viewer/2022040113/5e01280a9dde792d0200a32f/html5/thumbnails/3.jpg)
KiCad
Complete EDA solution
Free Software: GPL, LGPL
Development team by Jean-Pierre Charras,Dick Hollenbeck, and many others
C++, wxWidgets
Multi-platform: Linux, Windows, Mac
Text files → extensible
www.kicad-pcb.org
![Page 4: Making Hardware with KiCad and Friendsdownloads.qi-hardware.com/people/werner/fisl13.pdf · Making Hardware with KiCad and Friends Werner Almesberger werner@almesberger.net July 27,](https://reader030.vdocuments.us/reader030/viewer/2022040113/5e01280a9dde792d0200a32f/html5/thumbnails/4.jpg)
KiCad: Schematics
Postscript
*.lib
Component editorComp. MapBOM Netlist
eeschema
![Page 5: Making Hardware with KiCad and Friendsdownloads.qi-hardware.com/people/werner/fisl13.pdf · Making Hardware with KiCad and Friends Werner Almesberger werner@almesberger.net July 27,](https://reader030.vdocuments.us/reader030/viewer/2022040113/5e01280a9dde792d0200a32f/html5/thumbnails/5.jpg)
KiCad: Footprints
*.mod
Netlist Comp. Map
cvpcb
Module editor
![Page 6: Making Hardware with KiCad and Friendsdownloads.qi-hardware.com/people/werner/fisl13.pdf · Making Hardware with KiCad and Friends Werner Almesberger werner@almesberger.net July 27,](https://reader030.vdocuments.us/reader030/viewer/2022040113/5e01280a9dde792d0200a32f/html5/thumbnails/6.jpg)
KiCad: Layout
*.mod
Postscript
Netlist
Gerber
Excellon
Positions
Fabrication
pcbnew
![Page 7: Making Hardware with KiCad and Friendsdownloads.qi-hardware.com/people/werner/fisl13.pdf · Making Hardware with KiCad and Friends Werner Almesberger werner@almesberger.net July 27,](https://reader030.vdocuments.us/reader030/viewer/2022040113/5e01280a9dde792d0200a32f/html5/thumbnails/7.jpg)
Qi-Hardware
Structure and goals:
Collection of loosely connected projects
Informal gathering of like-minded developers
Copyleft Hardware with Free Software
Development and manufacturing
Toolmaking
Products:
Ben NanoNote (Handheld computer)
Ben-WPAN (IEEE 802.15.4 wireless)
Milkymist One (FPGA-based Video synthesizer)
www.qi-hardware.com
![Page 8: Making Hardware with KiCad and Friendsdownloads.qi-hardware.com/people/werner/fisl13.pdf · Making Hardware with KiCad and Friends Werner Almesberger werner@almesberger.net July 27,](https://reader030.vdocuments.us/reader030/viewer/2022040113/5e01280a9dde792d0200a32f/html5/thumbnails/8.jpg)
Collaborative Design
Follow other people’s work
Review other people’s work (projects and libraries)
Shared design information
Shared version control (git)
Shared procedures and rules
![Page 9: Making Hardware with KiCad and Friendsdownloads.qi-hardware.com/people/werner/fisl13.pdf · Making Hardware with KiCad and Friends Werner Almesberger werner@almesberger.net July 27,](https://reader030.vdocuments.us/reader030/viewer/2022040113/5e01280a9dde792d0200a32f/html5/thumbnails/9.jpg)
KiCad Limitations
No integrated version control system support
Integration leads to weak peripheral tools
Footprint editorComponent catalogModule catalog
No scripting (coming)
Scattered libraries
![Page 10: Making Hardware with KiCad and Friendsdownloads.qi-hardware.com/people/werner/fisl13.pdf · Making Hardware with KiCad and Friends Werner Almesberger werner@almesberger.net July 27,](https://reader030.vdocuments.us/reader030/viewer/2022040113/5e01280a9dde792d0200a32f/html5/thumbnails/10.jpg)
Qi-Hardware Adaptation
Keep things simple: only Linux
Command-line-oriented use
Extend KiCad with patches
External scripts/programs
Own component and module libraries with common rules
![Page 11: Making Hardware with KiCad and Friendsdownloads.qi-hardware.com/people/werner/fisl13.pdf · Making Hardware with KiCad and Friends Werner Almesberger werner@almesberger.net July 27,](https://reader030.vdocuments.us/reader030/viewer/2022040113/5e01280a9dde792d0200a32f/html5/thumbnails/11.jpg)
Libraries
Goals:
Consistent naming
Known origin of design informationE.g., IPC-7351
Documented development process
To do:
Improve organization
Better integrate background information
Reviews !
tiny.cc/kicad-libs-components
tiny.cc/kicad-libs-modules
![Page 12: Making Hardware with KiCad and Friendsdownloads.qi-hardware.com/people/werner/fisl13.pdf · Making Hardware with KiCad and Friends Werner Almesberger werner@almesberger.net July 27,](https://reader030.vdocuments.us/reader030/viewer/2022040113/5e01280a9dde792d0200a32f/html5/thumbnails/12.jpg)
What goes into git
KiCad:
Project file: project.pro
Schematics: project.sch, subsheet.sch
Footprint mapping: project.cmp
Layout: project.brd
Qi-Hardware:
Makefile (sch, brd, fab, clean)
Bookshelf (for dsv)
Project-local libraries
![Page 13: Making Hardware with KiCad and Friendsdownloads.qi-hardware.com/people/werner/fisl13.pdf · Making Hardware with KiCad and Friends Werner Almesberger werner@almesberger.net July 27,](https://reader030.vdocuments.us/reader030/viewer/2022040113/5e01280a9dde792d0200a32f/html5/thumbnails/13.jpg)
What doesn’t
Netlist: project.netGenerated with eeschema from *.sch and project.cmp
Caches and backups: sheet.bak, project.000,project-cache.lib
Postscript: project-sheet.ps, project-layer.ps
Gerbers: project-layer.g??
BOMs: project.lst, project.cvs
Fab outputs: project.drl, project.pos
And so on: project.cad, project.erc, project.dsn,project.rpt, project.wrl, . . .
![Page 14: Making Hardware with KiCad and Friendsdownloads.qi-hardware.com/people/werner/fisl13.pdf · Making Hardware with KiCad and Friends Werner Almesberger werner@almesberger.net July 27,](https://reader030.vdocuments.us/reader030/viewer/2022040113/5e01280a9dde792d0200a32f/html5/thumbnails/14.jpg)
Project File (project.pro)
Contains:
Project settings
Lists of libraries
Issues:
Local absolute paths
Default libraries
Timestamps → commit noise
Solution:
Maintain paths manually
purge script:tiny.cc/wernermisc-bin-purge
![Page 15: Making Hardware with KiCad and Friendsdownloads.qi-hardware.com/people/werner/fisl13.pdf · Making Hardware with KiCad and Friends Werner Almesberger werner@almesberger.net July 27,](https://reader030.vdocuments.us/reader030/viewer/2022040113/5e01280a9dde792d0200a32f/html5/thumbnails/15.jpg)
Makefile
Objectives:
Convenience shortcuts
Combine tools
Share common procedures
Avoid mistakes
front:
pcbnew --plot=ps --plot-fill-all-zones \
--layers=Front --plot-mirror \
$(PROJECT).brd
lpr $(PROJECT)-Front.ps
![Page 16: Making Hardware with KiCad and Friendsdownloads.qi-hardware.com/people/werner/fisl13.pdf · Making Hardware with KiCad and Friends Werner Almesberger werner@almesberger.net July 27,](https://reader030.vdocuments.us/reader030/viewer/2022040113/5e01280a9dde792d0200a32f/html5/thumbnails/16.jpg)
KiCad Command-Line Patches
Original hack by Werner Almesberger, clean rewrite byWolfgang Spraul, soon rewrite for scripting.
Idea: command-line access to main output functions
eeschema
Visualization: Postscript (and SVG, DXF)BOM → BOOMNetlist, ERC
pcbnew
Fabrication: Gerbers, drill (Excellon), componentpositionsVisualization and DIY: PostscriptAttributes: mirror, size, origin, fill zones, . . .
tiny.cc/eda-tools-kicad-patches
![Page 17: Making Hardware with KiCad and Friendsdownloads.qi-hardware.com/people/werner/fisl13.pdf · Making Hardware with KiCad and Friends Werner Almesberger werner@almesberger.net July 27,](https://reader030.vdocuments.us/reader030/viewer/2022040113/5e01280a9dde792d0200a32f/html5/thumbnails/17.jpg)
Data Sheet Viewer (dsv)
Bookshelf: name and aliases → PDF or ZIP with PDF
Download (wget) to local cache
Hierarchical lookup by name or alias
Example:dsv avr → ATtiny87 (doc8265.pdf) → xpdf
Bookshelf example:
N: attiny87
A: attiny167
A: avr
D: http://www.atmel.com/Images/doc8265.pdf
![Page 18: Making Hardware with KiCad and Friendsdownloads.qi-hardware.com/people/werner/fisl13.pdf · Making Hardware with KiCad and Friends Werner Almesberger werner@almesberger.net July 27,](https://reader030.vdocuments.us/reader030/viewer/2022040113/5e01280a9dde792d0200a32f/html5/thumbnails/18.jpg)
dsv Motivation
Make sure everybody uses the same data sheet
Same componentSame manufacturerSame data sheet revision
Copyright: can’t just check in PDF
Industrial pragmatism: private mail or “internal”repository
Qi-Hardware: share BOOKSHELF
tiny.cc/eda-tools-dsv
![Page 19: Making Hardware with KiCad and Friendsdownloads.qi-hardware.com/people/werner/fisl13.pdf · Making Hardware with KiCad and Friends Werner Almesberger werner@almesberger.net July 27,](https://reader030.vdocuments.us/reader030/viewer/2022040113/5e01280a9dde792d0200a32f/html5/thumbnails/19.jpg)
Schematics Symbol Catalog
For selection, review
Hierarchical order with alphabetical index
Short descriptions and data sheet linksTo do: connect to dsv
Added value: indicate pin types
Logic
Single
74x1g00_5
74x1g07_4
Dual
742xg126
6N138: Darlington
6N138: http://www.fairchildsemi.com/ds/6N/6N138.pdf
genkicat
Comp. Ed.
Hierarchy Description
*.lib
![Page 20: Making Hardware with KiCad and Friendsdownloads.qi-hardware.com/people/werner/fisl13.pdf · Making Hardware with KiCad and Friends Werner Almesberger werner@almesberger.net July 27,](https://reader030.vdocuments.us/reader030/viewer/2022040113/5e01280a9dde792d0200a32f/html5/thumbnails/20.jpg)
Schematics History
Schematics revision history
git diff produces gibberish
projects.qi-hardware.com/schhist/
![Page 21: Making Hardware with KiCad and Friendsdownloads.qi-hardware.com/people/werner/fisl13.pdf · Making Hardware with KiCad and Friends Werner Almesberger werner@almesberger.net July 27,](https://reader030.vdocuments.us/reader030/viewer/2022040113/5e01280a9dde792d0200a32f/html5/thumbnails/21.jpg)
Schematics History (cont’d)
How it works:
Walk git revision history
Check out project whenever schematics change
Run eeschema to make Postscript
Convert to PNG (find diffs, with highlighting) and PDF
Wrap in HTML
tiny.cc/eda-tools-schhist
![Page 22: Making Hardware with KiCad and Friendsdownloads.qi-hardware.com/people/werner/fisl13.pdf · Making Hardware with KiCad and Friends Werner Almesberger werner@almesberger.net July 27,](https://reader030.vdocuments.us/reader030/viewer/2022040113/5e01280a9dde792d0200a32f/html5/thumbnails/22.jpg)
Footprint Editor (fped)
Fully parametric
Automated repetition (loops, tables, sub-frames)
GUI or text-based
Automatic measurements
Output: KiCad, Postscript, Gnuplot
![Page 23: Making Hardware with KiCad and Friendsdownloads.qi-hardware.com/people/werner/fisl13.pdf · Making Hardware with KiCad and Friends Werner Almesberger werner@almesberger.net July 27,](https://reader030.vdocuments.us/reader030/viewer/2022040113/5e01280a9dde792d0200a32f/html5/thumbnails/23.jpg)
Footprint Catalog
Like schematics symbol catalog, but for footprints
Added value: measurements, pad types
Quad
QFN
QFN32−VHHD−2
QFN32−VHHD−6
QFP
QFP48
genkicat
fped
USB_A−PCB: Figure 6−9 (page 99) of the
Universal Serial Bus Specification;
Revision 2.0; April 27, 2000
Hierarchy
Description
*.mod
*.fpd
tiny.cc/eda-tools-genkicat
![Page 24: Making Hardware with KiCad and Friendsdownloads.qi-hardware.com/people/werner/fisl13.pdf · Making Hardware with KiCad and Friends Werner Almesberger werner@almesberger.net July 27,](https://reader030.vdocuments.us/reader030/viewer/2022040113/5e01280a9dde792d0200a32f/html5/thumbnails/24.jpg)
Layout History
Layout revision history
To do . . .
![Page 25: Making Hardware with KiCad and Friendsdownloads.qi-hardware.com/people/werner/fisl13.pdf · Making Hardware with KiCad and Friends Werner Almesberger werner@almesberger.net July 27,](https://reader030.vdocuments.us/reader030/viewer/2022040113/5e01280a9dde792d0200a32f/html5/thumbnails/25.jpg)
Gerber Renderer (prettygerbv)
“Photorealistic” view of PCB
Combines Gerber (traces, drawings) andExcellon (holes)
Easy to see issues with solder paste, silkscreen, solder mask, . . .
Uses gerbv for rendering
tiny.cc/eda-tools-fab-prettygerbv
tiny.cc/eda-tools-fab
![Page 26: Making Hardware with KiCad and Friendsdownloads.qi-hardware.com/people/werner/fisl13.pdf · Making Hardware with KiCad and Friends Werner Almesberger werner@almesberger.net July 27,](https://reader030.vdocuments.us/reader030/viewer/2022040113/5e01280a9dde792d0200a32f/html5/thumbnails/26.jpg)
BOM Processor (BOOM)
BOM → select components → find supplier →shopping list
Decode product numbersMatch characteristics (manufacturer part)Find part in inventories (distributor part)Select best price
Work in progress. Rewrite from Perl to C.
Future: Help with component selection
tiny.cc/eda-tools-b2
![Page 27: Making Hardware with KiCad and Friendsdownloads.qi-hardware.com/people/werner/fisl13.pdf · Making Hardware with KiCad and Friends Werner Almesberger werner@almesberger.net July 27,](https://reader030.vdocuments.us/reader030/viewer/2022040113/5e01280a9dde792d0200a32f/html5/thumbnails/27.jpg)
Schematics Design Rules
Work in progress. First compilation by Adam Wang.
Clean visual representation
Compatibility with post-processors (e.g., BOOM)
Examples:
Value naming (4k7, 10nH, . . .)
Junction style
Naming of negated pins (e.g., nRESET)
Text placement and size
Checklists for reviews
en.qi-hardware.com/wiki/Rules_on_Editing_Schematics
![Page 28: Making Hardware with KiCad and Friendsdownloads.qi-hardware.com/people/werner/fisl13.pdf · Making Hardware with KiCad and Friends Werner Almesberger werner@almesberger.net July 27,](https://reader030.vdocuments.us/reader030/viewer/2022040113/5e01280a9dde792d0200a32f/html5/thumbnails/28.jpg)
Qi-Hardware Workflow
���������������
���������������
����������������
����������������
Description
eeschema
BOM
Postscript
Comp. Map
Hierarchy
genkicat PDF
schhist
HTML
PNG
pcbnew
Postscript
Netlist
brdhist
FreeROUTE
cvpcb
prettygerbv
Component Editor
HTML
PNG
Postscript
Hierarchy
Description
genkicat PDF
dsv
Comp. Lib.
Module Lib.
fped
Footprint
Gerber
Excellon
Position
BOOM
![Page 29: Making Hardware with KiCad and Friendsdownloads.qi-hardware.com/people/werner/fisl13.pdf · Making Hardware with KiCad and Friends Werner Almesberger werner@almesberger.net July 27,](https://reader030.vdocuments.us/reader030/viewer/2022040113/5e01280a9dde792d0200a32f/html5/thumbnails/29.jpg)
Conclusion
Experience this far:
KiCad is a good basis for collaborative projects
Easy to extand, thanks to open design
Automation makes workflow less intimidating
To do:
Spread the word
Finish BOOM and write brdhist
Unify meta-data (bookshelf, etc.)
Improve quality of libraries
Command-line support in mainline KiCad
projects.qi-hardware.com/
downloads.qi-hardware.com/people/werner/fisl13.pdf