Sheepdog Software HOME

Pin usage on Sparkfun ESP8266 "Thing"(s)

The Sparkfun ESP8266 "Thing" (link to Sparkfun product description) has been around for a while now. It is just one of many ways to enjoy the ESP8266 chip.

I like the WiFi. I like the price. I've written more about why I like the Sparkfun ESP8266 "Thing", and how to get started with it.

The pins, and their usage

Many readers will, I suspect, be familiar with the Arduino.

The "ordinary" Arduino has an LED on "D13", on the Arduino's PCB. This can be handy, as many projects need at least one LED to display some status information.

But it also "limits" the wonderful flexibility of the device, by "confusing" the "purity" of the "theoretical" device. In a very small way, and quite worth the price, in my view, but it does.

The designers of many little boards like the Arduino, including the ESP8266 "Thing" choose to "limit" pins in ways like this. Sometimes the limitations are trivial, sometimes not so trivial.

This page is dedicated to describing the "limits" introduced in the design of the Sparkfun ESP8266 "Thing", Dev Board (product WRL-13711). (I hope one day to expand it to include the OTHER Sparkfun "Thing" (product DEV-13907). (In many cases, the same choices were made.)

I'm not an uber expert ESP8266 user... or even an uber expert Arduino user! "Pin" and signal names, as you read about them on the internet give me a BIG HEADACHE.

In what follows, if I say "D5", I mean "the thing" you would affect if you used "setmode(5,OUTPUT);"

If I say "BrdPin RX", I mean the pin on the Sparkfun ESP8266 "Thing", Dev Board (product WRL-13711), ver at 2/17, that is marked "RX" in the following:


While *I* am not an expert, you can access experts! Sparkfun themselves, of course, have some information of this nature on their site. (I only started this page because I find it a bit scattered and hard to use). There's more, and maybe better, in a page Sparkfun gives a link to. (That, note, is not specific to the Sparkfun product... I think it is more a "usual plan", which Sparkfun probably mostly followed... but maybe not in every detail?)

Right! Enough! Finally, and not complete...

How lines/ signals/ pins/ pads are used...

On The Sparkfun WRL-13711

D2, D14, D7, D8- 2/ 14/ TX/ RX: I really would be careful before using any of these "myself", as ordinary I/O lines, manipulated by one of my programs. I try to avoid using them. They (maybe) can be used... if you know what you are doing. D7 and D8 are used to "talk" to the board when programming it. The set of four may be dedicated to I2C comms... when you need it. (2 and 14 might be available for general I/O when you don't.)

D5- 5: This signal has an LED on it, in the Sparkfun board.

A0- ADC: This is where you connect analog inputs to he board. They should not be more than 1.0 volts.

D16- 16: This behaved a bit strangely when I tried to use it in some early projects. A third party shield PCB labels that line "EN", as in "Chip ENable"... but I suspect that the "EN" label may have been a scrap of a transfer from another project. Though my problems happening to be with that pin may be an indication otherwise. See also note below about "Deep Sleep".

D12, D13, D14, D15/ 12, 13, 14: For SPI signals MISO, MOSI, SCLK (SCL), CS, respectively, pp Sparkfun page. Also from the Sparkfun documentation: "The MISO, MOSI, SCLK, and SPI pins are hard-coded and can't be moved." But, I wonder, if you aren't using SPI, can you use those pins as general, un-"special in any way" I/O lines? (I think you can.) (Were the first to SPI signals named by someone who really hated lysdexics?

... and (an)other thing...s...

Putting chip to sleep...

The pin marked "/RST": From the Sparkfun page:

Deep Sleep

The ESP8266 has a pretty decent low-power sleep mode- operating
around 70uA. To put the ESP8266 to sleep,
use the ESP.deepSleep(<microseconds>) function.

       ESP.deepSleep(30000000); // Sleep 30 seconds

For it to wake itself back up, the ESP8266 requires an external
connection between pin 16 and its RST pin. Use the handy
"Sleep-EN" jumper to set this connection up.


More quotes (tweaked) from the Sparkfun page...

The ESP8266 should work with any I2C sensor you can throw at it-
just use the Wire library, and the same Wire API calls you're used
to. There are a few differences:

    Pin definition: The ESP2866 doesn't actually have any hardware
    I2C pins- those labeled on the Thing are the default, but you
    can actually use any two pins as SDA and SCL. Calling
    Wire.begin() will assume pins 2 and 14 are SDA and SCL, but
    you can manually set them to any other pin by calling
    Wire.begin([SDA], [SCL]).

That's it!....

For now. Comments, corrections, suggestions for more info that belongs on this page (please say "esp8266-pins.htm"!)... WELCOME!

A few words from the sponsors...

Please get in touch if you discover flaws in this page. Ways you are using "the Thing" would be of interest, too. Please mention the page's URL. (www. thingie)

If you found this of interest, please mention in fora, give it a Facebook "like", Google "Plus", or whatever. I've almost given up writing these pages, because it seems they are seldom read, and of course not every reader will use them... so... is there any point? If you want more of this stuff, help!?

   Search this site                 powered by FreeFind
Site Map    What's New    Search

Click here to visit my main homepage where you can explore other areas, such as education, programming, investing.

Ad from page's editor: Yes.. I do enjoy compiling these things for you. I hope they are helpful. However... this doesn't pay my bills!!! Sheepdog Software (tm) is supposed to help do that, so if you found this stuff useful, (and you run a Windows or MS-DOS PC) please visit my freeware and shareware page, download something, and circulate it for me? Links on your page to this page would also be appreciated!
Click here to visit editor's freeware, shareware page.

How to email or write this page's editor, Tom Boyd

Valid HTML 4.01 Transitional Page tested for compliance with INDUSTRY (not MS-only) standards, using the free, publicly accessible validator at Mostly passes. A few "bad attributes" due to Google+ button, etc.

Why does this page cause a script to run? Because of the Google panels, and the code for the search button. Also, I have my web-traffic monitored for me by eXTReMe tracker. They offer a free tracker. If you want to try one, check out their site. Why do I mention the script? Be sure you know all you need to about spyware.

....... P a g e . . . E n d s .....