{"id":1253,"date":"2012-02-04T01:50:25","date_gmt":"2012-02-04T07:50:25","guid":{"rendered":"http:\/\/www.sector67.org\/blog\/?p=1253"},"modified":"2012-02-04T01:50:25","modified_gmt":"2012-02-04T07:50:25","slug":"experience-making-pcbs-from-fritzing","status":"publish","type":"post","link":"https:\/\/www.sector67.org\/blog\/2012\/experience-making-pcbs-from-fritzing\/","title":{"rendered":"Experience Making PCBs from Fritzing"},"content":{"rendered":"<p>With some help from Chris and Sector67, I&#8217;ve been able to work out a process for getting to a custom-fabricated printed-circuit board (PCB) that&#8217;s amazingly simple and straight-forward, even for people who aren&#8217;t &#8220;hardware guys&#8221;. This article gives an over-view of how and why you might want to use at least part of this process&#8230;<\/p>\n<p>My background is 30-odd years in software engineering. From the time I was in high school (and managed to sneak out of the college-prep track long enough to take an electronics class or two with the &#8220;shop kids&#8221;), I&#8217;d struggled to learn electronic design and troubleshooting, mostly to no avail. It always felt like one of those &#8220;there&#8217;s two kinds of people in this world&#8221; issues: my brain seemed wired to &#8220;get&#8221; software, but not hardware. Oh, I picked up enough to do simple projects and basic Ohms-Law stuff, but just barely.<\/p>\n<p>So when I joined Sector67 a year or so ago, I homed in on Arduino and Electronics 101 classes. You may have seen me present at a monthly meeting on my automatic chicken-door (<a href=\"..\/..\/forum\/viewtopic.php?f=10&amp;t=85\">http:\/\/www.sector67.org\/forum\/viewtopic.php?f=10&amp;t=85<\/a>) or my RF remote appliance controller <a href=\"..\/..\/forum\/viewtopic.php?f=10&amp;t=129\">http:\/\/www.sector67.org\/forum\/viewtopic.php?f=10&amp;t=129<\/a>.<\/p>\n<p>I decided a couple of months ago to run with the RF remote control project as a test-bed to try to learn how to lay out a custom PCB and have it manufactured. I had tried taking Chris&#8217;s class in EagleCAD and had found the interface to be pretty annoying and difficult. Chris had suggested looking at another tool, called Fritzing, but it took me a couple of months and seeing a couple of articles online about it before I finally downloaded the (free) software and tried it out: Bingo!<\/p>\n<p>Fritzing is a very easy to use tool that let&#8217;s you capture (or design up-front) a breadboard circuit. With a breadboard, you just stick jumpers in holes to make connections; no soldering needed, easy to make changes until you get it working right. Fritzing lets you just drag wires into place with your mouse, on a graphic display that looks just like your breadboard:<\/p>\n<div><\/div>\n<div><img decoding=\"async\" src=\"..\/..\/forum\/download\/file.php?id=68\" alt=\"fritz_bb.jpg\" \/><\/p>\n<\/div>\n<p>&nbsp;<\/p>\n<div><\/div>\n<div><img decoding=\"async\" src=\"..\/..\/forum\/download\/file.php?id=72\" alt=\"bb.jpg\" \/><\/p>\n<\/div>\n<p>[I actually used two different Arduinos during this project: the Boarduino version is very handy for breadboard work, as it plugs right into a breadboard for quick &amp; easy prototyping. For the actual PCB, I wanted to make an Arduino shield, so in Fritzing I used a standard Arduino Uno. Plus, Fritzing doesn&#8217;t have a predefined part definition for the Boarduino&#8230;]<\/p>\n<div><\/div>\n<div><img decoding=\"async\" src=\"..\/..\/forum\/download\/file.php?id=74\" alt=\"perf.jpg\" \/><\/p>\n<\/div>\n<p>[I also made a perf-board version of this circuit. I&#8217;ve called perf-boards &#8220;needle-point with a soldering iron&#8221;, and building this one convinced me I just had to learn to make PCBs!]<\/p>\n<p>Fritzing includes predefined parts definitions for hundreds of common parts, including multiple Arduino versions and most of the parts in the the Sparkfun catalog. It also provides a &#8220;mystery&#8221; chip feature (the black box with the question-mark above) that lets you define the number and names of an arbitrary set of pins.<\/p>\n<p>I was overjoyed to even get this far: just using Fritzing to document a breadboard design is incredibly valuable. I had been struggling to find some easy way to capture and document projects; Fritzing meets that need beautifully, even if you never need the schematic or board-layout features.<\/p>\n<p>But that&#8217;s where the magic of Fritzing comes in: once you&#8217;ve drawn your breadboard design, a click of a button switches to a schematic view:<\/p>\n<div><\/div>\n<div><img decoding=\"async\" src=\"..\/..\/forum\/download\/file.php?id=69\" alt=\"fritz_sc.jpg\" \/><\/p>\n<\/div>\n<p>Since I tend to not use the schematic view at all (personal preference), this schematic is a default, non-prettified view. You can easily drag the chips around and reposition the wires to &#8220;look nice&#8221;, if you care to&#8230;<\/p>\n<p>The final view in Fritzing is the PCB view, which makes the schematic\/breadboard design into actual traces on a circuit board:<\/p>\n<div><img decoding=\"async\" src=\"..\/..\/forum\/download\/file.php?id=70\" alt=\"fritz_pcb.jpg\" \/><\/p>\n<\/div>\n<p>This shows my final design, omitting some intermediate steps. Fritzing has an &#8220;auto-route&#8221; feature that tries to lay out all the traces on the board so that they don&#8217;t overlap each other, using a double-sided board design if you need it (as this one did). Most likely it will fail to find a workable route for a few of the connections, but easily allows you to manually shift things around until you get a workable design. It can feel kind of like doing Rubic&#8217;s Cube at first, but with a little practice it isn&#8217;t too hard, at least for relatively simple circuits. Plus, Fritzing has a &#8220;check design rules&#8221; feature that validates nothing&#8217;s crossed and things are far enough apart to actually build and function properly.<\/p>\n<p>Once you have a PCB laid out, you can export it as &#8220;Gerber files&#8221;, an industry-standard format for specifying how to build a PCB. There are several companies online that will accept these files, build some finished PCBs, and mail them back to you.<\/p>\n<p>I identified two leading vendors: one in Germany (<a href=\"http:\/\/fab.fritzing.org\/fritzing-fab\">http:\/\/fab.fritzing.org\/fritzing-fab<\/a>) would make me one (1) PCB for 28 Euros. The other in China (<a href=\"http:\/\/iteadstudio.com\/\">http:\/\/iteadstudio.com\/<\/a>) would make me ten (10) PCBs for $26. I couldn&#8217;t convince myself to spend more money for 10% as many boards, so I emailed my Gerber files off to China on New Years morning. And 22 days later, the mailman had me sign for a small box of PCBs.<\/p>\n<p>I promptly ran over to Sector67 and started soldering parts onto the board. I plugged it on top of my Arduino, downloaded the application code that I had written and tested using the breadboard circuit, and WOW: it worked first try!<\/p>\n<div><\/div>\n<div><img decoding=\"async\" src=\"..\/..\/forum\/download\/file.php?id=71\" alt=\"pcb.jpg\" \/><\/p>\n<\/div>\n<p>Once I recovered from the shock of &#8220;worked first try&#8221;, I quickly realized that this was a Big Thing: even a software guy can make inexpensive custom PCBs almost painlessly, using a free, user-friendly open-source tool. As soon as Chris saw how excited I was, he told me I needed to write it up for S67. So here it is&#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>With some help from Chris and Sector67, I&#8217;ve been able to work out a process for getting to a custom-fabricated printed-circuit board (PCB) that&#8217;s amazingly simple and straight-forward, even for people who aren&#8217;t &#8220;hardware guys&#8221;. This article gives an over-view<span class=\"ellipsis\">&hellip;<\/span><\/p>\n<div class=\"read-more\"><a href=\"https:\/\/www.sector67.org\/blog\/2012\/experience-making-pcbs-from-fritzing\/\">Read more &#8250;<\/a><\/div>\n<p><!-- end of .read-more --><\/p>\n","protected":false},"author":13,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[22,21],"tags":[523,19,300,295,296,299,298,297],"class_list":["post-1253","post","type-post","status-publish","format-standard","hentry","category-arduino","category-hardware","tag-arduino","tag-boarduino","tag-china","tag-eaglecad","tag-fritzing","tag-iteadstudios","tag-layout","tag-pcb"],"_links":{"self":[{"href":"https:\/\/www.sector67.org\/blog\/wp-json\/wp\/v2\/posts\/1253","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sector67.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sector67.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sector67.org\/blog\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sector67.org\/blog\/wp-json\/wp\/v2\/comments?post=1253"}],"version-history":[{"count":1,"href":"https:\/\/www.sector67.org\/blog\/wp-json\/wp\/v2\/posts\/1253\/revisions"}],"predecessor-version":[{"id":1254,"href":"https:\/\/www.sector67.org\/blog\/wp-json\/wp\/v2\/posts\/1253\/revisions\/1254"}],"wp:attachment":[{"href":"https:\/\/www.sector67.org\/blog\/wp-json\/wp\/v2\/media?parent=1253"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sector67.org\/blog\/wp-json\/wp\/v2\/categories?post=1253"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sector67.org\/blog\/wp-json\/wp\/v2\/tags?post=1253"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}