March 12, 2017
The ESP8266 -- Working with the SDK
So, you have taken my advice and decided to work with the SDK.
You are going to need at least 3 things (along with your favorite
editor and various standard linux tools, including "make".
esptool
I have been using an old version (and still do since it is simple and works).
This is a single python file that I place in a directory on my search path.
You do need to load the python "PySerial" module before it will work.
Apparently a lot of development has gone on since I grabbed this thing years
ago, and perhaps you want to grab the latest copy. Here are the links, you
can choose for yourself.
Note that I have renamed this from "esptool.py" to just "esptool".
A C compiler
There are probably other choices here also for you to consider, but I am going
with what I know and what works. Sometime long ago, I found something called
Crosstool-NG for the ESP8266 and went through the process of running it.
It downloaded all kinds of things, built the C compiler from scratch, and
performed who knows what undocumented things. You may be able to hunt this down
and repeat the process to get newer copies of things, but I found the black box
nature of it all not at all to my liking. This ended up giving me gcc 4.8.2
for the Xtensa lx106. One thing I will say for it -- it works just fine.
I keep the compiler and the SDK itself in /opt/esp-open-sdk on my machine.
This is where the Crosstool-NG gadget placed everthing, or where I told it to
place everything. I add /opt/esp-open-sdk/xtensa-lx106-elf/bin to my path
(by adding the following to my .bashrc file):
export PATH=/opt/esp-open-sdk/xtensa-lx106-elf/bin:$PATH
So, the compiler and related files need to go into /opt/esp-open-sdk/xtensa-lx106-elf
Here is the contents of that directory.
This all runs just fine on my Fedora 25 system (and has since well before Fedora 24),
but no telling if it will work for you or not without trying it.
The SDK itself
Again, there is almost certainly a newer version you can and perhaps should fetch,
but this is what I am using and it works just fine for me.
This goes into /opt/esp_iot_sdk_v1.5.0 and I make a link /opt/sdk to it.
A sample Makefile
Here is a Makefile grabbed from a recent project. I could polish it up a bit and remove some
bloat, but it works and should show you what you need to do to use the above stuff when
placed where I recommend.
The critical thing in this makefile is the following line:
SDK_BASE = /opt/esp-open-sdk
A decent repertoire of linux skills are needed to set all this up, but this should provide
all of the basic pieces, as well as some suggestions of where to go to get more recent things.
If you have trouble, drop me a line.