{"id":6118,"date":"2020-08-10T14:18:39","date_gmt":"2020-08-10T12:18:39","guid":{"rendered":"https:\/\/willem.aandewiel.nl\/?p=6118"},"modified":"2021-06-07T10:57:33","modified_gmt":"2021-06-07T08:57:33","slug":"extending-gpio-pins-on-your-micro-processor","status":"publish","type":"post","link":"https:\/\/willem.aandewiel.nl\/index.php\/2020\/08\/10\/extending-gpio-pins-on-your-micro-processor\/","title":{"rendered":"Extending GPIO pins on your Micro Processor"},"content":{"rendered":"\n<p>[ 18,333 keer bekeken \/ views ]<br>Somehow, no matter what micro processor I choose, I end up with too few GPIO pins for the projects needs or for what I want to do.<\/p>\n\n\n\n<p>For a recent project I switched from the ESP8266 to the ESP32 which has much more GPIO pins then his predecessor .. but still not enough.<\/p>\n\n\n\n<p>To end this run for GPIO pins for once and for all I decided I needed a cheep extension board that could be configured for Switches (input) and LED\u2019s or other stuff (output). And while at it I thought some extra logic would be nice.<\/p>\n\n\n\n<p>So, what I came up with is a I2C extension board with eight GPIO pins that are freely configurable for input or output (I call the GPIO-pins &#8220;<em>Slot&#8217;s<\/em>&#8220;).<\/p>\n\n\n\n<p>The extension board is specially well suited for use on a solderless breadboard. The schematic can later be incorporated with your hardware design.<\/p>\n\n\n\n<figure class=\"wp-block-gallery columns-1 is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"719\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-T1b-1024x719.png\" alt=\"\" data-id=\"6119\" data-full-url=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-T1b.png\" data-link=\"https:\/\/willem.aandewiel.nl\/?attachment_id=6119\" class=\"wp-image-6119\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-T1b-1024x719.png 1024w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-T1b-300x211.png 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-T1b-768x540.png 768w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-T1b.png 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/li><\/ul><\/figure>\n\n\n\n<p>When configured as input-Slot the most probable use is for switches and then it would be great if we can distinguish a pressed button and the time between pressing the button and releasing it (quick release, mid release and long release). In the code on the main processor you can just say:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">if (switch1 == pressed) \n     do something();\nif (switch1 == midReleased) \n     do oneThing();\nelse do anotherThing();<\/pre>\n\n\n\n<p>For Slot\u2019s that are configured as output it is more like a \u201c<em>shoot and forget<\/em>\u201d kind of Slot.<\/p>\n\n\n\n<p>That is: you can say that the Slot must be HIGH or LOW like the digitalWrite() function in the Arduino IDE. But you can also say: Go HIGH for 2500ms and then go LOW again. In your main program you don\u2019t have to write the code to wait for 2500ms and then switch the GPIO-pin LOW.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">setOutputToggle(Slot, HIGH, 2500)<\/pre>\n\n\n\n<p>You can also tell the Slot to blink with an on-time and an off-time and, if you like, a duration. For instance:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">setOutputPulse(Slot, 500, 1000, 10000);<\/pre>\n\n\n\n<p>The Slot will blink with 500 ms on, 1000 ms off over a period of 10 seconds (10000 ms) and stops blinking.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">setOutputPulse(Slot, 500, 250, <strong>0<\/strong>); \/\/ duration 0 is forever<\/pre>\n\n\n\n<p>The same as before but now the Slot will blink (500 ms on, 250 ms off) forever (or until you tell it to do something else);<\/p>\n\n\n\n<p>The hardware is designed around an ATtiny841 micro controller. Communication is by I2C (two wires, SCL and SDA). You can use the boards with 5Volt or 3.3Volt depending on your needs (most probably the voltage of the main processor) but you can not interchange 5Volt and 3.3Volt systems without some extra logic (level shifters for the SDA and SCL lines).<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"777\" height=\"564\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-ATtiny841-2.png\" alt=\"\" class=\"wp-image-6140\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-ATtiny841-2.png 777w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-ATtiny841-2-300x218.png 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-ATtiny841-2-768x557.png 768w\" sizes=\"auto, (max-width: 777px) 100vw, 777px\" \/><\/figure>\n\n\n\n<p>To interact with the ADW0720 boards I developed a library with simple commands.<\/p>\n\n\n\n<p>Every I2C device has an address in the 1 to 127 (decimal) range. The default address for de ADW0720 boards is 0x18 (24 decimal) but you can change this to whatever you want with the command:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">setI2Caddress(&lt;newAddress&gt;);\nwriteCommand(_BV(CMD_WRITECONF));<\/pre>\n\n\n\n<p>The second line saves this <em>newAddress<\/em> to EEPROM and from that moment on the <em>newAddress<\/em> is the address for this module. By giving every ADW0720 board a unique address you can control multiple ADW0720 boards with only the two I2C lines!<\/p>\n\n\n\n<p>I designed two types of&nbsp; ADW0720 boards that are ready to use. The Type-1 board has 4 tactile switches and 4 LED\u2019s, the Type-2 board has 8 LED\u2019s but no switches.<\/p>\n\n\n\n<figure class=\"wp-block-gallery columns-2 is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-t2.png\"><img loading=\"lazy\" decoding=\"async\" width=\"733\" height=\"505\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-t2.png\" alt=\"\" data-id=\"6121\" data-full-url=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-t2.png\" data-link=\"https:\/\/willem.aandewiel.nl\/?attachment_id=6121\" class=\"wp-image-6121\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-t2.png 733w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-t2-300x207.png 300w\" sizes=\"auto, (max-width: 733px) 100vw, 733px\" \/><\/a><figcaption class=\"blocks-gallery-item__caption\">Type 2 with 8 LED&#8217;s<br><\/figcaption><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-t1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"754\" height=\"451\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-t1.png\" alt=\"\" data-id=\"6122\" data-full-url=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-t1.png\" data-link=\"https:\/\/willem.aandewiel.nl\/?attachment_id=6122\" class=\"wp-image-6122\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-t1.png 754w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-t1-300x179.png 300w\" sizes=\"auto, (max-width: 754px) 100vw, 754px\" \/><\/a><figcaption class=\"blocks-gallery-item__caption\">Type 1 with 4 LED&#8217;s and 4 Switches<br><\/figcaption><\/figure><\/li><\/ul><\/figure>\n\n\n\n<p>In stead of the LED\u2019s it is also possible to control a N-channel MOSFET (like the 2N7000 or 2N7002) as a switch to control bigger loads like buzzers, relays or motors.<\/p>\n\n\n\n<figure class=\"wp-block-gallery columns-2 is-cropped wp-block-gallery-3 is-layout-flex wp-block-gallery-is-layout-flex\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-Motor.png\"><img loading=\"lazy\" decoding=\"async\" width=\"485\" height=\"260\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-Motor.png\" alt=\"\" data-id=\"6123\" data-full-url=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-Motor.png\" data-link=\"https:\/\/willem.aandewiel.nl\/?attachment_id=6123\" class=\"wp-image-6123\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-Motor.png 485w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-Motor-300x161.png 300w\" sizes=\"auto, (max-width: 485px) 100vw, 485px\" \/><\/a><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-PowerDriver.png\"><img loading=\"lazy\" decoding=\"async\" width=\"319\" height=\"372\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-PowerDriver.png\" alt=\"\" data-id=\"6124\" data-full-url=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-PowerDriver.png\" data-link=\"https:\/\/willem.aandewiel.nl\/?attachment_id=6124\" class=\"wp-image-6124\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-PowerDriver.png 319w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-PowerDriver-257x300.png 257w\" sizes=\"auto, (max-width: 319px) 100vw, 319px\" \/><\/a><\/figure><\/li><\/ul><\/figure>\n\n\n\n<p>If you would like to have one of these boards but you don\u2019t want to make them yourself, I have some that I can sell. Just write a comment with what you want (it won\u2019t make me rich but it helps me to buy parts and develop other stuff that, hopefully, you like).<\/p>\n\n\n\n<p>You can find the library and the code for the ATtiny841 slave on <a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/mrWheel\/I2C_ADW0720\" target=\"_blank\">github<\/a>. There you will also find the documentation for the library.<\/p>\n\n\n\n<p>The library comes with two examples. The first one is just to show-off what the ADW0720 boards can do and the second one show&#8217;s more advanced usage. This second example (I2C_ADW0720_Configurator) can be used to setup the boards so you don&#8217;t have to do that in your main program (f.i. set the type of Slot for each of the 8 Slot&#8217;s and\/or set the I2C address for the board at hand).<\/p>\n\n\n\n<figure class=\"wp-block-gallery columns-3 is-cropped wp-block-gallery-4 is-layout-flex wp-block-gallery-is-layout-flex\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-T1b-1-1024x719.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"719\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-T1b-1-1024x719.png\" alt=\"\" data-id=\"6132\" data-link=\"https:\/\/willem.aandewiel.nl\/?attachment_id=6132\" class=\"wp-image-6132\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-T1b-1-1024x719.png 1024w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-T1b-1-300x211.png 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-T1b-1-768x540.png 768w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-T1b-1.png 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-t1-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"754\" height=\"451\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-t1-1.png\" alt=\"\" data-id=\"6126\" data-link=\"https:\/\/willem.aandewiel.nl\/?attachment_id=6126\" class=\"wp-image-6126\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-t1-1.png 754w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-t1-1-300x179.png 300w\" sizes=\"auto, (max-width: 754px) 100vw, 754px\" \/><\/a><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-Motor-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"485\" height=\"260\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-Motor-1.png\" alt=\"\" data-id=\"6127\" data-link=\"https:\/\/willem.aandewiel.nl\/?attachment_id=6127\" class=\"wp-image-6127\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-Motor-1.png 485w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-Motor-1-300x161.png 300w\" sizes=\"auto, (max-width: 485px) 100vw, 485px\" \/><\/a><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-T2b.png\"><img loading=\"lazy\" decoding=\"async\" width=\"777\" height=\"904\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-T2b.png\" alt=\"\" data-id=\"6130\" data-link=\"https:\/\/willem.aandewiel.nl\/?attachment_id=6130\" class=\"wp-image-6130\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-T2b.png 777w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-T2b-258x300.png 258w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-T2b-768x894.png 768w\" sizes=\"auto, (max-width: 777px) 100vw, 777px\" \/><\/a><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-t2-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"733\" height=\"505\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-t2-1.png\" alt=\"\" data-id=\"6125\" data-link=\"https:\/\/willem.aandewiel.nl\/?attachment_id=6125\" class=\"wp-image-6125\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-t2-1.png 733w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-t2-1-300x207.png 300w\" sizes=\"auto, (max-width: 733px) 100vw, 733px\" \/><\/a><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-PowerDriver-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"319\" height=\"372\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-PowerDriver-1.png\" alt=\"\" data-id=\"6128\" data-link=\"https:\/\/willem.aandewiel.nl\/?attachment_id=6128\" class=\"wp-image-6128\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-PowerDriver-1.png 319w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-PowerDriver-1-257x300.png 257w\" sizes=\"auto, (max-width: 319px) 100vw, 319px\" \/><\/a><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-T1a-1024x618.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"618\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-T1a-1024x618.png\" alt=\"\" data-id=\"6131\" data-link=\"https:\/\/willem.aandewiel.nl\/?attachment_id=6131\" class=\"wp-image-6131\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-T1a-1024x618.png 1024w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-T1a-300x180.png 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-T1a-768x463.png 768w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-T1a.png 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/IMG_4983-1024x768.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/IMG_4983-1024x768.jpg\" alt=\"\" data-id=\"6133\" data-link=\"https:\/\/willem.aandewiel.nl\/?attachment_id=6133\" class=\"wp-image-6133\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/IMG_4983-1024x768.jpg 1024w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/IMG_4983-300x225.jpg 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/IMG_4983-768x576.jpg 768w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/IMG_4983.jpg 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/IMG_4982-1024x768.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/IMG_4982-1024x768.jpg\" alt=\"\" data-id=\"6134\" data-link=\"https:\/\/willem.aandewiel.nl\/?attachment_id=6134\" class=\"wp-image-6134\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/IMG_4982-1024x768.jpg 1024w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/IMG_4982-300x225.jpg 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/IMG_4982-768x576.jpg 768w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/IMG_4982.jpg 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-LibHelpers.png\"><img loading=\"lazy\" decoding=\"async\" width=\"976\" height=\"285\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-LibHelpers.png\" alt=\"\" data-id=\"6145\" data-full-url=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-LibHelpers.png\" data-link=\"https:\/\/willem.aandewiel.nl\/?attachment_id=6145\" class=\"wp-image-6145\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-LibHelpers.png 976w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-LibHelpers-300x88.png 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-LibHelpers-768x224.png 768w\" sizes=\"auto, (max-width: 976px) 100vw, 976px\" \/><\/a><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-T2_bot-1024x812.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"812\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-T2_bot-1024x812.png\" alt=\"\" data-id=\"6135\" data-link=\"https:\/\/willem.aandewiel.nl\/?attachment_id=6135\" class=\"wp-image-6135\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-T2_bot-1024x812.png 1024w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-T2_bot-300x238.png 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-T2_bot-768x609.png 768w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-T2_bot.png 1142w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-T2a-1024x589.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"589\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-T2a-1024x589.png\" alt=\"\" data-id=\"6136\" data-link=\"https:\/\/willem.aandewiel.nl\/?attachment_id=6136\" class=\"wp-image-6136\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-T2a-1024x589.png 1024w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-T2a-300x173.png 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-T2a-768x442.png 768w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-T2a.png 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-T1_Schematic.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1016\" height=\"412\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-T1_Schematic.png\" alt=\"\" data-id=\"6143\" data-link=\"https:\/\/willem.aandewiel.nl\/?attachment_id=6143\" class=\"wp-image-6143\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-T1_Schematic.png 1016w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-T1_Schematic-300x122.png 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2020\/08\/ADW0720-T1_Schematic-768x311.png 768w\" sizes=\"auto, (max-width: 1016px) 100vw, 1016px\" \/><\/a><\/figure><\/li><\/ul><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>[ ]Somehow, no matter what micro processor I choose, I end up with too few GPIO pins for the projects needs or for what I want to do. For a recent project I switched from the ESP8266 to the ESP32 &hellip; <a href=\"https:\/\/willem.aandewiel.nl\/index.php\/2020\/08\/10\/extending-gpio-pins-on-your-micro-processor\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,6,10,115],"tags":[25,136,135,119,134,59,137],"class_list":["post-6118","post","type-post","status-publish","format-standard","hentry","category-arduino","category-esp8266","category-hardware","category-kicad","tag-arduino","tag-asp8266","tag-attiny841","tag-esp32","tag-extender","tag-i2c","tag-uno"],"views":18333,"_links":{"self":[{"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/posts\/6118","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/comments?post=6118"}],"version-history":[{"count":11,"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/posts\/6118\/revisions"}],"predecessor-version":[{"id":6523,"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/posts\/6118\/revisions\/6523"}],"wp:attachment":[{"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/media?parent=6118"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/categories?post=6118"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/tags?post=6118"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}