Skip to main content

ESP GPIO pins...

The ESP8266 can easily be programmed with the Arduino IDE and the main benefit using it, is the WiFi interface that reduces your communication wiring to zero.

A $5 Raspberry Pi Zero W with a $5 micro SD Card becomes your Access Point, DHCP Server, Gateway to the Internet, and will also run applications like JMRI and MQTT.

But, now that you have a well connected $3 ESP-xx device, what pins are available to do what? We are not counting the Rx and Tx pins, you could reassign those for your own purpose, but the boot loader is going to talk at startup and updating your firmware might need these pins, so think ahead.

There is some information here, but when you are writing the "Arduino" code for the ESP8266, you need a little more guidance...

The ESP-01 has 2 GPIO pins, so you can do a 3 color signal, 2 relays, 2 digital sensors, or use them for i2c to a port expander and the rest is easy.

The ESP-05 has none, only the RST, RXD and TXD pins...good WiFi shield, if you have a UART on your side.

The ESP-WROOM-02 seems to have 8 or 9 useful GPIO pins (depending if IO16 is used for the deep sleep).

The ESP-WROOM-32 has about 23  useful GPIO pins (and 16 ADC pins, 2 DACs, 10 touch inputs). Expect to see a lot more about this ESP32!

The ESP-12 has 11 GPIO pins, with one ADC capable.

So on to the reason for this post, what are the pin numbers to use, if you do have 11 GPIOs, so first the code that printed these numbers to see where D0 through D10 might lead:
void setup( ) {
  Serial.begin( 115200 );
  delay( 10 );

  String printPinStr;
  printPinStr += String(D0);  printPinStr += ",";
  printPinStr += String(D1);  printPinStr += ",";
  printPinStr += String(D2);  printPinStr += ",";
  printPinStr += String(D3);  printPinStr += ",";
  printPinStr += String(D4);  printPinStr += ",";
  printPinStr += String(D5);  printPinStr += ",";
  printPinStr += String(D6);  printPinStr += ",";
  printPinStr += String(D7);  printPinStr += ",";
  printPinStr += String(D8);  printPinStr += ",";
  printPinStr += String(D9);  printPinStr += ",";
  printPinStr += String(D10); //  printPinStr += ",";
  //printPinStr += String(D12);  // ...:44: error: 
  // 'D12' was not declared in this scope
  printPinStr += ";";
  Serial.println( printPinStr ); 
} // setup( )
And the result:
16,5,4,0,2,14,12,13,15,3,1;
And this tells that D0 is connected to GPIO16 and D1 is connected to GPIO05.

More to come shortly!

For some comparisons, take a look at the bottom of this Edwin Robotics page.

Popular posts from this blog

Pi Pico, we smell competition in the land of the RRRduino! 

Pi Pico on an N-scale gondola Pi Pico, we smell competition in the land of the ‘duino!  Our very favorite low cost microcontroller system is seeing some fresh competition.  Everyone by now has heard about the Raspberry Pi, some fruity company in the United Kingdom, making single board computers!  They run Raspbian (or other flavors of Linux and are capable of some Windows versions) for as little money as $10 for the Pi Zero W.  The more popular Model 4, with 2 GB of RAM, retails for about $29.  Add a $5  micro SD card and you have a real computer with which you can surf the internet, write code and even program Arduinos.  It also runs our other favorite, JMRI.  Of course, plug it into a small or big screen television with an HDMI cable and you can even stream Netflix.  If you want a really cool computer built into a keyboard, also check out the brand new, Raspberry Pi 400 , you might just think you own a ZX Spectrum again. These are all “comp...

Not too important IR remote info...

Onn 4-Device Universal Remote manual... setting codes... Up Arrow TV Mode: Decoded NEC(1) : Value:20DF00FF Adrs:0 (32 bits) Raw samples(68): Gap:5484   Head: m8800  s4500  0:m550 s600     1:m500 s600            2:m500 s1700     3:m550 s550           4:m550 s600     5:m500 s600            6:m500 s600      7:m550 s550           8:m500 s1700    9:m550 s1700          10:m500 s600     11:m550 s1650          12:m550 s1700    13:m550 s1650         14:m550 s1650    15:m550 s1700          16:m500 s600     17:m500 s600       ...

Layout sound on demand!

Here we go...all the sounds that you have collected over the years can now be heard from your railroad. In this article you will wire a sound playing module to a speaker and a Nano with 6 wires.   Imagine a button to announce the next train ready to leave, a light sensor noticing a stock car at the loading chute making some cattle noises, wheels squealing around a curve, or on my layout, elephants and lions in the wild! DFPlayer Mini pinout   So, save some sounds, (or “songs” called from here on), in MP3 format, onto a micro (u) SD card using your personal computer. Reading the documentation makes it a bit confusing, from: the order matters in which you drag the files to the uSD card, to: having 100 folders with each 255 sounds and commands calling which file in a folder?!? What I did was save my sound files as 001.mp3, 002.mp3 and so forth in the root folder of the drive, and had no trouble getting them to play. Remember to properly “Eject” the card using your operati...