<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://www.baszerr.eu/lib/exe/css.php?s=feed" type="text/css"?>
<rss version="2.0">
    <channel xmlns:g="http://base.google.com/ns/1.0">
        <title>BaSzErr - blog:2016:02:01</title>
        <description></description>
        <link>https://www.baszerr.eu/</link>
        <lastBuildDate>Wed, 06 May 2026 10:30:19 +0000</lastBuildDate>
        <generator>FeedCreator 1.8</generator>
        <image>
            <url>https://www.baszerr.eu/lib/exe/fetch.php?media=wiki:dokuwiki.svg</url>
            <title>BaSzErr</title>
            <link>https://www.baszerr.eu/</link>
        </image>
        <item>
            <title>esp8266</title>
            <link>https://www.baszerr.eu/doku.php?id=blog:2016:02:01:esp8266</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;esp8266&quot;&gt;2016-02-01 - esp8266&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.baszerr.eu/lib/exe/detail.php?id=blog%3A2016%3A02%3A01%3Aesp8266&amp;amp;media=blog:2016:02:01:esp.jpg&quot; class=&quot;media&quot; title=&quot;blog:2016:02:01:esp.jpg&quot;&gt;&lt;img src=&quot;https://www.baszerr.eu/lib/exe/fetch.php?media=blog:2016:02:01:esp.jpg&quot; class=&quot;mediaright&quot; align=&quot;right&quot; loading=&quot;lazy&quot; title=&quot;example ESP dev board&quot; alt=&quot;example ESP dev board&quot; /&gt;&lt;/a&gt;
in last months few ppl asked me about &lt;a href=&quot;https://en.wikipedia.org/wiki/esp8266&quot; class=&quot;interwiki iw_wp&quot; title=&quot;https://en.wikipedia.org/wiki/esp8266&quot;&gt;esp8266&lt;/a&gt; wifi module. i finally made some digging and bought one for tests. the nice thing is it costs under 5EUR! :)
&lt;/p&gt;

&lt;p&gt;
how to run it? of course all the pieces of information “are out there”. the problem is they are scattered and sometimes contradicting. this makes it a bit more difficult to start. if you are attempting to make it work, this post would be a good place to start.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;2016-02-01 - esp8266&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;esp8266&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-514&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;some_basics&quot;&gt;some basics&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
first of all esp8266 is NOT a board - it&amp;#039;s a µC, that has wifi module build in. many dev boards are named “esp8266”, this introducing a bit confusion. most ppl, for their hobby designs will prefer dev boards, as they are small and easy to solder (goldpins or similar).
&lt;/p&gt;

&lt;p&gt;
another thing is the SW. dev boards usually consist of 2 IC elements: esp8266 itself and external memory for program (0.5MB is a popular size). this means SW can be changed!
&lt;/p&gt;

&lt;p&gt;
last but not least – some dev boards do not have an antenna (only a plug for it). make sure either your dev board have one, or you have spare WiFi antenna to attach, or you know what to do with the wire laying in your closet. if you have not made an antenna before, just be aware that if you do it wrong, you may &lt;a href=&quot;https://en.wikipedia.org/wiki/Standing wave ratio#Practical_implications_of_SWR&quot; class=&quot;interwiki iw_wp&quot; title=&quot;https://en.wikipedia.org/wiki/Standing wave ratio#Practical_implications_of_SWR&quot;&gt;damage a transceiver&lt;/a&gt;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;some basics&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;some_basics&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;515-1380&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;electrical_connections&quot;&gt;electrical connections&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
before we start, things need to get connected. :) ESP8266 runs on 3.3V. &lt;strong&gt;make sure you do use 3.3V only&lt;/strong&gt; – 5V on any pin will damage the chip and spoil all the fun. :P
&lt;/p&gt;

&lt;p&gt;
depending on the board, some pins need to be pulled high or low, to make it work. in case of my sample board pinout looks like this (top view):
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.baszerr.eu/lib/exe/detail.php?id=blog%3A2016%3A02%3A01%3Aesp8266&amp;amp;media=blog:2016:02:01:pinout.png&quot; class=&quot;media&quot; title=&quot;blog:2016:02:01:pinout.png&quot;&gt;&lt;img src=&quot;https://www.baszerr.eu/lib/exe/fetch.php?w=400&amp;amp;tok=4b64ab&amp;amp;media=blog:2016:02:01:pinout.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;board&amp;#039;s pinout&quot; alt=&quot;board&amp;#039;s pinout&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
my connection was as follows:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Vcc to 3.3V&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; GND to 0V&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CH_PD to Vcc&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RST to Vcc&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; GPIO0 to Vcc&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; GPIO15 to Vcc&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; UTXD to RX on an attached serial port&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; URXD to TX on an attached serial port&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
i was testing while connected to a USB-to-serial converter (&lt;strong&gt;any &lt;a href=&quot;https://en.wikipedia.org/wiki/FTDI&quot; class=&quot;interwiki iw_wp&quot; title=&quot;https://en.wikipedia.org/wiki/FTDI&quot;&gt;FT232&lt;/a&gt;-based board will do&lt;/strong&gt;). just make sure it has I/O pins set to 3.3V!
&lt;/p&gt;

&lt;p&gt;
last thing to know is the power consumption. my ESP8266 consumed 60mA after turning on. while doing “some I/O” it used 90mA. &lt;abbr title=&quot;specification&quot;&gt;spec&lt;/abbr&gt; however says it &lt;strong&gt;power consumption can go up to 200mA or even 250mA in peeks&lt;/strong&gt;. this is crucial observation is it eliminates powering ESP8266 from FT232&amp;#039;s internal 3.3V stabilizer. in practice you need to have some external power source, like a batter (with a proper stabilizer) or laboratory power unit.
&lt;/p&gt;

&lt;p&gt;
my final setup looked like this (ESP6288 has been circled in red):
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.baszerr.eu/lib/exe/detail.php?id=blog%3A2016%3A02%3A01%3Aesp8266&amp;amp;media=blog:2016:02:01:esp8266_starting_setup.jpg&quot; class=&quot;media&quot; title=&quot;blog:2016:02:01:esp8266_starting_setup.jpg&quot;&gt;&lt;img src=&quot;https://www.baszerr.eu/lib/exe/fetch.php?w=600&amp;amp;tok=ef2090&amp;amp;media=blog:2016:02:01:esp8266_starting_setup.jpg&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;my ESP8266 starting setup&quot; alt=&quot;my ESP8266 starting setup&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
if you are using quick development boards make sure connections are done right! i spend enormous amount of time trying to figure out where&amp;#039;s the problem, because my GND cable, for FT232 was loose, while i was experimenting with different transmission speeds.
&lt;/p&gt;

&lt;p&gt;
many ppl on the net complained about bad decoupling of the power line on these boards, so just to be on a safe side &lt;strong&gt;add one 10µF and one 100nF&lt;/strong&gt; capacitors on the power line.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;electrical connections&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;electrical_connections&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1381-3174&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;i_oserial_port&quot;&gt;I/O: serial port&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
speaking about the serial port. please be noted that &lt;strong&gt;old firmware used 115200 bps&lt;/strong&gt; for transmission, however &lt;strong&gt;since V0018902 it changed – 9600 bps is the new default&lt;/strong&gt;!
&lt;/p&gt;

&lt;p&gt;
ESP8266&amp;#039;s I/O is text based, using &lt;a href=&quot;https://github.com/espressif/ESP8266_AT/wiki/AT_Description&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/espressif/ESP8266_AT/wiki/AT_Description&quot; rel=&quot;ugc nofollow&quot;&gt;AT commands set&lt;/a&gt;. make sure you are using &lt;strong&gt; CRLF (“\r\n” – hex: 0x0D 0x0A) lines ending&lt;/strong&gt; - otherwise it will not work.
&lt;/p&gt;

&lt;p&gt;
it is good to have a reference point here. if your connections are done right – it should work. i&amp;#039;ve wrote a &lt;a href=&quot;https://www.baszerr.eu/lib/exe/fetch.php?media=blog:2016:02:01:chip_cmd_line.gz&quot; class=&quot;media mediafile mf_gz&quot; title=&quot;blog:2016:02:01:chip_cmd_line.gz (488 B)&quot;&gt;short python script for testing communication&lt;/a&gt;:
&lt;/p&gt;
&lt;pre class=&quot;code python&quot;&gt;&lt;span class=&quot;co1&quot;&gt;#!/usr/bin/python&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;sys&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; serial
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;# configure the serial connections (the parameters differs on the device you are connecting to)&lt;/span&gt;
ser &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; serial.&lt;span class=&quot;me1&quot;&gt;Serial&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;port&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;/dev/ttyUSB0&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; baudrate&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;9600&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; timeout&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;not&lt;/span&gt; ser.&lt;span class=&quot;me1&quot;&gt;isOpen&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    &lt;span class=&quot;kw1&quot;&gt;raise&lt;/span&gt; Expception&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;cannot open serial port - oops...&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; sendCmd&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;cmd&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    ser.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;cmd&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\r&lt;/span&gt;&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; readLine&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    line &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;while&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;True&lt;/span&gt;:
        c &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; ser.&lt;span class=&quot;me1&quot;&gt;read&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; c &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\r&lt;/span&gt;&#039;&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;continue&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; c &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&#039;&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; line
        line +&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; c
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; readResponse&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    buf &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;while&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;True&lt;/span&gt;:
        line &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; readLine&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        buf +&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; line + &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; line &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;OK&#039;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;or&lt;/span&gt; line &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;ERROR&#039;&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; buf
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;# hello world&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;sending request...&amp;quot;&lt;/span&gt;
sendCmd&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;AT+GMR&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;sys&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;stdout&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt; readResponse&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;# command loop&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;while&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;True&lt;/span&gt;:
    &lt;span class=&quot;kw3&quot;&gt;sys&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;stdout&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;cmd&amp;gt;&amp;gt; &amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw3&quot;&gt;cmd&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;sys&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;stdin&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;readline&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    sendCmd&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;cmd&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;:-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw3&quot;&gt;sys&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;stdout&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt; readResponse&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
it tries to say hello to an attached module and then enters command-line mode, so that you can play around with the module a bit. script it is far from production quality and will not work for every command, but should be just enough to kickstart.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;I\/O: serial port&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;i_oserial_port&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;3175-5011&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;changing_sw&quot;&gt;changing SW&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
normally this would be a pain in the neck. fortunately there is an excellent script for that, called &lt;a href=&quot;https://github.com/themadinventor/esptool.git&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/themadinventor/esptool.git&quot; rel=&quot;ugc nofollow&quot;&gt;esptool&lt;/a&gt;. using it you can query chip for parameters with a single command. it also allows you to change the SW. also making this tool work is probably the simplest way of checking if all the connections are good.
&lt;/p&gt;

&lt;p&gt;
in order to enter SW change mode &lt;strong&gt;connect GPIO15 to GND&lt;/strong&gt; and reset the device. once this is done, try running:
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;esptool.py read_mac&lt;/pre&gt;

&lt;p&gt;
if all the connections are fine, you should see MAC address of the connected module. if it works, you can flash it, using image obtained from the internet.
&lt;/p&gt;

&lt;p&gt;
actual flashing is done with:
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;esptool.py write_flash 0x00000 my_new_sw.bin&lt;/pre&gt;

&lt;p&gt;
above will work for SW that comes as a &lt;strong&gt;single, binary image&lt;/strong&gt;. some are however split into parts. read the manual to check under which addresses they should be stored.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;changing SW&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;changing_sw&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;5012-5983&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;final_notes&quot;&gt;final notes&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
ESP8266 is a nice and cheap piece of equipment. there are a lot of place it can come in handy. it is often referred to as a &lt;a href=&quot;https://en.wikipedia.org/wiki/Internet of Things&quot; class=&quot;interwiki iw_wp&quot; title=&quot;https://en.wikipedia.org/wiki/Internet of Things&quot;&gt;IoT&lt;/a&gt;-enabler. while it can be used in such manner, i&amp;#039;d be very careful about placing these devices everywhere. with its power consumption it can be expected to &lt;strong&gt;use &amp;gt;0.2W constantly&lt;/strong&gt; (even if not transmitting) and up to &lt;strong&gt;almost 1W in peeks&lt;/strong&gt;.
&lt;/p&gt;

&lt;p&gt;
this means that battery-power solutions will require you to run around with fresh batteries daily.
&lt;/p&gt;

&lt;p&gt;
as an alternative, you can plug it into a nearby power grid. this would however mean AC/DC converter (common mobile phone chargers + 5V to 3.3V converter), and loosing extra (say) 20%. while it is not a big problem for few devices, if you go towards IoT or sensor networks in a bigger scale, this extra power will be visible on your bill. it won&amp;#039;t be a fortune, but will be clearly visible.
&lt;/p&gt;

&lt;p&gt;
above notes do not refer to ESP8266 only. power consumption is a problem in WiFi networks. my point is that if you plan IoT, you might prefer to use a different technology, like: &lt;a href=&quot;https://en.wikipedia.org/wiki/Bluetooth low energy&quot; class=&quot;interwiki iw_wp&quot; title=&quot;https://en.wikipedia.org/wiki/Bluetooth low energy&quot;&gt;BTLE&lt;/a&gt;, &lt;a href=&quot;https://en.wikipedia.org/wiki/ZigBee&quot; class=&quot;interwiki iw_wp&quot; title=&quot;https://en.wikipedia.org/wiki/ZigBee&quot;&gt;ZigBee&lt;/a&gt;, &lt;a href=&quot;https://en.wikipedia.org/wiki/Z-Wave&quot; class=&quot;interwiki iw_wp&quot; title=&quot;https://en.wikipedia.org/wiki/Z-Wave&quot;&gt;Z-Wave&lt;/a&gt;, or… cables. in a lot of situations having small, thin cable in the wall is not a problem, and it can cut costs during exploitation. in such scenario, ESP2866 could be used as a hub for internal networking and/or a relay to the “regular WiFi”.
&lt;/p&gt;

&lt;p&gt;
last option is to use it for devices that need to transmit rarely (say: once an hour). in such scenario, an external µC could do (and gather) measurements, enabling WiFi module just to transmit all the data at once, in a short burst, and then disabling WiFi module again. this way power consumption would be significantly lowered at the expense of latencies. although it is not an universal approach, it might be valid in some scenarios.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;final notes&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;final_notes&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;5984-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 15 Jun 2021 20:09:24 +0000</pubDate>
        </item>
        <item>
            <title>open_source_cars</title>
            <link>https://www.baszerr.eu/doku.php?id=blog:2016:02:01:open_source_cars</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;open_source_cars&quot;&gt;2016-02-01 - open source cars&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
recently i changed a car. again some outdated, second-handed stuff, that you can buy at a reasonable price. some electronics on board just drive me crazy at times. these are minor, usability things mostly, but it see i could came out with a more intuitive/useful interface/algorithm for a given task within an hour, including PoC implementation… if i only had a source code and all the schematics. which drove me to the question – why don&amp;#039;t we have open source cars?
&lt;/p&gt;

&lt;p&gt;
it is not a problem to buy internet router and flash it with our own stuff. when it comes to cars… not necessary so easy. while there obviously are critical, hard real-time systems like: ABS, ESP, etc., that most users should not mess with, when it comes to on board electronics, computers, music players, and integration of new elements however – why not?
&lt;/p&gt;

&lt;p&gt;
quick searching reveals an interesting company called &lt;a href=&quot;https://www.osvehicle.com&quot; class=&quot;urlextern&quot; title=&quot;https://www.osvehicle.com&quot; rel=&quot;ugc nofollow&quot;&gt;OSVehicle&lt;/a&gt;, that might just do the trick. recently &lt;a href=&quot;https://en.wikipedia.org/wiki/android auto&quot; class=&quot;interwiki iw_wp&quot; title=&quot;https://en.wikipedia.org/wiki/android auto&quot;&gt;android auto&lt;/a&gt; has been release – though it is not exactly what i had in mind, it might be a small step in a right direction.
&lt;/p&gt;

&lt;p&gt;
some time ago i&amp;#039;ve read an interesting article, stating that car manufacturers may actually need to change their approach to what “a car” really is, after self-driving cars will join our daily lives. SW is more and more important part of a car nowadays, yet it is still &lt;a href=&quot;https://niebezpiecznik.pl/post/jezdzisz-jeepem-albo-chryslerem-mamy-zla-wiadomosc-ktos-przez-internet-moze-zablokowac-ci-hamulce-w-trakcie-jazdy/&quot; class=&quot;urlextern&quot; title=&quot;https://niebezpiecznik.pl/post/jezdzisz-jeepem-albo-chryslerem-mamy-zla-wiadomosc-ktos-przez-internet-moze-zablokowac-ci-hamulce-w-trakcie-jazdy/&quot; rel=&quot;ugc nofollow&quot;&gt;poorly protected&lt;/a&gt; against attacks. it is still not uncommon to have no inter-process memory protection in chips controlling vehicle &lt;sup&gt;&lt;a href=&quot;#fn__1&quot; id=&quot;fnt__1&quot; class=&quot;fn_top&quot;&gt;1)&lt;/a&gt;&lt;/sup&gt;, that is standard in PC for two decades now. also there are very few options for doing customization.
&lt;/p&gt;

&lt;p&gt;
i personally look forward to more modular and open solution. when somethings annoys you, you can just change it, recompile and upload improved version to a device.
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;footnotes&quot;&gt;
&lt;div class=&quot;fn&quot;&gt;&lt;sup&gt;&lt;a href=&quot;#fnt__1&quot; id=&quot;fn__1&quot; class=&quot;fn_bot&quot;&gt;1)&lt;/a&gt;&lt;/sup&gt; 
&lt;div class=&quot;content&quot;&gt;this is a huge playground for pentesters&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 15 Jun 2021 20:09:23 +0000</pubDate>
        </item>
    </channel>
</rss>
