{"id":2820,"date":"2017-03-20T00:00:21","date_gmt":"2017-03-20T07:00:21","guid":{"rendered":"http:\/\/192.168.3.4\/?p=2820"},"modified":"2018-01-09T06:51:27","modified_gmt":"2018-01-09T14:51:27","slug":"pcb-design","status":"publish","type":"post","link":"https:\/\/www.cloudacm.com\/?p=2820","title":{"rendered":"PCB Design"},"content":{"rendered":"<p>One challenge with piecing together devices are the connections.\u00a0 We discussed how we&#8217;ll use communications protocols to link devices that are physically separate.\u00a0 This same problem occurs for our nodes that have sensors, controllers, or other circuit boards that need to be linked.\u00a0 To solve this, we&#8217;ll develop and manufacture printed circuit boards, or PCBs as they are commonly referred to.\u00a0 Having a custom PCB that makes the links also provides us a cleaner build.\u00a0 In addition, devices can be modularized to allow for easier troubleshooting and servicing.<\/p>\n<p>We could use breadboards, but these don&#8217;t provide the same ease of maintenance.\u00a0 When dealing with several dozen wires, ensuring the correct connection becomes a risk with breadboarding.\u00a0 Protoboarding is another possibility, however the build time is tedious and quality is difficult to control with small or complex builds.\u00a0 PCBs fix both of these short comings and let the designer choose a build that accommodates the project, not a project that accommodates a build.<\/p>\n<p>There are ways to make PCBs in house using a laser printer, masking, copper clad board, and some etching chemicals.\u00a0 I&#8217;ve had success doing this years ago.\u00a0 However, the time spent building doesn&#8217;t match what would be spent to have this done professionally.\u00a0 PCB manufacturers will provide a higher quality board in greater quantity than the time required to do the same work in house.\u00a0 In house etching still requires the design of the traces, pads, and holes of the PCB.\u00a0 When dealing with large scale projects or projects with great details, a designer should be focused on the build constraints and the quality of the build.\u00a0 Offsetting the workload to PCB manufacturers makes more sense decreasing the chance of a mistake while maintaining superior quality.<\/p>\n<p>I&#8217;ve used ExpressPCB in the past, but there are some limits when using it.\u00a0 Designs made with it can not be provided to any manufacturer.\u00a0 The makers of ExpressPCB have made the software to align with their manufacturing.\u00a0 That&#8217;s fine and I&#8217;ve used there services before with good success.\u00a0 However, I do not want to be limited to any design or manufacturing constraints.\u00a0 As a result, I&#8217;m going to show you 2 other CAD programs that will produce open standard files that most PCB manufactures will accept.\u00a0 These are KiCAD and Fritzing.<\/p>\n<p>Installing KiCAD, I ran these commands on my linux box.<\/p>\n<p>[bash]<br \/>\nadd-apt-repository &#8211;yes ppa:js-reynaud\/kicad-4<br \/>\nsudo apt update<br \/>\nsudo apt install kicad<br \/>\n[\/bash]<\/p>\n<p>Installing Fritzing, I downloaded the installer from the Fritzing site and ran these commands.<\/p>\n<p>[bash]<br \/>\ncd Downloads<br \/>\ncd fritzing-0.9.3b.linux.AMD64<br \/>\nsudo .\/install_fritzing.sh<br \/>\n[\/bash]<\/p>\n<p>Running KiCAD was simple, I just entered in the command &#8220;kicad&#8221; at terminal.\u00a0 Fritzing had to be run by going to path and then running it.<\/p>\n<p>[bash]<br \/>\ncd fritzing-0.9.2b.linux.i386<br \/>\n.\/Fritzing<br \/>\n[\/bash]<\/p>\n<p>To get your feet wet, I suggest creating a simple LED and switch circuit.\u00a0 This allowed me to validate the process provided by these online tutorials.<\/p>\n<p><iframe loading=\"lazy\" title=\"How To Use KiCad to Make a Printed Circuit Board: Part 1\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/o6IWdPpZ4mc?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/p>\n<p><iframe loading=\"lazy\" title=\"Arduino SbS - Make your PCB with Fritzing\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/durXAuJWGk4?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/p>\n<p>I had some problems getting KiCAD to give me expected results.\u00a0 Fritzing on the other hand produced what I had expected.\u00a0 KiCAD offers a greater degree of functions that Fritzing.\u00a0 This might have been my undoing.\u00a0 The learning curve proved to be greater than the time I had set aside for KiCAD.\u00a0 One thing about KiCAD is that the setup includes a Gerber file viewer.\u00a0 This is useful for checking the final quality before submitting it for manufacturing.\u00a0 There are also ways to check the Gerber files online using, http:\/\/gerblook.org\/<\/p>\n<p>The printed circuit boards you can make are only limited by your imagination and the time required to design them.\u00a0 It&#8217;s a worthwhile investment to learn and understand the process.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>One challenge with piecing together devices are the connections.\u00a0 We discussed how we&#8217;ll use communications protocols to link devices that are physically separate.\u00a0 This same problem occurs for our nodes that have sensors, controllers, or other circuit boards that need to be linked.\u00a0 To solve this, we&#8217;ll develop and manufacture printed circuit boards, or PCBs as they are commonly referred to.\u00a0 Having a custom PCB that makes the links also provides us a cleaner build.\u00a0 In addition, devices can be&#8230;<\/p>\n<p class=\"read-more\"><a class=\"btn btn-default\" href=\"https:\/\/www.cloudacm.com\/?p=2820\"> Read More<span class=\"screen-reader-text\">  Read More<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7,6,3],"tags":[],"class_list":["post-2820","post","type-post","status-publish","format-standard","hentry","category-arduino","category-raspberry-pi","category-rd"],"_links":{"self":[{"href":"https:\/\/www.cloudacm.com\/index.php?rest_route=\/wp\/v2\/posts\/2820","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.cloudacm.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.cloudacm.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.cloudacm.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cloudacm.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2820"}],"version-history":[{"count":5,"href":"https:\/\/www.cloudacm.com\/index.php?rest_route=\/wp\/v2\/posts\/2820\/revisions"}],"predecessor-version":[{"id":2824,"href":"https:\/\/www.cloudacm.com\/index.php?rest_route=\/wp\/v2\/posts\/2820\/revisions\/2824"}],"wp:attachment":[{"href":"https:\/\/www.cloudacm.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2820"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.cloudacm.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2820"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.cloudacm.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2820"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}