Yay! It’s there!
Finally, a working ESP8266 arrived at my desk. The ESP8266 is a system on chip, wifi-enabled system that is probably the most hyped component in 2015. In a tiny single package it provides a MCU and a wireless access point/client. What’s even more interesting about this thing is that you can write your own code and upload it. It has a bunch of GPIO pins that you can use to connect your own sensors to it. It’s capable of speaking SPI and I2C, SoftwareSerial and what’s even better: You have the choice to use the Arduino IDE or the build in LUA language. NodeMCU is the correct term for it - LUA running on a microcontroller? I am in!
However the start is pretty rough and the learning curve is close to the learning curve of playing EVE Online. This starter here is linking some of the resources that I find useful and will probably deal for my own reference. If you find it useful, comment and point out more links, please.
You can buy the modules from everywhere like Amazon, eBay or your preferred online dealer. What ever you choose - it depends on your personal attitude. The basic pcbs for the common ESP8266 feature a huge variety of different styles. Some have voltage regulators some not. Some have GPIO pins connected to the MCU - some not, etc….
My first ESP8266 came dead on arrival with a soldering error - yay. Anyways, for that reason I highly recommend to get a version which is been tested and well layouted. It’s a little bit more expensive but it will be much easier for you. I went with this approach and I very much pleased with it.
My recommendation is getting one of the Adafruit breakouts - the Adafruit Huzzah ESP8266 breakout. It comes with voltage regulators, accessible pin, useful switches - all what you are looking for.
I wired this using my FTDI serial USB cable to my computer. I built a custom cable for it with 2 prototype boards so that I can connect it easy. A small box holds everything for mobile fun everywhere.
Do you want to use it as an Arduino or do you want to use the NodeMCU capabilities? I chose the second one, however, here is a rough description for both.
The Arduino way
The needed ESP8266 toolchain for building you own things is pretty confusing. You can either go with the Arduino IDE and code it in an Arduino style - well in this case you need the Arduino IDE and add a custom URL to the board manager. Select the proper board in the Arduino IDE and you are done.
Here is the URL: http://arduino.esp8266.com/stable/package_esp8266com_index.json
You can find more information at the GitHub repository.
The NodeMCU way
Find a flasher
Huh, welcome to the land of confusion. First of all, find a flasher for the latest version of NodeMCU. A flasher is responsible to write the lastest firmware on you ESP8266. There is only one flasher which seems to be common in the community.
It’s an application with a user interface that allows to select a firmware and write it to the board. Now let’s find a firmware.
You have two choices to select the firmware. You can use a prebuilt one or you can build your own. The prebuilt one comes in 2 shapes - an integer version and a float version. I have no clue about the exact differences, the float one is the bigger one and has probably extended float support.
Building you own seem to be possible, however I never looked into the toolchain as I found a third solution to it.
Go cloudy and use the cloud firmware builder for the ESP8266
In the cloudy version you can select the features that you need with the libaries that you want to have on your device. That allows you to customize your LUA interpreter and leaves you with the most space.
Now, someone coughs needs to write a short tutorial how to update the firmware. Maybe in the next post.
There seem to be some, err, no serious tools out there for active programming. Most of the tools provide an interface to the ESP8266 once it’s linked and help you to upload and download files to the board. However, switching between uploading your software, the editor window and a serial terminal can be annoying, especially if you have to disconnect and reconnect them to the serial port every single time. A serial multiplexer would be pretty handy. So here are the solutions I found so far.
ESPlorer is an IDE alike interface which provides coding support, uploading of files, it seems to be the all in one solution which seems to have a growing community. It’s Open Source GPLv2.
The nodemcu uploader is a Python script which allows you to upload files to the ESP8266 and is quite handy if you want to build something around your own IDE or editor. I am using it as a custom build system for Sublime Text for uploading my own files to the ESP.
The LuaLoader is a Windows based tool which enables you to interact with your ESP. It aims to be a helper for almost everything around your ESP in terms of uploading, downloading files and aids you in flashing the firmware by providings URLs and help text. Very handy and helpful indeed.
More links for the masses
Here are some more links for your reading pleasure. I hope they are somewhat useful for you - I am on them to complete something like a ESP8266 reference link list. Once I have something like this, I’ll set up a static page for it. If you have more suggestion - please add them in the comments.
- The ESP8266 build helper tool by Christian Klippel
- The NodeMCU homepage
- Guts of the IoT: Building NodeMCU from Source for the ESP8266
- ESP8266 community forum
- ESP8266 community wiki
So - that’s all for a start with the basic references. Time to discover the ESP!