ESP32 Pin Reference - Longus/FluidNC GitHub Wiki
ESP32 Pin Reference
Here is a pinout for an ESP32 Dev Kit. This is common module used for FluidNC controllers, but other version will work on controllers designed for them. This is a good reference of the capabilities of each pin.
See the end of the doc for other types.
Usable I/O pins
- GPIO_NUM_2
- Some dev boards have an LED on this. It does not work well as an input, because the LED affects the voltage on the pin.
- It must be either left unconnected/floating, or driven Low, in order to enter the serial bootloader.
- I like to use it as the spindle pin. The LED gives a nice indication of the spindle on and PWM level.
- GPIO_NUM_4
- GPIO_NUM_5 - (Used by SD Card)
- GPIO_NUM_12
- GPIO_NUM_13
- GPIO_NUM_14 (some pulses at boot)
- GPIO_NUM_15
- GPIO_NUM_16
- GPIO_NUM_17
- GPIO_NUM_18 - (Used by SD Card)
- GPIO_NUM_19 - (Used by SD Card)
- GPIO_NUM_21
- GPIO_NUM_22
- GPIO_NUM_23 - (Used by SD Card)
- GPIO_NUM_25
- GPIO_NUM_26
- GPIO_NUM_27
- GPIO_NUM_32
- GPIO_NUM_33
Input Only (no pullup/pulldown)
If you do not have external pull up or pull down resistors. Do not use these pins!
- GPIO_NUM_34
- GPIO_NUM_35
- GPIO_NUM_36
- GPIO_NUM_37 (not typically available)
- GPIO_NUM_38 (not typically available)
- GPIO_NUM_39
Don't Use (or not recommended)
- GPIO_NUM_0 - This is used for the bootloader (Usable, but for experts only)
- GPIO_NUM_1 - Used for Serial Data
- GPIO_NUM_3 - Used for Serial Data
- GPIO_NUM_6 - Use for External Flash
- GPIO_NUM_7 - Use for External Flash
- GPIO_NUM_8 - Use for External Flash
- GPIO_NUM_9 - Use for External Flash
- GPIO_NUM_10 - Use for External Flash
- GPIO_NUM_11 - Use for External Flash
- GPIO_NUM_20 - This is not available on ESP32s
- GPIO_NUM_24 - This is not available on ESP32s
- GPIO_NUM_28 - This is not available on ESP32s
- GPIO_NUM_29 - This is not available on ESP32s
- GPIO_NUM_30 - This is not available on ESP32s
- GPIO_NUM_31 - This is not available on ESP32s