{"id":17079,"date":"2022-05-28T16:02:06","date_gmt":"2022-05-28T09:02:06","guid":{"rendered":"https:\/\/www.makeriot2020.com\/?p=17079"},"modified":"2022-05-28T16:02:32","modified_gmt":"2022-05-28T09:02:32","slug":"a-breadboard-friendly-mcp23017","status":"publish","type":"post","link":"https:\/\/www.makeriot2020.com\/index.php\/2022\/05\/28\/a-breadboard-friendly-mcp23017\/","title":{"rendered":"A breadboard friendly MCP23017"},"content":{"rendered":"\n<p>I2C port extenders or expanders are extremely useful devices, and I use quite a lot of them in my projects. My go-to device is definitely the PCF8574, mainly because it is sort of &#8220;breadboard friendly&#8221;. The MCP23017, with the existing breakouts available locally, are not. I have thus decided to design my own version of a breadboard friendly MCP23017 breakout board.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">The Breakout Module PCB and its features<\/h3>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"386\" height=\"266\" data-src=\"http:\/\/makeriot2020.com\/wp-content\/uploads\/2022\/05\/rendered2d.jpg\" alt=\"\" class=\"wp-image-17080 lazyload\" data-srcset=\"https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2022\/05\/rendered2d.jpg 386w, https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2022\/05\/rendered2d-300x207.jpg 300w\" data-sizes=\"(max-width: 386px) 85vw, 386px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 386px; --smush-placeholder-aspect-ratio: 386\/266;\" \/><figcaption>A breadboard friendly MCP23017 breakout board &#8211; Front<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"406\" height=\"276\" data-src=\"http:\/\/makeriot2020.com\/wp-content\/uploads\/2022\/05\/rendered-back2d.jpg\" alt=\"\" class=\"wp-image-17081 lazyload\" data-srcset=\"https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2022\/05\/rendered-back2d.jpg 406w, https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2022\/05\/rendered-back2d-300x204.jpg 300w\" data-sizes=\"(max-width: 406px) 85vw, 406px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 406px; --smush-placeholder-aspect-ratio: 406\/276;\" \/><figcaption>a breadboard friendly MCP23017 breakout board &#8211; Back<\/figcaption><\/figure>\n\n\n\n<p>While this was definitely one of my easier projects, It still took a bit of time to get it just right and add some essential components and features directly onto the PCB. <br><br>The main features of this breakout:<br>&#8211; DIP12 Layout &#8211; with all pins broken out, address pins to jumper headers&#8230;<br>&#8211; Proper decoupling capacitors, as close as possible to the MCP23017 chip.<br>I had to make use of the back layer of the PCB to do this, not exactly ideal, but with proper power and ground planes, and nice thick tracks, I believe they will be just fine.<br><br>&#8211; Address selector jumpers &#8211; The breakouts that are available locally, do not have these.<br>&#8211; Breadboard friendly layout &#8211; 33.020mm x 20.320mm [board size], with 15.240mm vertical spacing between the rows of pins, ensures that you can easily fit it onto your breadboard, while still having space to add jumper wires to the pins. Horizontal pin spacing is standard 2.45mm.<br><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">The Schematic<\/h3>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"725\" data-src=\"http:\/\/makeriot2020.com\/wp-content\/uploads\/2022\/05\/Schematic_MCP23017-Breakout_2022-05-28-1024x725.png\" alt=\"\" class=\"wp-image-17082 lazyload\" data-srcset=\"https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2022\/05\/Schematic_MCP23017-Breakout_2022-05-28-1024x725.png 1024w, https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2022\/05\/Schematic_MCP23017-Breakout_2022-05-28-300x212.png 300w, https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2022\/05\/Schematic_MCP23017-Breakout_2022-05-28-768x544.png 768w, https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2022\/05\/Schematic_MCP23017-Breakout_2022-05-28.png 1169w\" data-sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/725;\" \/><\/figure>\n\n\n\n<p>The schematic is plain and simple. A few points to note though:<br>&#8211; The address selection header, as well as the io pin headers are not shown on the schematic.<br>&#8211; I2C pullup resistors are set at 1k but can be replaced with more suitable values as required in your circuit<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Using the breakout<\/h3>\n\n\n\n<p>I have previously written two very detailed articles on using this chip. They are linked below:<br><a href=\"http:\/\/makeriot2020.com\/index.php\/2020\/10\/13\/using-the-mcp23017-to-increase-your-gpios\/\" target=\"_blank\" rel=\"noreferrer noopener\">Using the MCP23017 with the standard Wire.h library<\/a><br><a href=\"http:\/\/makeriot2020.com\/index.php\/2020\/10\/30\/mcp23017-with-adafruit-library\/\" target=\"_blank\" rel=\"noreferrer noopener\">Using the MCP23017 with the Adafruit MCP23017 library<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Manufacturing the PCB<\/h3>\n\n\n\n<p>The PCB for this project is currently on its way from China, after having been manufactured at PCBWay.<br>Please consider supporting them if you would like your own copy of this PCB, or if you have any PCB of your own that you need to be manufactured.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.pcbway.com\/?from=makeriot2022\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"728\" height=\"280\" data-src=\"http:\/\/makeriot2020.com\/wp-content\/uploads\/2022\/03\/728x280.jpg\" alt=\"PCBWay\" class=\"wp-image-16555 lazyload\" data-srcset=\"https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2022\/03\/728x280.jpg 728w, https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2022\/03\/728x280-300x115.jpg 300w\" data-sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 728px; --smush-placeholder-aspect-ratio: 728\/280;\" \/><\/a><\/figure>\n\n\n\n<p>If you would like to have&nbsp;<a href=\"https:\/\/www.pcbway.com\/?from=makeriot2022\">PCBWAY<\/a>&nbsp;manufacture one of your own, designs, or even this particular PCB, you need to do the following\u2026<br>1) Click on this&nbsp;<a href=\"https:\/\/www.pcbway.com\/setinvite.aspx?inviteid=403795\" target=\"_blank\" rel=\"noreferrer noopener\">link<\/a><br>2) Create an account if you have not already got one of your own.<br>If you use the link above, you will also instantly receive a $5USD coupon, which you can use on your first or any other order later. (Disclaimer: I will earn a small referral fee from PCBWay. This referral fee will not affect the cost of your order, nor will you pay any part thereof.)<br>3) Once you have gone to their website, and created an account, or login with your existing account,<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"768\" height=\"386\" data-src=\"http:\/\/makeriot2020.com\/wp-content\/uploads\/2022\/04\/Page1.png\" alt=\"\" class=\"wp-image-16928 lazyload\" data-srcset=\"https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2022\/04\/Page1.png 768w, https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2022\/04\/Page1-300x151.png 300w\" data-sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 768px; --smush-placeholder-aspect-ratio: 768\/386;\" \/><\/figure>\n\n\n\n<p>4) Click on PCB Instant Quote<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"768\" height=\"386\" data-src=\"http:\/\/makeriot2020.com\/wp-content\/uploads\/2022\/04\/page2.png\" alt=\"\" class=\"wp-image-16929 lazyload\" data-srcset=\"https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2022\/04\/page2.png 768w, https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2022\/04\/page2-300x151.png 300w\" data-sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 768px; --smush-placeholder-aspect-ratio: 768\/386;\" \/><\/figure>\n\n\n\n<p>5) If you do not have any very special requirements for your PCB, click on Quick-order PCB<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"768\" height=\"385\" data-src=\"http:\/\/makeriot2020.com\/wp-content\/uploads\/2022\/04\/page3.png\" alt=\"\" class=\"wp-image-16930 lazyload\" data-srcset=\"https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2022\/04\/page3.png 768w, https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2022\/04\/page3-300x150.png 300w\" data-sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 768px; --smush-placeholder-aspect-ratio: 768\/385;\" \/><\/figure>\n\n\n\n<p>6) Click on Add Gerber File, and select your Gerber file(s) from your computer. Most of your PCB details will now be automatically selected, leaving you to only select the solder mask and silk-screen colour, as well as to remove the order number or not. You can of course fine-tune everything exactly as you want as well.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"768\" height=\"361\" data-src=\"http:\/\/makeriot2020.com\/wp-content\/uploads\/2022\/04\/page4.png\" alt=\"\" class=\"wp-image-16931 lazyload\" data-srcset=\"https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2022\/04\/page4.png 768w, https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2022\/04\/page4-300x141.png 300w\" data-sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 768px; --smush-placeholder-aspect-ratio: 768\/361;\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"768\" height=\"384\" data-src=\"http:\/\/makeriot2020.com\/wp-content\/uploads\/2022\/04\/page5.png\" alt=\"\" class=\"wp-image-16932 lazyload\" data-srcset=\"https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2022\/04\/page5.png 768w, https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2022\/04\/page5-300x150.png 300w\" data-sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 768px; --smush-placeholder-aspect-ratio: 768\/384;\" \/><\/figure>\n\n\n\n<p>7) You can also select whether you want an SMD stencil, or have the board assembled after manufacturing. Please note that the assembly service, as well as the cost of your components, ARE NOT included in the initial quoted price. ( The quote will update depending on what options you select ).<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"768\" height=\"385\" data-src=\"http:\/\/makeriot2020.com\/wp-content\/uploads\/2022\/04\/page6.png\" alt=\"\" class=\"wp-image-16933 lazyload\" data-srcset=\"https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2022\/04\/page6.png 768w, https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2022\/04\/page6-300x150.png 300w\" data-sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 768px; --smush-placeholder-aspect-ratio: 768\/385;\" \/><\/figure>\n\n\n\n<p>8) When you are happy with the options that you have selected, you can click on the Save to Cart Button. From here on, you can go to the top of the screen, click on Cart, make any payment(s) or use any coupons that you have in your account.<br><br>Then just sit back and wait for your new PCB to be delivered to your door via the shipping company that you have selected during checkout.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I2C port extenders or expanders are extremely useful devices, and I use quite a lot of them in my projects. My go-to device is definitely the PCF8574, mainly because it is sort of &#8220;breadboard friendly&#8221;. The MCP23017, with the existing breakouts available locally, are not. I have thus decided to design my own version of &hellip; <a href=\"https:\/\/www.makeriot2020.com\/index.php\/2022\/05\/28\/a-breadboard-friendly-mcp23017\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;A breadboard friendly MCP23017&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":17080,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[150,51,50,52],"tags":[6,45,67],"class_list":["post-17079","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-breakout-board-modules","category-i2c-devices","category-io-extender-outputs","category-port-extender-inputs","tag-arduino","tag-electronics","tag-i2c"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.makeriot2020.com\/index.php\/wp-json\/wp\/v2\/posts\/17079","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.makeriot2020.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.makeriot2020.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.makeriot2020.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.makeriot2020.com\/index.php\/wp-json\/wp\/v2\/comments?post=17079"}],"version-history":[{"count":0,"href":"https:\/\/www.makeriot2020.com\/index.php\/wp-json\/wp\/v2\/posts\/17079\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.makeriot2020.com\/index.php\/wp-json\/wp\/v2\/media\/17080"}],"wp:attachment":[{"href":"https:\/\/www.makeriot2020.com\/index.php\/wp-json\/wp\/v2\/media?parent=17079"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.makeriot2020.com\/index.php\/wp-json\/wp\/v2\/categories?post=17079"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.makeriot2020.com\/index.php\/wp-json\/wp\/v2\/tags?post=17079"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}