{"id":9083,"date":"2020-10-22T15:03:06","date_gmt":"2020-10-22T15:03:06","guid":{"rendered":"https:\/\/wolles-elektronikkiste.de\/esp-01-port-expansion"},"modified":"2020-11-29T12:14:43","modified_gmt":"2020-11-29T12:14:43","slug":"esp-01-port-expansion","status":"publish","type":"post","link":"https:\/\/wolles-elektronikkiste.de\/en\/esp-01-port-expansion","title":{"rendered":"ESP-01 port expansion"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">About the post<\/h2>\n<p>In my <a href=\"https:\/\/wolles-elektronikkiste.de\/en\/esp8266-esp-01-module?lang=en\" target=\"_blank\" rel=\"noopener noreferrer\">last post<\/a> I explained the basics of the ESP-01 module. You will often read that this module has two GPIOs. But there are four, because you can also address TX and RX as GPIO1 and GPIO3 respectively. Nevertheless, this can become scarce for many projects. If this is the case, then it is certainly the easiest way to switch to the big brother, the ESP-12. Alternatively, e.g. if this would not be enough, one can switch to the numerous options for ESP-01 port expansion. I would like to present three of them in this post:<\/p>\r\n<ul>\r\n\t<li data-tadv-p=\"keep\">I2C 16-bit I\/O Expander MCP23017\u00a0<\/li>\r\n\t<li data-tadv-p=\"keep\">I2C 8-bit I\/O Expander PCF8574<\/li>\r\n\t<li data-tadv-p=\"keep\">shift register 74HC595<\/li>\r\n<\/ul>\r\n<p>The first two are addressed via I2C and therefore require two GPIOs. Three GPIOs are required for the shift register.<\/p>\r\n<p>In a separate post I will show how to &#8220;abuse&#8221; a Counter IC for port expansion.<\/p>\n<h2 class=\"wp-block-heading\">The MCP23017<\/h2>\n<p>The MCP23017 is by far the most versatile of the three components. For the &#8220;normal&#8221; breadboard user, the MCP23017-E\/SP version is recommended. You can get this nice IC with its 28 legs at <a href=\"https:\/\/www.conrad.de\/de\/p\/microchip-technology-mcp23017-e-sp-schnittstellen-ic-e-a-erweiterungen-por-i-c-1-7-mhz-spdip-28-651440.html\" target=\"_blank\" rel=\"noopener noreferrer\">Conrad<\/a>, <a href=\"https:\/\/www.reichelt.de\/index.html?ACTION=446&amp;LA=0&amp;q=mcp23017\" target=\"_blank\" rel=\"noopener noreferrer\">Reichelt<\/a> and Co for about one euro.<\/p>\r\n<p>The MCP23017 has two ports (A and B) with eight programmable in-\/outputs each. It also offers extensive interrupt programming options, which I will not discuss in detail in this post. I will only make up for this in a separate post about this interesting piece of electronics.\u00a0<\/p>\r\n<p>The MCP23017 is designed for voltages between 1.8 and 5.5 volts. In standby mode, it consumes a maximum of 1 \u00b5A.\u00a0<\/p>\r\n<p>In addition to the MCP23017, there is also the MCP23016, MCP23018 and the MCP23008 available. The latter is basically the little brother of the MCP23017 with only eight in-\/outputs. Like the MCP23017, the MCP23016 and the MCP23018 have sixteen in-\/outputs. I wouldn&#8217;t recommend the MCP23016 because it&#8217;s more complex to use and doesn&#8217;t offer any benefits. The MCP23018, on the other hand, is not so widely used and that&#8217;s why I introduce the MCP23017 in this post. A concise summary of the differences between MCP23xxx family members can be found <a href=\"https:\/\/piers.rocks\/i2c\/mcp23016\/mcp23017\/gpio\/2018\/09\/11\/differences-between-mcp23017-and-mcp23018.html\" target=\"_blank\" rel=\"noopener noreferrer\">here<\/a>.<\/p><p>And <a href=\"http:\/\/ww1.microchip.com\/downloads\/en\/devicedoc\/20001952c.pdf\">here<\/a> you will find a data sheet for the MCP23017.<\/p>\n<h3 class=\"wp-block-heading\">The pinout<\/h3>\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><a href=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/05\/Pin_Out_MCP23017.png\"><img loading=\"lazy\" decoding=\"async\" width=\"458\" height=\"380\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/05\/Pin_Out_MCP23017.png\" alt=\"Pinout of the MCP23017\" class=\"wp-image-7952\" srcset=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/05\/Pin_Out_MCP23017.png 458w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/05\/Pin_Out_MCP23017-300x249.png 300w\" sizes=\"auto, (max-width: 458px) 100vw, 458px\" \/><\/a><figcaption>Pinout of the MCP23017<\/figcaption><\/figure><\/div>\n<p>In addition to the 16 I\/O pins, the Pins SDA and SCL for the I2C communication and the pins for the power supply, the MCP23017 has the following in- and outputs:<\/p>\r\n<ul>\r\n\t<li data-tadv-p=\"keep\">A0, A1, A2: address pins<\/li>\r\n\t<li data-tadv-p=\"keep\">RESET: low-active reset pin<\/li>\r\n\t<li data-tadv-p=\"keep\">INTA, INTB: Interrupt outputs for PORT A and B; can be combined<\/li>\r\n<\/ul>\n<h3 class=\"wp-block-heading\">The circuit for control by the ESP-01<\/h3>\n<p>As a simple application example for the ESP-01 port extension, let&#8217;s control sixteen LEDs. In order not to make the schema too confusing, I have drawn only a small part of the lines to the LEDs. I also did not include the power supply of 3.3 volts in the circuit. I explained the upload of sketches to the ESP-01 module in my <a href=\"https:\/\/wolles-elektronikkiste.de\/en\/esp8266-esp-01-module?lang=en\" target=\"_blank\" rel=\"noopener noreferrer\">last post<\/a> and therefore do not go into that detail anymore. The main aspects of the circuit are the following:\u00a0<\/p>\r\n<ul>\r\n\t<li data-tadv-p=\"keep\">CH_PD of the ESP-01 is hooked to 3.3 V<\/li>\r\n\t<li data-tadv-p=\"keep\">Reset pin of the ESP-01 via pushbutton connected to GND<\/li>\r\n\t<li data-tadv-p=\"keep\">GPIO0 to SDA<\/li>\r\n\t<li data-tadv-p=\"keep\">GPIO2 to SCL<\/li>\r\n\t<li data-tadv-p=\"keep\">The address pins to GND &#8212; &gt; address is then 0x20\r\n\r\n<ul>\r\n\t<li data-tadv-p=\"keep\">\u00a0the scheme is 1 0 0 A2 A1 A0<\/li>\r\n\t<li data-tadv-p=\"keep\">\u00a0Here: 1 0 0 0 0 0 = 32 = 0x20<\/li>\r\n<\/ul>\r\n<\/li>\r\n\t<li data-tadv-p=\"keep\">Reset pin of the MCP23017 to 3.3 V<\/li>\r\n\t<li data-tadv-p=\"keep\">VSS of the MCP23017 to GND<\/li>\r\n\t<li data-tadv-p=\"keep\">VDD of the MCP23017 to 3.3 V<\/li>\r\n<\/ul>\r\n<p>&nbsp;<\/p>\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"544\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2020\/10\/fritzing_MCP23017_ESP_01_neu-1024x544.png\" alt=\"ESP-01 port expansion with the MCP23107\" class=\"wp-image-9091\" srcset=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2020\/10\/fritzing_MCP23017_ESP_01_neu-1024x544.png 1024w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2020\/10\/fritzing_MCP23017_ESP_01_neu-300x159.png 300w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2020\/10\/fritzing_MCP23017_ESP_01_neu-768x408.png 768w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2020\/10\/fritzing_MCP23017_ESP_01_neu-1536x815.png 1536w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2020\/10\/fritzing_MCP23017_ESP_01_neu-1320x701.png 1320w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2020\/10\/fritzing_MCP23017_ESP_01_neu.png 1588w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>ESP-01 port expansion with the MCP23107<\/figcaption><\/figure><p><em>Note: You might be tempted to power the ESP-01 module and the MCP23017 separately, especially if you are hook components to the MCP23107 that require 5 volts. The problem is that a HIGH signal to SDA\/SCL must be at least at a level of 80 percent of VDD. I also fell into that trap. The error was hard to find because it didn&#8217;t fail completely, but only worked unreliable. If you want to work with different voltages, you have to put a level converter into the two communication lines.\u00a0<\/em><\/p>\n<figure class=\"wp-block-image\"><a href=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/05\/Input_High_Level_MCP23017.png\"><img loading=\"lazy\" decoding=\"async\" width=\"996\" height=\"166\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/05\/Input_High_Level_MCP23017.png\" alt=\"Table with minimum voltages for HIGH signals on the MCP23017\" class=\"wp-image-7954\" srcset=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/05\/Input_High_Level_MCP23017.png 996w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/05\/Input_High_Level_MCP23017-300x50.png 300w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/05\/Input_High_Level_MCP23017-768x128.png 768w\" sizes=\"auto, (max-width: 996px) 100vw, 996px\" \/><\/a><figcaption>Minimum voltage for HIGH signals on the MCP23017<\/figcaption><\/figure>\n<h3 class=\"wp-block-heading\">The MCP23017 library <\/h3>\n<p>The MCP23017 has a lot of registers that make it very flexible, but this also makes programming a little complex. That&#8217;s why I developed a library that you can download <a href=\"https:\/\/github.com\/wollewald\/MCP23017_WE\" target=\"_blank\" rel=\"noopener noreferrer\">here<\/a> from Github. As already mentioned, I will publish a post about the MCP23017 at a later stage and there I will explain the library in detail. Here I limit myself to switching on and off I\/O pins.\u00a0<\/p>\r\n<p>The following example sketch first creates an MCP23017 object. We don&#8217;t use the functionality of the reset. With <code>Wire.begin(0,2);<\/code>, GPIO0 and GPIO2 are defined as SDA or SCL. <code>myMCP.Init();<\/code> defines some register contents. The function <code>myMCP.setPinMode();<\/code> determines whether the pins act as input or output, similar to the Arduino pinMode function. With <code>myMCP.setPort();<\/code>, the HIGH\/LOW states are set for an entire port. <code>myMCP.setPin();<\/code> switches individual pins. <code>myMCP.togglePin();<\/code> switches from HIGH to LOW or vice versa.\u00a0<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">#define\u00a0MCP_ADDRESS\u00a00x20\u00a0\/\/\u00a0(A2\/A1\/A0\u00a0=\u00a0LOW)\u00a0\r\n#include\u00a0&lt;Wire.h&gt;\r\n#include\u00a0&lt;MCP23017.h&gt;\u00a0\u00a0\r\nMCP23017\u00a0myMCP(MCP_ADDRESS,3);\u00a0\/\/\u00a03=\u00a0ResetPin,\u00a0nicht\u00a0weiter\u00a0wichtig\u00a0hier\u00a0\r\n\r\nvoid\u00a0setup(){\u00a0\r\n\u00a0\u00a0Wire.begin(0,2);\u00a0\/\/SDA\u00a0=\u00a0GPIO0\u00a0\/\u00a0SCL\u00a0=\u00a0GPIO2\r\n\u00a0\u00a0myMCP.Init();\r\n\u00a0\u00a0myMCP.setPortMode(B11111111,A);\r\n\u00a0\u00a0myMCP.setPortMode(B11111111,B);\r\n\u00a0\u00a0myMCP.setPort(B00000000,\u00a0A);\u00a0\/\/\u00a0alles\u00a0auf\u00a0LOW\u00a0\r\n\u00a0\u00a0myMCP.setPort(B00000000,\u00a0B);\u00a0delay(1000);\u00a0\r\n}\u00a0\r\n\r\nvoid\u00a0loop(){\u00a0\r\n\u00a0\u00a0myMCP.setPin(1,A,ON);\u00a0\r\n\u00a0\u00a0delay(1000);\u00a0\r\n\u00a0\u00a0myMCP.setPin(1,B,ON);\u00a0\r\n\u00a0\u00a0delay(1000);\u00a0\r\n\u00a0\u00a0myMCP.setPin(1,A,OFF);\u00a0\r\n\u00a0\u00a0delay(1000);\u00a0\r\n\u00a0\u00a0myMCP.setPin(1,B,OFF);\u00a0\r\n\u00a0\u00a0delay(1000);\u00a0\r\n\u00a0\u00a0myMCP.setPort(B10101010,B00011000);\u00a0\r\n\u00a0\u00a0delay(1000);\u00a0\r\n\u00a0\u00a0for(int\u00a0i=0;\u00a0i&lt;=7;\u00a0i++){\u00a0\r\n\u00a0\u00a0\u00a0\u00a0myMCP.togglePin(i,A);\u00a0\r\n\u00a0\u00a0}\u00a0\r\n\u00a0\u00a0delay(1000);\u00a0\r\n\u00a0\u00a0myMCP.setPort(B00000000,\u00a0A);\u00a0\r\n\u00a0\u00a0myMCP.setPort(B00000000,\u00a0B);\u00a0\r\n\u00a0\u00a0delay(1000);\u00a0\r\n}<\/pre>\r\n<p>&nbsp;<\/p>\n<h2 class=\"wp-block-heading\">The PCF8574<\/h2>\n<p>Like the MCP23017, the PCF8574 is an I\/O expander with interrupt output to be controlled via I2C. However, it has only eight in-\/outputs, a single interrupt output, and does not have the many options of the MCP23017. On the other hand it is very easy to control, even without a special library or a long study of registers.\u00a0<\/p>\r\n<p>The PCF8574 is available in various versions, e.g. the DIP16 variants PCF8574<strong>P<\/strong>, PCF8574<strong>N<\/strong> or PCF8574<strong>AN<\/strong>. These have the same pinout differ according to my research essentially in the I2C addresses. I used the &#8220;N&#8221; variant for this post.\u00a0<\/p>\r\n<p>The PCF8574 can be operated in a range of 2.5 to 6 volts. \u00a0 A data sheet is available <a href=\"http:\/\/www.ti.com\/lit\/ds\/symlink\/pcf8574.pdf\" target=\"_blank\" rel=\"noopener noreferrer\">here.<\/a><\/p>\r\n<p>A peculiarity of the PCF8574 is that the pins only provide a few hundred microamperes when in HIGH state. If you want to control LEDs, for example, you have to use the pins as input (current sink LOW). This will become clearer later in the circuit and the sketch.\u00a0<\/p>\n<h3 class=\"wp-block-heading\">The pinout<\/h3>\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter is-resized\"><a href=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/05\/PinOut_8574.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/05\/PinOut_8574.png\" alt=\"Pinout of the PCF8574\" class=\"wp-image-7955\" width=\"259\" height=\"277\" srcset=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/05\/PinOut_8574.png 517w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/05\/PinOut_8574-280x300.png 280w\" sizes=\"auto, (max-width: 259px) 100vw, 259px\" \/><\/a><figcaption>Pinout of the PCF8574<\/figcaption><\/figure><\/div>\n<p>As with the MCP23017, the address is set by connecting the address pins A0, A1 and A2 to GND (0) or HIGH (1), according to the scheme &#8220;1 0 0 A2 A1 A0&#8221;. At least this applies to the variant N used by me. P0 to P7 are the inputs\/outputs, INT is the low-active interrupt output and the rest should be clear.\u00a0<\/p>\n<h3 class=\"wp-block-heading\">Circuit for the control by the ESP-01<\/h3>\n<p>Again, I take a simple example of controlling some LEDs as an example for the ESP-01 port expansion. The fundamental difference to the MCP23017 is the current direction: it flows from the LEDs into the PCF8574 to GND. Moreover, please note:<\/p>\r\n<ul>\r\n\t<li data-tadv-p=\"keep\">CH_PD of the ESP-01 is hooked to 3.3 V<\/li>\r\n\t<li data-tadv-p=\"keep\">Reset pin of the ESP-01 is connected to GND via a pushbutton<\/li>\r\n\t<li data-tadv-p=\"keep\">GPIO0 to SDA<\/li>\r\n\t<li data-tadv-p=\"keep\">GPIO2 to SCL<\/li>\r\n\t<li data-tadv-p=\"keep\">Address pins to GND &#8212; &gt; address: 0x20<\/li>\r\n\t<li data-tadv-p=\"keep\">The SDA and SCL lines need a pull-up (10 kOhm)<\/li>\r\n\t<li data-tadv-p=\"keep\">If you use the interrupt output, this line also needs a pull-up<\/li>\r\n<\/ul>\r\n<p><em>Note: also with the PCF8574, a HIGH signal must exceed a certain level in order to be recognized as such (V<sub>min, HIGH<\/sub> = 0.7 x VDD). So be aware of this if you want to use the PCF8574 with 5 volts and use a 3.3V ESP-01. You could use a level converter in this case.\u00a0<\/em><\/p>\r\n<p>&nbsp;<\/p>\n<figure class=\"wp-block-image\"><a href=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/05\/fritzing_pcf8574_esp01-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"636\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/05\/fritzing_pcf8574_esp01-1-1024x636.png\" alt=\"ESP-01 port expansion with PCF8574 - schematic\" class=\"wp-image-7957\" srcset=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/05\/fritzing_pcf8574_esp01-1-1024x636.png 1024w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/05\/fritzing_pcf8574_esp01-1-300x186.png 300w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/05\/fritzing_pcf8574_esp01-1-768x477.png 768w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/05\/fritzing_pcf8574_esp01-1-1320x820.png 1320w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/05\/fritzing_pcf8574_esp01-1.png 1344w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption>ESP-01 port expansion with PCF8574<\/figcaption><\/figure>\n<h3 class=\"wp-block-heading\">A simple example sketch<\/h3>\n<p>First of all, one has to rethink: only when a pin is in the LOW state, current can flow according to the circuit shown above. In other words: 0 &#8212; &gt; LED is on, 1 &#8212; &gt; LED is off. In the example sketch I played a little with it. In the loop, all LEDs go on and off in turn. Those unfamiliar with bit operations may wonder about the line <code>state &amp;= ~(1&lt;&lt;i);<\/code>. For example, if &#8220;i&#8221; is equal to 3, that means: move the 1 by 3 digits to the left (00000100), perform a bitwise negation (11111011) and execute a logical AND (11111011).<\/p>\r\n<p>It is important to pass the pins for SDA and SCL when using the ESP-01 at Wire.begin().\u00a0<\/p>\r\n<p>Even if there is no Read in the sketch, I have integrated a read function for completeness, which queries the state of the pins. Try it out by yourselves. \u00a0<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-title=\"esp01_pcf8574.ino\" data-enlighter-group=\"esp01_pcf8574.ino\">#include &lt;Wire.h&gt; \r\n#define PCF8574N 0x20 \/\/ Adresse, wenn A0\/A1\/A2 = LOW \r\n\r\nvoid setup(){ \r\n  Wire.begin(0,2); \r\n} \r\n\r\nvoid loop(){ \r\n  switchPCF8574N(B11111111); \r\n  delay(1000); \r\n  switchPCF8574N(B10101010); \r\n  delay(1000); \r\n  switchPCF8574N(B01010101); \r\n  delay(1000); \r\n  for(int i=0; i&lt;=7; i++){ \r\n    byte state = B11111111; \r\n    state &amp;= ~(1&lt;&lt;i); \r\n    switchPCF8574N(state); \r\n    delay(500); \r\n    } \r\n  } \r\n  \r\nvoid switchPCF8574N(byte datenByte){ \r\n  Wire.beginTransmission(PCF8574N); \r\n  Wire.write(datenByte); \r\n  Wire.endTransmission(); \r\n}\r\n\r\nbyte readPCF8574N(){\r\n  byte data;\r\n  Wire.requestFrom(PCF8574N,1);\r\n  data = Wire.read();\r\n  return data;\r\n}<\/pre>\r\n<p>&nbsp;<\/p>\n<h2 class=\"wp-block-heading\">The shift register 74HC595<\/h2>\n<p>The shift register differs from the other two components for the ESP-01 port expansion essentially by:<\/p>\r\n<ul>\r\n\t<li data-tadv-p=\"keep\">It has eight &#8220;only outputs&#8221;<\/li>\r\n\t<li data-tadv-p=\"keep\">No interrupt output<\/li>\r\n\t<li data-tadv-p=\"keep\">It requires three lines for control\u00a0<\/li>\r\n\t<li data-tadv-p=\"keep\">The microcontroller does not have to have a special bus system such as I2C or SPI\u00a0\r\n\r\n<ul>\r\n\t<li data-tadv-p=\"keep\">This makes it very interesting for the ATtiny85, for example<\/li>\r\n<\/ul>\r\n<\/li>\r\n<\/ul>\r\n<p>The 74HC595 slide register is also available under different names. It doesn&#8217;t matter if you have a &#8220;74HC595&#8221;, a &#8220;M74HC595&#8221; or a &#8220;SN74HC595&#8221;. More importantly, if there is an &#8220;N&#8221; attached to it at the end, it is the DIP16 variant. \u00a0<\/p>\r\n<p>The 74HC595 can be operated in a range of 2 to 6 volts. For example, a data sheet can be found <a href=\"http:\/\/pdf.datasheetcatalog.com\/datasheet\/philips\/74HC595PW.pdf\" target=\"_blank\" rel=\"noopener noreferrer\">here<\/a>.<\/p>\n<h3 class=\"wp-block-heading\">The pinout<\/h3>\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter is-resized\"><a href=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/05\/Pin_Out_74HC595.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/05\/Pin_Out_74HC595.png\" alt=\"Pinout of the 74HC595\" class=\"wp-image-7958\" width=\"319\" height=\"348\" srcset=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/05\/Pin_Out_74HC595.png 425w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/05\/Pin_Out_74HC595-275x300.png 275w\" sizes=\"auto, (max-width: 319px) 100vw, 319px\" \/><\/a><figcaption>Pinout of the 74HC595<\/figcaption><\/figure><\/div>\n<p>A detailed explanation of how a sliding register works would go beyond the scope of this article. I found a very good presentation <a href=\"http:\/\/elektro.turanis.de\/html\/prj061\/index.html\" target=\"_blank\" rel=\"noopener noreferrer\">here.<\/a> My rough explanation: the name of the component derives from its functioning, namely that the data to be transferred is pushed bit by bit into the shift register. Each incoming bit shifts the existing one by one place (like a gun magazine that is filled with bullets &#8211; sorry for this martial comparison). From the shift register, the complete data byte is then transferred &#8220;in one go&#8221;, i.e. in parallel, to the storage register (output register).<\/p>\r\n<p>The pins have the following functions:<\/p>\r\n<ul>\r\n\t<li data-tadv-p=\"keep\">Q0&#8230;. Q7 are the outputs<\/li>\r\n\t<li data-tadv-p=\"keep\">DS = data pin; the data is pushed into the shift register<\/li>\r\n\t<li data-tadv-p=\"keep\">SHCP = shift register clock pin; it&#8217;s the input for the clock for pushing the data into the shift register<\/li>\r\n\t<li data-tadv-p=\"keep\">STCP = storage register clock pin; it&#8217;s the input for the clock for transfer of the data into the storage register<\/li>\r\n\t<li data-tadv-p=\"keep\">OE = output enable (active low); activates the outputs Q0&#8230; Q7<\/li>\r\n\t<li data-tadv-p=\"keep\">MR = master reset (low active); triggers a reset<\/li>\r\n\t<li data-tadv-p=\"keep\">Q7S = serial output; if more than 8 bits are pushed into the shift register, they &#8220;drop out&#8221; here\r\n\r\n<ul>\r\n\t<li data-tadv-p=\"keep\">if DS of another 74HC595 is connected here, two of these devices (or more) can be connected serially.\u00a0<\/li>\r\n<\/ul>\r\n<\/li>\r\n<\/ul>\r\n<p>&nbsp;<\/p>\n<h3 class=\"wp-block-heading\">Circuit for the control by the ESP-01<\/h3>\n<p>Again, I take the simple example of an LED control. But I would also like to show you how to use two 74HC595. The main points are:<\/p>\r\n<ul>\r\n\t<li data-tadv-p=\"keep\">CH_PD of the ESP-01 is attached to 3.3 V<\/li>\r\n\t<li data-tadv-p=\"keep\">Reset pin of the ESP-01 is connected via pushbutton to GND<\/li>\r\n\t<li data-tadv-p=\"keep\">GPIO0 is connected to SHCP of both 74HC595<\/li>\r\n\t<li data-tadv-p=\"keep\">GPIO2 to STCP of both 74HC595<\/li>\r\n\t<li data-tadv-p=\"keep\">GPIO1 (TX) to DS of one 74HC595<\/li>\r\n\t<li data-tadv-p=\"keep\">MR to 3.3 Volt, OE to GND<\/li>\r\n\t<li data-tadv-p=\"keep\">Q7S of the first 74HC595 to DS of the second 74HC595<\/li>\r\n<\/ul>\r\n<p>&nbsp;<\/p>\n<figure class=\"wp-block-image\"><a href=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/05\/fritzing_74HC595_esp01.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"664\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/05\/fritzing_74HC595_esp01-1024x664.png\" alt=\"ESP-01 port expansion with the 74HC595.\" class=\"wp-image-7959\" srcset=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/05\/fritzing_74HC595_esp01-1024x664.png 1024w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/05\/fritzing_74HC595_esp01-300x195.png 300w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/05\/fritzing_74HC595_esp01-768x498.png 768w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/05\/fritzing_74HC595_esp01-1320x856.png 1320w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/05\/fritzing_74HC595_esp01.png 1348w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption>ESP-01 port expansion with the 74HC595 (not all lines to the LEDs are drawn)<\/figcaption><\/figure>\n<h2 class=\"wp-block-heading\">A simple example sketch<\/h2>\n<p>The sample sketch shows how the control works. The state of the 16 outputs is represented as a 16-bit number (word). &#8220;0&#8221; is LOW, &#8220;1&#8221; is HIGH. With the two &#8220;shiftOut&#8221; commands, you first transfer the lower and then the upper byte of the 16-bit number. Bit operators are used again to divide the 16-bit number into two bytes. <code>pinData&amp;255<\/code>, cuts the upper byte, <code>pinData&gt;&gt;8<\/code> isolates the upper byte.\u00a0<\/p>\r\n<p>I have chosen &#8220;LSBFIRST&#8221; as parameter for the &#8220;shiftOut&#8221; command, i.e. the bitwise transmission starts with the lowest bit (LSB = least significant bit). The alternative is &#8220;MSBFIRST&#8221; (MSB = most significant bit). You can play with it if the arrangement of the LEDs should not be in the order as you want it to be. If the storage pin attached to STCP goes from LOW to HIGH, the data is transferred from the shift register to the storage register and the LEDs are switched accordingly.\u00a0<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-title=\"ESP01_74HC595.ino\" data-enlighter-group=\"ESP01_74HC595.ino\">int\u00a0clockPin\u00a0=\u00a00;\u00a0\/\/SHCP\r\nint\u00a0storagePin\u00a0=\u00a02;\u00a0\/\/STCP\r\nint\u00a0dataPin\u00a0=\u00a01;\u00a0\/\/DS\r\n\r\nvoid\u00a0setup()\u00a0{\r\n\u00a0\u00a0pinMode(clockPin,\u00a0OUTPUT);\r\n\u00a0\u00a0pinMode(storagePin,\u00a0OUTPUT);\r\n\u00a0\u00a0pinMode(dataPin,\u00a0OUTPUT);\r\n\u00a0\u00a0sendOutData(0b0000000000000000);\r\n\u00a0\u00a0delay(1000);\r\n\u00a0\u00a0sendOutData(0b1110101010101010);\r\n}\r\n\r\nvoid\u00a0loop()\u00a0{\r\n}\r\n\r\nvoid\u00a0sendOutData(word\u00a0pinData){\r\n\u00a0\u00a0digitalWrite(storagePin,\u00a0LOW);\r\n\u00a0\u00a0shiftOut(dataPin,\u00a0clockPin,\u00a0LSBFIRST,\u00a0(pinData&amp;255));\r\n\u00a0\u00a0shiftOut(dataPin,\u00a0clockPin,\u00a0LSBFIRST,\u00a0(pinData&gt;&gt;8));\u00a0\r\n\u00a0\u00a0digitalWrite(storagePin,\u00a0HIGH);\u00a0\u00a0\u00a0\u00a0\r\n}<\/pre>\r\n<p>&nbsp;<\/p>\n<h2 class=\"wp-block-heading\">Outlook<\/h2>\n<p>This was a small overview of the most common methods of ESP-01 port expansion. In a coming post, I will go into more detail about the MCP23017 with its many functions. And in another post on Counter ICs, I&#8217;ll come back to the port expansion again.<\/p>","protected":false},"excerpt":{"rendered":"<p>Port expansion for the ESP-01 using the MCP23017, PCF8574 and the 74HC595 shift register are explained in this post. With circuits and sample sketches. <\/p>\n","protected":false},"author":1,"featured_media":7953,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[565,566,548,570],"tags":[663,556,661,667,666,665,664,662],"class_list":["post-9083","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-other-parts","category-port-expansion","category-wireless","category-wlan-en","tag-74hc595-en","tag-arduino-en-2","tag-esp-01-en","tag-i-o-expander-en","tag-i2c-en","tag-mcp23017-en","tag-pcf8574-en","tag-port-expansion"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>ESP-01 port expansion &#8226; Wolles Elektronikkiste<\/title>\n<meta name=\"description\" content=\"Port expansion on the ESP-01 using the MCP23017, PCF8574 and the 74HC595 shift register are explained in this post. With circuits and sample sketches.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/wolles-elektronikkiste.de\/en\/esp-01-port-expansion\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"ESP-01 port expansion &#8226; Wolles Elektronikkiste\" \/>\n<meta property=\"og:description\" content=\"Port expansion on the ESP-01 using the MCP23017, PCF8574 and the 74HC595 shift register are explained in this post. With circuits and sample sketches.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/wolles-elektronikkiste.de\/en\/esp-01-port-expansion\" \/>\n<meta property=\"og:site_name\" content=\"Wolles Elektronikkiste\" \/>\n<meta property=\"article:published_time\" content=\"2020-10-22T15:03:06+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-11-29T12:14:43+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2020\/10\/Port.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"638\" \/>\n\t<meta property=\"og:image:height\" content=\"638\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Wolfgang Ewald\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Wolfgang Ewald\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/esp-01-port-expansion#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/esp-01-port-expansion\"},\"author\":{\"name\":\"Wolfgang Ewald\",\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en#\\\/schema\\\/person\\\/b774e4d64b4766889a2f7c6e5ec85b46\"},\"headline\":\"ESP-01 port expansion\",\"datePublished\":\"2020-10-22T15:03:06+00:00\",\"dateModified\":\"2020-11-29T12:14:43+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/esp-01-port-expansion\"},\"wordCount\":2029,\"commentCount\":4,\"publisher\":{\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en#\\\/schema\\\/person\\\/b774e4d64b4766889a2f7c6e5ec85b46\"},\"image\":{\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/esp-01-port-expansion#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/wp-content\\\/uploads\\\/2020\\\/10\\\/Port.jpg\",\"keywords\":[\"74HC595\",\"Arduino\",\"ESP-01\",\"I\\\/O Expander\",\"I2C\",\"MCP23017\",\"PCF8574\",\"Port expansion\"],\"articleSection\":[\"Other parts\",\"Port expansion\",\"Wireless\",\"WLAN\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/esp-01-port-expansion#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/esp-01-port-expansion\",\"url\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/esp-01-port-expansion\",\"name\":\"ESP-01 port expansion &#8226; Wolles Elektronikkiste\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/esp-01-port-expansion#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/esp-01-port-expansion#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/wp-content\\\/uploads\\\/2020\\\/10\\\/Port.jpg\",\"datePublished\":\"2020-10-22T15:03:06+00:00\",\"dateModified\":\"2020-11-29T12:14:43+00:00\",\"description\":\"Port expansion on the ESP-01 using the MCP23017, PCF8574 and the 74HC595 shift register are explained in this post. With circuits and sample sketches.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/esp-01-port-expansion#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/esp-01-port-expansion\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/esp-01-port-expansion#primaryimage\",\"url\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/wp-content\\\/uploads\\\/2020\\\/10\\\/Port.jpg\",\"contentUrl\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/wp-content\\\/uploads\\\/2020\\\/10\\\/Port.jpg\",\"width\":638,\"height\":638},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/esp-01-port-expansion#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"ESP-01 port expansion\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en#website\",\"url\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\",\"name\":\"Wolles Elektronikkiste\",\"description\":\"Die wunderbare Welt der Elektronik\",\"publisher\":{\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en#\\\/schema\\\/person\\\/b774e4d64b4766889a2f7c6e5ec85b46\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en#\\\/schema\\\/person\\\/b774e4d64b4766889a2f7c6e5ec85b46\",\"name\":\"Wolfgang Ewald\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/wp-content\\\/uploads\\\/2019\\\/03\\\/cropped-Logo-1.png\",\"url\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/wp-content\\\/uploads\\\/2019\\\/03\\\/cropped-Logo-1.png\",\"contentUrl\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/wp-content\\\/uploads\\\/2019\\\/03\\\/cropped-Logo-1.png\",\"width\":512,\"height\":512,\"caption\":\"Wolfgang Ewald\"},\"logo\":{\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/wp-content\\\/uploads\\\/2019\\\/03\\\/cropped-Logo-1.png\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"ESP-01 port expansion &#8226; Wolles Elektronikkiste","description":"Port expansion on the ESP-01 using the MCP23017, PCF8574 and the 74HC595 shift register are explained in this post. With circuits and sample sketches.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/wolles-elektronikkiste.de\/en\/esp-01-port-expansion","og_locale":"en_US","og_type":"article","og_title":"ESP-01 port expansion &#8226; Wolles Elektronikkiste","og_description":"Port expansion on the ESP-01 using the MCP23017, PCF8574 and the 74HC595 shift register are explained in this post. With circuits and sample sketches.","og_url":"https:\/\/wolles-elektronikkiste.de\/en\/esp-01-port-expansion","og_site_name":"Wolles Elektronikkiste","article_published_time":"2020-10-22T15:03:06+00:00","article_modified_time":"2020-11-29T12:14:43+00:00","og_image":[{"width":638,"height":638,"url":"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2020\/10\/Port.jpg","type":"image\/jpeg"}],"author":"Wolfgang Ewald","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Wolfgang Ewald","Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/wolles-elektronikkiste.de\/en\/esp-01-port-expansion#article","isPartOf":{"@id":"https:\/\/wolles-elektronikkiste.de\/en\/esp-01-port-expansion"},"author":{"name":"Wolfgang Ewald","@id":"https:\/\/wolles-elektronikkiste.de\/en#\/schema\/person\/b774e4d64b4766889a2f7c6e5ec85b46"},"headline":"ESP-01 port expansion","datePublished":"2020-10-22T15:03:06+00:00","dateModified":"2020-11-29T12:14:43+00:00","mainEntityOfPage":{"@id":"https:\/\/wolles-elektronikkiste.de\/en\/esp-01-port-expansion"},"wordCount":2029,"commentCount":4,"publisher":{"@id":"https:\/\/wolles-elektronikkiste.de\/en#\/schema\/person\/b774e4d64b4766889a2f7c6e5ec85b46"},"image":{"@id":"https:\/\/wolles-elektronikkiste.de\/en\/esp-01-port-expansion#primaryimage"},"thumbnailUrl":"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2020\/10\/Port.jpg","keywords":["74HC595","Arduino","ESP-01","I\/O Expander","I2C","MCP23017","PCF8574","Port expansion"],"articleSection":["Other parts","Port expansion","Wireless","WLAN"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/wolles-elektronikkiste.de\/en\/esp-01-port-expansion#respond"]}]},{"@type":"WebPage","@id":"https:\/\/wolles-elektronikkiste.de\/en\/esp-01-port-expansion","url":"https:\/\/wolles-elektronikkiste.de\/en\/esp-01-port-expansion","name":"ESP-01 port expansion &#8226; Wolles Elektronikkiste","isPartOf":{"@id":"https:\/\/wolles-elektronikkiste.de\/en#website"},"primaryImageOfPage":{"@id":"https:\/\/wolles-elektronikkiste.de\/en\/esp-01-port-expansion#primaryimage"},"image":{"@id":"https:\/\/wolles-elektronikkiste.de\/en\/esp-01-port-expansion#primaryimage"},"thumbnailUrl":"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2020\/10\/Port.jpg","datePublished":"2020-10-22T15:03:06+00:00","dateModified":"2020-11-29T12:14:43+00:00","description":"Port expansion on the ESP-01 using the MCP23017, PCF8574 and the 74HC595 shift register are explained in this post. With circuits and sample sketches.","breadcrumb":{"@id":"https:\/\/wolles-elektronikkiste.de\/en\/esp-01-port-expansion#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/wolles-elektronikkiste.de\/en\/esp-01-port-expansion"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/wolles-elektronikkiste.de\/en\/esp-01-port-expansion#primaryimage","url":"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2020\/10\/Port.jpg","contentUrl":"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2020\/10\/Port.jpg","width":638,"height":638},{"@type":"BreadcrumbList","@id":"https:\/\/wolles-elektronikkiste.de\/en\/esp-01-port-expansion#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/wolles-elektronikkiste.de\/en"},{"@type":"ListItem","position":2,"name":"ESP-01 port expansion"}]},{"@type":"WebSite","@id":"https:\/\/wolles-elektronikkiste.de\/en#website","url":"https:\/\/wolles-elektronikkiste.de\/en","name":"Wolles Elektronikkiste","description":"Die wunderbare Welt der Elektronik","publisher":{"@id":"https:\/\/wolles-elektronikkiste.de\/en#\/schema\/person\/b774e4d64b4766889a2f7c6e5ec85b46"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/wolles-elektronikkiste.de\/en?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/wolles-elektronikkiste.de\/en#\/schema\/person\/b774e4d64b4766889a2f7c6e5ec85b46","name":"Wolfgang Ewald","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/03\/cropped-Logo-1.png","url":"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/03\/cropped-Logo-1.png","contentUrl":"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/03\/cropped-Logo-1.png","width":512,"height":512,"caption":"Wolfgang Ewald"},"logo":{"@id":"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/03\/cropped-Logo-1.png"}}]}},"_links":{"self":[{"href":"https:\/\/wolles-elektronikkiste.de\/en\/wp-json\/wp\/v2\/posts\/9083","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wolles-elektronikkiste.de\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wolles-elektronikkiste.de\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wolles-elektronikkiste.de\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wolles-elektronikkiste.de\/en\/wp-json\/wp\/v2\/comments?post=9083"}],"version-history":[{"count":0,"href":"https:\/\/wolles-elektronikkiste.de\/en\/wp-json\/wp\/v2\/posts\/9083\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wolles-elektronikkiste.de\/en\/wp-json\/wp\/v2\/media\/7953"}],"wp:attachment":[{"href":"https:\/\/wolles-elektronikkiste.de\/en\/wp-json\/wp\/v2\/media?parent=9083"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wolles-elektronikkiste.de\/en\/wp-json\/wp\/v2\/categories?post=9083"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wolles-elektronikkiste.de\/en\/wp-json\/wp\/v2\/tags?post=9083"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}