{"id":19028,"date":"2023-01-20T15:29:41","date_gmt":"2023-01-20T08:29:41","guid":{"rendered":"https:\/\/www.makeriot2020.com\/?p=19028"},"modified":"2023-01-20T15:29:46","modified_gmt":"2023-01-20T08:29:46","slug":"redesigning-my-mcp23017-breakout","status":"publish","type":"post","link":"https:\/\/www.makeriot2020.com\/index.php\/2023\/01\/20\/redesigning-my-mcp23017-breakout\/","title":{"rendered":"Redesigning my MCP23017 breakout"},"content":{"rendered":"\n<p>In a previous<a href=\"http:\/\/makeriot2020.com\/index.php\/2022\/05\/28\/a-breadboard-friendly-mcp23017\/\" target=\"_blank\" rel=\"noopener\" title=\"\"> post<\/a>, I designed a breadboard-friendly MCP23017 breakout module. A few months have passed, and after using the module for a while, some issues came to light&#8230; <\/p>\n\n\n\n<p>In this post, I will show you how I have fixed those issues, and then I can continue testing\/using the new generation prototype, and hopefully, it can become the final revision of this project.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Old Versus New<br><\/h3>\n\n\n\n<p>Let us start by looking at the old and new PCB designs&#8230; <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"615\" height=\"432\" data-src=\"http:\/\/makeriot2020.com\/wp-content\/uploads\/2023\/01\/image.png\" alt=\"\" class=\"wp-image-19042 lazyload\" data-srcset=\"https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2023\/01\/image.png 615w, https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2023\/01\/image-300x211.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: 615px; --smush-placeholder-aspect-ratio: 615\/432;\" \/><figcaption class=\"wp-element-caption\">Old style MCP23017 Breakout &#8211; Top view<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"735\" height=\"418\" data-src=\"http:\/\/makeriot2020.com\/wp-content\/uploads\/2023\/01\/image-1.png\" alt=\"\" class=\"wp-image-19043 lazyload\" data-srcset=\"https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2023\/01\/image-1.png 735w, https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2023\/01\/image-1-300x171.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: 735px; --smush-placeholder-aspect-ratio: 735\/418;\" \/><figcaption class=\"wp-element-caption\">New style MCP23017 Breakout &#8211; Top view<\/figcaption><\/figure>\n\n\n\n<p>There will not be a lot of obvious differences at first, but if we look closely, here are the changes:<br>&#8211; In the old version, due to the size of the SOIC28 footprint, I had to place the bypass capacitors, as well as I2C pullup resistors on the bottom layer of the PCB.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The new design, using the more readily available ( at least where I live)  SSOP28 footprint, leaves enough space for these components on the top layer, thus resulting in a mostly single-layer layout, with only a few tracks on the bottom layer.<\/li>\n\n\n\n<li>I2C pull-up resistors can now be controlled by a jumper, enabling or disabling them completely&#8230; This helps when adding a few devices to the I2C bus, and rather having the pull-up&#8217;s close to the MCU ( as is generally recommended anyway )<\/li>\n\n\n\n<li>Other cosmetic changes involve the separation of the data ports (A and B) from the interrupts, reset, Vcc and ground pins. On initial testing of this on a breadboard, it makes using the device a bit easier, and access to the io pins faster. ( In my biased opinion anyway )<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"576\" height=\"1024\" data-src=\"http:\/\/makeriot2020.com\/wp-content\/uploads\/2023\/01\/20230120_132634-576x1024.jpg\" alt=\"MCP23017 Breakout Module\" class=\"wp-image-19044 lazyload\" data-srcset=\"https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2023\/01\/20230120_132634-576x1024.jpg 576w, https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2023\/01\/20230120_132634-169x300.jpg 169w, https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2023\/01\/20230120_132634-768x1365.jpg 768w, https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2023\/01\/20230120_132634-864x1536.jpg 864w, https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2023\/01\/20230120_132634-1152x2048.jpg 1152w, https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2023\/01\/20230120_132634-1200x2133.jpg 1200w, https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2023\/01\/20230120_132634-scaled.jpg 1440w\" data-sizes=\"(max-width: 576px) 85vw, 576px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 576px; --smush-placeholder-aspect-ratio: 576\/1024;\" \/><figcaption class=\"wp-element-caption\">MCP23017 Breakout &#8211; New version<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Pinouts and connections<\/h3>\n\n\n\n<p>I have tried to make all the connections easy to find and use, with the IO ports ( A and B) on opposite sides of the breakout, Numbered A7 to A0 on the top, and B7 to B0 on the bottom. <br>VCC, GND, SCL and SDA are on a separate 4-way header pin, with the two interrupt pins (I-A and I-B) together with the reset (RST) pin on a 3-way header opposite the power and signal header..<\/p>\n\n\n\n<p>Addressing pins are in the centre of the PCB, marked with a 2 1 0 ( for AD2, AD1, and AD0 respectively), Jumpers to the bottom ( towards port B) pull the pins to ground, where the opposite side will pull the address pins high. <br><br>To the right of that, another 3-way jumper enables or disables the I2C pull-resistors on the module, which in this case is set at 4k7.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Manufacturing<\/h3>\n\n\n\n<p>The PCB for this project has been manufactured at <a href=\"https:\/\/www.pcbway.com\/?from=makeriot2022\" target=\"_blank\" rel=\"noreferrer noopener\">PCBWay.<\/a><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 have 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<h3 class=\"wp-block-heading\">Some More Pictures<\/h3>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"576\" height=\"1024\" data-id=\"19047\" data-src=\"http:\/\/makeriot2020.com\/wp-content\/uploads\/2023\/01\/20230120_132555-576x1024.jpg\" alt=\"\" class=\"wp-image-19047 lazyload\" data-srcset=\"https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2023\/01\/20230120_132555-576x1024.jpg 576w, https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2023\/01\/20230120_132555-169x300.jpg 169w, https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2023\/01\/20230120_132555-768x1365.jpg 768w, https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2023\/01\/20230120_132555-864x1536.jpg 864w, https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2023\/01\/20230120_132555-1152x2048.jpg 1152w, https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2023\/01\/20230120_132555-1200x2133.jpg 1200w, https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2023\/01\/20230120_132555-scaled.jpg 1440w\" data-sizes=\"(max-width: 576px) 85vw, 576px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 576px; --smush-placeholder-aspect-ratio: 576\/1024;\" \/><figcaption class=\"wp-element-caption\">Bottom Layer<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"576\" height=\"1024\" data-id=\"19046\" data-src=\"http:\/\/makeriot2020.com\/wp-content\/uploads\/2023\/01\/20230120_132546-576x1024.jpg\" alt=\"\" class=\"wp-image-19046 lazyload\" data-srcset=\"https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2023\/01\/20230120_132546-576x1024.jpg 576w, https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2023\/01\/20230120_132546-169x300.jpg 169w, https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2023\/01\/20230120_132546-768x1365.jpg 768w, https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2023\/01\/20230120_132546-864x1536.jpg 864w, https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2023\/01\/20230120_132546-1152x2048.jpg 1152w, https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2023\/01\/20230120_132546-1200x2133.jpg 1200w, https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2023\/01\/20230120_132546-scaled.jpg 1440w\" data-sizes=\"(max-width: 576px) 85vw, 576px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 576px; --smush-placeholder-aspect-ratio: 576\/1024;\" \/><figcaption class=\"wp-element-caption\">Top Layer<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"576\" height=\"1024\" data-id=\"19045\" data-src=\"http:\/\/makeriot2020.com\/wp-content\/uploads\/2023\/01\/20230120_132605-576x1024.jpg\" alt=\"\" class=\"wp-image-19045 lazyload\" data-srcset=\"https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2023\/01\/20230120_132605-576x1024.jpg 576w, https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2023\/01\/20230120_132605-169x300.jpg 169w, https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2023\/01\/20230120_132605-768x1365.jpg 768w, https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2023\/01\/20230120_132605-864x1536.jpg 864w, https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2023\/01\/20230120_132605-1152x2048.jpg 1152w, https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2023\/01\/20230120_132605-1200x2133.jpg 1200w, https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2023\/01\/20230120_132605-scaled.jpg 1440w\" data-sizes=\"(max-width: 576px) 85vw, 576px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 576px; --smush-placeholder-aspect-ratio: 576\/1024;\" \/><figcaption class=\"wp-element-caption\">Top Layer<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"576\" height=\"1024\" data-id=\"19044\" data-src=\"http:\/\/makeriot2020.com\/wp-content\/uploads\/2023\/01\/20230120_132634-576x1024.jpg\" alt=\"MCP23017 Breakout Module\" class=\"wp-image-19044 lazyload\" data-srcset=\"https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2023\/01\/20230120_132634-576x1024.jpg 576w, https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2023\/01\/20230120_132634-169x300.jpg 169w, https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2023\/01\/20230120_132634-768x1365.jpg 768w, https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2023\/01\/20230120_132634-864x1536.jpg 864w, https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2023\/01\/20230120_132634-1152x2048.jpg 1152w, https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2023\/01\/20230120_132634-1200x2133.jpg 1200w, https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2023\/01\/20230120_132634-scaled.jpg 1440w\" data-sizes=\"(max-width: 576px) 85vw, 576px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 576px; --smush-placeholder-aspect-ratio: 576\/1024;\" \/><figcaption class=\"wp-element-caption\">Populated PCB<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"735\" height=\"418\" data-id=\"19043\" data-src=\"http:\/\/makeriot2020.com\/wp-content\/uploads\/2023\/01\/image-1.png\" alt=\"\" class=\"wp-image-19043 lazyload\" data-srcset=\"https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2023\/01\/image-1.png 735w, https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2023\/01\/image-1-300x171.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: 735px; --smush-placeholder-aspect-ratio: 735\/418;\" \/><figcaption class=\"wp-element-caption\">3D Render of PCB<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"615\" height=\"432\" data-id=\"19042\" data-src=\"http:\/\/makeriot2020.com\/wp-content\/uploads\/2023\/01\/image.png\" alt=\"\" class=\"wp-image-19042 lazyload\" data-srcset=\"https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2023\/01\/image.png 615w, https:\/\/www.makeriot2020.com\/wp-content\/uploads\/2023\/01\/image-300x211.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: 615px; --smush-placeholder-aspect-ratio: 615\/432;\" \/><figcaption class=\"wp-element-caption\">Old style breakout, for reference<\/figcaption><\/figure>\n<\/figure>\n","protected":false},"excerpt":{"rendered":"<p>In a previous post, I designed a breadboard-friendly MCP23017 breakout module. A few months have passed, and after using the module for a while, some issues came to light&#8230; In this post, I will show you how I have fixed those issues, and then I can continue testing\/using the new generation prototype, and hopefully, it &hellip; <a href=\"https:\/\/www.makeriot2020.com\/index.php\/2023\/01\/20\/redesigning-my-mcp23017-breakout\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Redesigning my MCP23017 breakout&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":19044,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[150],"tags":[6,45,81,67,55],"class_list":["post-19028","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-breakout-board-modules","tag-arduino","tag-electronics","tag-esp8266","tag-i2c","tag-iot"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.makeriot2020.com\/index.php\/wp-json\/wp\/v2\/posts\/19028","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=19028"}],"version-history":[{"count":0,"href":"https:\/\/www.makeriot2020.com\/index.php\/wp-json\/wp\/v2\/posts\/19028\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.makeriot2020.com\/index.php\/wp-json\/wp\/v2\/media\/19044"}],"wp:attachment":[{"href":"https:\/\/www.makeriot2020.com\/index.php\/wp-json\/wp\/v2\/media?parent=19028"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.makeriot2020.com\/index.php\/wp-json\/wp\/v2\/categories?post=19028"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.makeriot2020.com\/index.php\/wp-json\/wp\/v2\/tags?post=19028"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}