{"id":1738,"date":"2019-02-20T16:29:46","date_gmt":"2019-02-20T15:29:46","guid":{"rendered":"https:\/\/willem.aandewiel.nl\/?p=1738"},"modified":"2022-10-19T14:29:47","modified_gmt":"2022-10-19T12:29:47","slug":"1of-platform-for-developing-esp8266-devices","status":"publish","type":"post","link":"https:\/\/willem.aandewiel.nl\/index.php\/2019\/02\/20\/1of-platform-for-developing-esp8266-devices\/","title":{"rendered":"1of! Platform for developing ESP8266 devices"},"content":{"rendered":"\n<p>[ 16,972 keer bekeken \/ views ]<\/p>\n\n\n\n<p>&nbsp;Developing hardware almost always run through the same stages:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>It starts with an idea<\/li><li>You design a concept on paper or in your head<\/li><li>Using a solder-less breadboard you connect parts to see that it works as you hoped it<br>would<\/li><li>Depending on the number of units you need, you either design a PCB or you copy the<br>breadboard schematic to an experiment board<\/li><li>Task fulfilled! You can sit back and relax.<\/li><\/ul>\n\n\n\n<p>If you, as I do, regularly design devices with <em>ESP8266 processors<\/em> you run into the same pitfall every time. The form factor of the ESP8266 (f.i. the ESP-12) is not specially breadboard friendly.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Bringing the ESP8266 to the Breadboard<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignright\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/ESP8266Piggy.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"222\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/ESP8266Piggy-300x222.jpg\" alt=\"\" class=\"wp-image-1743\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/ESP8266Piggy-300x222.jpg 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/ESP8266Piggy-768x568.jpg 768w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/ESP8266Piggy-1024x758.jpg 1024w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/ESP8266Piggy.jpg 1200w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>If you use a 400 holes breadboard (90x65mm) almost <em>33%<\/em> of the available space is needed for an \u2018ESP8266 on a piggy board\u2019 and more alarming: <em>There are no holes besides the piggy board to connect wires to<\/em>!<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignleft\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/WemosD1.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"214\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/WemosD1-300x214.jpg\" alt=\"\" class=\"wp-image-1741\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/WemosD1-300x214.jpg 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/WemosD1-768x548.jpg 768w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/WemosD1-1024x731.jpg 1024w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/WemosD1.jpg 1200w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p><br><\/p>\n\n\n\n<div style=\"height:25px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>If you use a <em>Wemos D1<\/em> you also lose about <em>30%<\/em> of the available space, but at least you have the luxury of one row of holes on both sides of the Wemos D1.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignright\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/NodeMCU.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"215\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/NodeMCU-300x215.jpg\" alt=\"\" class=\"wp-image-1742\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/NodeMCU-300x215.jpg 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/NodeMCU-768x551.jpg 768w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/NodeMCU-1024x735.jpg 1024w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/NodeMCU.jpg 1200w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p><br><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>But if your favourite is the <em>NodeMCU<\/em> board the numbers are even larger.<br>You lose <em>60%<\/em> of the solder-less bread board!<\/p>\n\n\n\n<p>And why? If you want to design a device with an ESP8266 you always need a basic schematic just to operate the ESP8266. It is contra productive to set that up on a breadboard just because you want to interface a view passive or active components to make your idea work.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignright\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/ESP8266_Minimal.png\"><img loading=\"lazy\" decoding=\"async\" width=\"200\" height=\"300\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/ESP8266_Minimal-200x300.png\" alt=\"\" class=\"wp-image-1744\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/ESP8266_Minimal-200x300.png 200w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/ESP8266_Minimal.png 397w\" sizes=\"auto, (max-width: 200px) 100vw, 200px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>To sum it up, you need:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>five resistors<\/li><li>two push buttons<\/li><li>a voltage-regulator<\/li><li>circuitry that delivers the 3v3 needed by the ESP8266<\/li><li>a pin-header to upload firmware to the ESP8266.<\/li><\/ul>\n\n\n\n<p>A total of ten &#8211; eleven components that <em>e\u0301very ESP8266 design<\/em> needs.<br>And yes! there are benefits in using a Wemos D1 or NodeMCU board for the fact that they have all the hardware I described before a\u0301nd they have an <em>USB to Serial chip<\/em> on board. Because of that chip you can easily program these boards by just connecting the USB cable to your computer and press the upload icon on the Arduino IDE.<\/p>\n\n\n\n<p>But&#8230;they are <em>way to complex<\/em>!<br>If you design a device with a ESP8266 you almost certainly do that because of the WiFi functionality of that processor. And once you have configured the WiFi settings you don\u2019t need the USB to Serial chip anymore. Even updating the device with new firmware can easily be done \u201c<em>Over The Air<\/em>\u201d! So, if you want to develop a device with an ESP8266, the USB to Serial chip will make your design much more complex and more expensive, you need special skills or tools to solder the chip on a PCB and you will probably <em>never<\/em> use the functionality in real life devices.<\/p>\n\n\n\n<p>And there are more arguments not to use these bulky boards for developing your own devices (apart from the fact that it is far more satisfying to design everything yourself). For instance if your device needs the ESP8266\u2019s Analogue to Digital Convertor (ADC) and you start of with the Wemos D1 you need to know there is a voltage divider on the Wemos connected to the ADC pin and you have to make sure you use the same voltage divider in your overall design. And I get so confused by the naming of the IO-pins. You have the physical pin number (is pin 1 on the left top or ..), the made up \u2018D-number\u2019 and the underlying GPIO-number. Why?? And you can solder the pin-headers on the Wemos D1 with the ESP8266 on top or on the bottom. That messes up the physical pin numbering quit a lot!<\/p>\n\n\n\n<p>Therefore I designed a solution that can be used as a development platform with a breadboard an experimenter board or an \u201c<em>one of a kind<\/em>\u201d end product.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Lets bring the Breadboard to the ESP8266<\/h3>\n\n\n\n<p>What I have done is made a processor board with an ESP8266, USB power, 3v3 regulator, a view resistors and elco\u2019s, a Reset and Flash button and a 20 pole connector with all the available and usable pins from the ESP8266 plus GND, 3v3 and 5 volt power lines. You can choose to power the ESP8266 by soldering either a <em>micro USB-B<\/em> connector to the board or an <em>\u2018Arduino UNO\u2019 large USB-B<\/em> connector. To flash the ESP8266 you need an \u2018<em>USB to TTL<\/em>\u2019 cable or a simple USB-programmer and connect the ground, TxD and RxD to the programming header on the processor board (the <code>1of!<\/code>-ESP12 can also be powered by the programming header if you apply 3v3 to the connector). To set the ESP8266 in flash-mode you press the flash-button and hold it pressed. Then you press the reset-button, release the reset-button and then release the flash- button. The ESP8266 is now in flash-mode and stay\u2019s that way until you have uploaded your sketch or until you press the reset-button again (and if you program well, you can upload sketches wirelessly -\u2018<em>Over The Air<\/em>\u2019- and never have to push buttons again).<\/p>\n\n\n\n<p>The 20 pole connector has all the GPIO-pins 01, 02, 03, 04, 05, 12, 13, 14, 15 and 16 in that order so you never need to check what <em>physical-pin<\/em> is what \u2018<em>D-number<\/em>\u2019 is which <em>GPIO-pin<\/em>!<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/1of-Connector.png\"><img loading=\"lazy\" decoding=\"async\" width=\"808\" height=\"132\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/1of-Connector.png\" alt=\"\" class=\"wp-image-1752\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/1of-Connector.png 808w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/1of-Connector-300x49.png 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/1of-Connector-768x125.png 768w\" sizes=\"auto, (max-width: 808px) 100vw, 808px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>If you connect something to <code>GPIO05<\/code> you program <code>pinMode(5, mode)<\/code> and <code>digitalWrite(5, state)<\/code> or <code>digitalRead(5)<\/code>!<\/p>\n\n\n\n<p>SP1 and SP2 are not connected to anything but if you know what you\u2019re doing and want to use GPIO09 and GPIO10 (which is not recommended) you can connect a wire from the ESP12 to these spare pins.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignright\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/10f-ESP12_v12.png\"><img loading=\"lazy\" decoding=\"async\" width=\"272\" height=\"300\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/10f-ESP12_v12-272x300.png\" alt=\"\" class=\"wp-image-1745\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/10f-ESP12_v12-272x300.png 272w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/10f-ESP12_v12.png 707w\" sizes=\"auto, (max-width: 272px) 100vw, 272px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p><br>This board is called \u2018<code>1of!<\/code>-ESP12\u2019 and once you have one of these you can connect it with a \u2018<code>1of!<\/code>-Proto\u2019 board and start prototyping.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignleft\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/1of-Wemos_v12.png\"><img loading=\"lazy\" decoding=\"async\" width=\"286\" height=\"300\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/1of-Wemos_v12-286x300.png\" alt=\"\" class=\"wp-image-1746\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/1of-Wemos_v12-286x300.png 286w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/1of-Wemos_v12.png 608w\" sizes=\"auto, (max-width: 286px) 100vw, 286px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p><br>There is also a <code>1of!<\/code>-Wemos board and there are two <code>1of!<\/code>-Proto boards.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignright\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/1of-Proto_18x22_v12.png\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"273\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/1of-Proto_18x22_v12-300x273.png\" alt=\"\" class=\"wp-image-1748\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/1of-Proto_18x22_v12-300x273.png 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/1of-Proto_18x22_v12.png 747w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p><br>The smaller <code><code><\/code><\/code><strong>1of!<\/strong>-Proto board has 18&#215;22 (378) holes and the larger one has 25&#215;22 (532) holes.<\/p>\n\n\n\n<p>Small <code>1of!<\/code>-Proto board connected to the <code>1of!<\/code>-ESP12 with the \u2018UNO\u2019-like USB-B connector<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/1of-ESP12_Proto_GY68.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"532\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/1of-ESP12_Proto_GY68-1024x532.png\" alt=\"\" class=\"wp-image-1749\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/1of-ESP12_Proto_GY68-1024x532.png 1024w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/1of-ESP12_Proto_GY68-300x156.png 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/1of-ESP12_Proto_GY68-768x399.png 768w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/1of-ESP12_Proto_GY68.png 1156w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>On the bigger board you can solder a 20 pin female-header and glue a 90 x 65mm solder-less breadboard on it.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/1of-SolderLess1.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"198\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/1of-SolderLess1-300x198.jpg\" alt=\"\" class=\"wp-image-1791\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/1of-SolderLess1-300x198.jpg 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/1of-SolderLess1-768x507.jpg 768w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/1of-SolderLess1-1024x676.jpg 1024w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/1of-SolderLess1.jpg 1200w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>If you made your device on the breadboard or on the experiment board you can simply disconnect it from the processor board and start your next project on a new <code>1of!<\/code>-Proto board or you can make it an \u201c<em>one of a kind device<\/em>\u201d and put your design in a standard box. If you made a killer-device you can convert your proto design into a real PCB by simply combining your own design and the simple basic ESP8266 schematic into a complete schematic in your favorite CAD program and create the PCB from there.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/1of-Family.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"668\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/1of-Family-1024x668.jpg\" alt=\"\" class=\"wp-image-1796\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/1of-Family-1024x668.jpg 1024w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/1of-Family-300x196.jpg 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/1of-Family-768x501.jpg 768w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2019\/02\/1of-Family.jpg 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>[ ] &nbsp;Developing hardware almost always run through the same stages: It starts with an idea You design a concept on paper or in your head Using a solder-less breadboard you connect parts to see that it works as you &hellip; <a href=\"https:\/\/willem.aandewiel.nl\/index.php\/2019\/02\/20\/1of-platform-for-developing-esp8266-devices\/\">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,3,6,10,20],"tags":[25,47,51,55,80,106],"class_list":["post-1738","post","type-post","status-publish","format-standard","hentry","category-arduino","category-computer","category-esp8266","category-hardware","category-wifi","tag-arduino","tag-esp8266","tag-firmware","tag-hardware","tag-pcb","tag-wifi"],"views":16972,"_links":{"self":[{"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/posts\/1738","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=1738"}],"version-history":[{"count":58,"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/posts\/1738\/revisions"}],"predecessor-version":[{"id":7316,"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/posts\/1738\/revisions\/7316"}],"wp:attachment":[{"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/media?parent=1738"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/categories?post=1738"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/tags?post=1738"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}