Skip to content

Design Consideration_ESP8266 07 Microcontroller_Pin out

Carl edited this page Aug 6, 2022 · 4 revisions

3.1.1 Pin-out

NOTE: Review pinout after final design

You can find a good overview on the ESP8266 NodeMCU V1.0 pinout and recommendations on which pins to use here

cloudSmoker prototype (NodeMCU based) pin-out


Pin Function Connection I/O (project) Comment
VCC Power 5V in micro USB
GND Ground micro USB
D1 SCL I2C bus (GPIO5)
D2 SDA I2C bus (GPIO4)
D3 SW KY40 Push switch
D4 DT KY40 (PinB) (GPIO2)
D5 DT KY40 (PinA) (GPI014)


ADS1015 Pin-out


Pin Connection Function Comment
VDD 5V Power
GND GND Ground
SCL D1 I2C bus
SDA D2 I2C bus
ADDR GND ADS1015 address sets address at hex 0x48; configurable
ALRT float ADS1015 alert not used
A0 VDD ADC Input1 measure supply voltage
A1 float ADC Input2 not used
A2 MEAT ADC Input3 Meat probe thermistor jack
A3 PIT ADC Input4 Pit probe thermistor jack


PCB-based cloudSmoker (:warning: not yet built)


The table below lists the ESP8266 pin-out for the cloudSmoker project:

Pin Function Connection I/O (project) Comment
VCC Power 3.3V power rail Analog Power 2.5V ~ 3.6V
GND Ground
Rest Reset Pull Low to reset chip Input
CH_PD (EN) Chip Enable VCC / 4.7k pull-up Pulled-high to enable ESP8266; connect to ground to disable ESP8266
GPIO0 1) Flash mode entry (low on startup), 2) I2C SDA 1)GND through momentary switch
2) SDA (330 ohm resistor in series to SDA to limit current <12mA) if slave becomes stuck and holds bus down
bidirectional Pull low at startup to enter flash mode, otherwise I2C SDA pin
ADC (Tout) Analog-Digital Converter MUX (4066B Quad Switch) Input 0-1V 10-bit ADC; A0 (alias) in Arduino language
TXD (GPI01) Transmit FTDI RX pin Output Output only
GPIO2 1) Pull high during startup 2) I2C SCL VCC/4.7k pull-up bidirectional
RXD (GPI03) Receive FTDI TX pin with 330 ohm protection resistor in series Input Input Only

ESP8266 reboots following programming and 330ohm Protection resistor prevents RX shorting the programmer's output drive.
GPI04 CLK on rotary encoder CLK/4.7k pull-up Input bidirectional pin
GPIO5 DT on rotary encoder DT/4.7k pull-up Input
GPIO6-11 Unavailable; dedicated to Flash Memory
GPIO12 CTL-B 4066B quad switch CTL-B/3.3k pull-down Switch-B control Turn Switch-B on/off for multiplexing
GPIO13 Rotary Encoder switch SW Input Push switch on rotary encoder
GPIO14 CTL-A 4066B quad switch CTL-A/3.3k pull-down Switch-A control Turn Switch A on/off for multiplexing
GPIO15 Start-up GND/10k pull-down Must be driven low for normal start-up; High startup boot from SD card
GPIO16 Deep Sleep low power enable REST/Schottky diode (cathode towards GPIO16) Output GPIO16 is the only pin belonging to RTC (real time clock) module. During deep sleep, GPIO16 pin is high. When RTC triggers wake-up, it drives GPIO16 pin low, which also drives REST pin low, tirggering a reset. Placing a diode between REST to GPIO16 blocks the High signal, allowing the device to wake-up
Clone this wiki locally