ESP32-30Pin

From: https://lastminuteengineers.com/esp32-pinout-reference/
Intro Peripherasl I/O GPIO Pins Which GPIO are Safe
Input Only GPIOs Interrupt Pins ADC Pins DAC Pins
Touch Pins SPI Pins I2C Pins UART Pins
PWM Pins RTC GPIO Pins Power Pins Enable Pin
ESP32-30 Vs 38 Pin


I will refer to the 30 pin as ESP32-30 in order to differentiate between the 30 and 38 pin version.

ESP32-30 Pinout Reference
Tutorial-for-ESP32-Pinout-Reference
One of the great things about ESP32-30 is that it has a lot more GPIOs than ESP8266. You won’t have to juggle or multiplex your IO pins. There are a few things to watch out for so please read the pinout carefully. Note: Please note that the following pinout reference is for the popular ESP32-30 devkit v1 development board with 30 pins. 30pin esp32 dev board Not all pins are broken out in all ESP32-30 development boards, but each specific pin works the same way regardless of the development board you are using.
ESP32-30 Peripherals and I/O
Although the ESP32-30 has total 48 GPIO pins, only 25 of them are broken out to the pin headers on both sides of the development board. These pins can be assigned to all sorts of peripheral duties, including:
15 ADC channels 15 channels of 12-bit SAR ADC’s. The ADC range can be set, in firmware, to either 0-1V, 0-1.4V, 0-2V, or 0-4V
2 UART interfaces2 UART interfaces. One is used to load code serially. They feature flow control, and support IrDA too!
25 PWM outputs25 channels of PWM pins for dimming LEDs or controlling motors.
2 DAC channels8-bit DACs to produce true analog voltages.
3 SPI & 1 I2C interfacesThere are 3 SPI and 1 I2C interfaces to hook up all sorts of sensors and peripherals.
9 Touch Pads9 GPIOs feature capacitive touch sensing.
Thanks to the ESP32-30’s pin multiplexing feature (Multiple peripherals multiplexed on a single GPIO pin). Meaning a single GPIO pin can act as an ADC input/DAC output/Touch pad. You can get extensive information about ESP32-30 from the datasheet. ESP32-30 Datasheet
ESP32-30 Pinout
The ESP32-30 development board has a total of 30 pins that connect it to the outside world. For simplicity, pins with similar functionality are grouped together. The pinout is as follows: esp32 pinout Let us analyze the ESP32-30 pins and their functions one by one in more detail.
GPIO Pins
ESP32-30 development board has 25 GPIO pins which can be assigned to various functions programmatically. Each digital enabled GPIO can be configured to internal pull-up or pull-down, or set to high impedance. esp32 gpio pins
Which ESP32-30 GPIOs are safe to use?
Because the ESP32-30 has many pins with specific functions, they may not be suitable for your projects. The following table shows which pins are safe to use and which pins require more attention before using them. 🟢 ✓ – Your first priority pins. They are perfectly fine to use. 🟠 ! – Pay attention as their behavior can be unpredictable, mainly during boot. Don’t use them unless you absolutely need to. ⭕ X - It is not recommended to use these pins. So avoid them.
LabelGPIOSafe to use?Reason
D00🟠 !must be HIGH during boot and LOW for programming
TX01⭕ XTx pin, used for flashing and debugging
D22🟠 !must be LOW during boot and also connected to the on-board LED
RX03⭕ XRx pin, used for flashing and debugging
D44🟢 ✓
D55🟠 !must be HIGH during boot
D66⭕ XConnected to Flash memory
D77⭕ XConnected to Flash memory
D88⭕ XConnected to Flash memory
D99⭕ XConnected to Flash memory
D1010⭕ XConnected to Flash memory
D1111⭕ XConnected to Flash memory
D1212must be LOW during boot
D1313🟢 ✓
D1414🟢 ✓
D1515🟠 !must be HIGH during boot, prevents startup log if pulled LOW
RX216🟢 ✓
TX217🟢 ✓
D1818🟢 ✓
D1919🟢 ✓
D2121🟢 ✓
D2222🟢 ✓
D2323🟢 ✓
D2525🟢 ✓
D2626🟢 ✓
D2727🟢 ✓
D3232🟢 ✓
D3333🟢 ✓
D3434🟠 !Input only GPIO, cannot be configured as output
D3535🟠 !Input only GPIO, cannot be configured as output
VP36🟠 !Input only GPIO, cannot be configured as output
VN39🟠 !Input only GPIO, cannot be configured as output
For your convenience, here is an image showing which GPIO pins are safe to use. esp32 gpio pins that are safe to use
Input Only GPIOs
Pins GPIO34, GPIO35, GPIO36(VP) and GPIO39(VN) cannot be configured as outputs, they can be used as either digital inputs, analog inputs, or for other unique purposes. Also note that they do not have internal pull-up or pull-down resistors, like the other GPIO pins. Also pins GPIO36(VP) and GPIO39(VN) are an integral part of the ultra-low-noise pre-amplifier for the ADC, which help to configure the sampling time and noise of the pre-amp.
ESP32-30 Interrupt Pins
All GPIOs can be configured as interrupts.
ADC Pins
The ESP32-30 has fifteen 12-bit ADC input channels. These are GPIOs that can be used to convert the analog voltage on the pin to a digital number. esp32 adc pins The ADC on the ESP32-30 is a 12-bit ADC meaning it has the ability to detect 4096 (212) discrete analog levels. In other words, it will map input voltages between 0 and the operating voltage 3.3V into integer values between 0 and 4095. For example, this yields a resolution between readings of: 3.3 volts / 4096 units or, 0.0008 volts (0.8 mV) per unit. You also have the ability to set the ADC resolution and ADC range of your channels in code. Warning: The ADC2 pins cannot be used when Wi-Fi is enabled. If your project requires Wi-Fi, consider using the ADC1 pins instead.
DAC Pins
The ESP32-30 features two 8-bit DAC channels that can be used to convert digital signals into true analog voltages. It can be used as a “digital potentiometer” to control analog devices.
esp32 dac pins
This dual-DAC on the ESP32-30 has 8-bit resolution, which means that values between 0 and 256 will produce an analog voltage somewhere between 0 and 3.3V.
Touch Pins
ESP32-30 has 9 capacitive touch-sensing GPIOs. When a capacitive load (such as a human finger) is in close proximity to the GPIO, the ESP32-30 detects the change in capacitance. esp32 touch pins These pins can be easily turned into a touchpad by connecting them to any conductive object such as wire, thread, foil, cloth, conductive paint, etc. The low-noise nature of the design and the high sensitivity of the circuit allow relatively small pads to be used. These capacitive touch pins can also be used to wake the ESP32-30 from deep sleep.
SPI Pins
SPI Pins ESP32-30 features three SPIs (SPI, HSPI and VSPI) in slave and master modes. These SPIs also support the following general-purpose SPI features: esp32 spi pins Only VSPI and HSPI are usable SPI interfaces and the third SPI bus is used by the integrated flash memory chip. Standard libraries usually use VSPI pins between the two. HSPI vs. VSPI Sometimes HSPI is misinterpreted as “Hardware” SPI and VSPI as “Virtual” or “Software” SPI. Although in reality they all work the same way!
I2C Pins
The ESP32-30 has a single I2C bus that allows you to connect up to 112 sensors and peripherals. The SDA and SCL pins are, by default, assigned to the following pins. However, you can bit-bang the I2C protocol on any GPIO pins with wire.begin(SDA, SCL) command. esp32 i2c pins
UART Pins
ESP32-30 has 2 UART interfaces, i.e. UART0 and UART2, which provide asynchronous communication (RS232 and RS485) and IrDA support, and communicate at up to 5 Mbps. UART0 pins are connected to the USB-to-Serial converter and are used for flashing and debugging. Therefore it is not recommended to use the UART0 pins. UART2, on the other hand, are additional Serial1 pins, and are not connected to the USB-to-Serial converter. This means that you can use them to connect to UART-devices such as GPS, fingerprint sensor, etc. esp32 uart pins
PWM Pins
The board has 25 channels (Nearly All GPIO pins) of PWM pins controlled by Pulse Width Modulation (PWM) controller. The PWM output can be used for driving digital motors and LEDs. esp32 pwm pins The controller consists of PWM timers and the PWM operator. Each timer provides timing in synchronous or independent form, and each PWM operator generates the waveform for one PWM channel.
RTC GPIO Pins
Some GPIOs are routed to the RTC low-power subsystem, they are called RTC GPIOs. These are special pins that are used to wake the ESP32-30 from deep sleep when the Ultra Low Power (ULP) co-processor is running. The following GPIOs can be used as external wake up sources. esp32 rtc gpio pins
Power Pins
There are two power pins viz. VIN pin & 3.3V pin. The VIN pin can be used to directly supply the ESP32-30 and its peripherals, if you have a regulated 5V voltage source. The 3.3V pin is the output of an on-board voltage regulator. This pin can be used to supply power to external components. GND is a ground pin of ESP32-30 development board. esp32 power pins
Enable Pin
EN Pin is used to enable ESP32-30. The chip is enabled when pulled HIGH. When pulled LOW the chip works at minimum power.