diff --git a/content/06_electronics_design.md b/content/06_electronics_design.md new file mode 100644 index 0000000000000000000000000000000000000000..72817511f21c028d0662a36267fd244240217a17 --- /dev/null +++ b/content/06_electronics_design.md @@ -0,0 +1,41 @@ ++++ +title = "Electronics Design" +date = "2018-10-09" +menu = "main" +weight = 7 ++++ + +## PCB Design + +Files: [echo.sch](/designs/06_echo.sch) [echo.brd](/designs/06_echo.brd) [echo_top.png](/designs/06_echo_top.png) [echo_cutout.png](/designs/06_echo_cutout.png) (both 2000 dpi) + +This week we're learning how to go all the way from pcb design through milling, stuffing, and programming. I should end up with a board that can talk to a computer over a serial connection (masquerading as a USB device). + +### Design + +Since I've been using Fusion 360 so much, I decided to give EAGLE a try. (I'm also curious to use KiCad, but at this point I want to get comfortable in one environment before trying another.) After importing the fab library and design rules, I was ready to go. + +Drawing the schematic was simple enough. From the [reference design](http://academy.cba.mit.edu/classes/embedded_programming/index.html#echo) I just added a switch and an LED (with current limiting resistor). I checked that all GPIO pins on the ATTINY44 have internal pullup resistors, so I'm going to rely on those to pull my input high when the switch is open. To get a value for the current limiting resistor, I plugged in the current rating and forward voltage drop of our LEDs to an [online calculator](https://www.digikey.com/en/resources/conversion-calculators/conversion-calculator-led-series-resistor). I found that 330 ohms would be ideal, so I went with the closest value we stock in bulk: 499 ohms. + +![](/img/06_schematic.jpg#c) + +Drawing the traces was more challenging. It took me a few tries before I was able to pack the components in a reasonable amount of space with relatively short routes. I'm still not super pleased with how indirect the ground path to the microcontroller is. I look forward to designing more boards and getting a better intuition for circuit layout. + +![](/img/06_board.png#c) + +### Production + +When I started milling my design, it was obviously too large. Turns out the DPI of images exported by EAGLE on retina MacBooks ends up twice as high as claimed. Luckily this is easily fixed in mods by overriding the value embedded in the png. + +At this point I feel like a pro at stuffing. It went by pretty quickly and I'm happy with all my joints. + +### Programming + +It had been a few years since I've flashed a microcontroller so I was uncertain how many issues I should expect to run into. Luckily things went pretty smoothly. I encountered a few "device not found" errors that were circumvented by unplugging and replugging the programmer and boards. + +![](/img/06_pcb_plus_ftdi.jpg#c) + +Communication with my computer was achieved! + +![](/img/06_let_there_be_bits.png#c) + diff --git a/static/designs/06_echo.brd b/static/designs/06_echo.brd new file mode 100644 index 0000000000000000000000000000000000000000..8f66889b56fb2ac1e8632b14155b5d4b5298b2e5 --- /dev/null +++ b/static/designs/06_echo.brd @@ -0,0 +1,709 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + + + +<b>Small Outline Package</b> + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + + + + + + + + + + + +1 +>NAME +>VALUE + + + + + + + + +>NAME + + +<b>OMRON SWITCH</b> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE +1 +2 +3 +4 + + +LED 1206 pads (standard pattern) + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + + + + +<b>EAGLE Design Rules</b> +<p> +Die Standard-Design-Rules sind so gewählt, dass sie für +die meisten Anwendungen passen. Sollte ihre Platine +besondere Anforderungen haben, treffen Sie die erforderlichen +Einstellungen hier und speichern die Design Rules unter +einem neuen Namen ab. +<b>EAGLE Design Rules</b> +<p> +The default Design Rules have been set to cover +a wide range of applications. Your particular design +may have different requirements, so please make the +necessary adjustments and save your customized +design rules under a new name. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/static/designs/06_echo.sch b/static/designs/06_echo.sch new file mode 100644 index 0000000000000000000000000000000000000000..60f30b6fc569dee08f52bf3cff9fad463c3ed840 --- /dev/null +++ b/static/designs/06_echo.sch @@ -0,0 +1,1448 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +<b>Small Outline Package</b> + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + + + + + +<b>Dual In Line Package</b> + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<b>HP-VFQFP-N20</b> Micro Lead Frame package (MLF) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + + + + + + + + + + + + + + + + + +>NAME + + + + + + + + +1 +>NAME +>VALUE + + +<b>PIN HEADER</b> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE +1 + + + + + + + + +<b>OMRON SWITCH</b> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE +1 +2 +3 +4 + + +LED 1206 pads (standard pattern) + + + + + + + + +>NAME +>VALUE + + + + +LED1206 FAB style (smaller pads to allow trace between) + + + + + + +>NAME +>VALUE + + +5mm round through hole part. + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + +>VALUE +>NAME + + + + + + + + + + + + + + + + + + + + + + + + + + +(Black) +(Green) + + + + + + +>NAME +>VALUE +MISO +SCK +RST +VCC +MOSI +GND + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + +LED + + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +<b>OMRON SWITCH</b> + + + + + + + + + + + + + + + + + + +LED + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + + +<b>RESISTOR</b><p> +chip + + + + + + + + + + +>NAME +>VALUE + + + + + + +>NAME +>VALUE + + + + + + + + + + +>NAME +>VALUE + + + + + + +<b>CAPACITOR</b><p> +chip + + + + + + + + +>NAME +>VALUE + + + + + + + + + + +>NAME +>VALUE + + + + +<B>DIODE</B><p> +2-lead molded, vertical + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + +>NAME +>VALUE + + + + + +<b>CAPACITOR</b><p> +chip + + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +>PRECISION +>PACKAGE + + + + +>NAME +>VALUE + + + + +>PACKAGE +>VOLTAGE +>TYPE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + + +<b>Resistor</b> +Basic schematic elements and footprints for 0603, 1206, and PTH resistors. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +<b>Capacitor</b> +Standard 0603 ceramic capacitor, and 0.1" leaded capacitor. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +<b>Supply Symbols</b><p> + GND, VCC, 0V, +5V, -5V, etc.<p> + Please keep in mind, that these devices are necessary for the + automatic wiring of the supply signals.<p> + The pin name defined in the symbol is identical to the net which is to be wired automatically.<p> + In this library the device names are the same as the pin names of the symbols, therefore the correct signal names appear next to the supply symbols in the schematic.<p> + <author>Created by librarian@cadsoft.de</author> + + + + + +>VALUE + + + + + +>VALUE + + + + + +<b>SUPPLY SYMBOL</b> + + + + + + + + + + + + +<b>SUPPLY SYMBOL</b> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Since Version 8.2, EAGLE supports online libraries. The ids +of those online libraries will not be understood (or retained) +with this version. + + +Since Version 8.3, EAGLE supports URNs for individual library +assets (packages, symbols, and devices). The URNs of those assets +will not be understood (or retained) with this version. + + + diff --git a/static/designs/06_echo_cutout.png b/static/designs/06_echo_cutout.png new file mode 100644 index 0000000000000000000000000000000000000000..dec337cbbccdbd069e0a262ca3b5a982abf44235 Binary files /dev/null and b/static/designs/06_echo_cutout.png differ diff --git a/static/designs/06_echo_top.png b/static/designs/06_echo_top.png new file mode 100644 index 0000000000000000000000000000000000000000..772a78eb3f1638ba01f430cd4815f00fc8347cb7 Binary files /dev/null and b/static/designs/06_echo_top.png differ diff --git a/static/img/06_board.png b/static/img/06_board.png new file mode 100644 index 0000000000000000000000000000000000000000..2812e7954c29220d1bffefb17a6df4ceb9baad95 Binary files /dev/null and b/static/img/06_board.png differ diff --git a/static/img/06_let_there_be_bits.png b/static/img/06_let_there_be_bits.png new file mode 100644 index 0000000000000000000000000000000000000000..b766f988ab650f917a5ada7d95eeb72478b0913a Binary files /dev/null and b/static/img/06_let_there_be_bits.png differ diff --git a/static/img/06_pcb_plus_ftdi.jpg b/static/img/06_pcb_plus_ftdi.jpg new file mode 100644 index 0000000000000000000000000000000000000000..66e4742d79dcbc03b460c4fc2cc51eee202c434c Binary files /dev/null and b/static/img/06_pcb_plus_ftdi.jpg differ diff --git a/static/img/06_schematic.jpg b/static/img/06_schematic.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3df8b6ef26a3ca086bcec0237680ed2defa0c7d2 Binary files /dev/null and b/static/img/06_schematic.jpg differ