The Inland ESP32 (Micro Center's house brand) typically utilizes the ESP32-WROOM-32E module mounted on a standard 38-pin DevKit V1-style footprint. Because Inland boards are manufactured in batches that sometimes vary slightly in silkscreen abbreviations (e.g., using VP instead of GPIO36), having a definitive mapping is critical before you solder headers or wire up sensors. Below is the exact pin mapping, followed by critical boot-strapping rules and external wiring standards.
The Complete Inland ESP32 Pinout Reference Table
This table maps the physical silkscreen labels found on the Inland 38-pin board to their internal ESP32 GPIO numbers and alternate functions. Read the 'Primary Function/Notes' column carefully, as not all pins are created equal.
| Silkscreen Label | GPIO Number | ADC / Touch | Primary Function / Notes |
|---|---|---|---|
| 3V3 | N/A | N/A | 3.3V Power Output (Max ~500mA from onboard LDO) |
| GND | N/A | N/A | Common Ground |
| GPIO15 / D8 | 15 | ADC2_CH3 / T3 | Strapping Pin (Boot log output). Has internal pull-down. |
| GPIO2 / D9 | 2 | ADC2_CH2 / T2 | Strapping Pin. Connected to onboard blue LED. Must be LOW to flash. |
| GPIO4 / D10 | 4 | ADC2_CH0 / T0 | General purpose I/O. |
| GPIO16 / D11 | 16 | N/A | General purpose I/O. No ADC or Touch capability. |
| GPIO17 / D12 | 17 | N/A | General purpose I/O. Often used for UART1 TX. |
| GPIO5 / D13 | 5 | N/A | Strapping Pin (SDIO timing). Default SPI SS (VSPI). |
| GPIO18 / D14 | 18 | N/A | Default SPI SCK (VSPI). |
| GPIO19 / D15 | 19 | N/A | Default SPI MISO (VSPI). |
| GPIO21 / D16 | 21 | N/A | Default I2C SDA. |
| GPIO3 / D17 | 3 | N/A | Default UART0 RX. Prints boot logs. |
| GPIO1 / D18 | 1 | N/A | Default UART0 TX. Prints boot logs. |
| GPIO22 / D19 | 22 | N/A | Default I2C SCL. |
| GPIO23 / D20 | 23 | N/A | Default SPI MOSI (VSPI). |
| VN / GPIO39 | 39 | ADC1_CH3 | Input ONLY. No internal pull-up. Hall sensor negative. |
| VP / GPIO36 | 36 | ADC1_CH0 | Input ONLY. No internal pull-up. Hall sensor positive. |
| EN | N/A | N/A | Chip Enable. Pull LOW to reset. Has 10k pull-up on board. |
| GPIO34 / D25 | 34 | ADC1_CH6 | Input ONLY. No internal pull-up. |
| GPIO35 / D26 | 35 | ADC1_CH7 | Input ONLY. No internal pull-up. |
| GPIO32 / D27 | 32 | ADC1_CH4 / T9 | General purpose I/O. Can act as 32kHz crystal pin. |
| GPIO33 / D28 | 33 | ADC1_CH5 / T8 | General purpose I/O. Can act as 32kHz crystal pin. |
| GPIO25 / D29 | 25 | ADC2_CH8 / DAC1 | General purpose I/O. True 8-bit DAC output. |
| GPIO26 / D30 | 26 | ADC2_CH9 / DAC2 | General purpose I/O. True 8-bit DAC output. |
| GPIO27 / D31 | 27 | ADC2_CH7 / T7 | General purpose I/O. |
| GPIO14 / D32 | 14 | ADC2_CH6 / T6 | Default SPI SCK (HSPI). Outputs PWM signal at boot. |
| GPIO12 / D33 | 12 | ADC2_CH5 / T5 | Strapping Pin (Flash voltage). Must be LOW for 3.3V flash. |
| GPIO13 / D34 | 13 | ADC2_CH4 / T4 | Default SPI MOSI (HSPI). |
| GPIO9 / D35 | 9 | N/A | Connected to internal SPI flash. Do not use. |
| GPIO10 / D36 | 10 | N/A | Connected to internal SPI flash. Do not use. |
| GPIO11 / D37 | 11 | N/A | Connected to internal SPI flash. Do not use. |
Rows People Get Wrong: Strapping Pins and Input-Only Traps
The most common reason an Inland ESP32 project fails on the bench isn't bad code; it's a misunderstanding of the silicon's hardware limitations. Here are the specific rows from the table above that cause the most grief:
The Inland ESP32 operates at 3.3V logic. No GPIO pin is 5V tolerant. Feeding a 5V signal from an Arduino Uno or a standard HC-SR04 ultrasonic sensor directly into an ESP32 GPIO will permanently damage the input pad. Always use a bidirectional logic level shifter or a simple resistor voltage divider (e.g., 1kΩ and 2kΩ) for 5V inputs.
The Strapping Pins (0, 2, 12, 15)
During boot, the ESP32 samples these pins to determine its startup mode. If you wire a sensor or relay to these pins and they pull the line HIGH or LOW at the exact moment of power-on, the chip will fail to boot or enter UART download mode.
- GPIO 0: Must be HIGH to boot normally. LOW enters flash mode. (The onboard 'BOOT' button pulls this LOW).
- GPIO 2: Must be LOW or floating to flash. If pulled HIGH, the board will not enter download mode.
- GPIO 12: Determines the internal flash voltage. Must be LOW (or floating) to select 3.3V. If pulled HIGH, it attempts 1.8V and will crash the internal SPI flash, resulting in a boot loop.
- GPIO 15: Controls boot log output. HIGH enables debug logs on GPIO1/GPIO3; LOW silences them.
The Input-Only Pins (34, 35, 36/VP, 39/VN)
These pins lack internal pull-up and pull-down resistors. If you configure them as inputs in your Arduino/ESP-IDF code and leave them floating, you will read erratic ADC noise. Furthermore, you cannot use pinMode(pin, OUTPUT) on these; attempting to drive them HIGH will do nothing and can damage the silicon trace.
External Wiring Color Standards: IEC vs. NEC for Peripherals
While the Inland ESP32 PCB itself uses standard DC logic coloring (Red for 3.3V, Black for GND), the moment you wire the ESP32 to external peripherals—such as mains-interfacing opto-isolators, 24V industrial sensors, or external relay banks—you must adhere to regional wiring color standards to ensure safe troubleshooting and maintenance.
| Function | IEC 60446 (EU / Global) | NEC (US / Canada) | Old UK (Pre-2006) |
|---|---|---|---|
| AC Line (Hot) | Brown | Black | Red |
| AC Neutral | Blue | White (or Gray) | Black |
| Earth / Ground | Green/Yellow Stripe | Green, Bare, or Green/Yellow | Green |
| DC Positive (+) | Brown | Red | Red |
| DC Negative (-) | Blue | Black (or White) | Black |
Which standard applies to you? If you are building a project that will be permanently installed in a US home panel or junction box, follow NEC guidelines for the external AC wiring feeding your ESP32's power supply. If you are building a sensor network for a European or global industrial environment, IEC 60446 applies. Never mix standards in the same enclosure. For detailed code references, consult the All About Circuits wire color code guide.
Safe Interpretation When Silkscreen Markings Are Faded
Inland boards are mass-produced, and occasionally the white silkscreen ink wears off, is obscured by solder flux, or is printed too faintly to read under bench lighting. If you cannot read the pin labels, do not guess. Use a digital multimeter (DMM) to safely identify the critical power and communication pins.
- Identify GND: Set your DMM to continuity mode (the diode/beep symbol). Place the black probe on the metal shield of the micro-USB port. Probe the header pins with the red probe. Any pin that beeps (reads < 1 ohm) is a Ground pin. The large copper pour on the back of the PCB is also tied to GND.
- Identify 3V3: Power the board via USB. Set the DMM to DC Voltage. Place the black probe on a known GND pin. Probe the remaining pins. The pin reading a stable 3.28V to 3.32V is your 3V3 output. (Do not confuse this with the 5V/VIN pin, which will read ~4.8V to 5.1V from the USB bus).
- Identify EN (Enable): With the board unpowered, set the DMM to resistance. The EN pin will typically show a ~10kΩ resistance to the 3V3 pin (due to the onboard pull-up resistor) and will have a brief continuity spike to GND when probed (due to the 1µF reset capacitor charging).
- Identify TX/RX (GPIO 1 & 3): Visually trace the copper traces from the header pins to the small USB-UART bridge chip (usually a CP2102 or CH340G on Inland boards). The two pins connecting directly to this chip's TXD and RXD pads are your primary serial UART pins.
Inland ESP32 Pinout FAQ
Does the Inland ESP32 use 5V tolerant GPIO pins?
No. The ESP32-WROOM-32E module on the Inland board operates strictly at 3.3V logic. The absolute maximum voltage on any GPIO pin is 3.6V. Applying 5V directly to pins like GPIO4 or GPIO21 will destroy the input protection diodes and permanently short the pin to VDD. Always use a logic level shifter when interfacing with 5V modules like the DHT22 or standard LCD character displays.
Why does my Inland ESP32 fail to boot when GPIO 12 is connected to a relay?
GPIO 12 is a critical strapping pin that dictates the internal SPI flash voltage regulator. If your relay module has an internal pull-up resistor that pulls GPIO 12 HIGH during the first 50 milliseconds of power-on, the ESP32 will configure its flash for 1.8V operation. Because the WROOM-32E uses a 3.3V flash chip, this mismatch causes an immediate brownout and boot loop. Move the relay control wire to a non-strapping pin like GPIO 27 or GPIO 26.
What USB-UART chip is on the Inland ESP32 board and how does it affect drivers?
Micro Center sources Inland ESP32 boards in batches that typically feature either the Silicon Labs CP2102 or the WCH CH340G USB-to-UART bridge. You can identify the chip by looking at the small square IC near the USB port. If it is a CH340G, Windows and macOS will require you to download and install the specific CH340 driver from the WCH website before the board will assign a COM port. The CP2102 usually installs automatically via Windows Update. For official module specifications, refer to the Espressif ESP32 Datasheet.
Can I use the ADC2 pins (GPIO 25, 26, 27) while WiFi is active?
No. The ESP32 hardware shares the ADC2 peripheral with the WiFi radio. When WiFi is initialized and actively transmitting or receiving, the ADC2 channels are locked out, and analogRead() will return erratic values or fail entirely. If your project requires simultaneous analog sensing and WiFi communication, you must route your analog sensors to the ADC1 pins (GPIO 32, 33, 34, 35, 36, 39).






