toor con2010 - w0z
DESCRIPTION
Toor con2010 - w0zTRANSCRIPT
HARDWARE WILL CUT YOU
amanda w0zniak
Electrical engineering is a discipline like any other, you learn by experience and mistake.
The design process is part intuition, part art and all iterative tenacity.
There is no “black magic,” about hardware, just physics and RTFM.
Dive in with an Arduino and ‘The Art of Electronics,’ and don’t wuss out while you’re getting up the learning curve.
This talk is not about circuit design
When you are building hardware, you have to physically instantiate your idea.
Each instantiation (required to debug problems and test concepts) takes time, money, materials and skills.
Compile times are counted in weeks. A working design means you are only
15% done and that the fun part is over. Software project models do not apply.
Hardware is WAY different from software
Hardware is made of PARTS: aka resistors, ICs, switches, batteries and wires combine to make CIRCUITS
You buy parts from distributors like Digikey and Mouser
Every part has a data sheet For a prototype, you can connect parts by
hand ad-hoc and then hack away If it works, stuff happens, you move on If it doesn’t work, you RTFM
Hardware Definitions: Intro
Hardware Definitions: CAD
EAGLE, Cadence, PCBXpress, Mentor
CAD = Computer Aided Design We don’t make circuit boards by drawing out
traces by hand and masking photo resist with tape (why it’s called “tape out”)
Instead, we use 15 year old software suites
Hardware Definitions: Libraries
A “part” or “device” in CAD consists of a “footprint/package” and a “symbol”
Your “library” holds all of the devices for your design
= +
Hardware Definitions: using CAD
You “design” in a “schematic” The CAD program (eagle, cadence, pcbxpress)
extracts a “netlist” from the schematic to create a “layout”
You “route” all the IRL copper to connect the devices according to your schematic design.
Hardware Definitions: Fab
Once you are done with your “layout,” you extract “gerbers,” aka executable design files
A “fabrication house” takes your gerbers and makes a printed circuit board for you
An “assembly house” takes your PCBs and your physical parts, your BOM list and assembles your hardware
All of these steps can be done by hand, and all the steps are required even with DIY
Prototypes vs. Production
Prototypes vs. Production
Production vs. Prototype
Common mistakes that will cut you:
non-DFM device footprint (YETDA! YETDA! YETDA!)
Schematic symbol error (rotated FET syndrome)
Non-validated prototype (due to part unavailability or failure to schedule properly)
Non-validated components (sourcing from china or last-minute substitutions)
It is possible to be perfect
YOU CAN MAKE HARDWARE TOO
you don’t need to be an MIT engineer
Do not “begin at the beginning.” Start at the end. Estimate lead times: assembly,
fabrication, shipping and BOM cost. Back out cost vs. time and quantity. Select obtainable, known components. Curate your CAD library. Validate your design implementation. Iterate design through prototypes.
Hardware design is back-loaded
A good designer considers every layer of “fabrication,” from PCB limitations to the end assembly method in order to make a good design that can be built to specification, on schedule and on budget.
Curate as you go. You will be too tired to remember, let alone correct, any of your implementation errors post-facto.
Sorry: Abstractions do not exist
a BOM is the list of all components that are in your design (resistors, ICs, modules, connectors, etc)
Reference Designator (R1, U28) Component ID (Digikey/Mouser #) Component Count and Cost Footprint (SOIC-8, TSSOP, 0402) Use/Purpose/Function/Sub-circuit CAD Status
Hardware Jargon: Bill of Materials
A BOM is just a spreadsheet... a very very very useful spreadsheet
Connections in schematics are called “nets” A “netlist” is the list of all the nets in your
design Use a netlist to validate what you built from
what you meant to build (LVS verification)
Brandon & I co-wrote the netlist to keep the signal names equal between the board and the code.... in a spreadsheet
More Jargon: Netlist
there’s a full Eagle library, schematic, layout, gerber package and BOM for the ninja boards in my public directory
download it, start messing around.
http://web.mit.edu/~awozniak/www/ninjas/
Want to make hardware? Start with open-source designs.
START BUILDING STUFF & ASK QUESTIONS
but now we’re out of time
HERE ARE SOME RESOURCES FOR HARDWARE BEGINNERS
THAT LADYADA PUT TOGETHER JUST FOR YOU
until next time...
http://www.adafruit.com/ tutorials