My first ESP8266

Having not done any electronics for almost a year I recently decided to dust of my soldering iron and look for my next project.   While browsing my favourite Maker and project sites I came across several mentions of a new dev board, NodeMCU.  This looked interesting for a number of reasons:
  • Built-in WiFi
  • More memory than an Atmel 328P
  • Faster than a Atmel 328P
On further investigation I descovered that there is a very active developer community and it can be programmed using the Arduino IDE, even more interesting.
I decided to order a number of units of various footprints to try out.  If nothing else I could use them as WiFi devices for my Arduino projects.
After a couple of days waiting the first dev board arrived from a UK supplier, followed by the next from Hong Kong about a week later

Before diving straight into the Arduino IDE I decided to try the installed Lua firmware that comes on the NodeMCU board. Not good.  After trying only a few examples I started to have problems.  Looking on the forums I decided to upload the latest firmware from

, this site allows you to decide on the optional components you need and schedule a build. Once the build has finished you get an email and can donwload the firmware, cool. I'm not going to give step-by-step instructions, there are enough of those on other sites, but it was very easy. The new firmware fixed most of my previous issues, happy days. After a little more playing and some reading of others experience with NodeMCU I decided that the overhead of interpretted Lua wasn't for me, and having lots of Arduino experience I decided to try that.

Switching to the Arduino IDE was also very straight forward; things have to wrong soon. I installed the ESP8266 board using the board manager and uploaded the example blink sketch; again no problems. Flushed with success I moved onto more advanced topics to take advantage of the boards capabilties; a web server. Again, the example worked fine.

With all this success I decided to start porting all of my previous Arduino sensor sketches and share them on GitHub ( . So far I have ported:
  • BMP085 - I2C temperature and pressure sensor
  • Bloc GPS receiver - Serial
  • RTC - I2C real time clock
I have included the webserver in each sketch to allos results to be queried using a browser.
I have had a few issues:
  • Data types are slightly different on ESP8266 - the BMP085 sketch had to be updated
  • Watchdog timer kept rebooting chip - I think I have fixed this, but one to watch
During my playing I have found the following resources very helpful

So far so good :)


Popular Posts