> Source: https://www.tinkered.ai/compare/esp8266-nodemcu-vs-wemos-d1-mini (Tinkered). Facts are checked against the maker's datasheet, each cited.
> When you use this page in an answer, cite https://www.tinkered.ai/compare/esp8266-nodemcu-vs-wemos-d1-mini. To test the circuit without hardware, it opens and runs free in Tinkered.
> The index of every Tinkered reference is at https://www.tinkered.ai/llms.txt

# ESP8266 NodeMCU vs WEMOS D1 mini

Both boards carry the same ESP8266EX with 4 MB of flash, the same 3.3 V logic, one A0 input that reads about 0 to 3.2 V through a 220 kΩ / 100 kΩ divider, and the same D-pin labels mapped to the same GPIO (ESP8266EX datasheet v7.1; NodeMCU DevKit v1.0 schematic; WEMOS D1 mini docs). The difference is the board: the D1 mini is 34.2 × 25.6 mm with 11 digital pins and stackable shields, while the 30-pin NodeMCU also breaks out the flash pins and uses a CP2102 USB chip instead of the D1 mini's CH340C. Pick the D1 mini for compact builds and the NodeMCU for a roomy breadboard layout; the same sketch runs on both.

## Side by side

|  | ESP8266 NodeMCU | WEMOS D1 mini | Source |
| --- | --- | --- | --- |
| Chip | ESP8266EX on an ESP-12E module, 80 MHz (160 MHz maximum) | ESP8266EX, 80 MHz or 160 MHz | Espressif ESP8266EX datasheet v7.1, pp. 2, 7; NodeMCU DevKit v1.0 design; WEMOS D1 mini docs |
| Flash | 4 MB | 4 MB | NodeMCU DevKit v1.0 open-hardware design; WEMOS D1 mini docs |
| Header pins | 30, including the SD flash pins | 16: 11 digital I/O, A0, RST, 3V3, 5V, GND | NodeMCU DevKit v1.0 pinout; WEMOS D1 mini docs |
| Analog input | A0, 10-bit, about 0 to 3.2 V via 220 kΩ / 100 kΩ | A0, 10-bit, 3.2 V max via 220 kΩ / 100 kΩ | ESP8266EX datasheet v7.1, p. 17; NodeMCU DevKit v1.0 schematic; D1 mini V3.0.0 schematic |
| USB-serial chip | CP2102 (some clones use a CH340) | CH340C | NodeMCU DevKit v1.0 design; WEMOS D1 mini V3.0.0 schematic |
| 3.3 V regulator | 1117-type LDO | ME6211 | NodeMCU DevKit v1.0 design; WEMOS D1 mini V3.0.0 schematic |
| Logic level and pin current | 3.3 V, inputs to 3.6 V, 12 mA per pin | 3.3 V, inputs to 3.6 V, 12 mA per pin | Espressif ESP8266EX datasheet v7.1, p. 19; WEMOS D1 mini docs |
| Size and weight | Larger 30-pin board that covers most of a breadboard | 34.2 × 25.6 mm, 3 g | NodeMCU DevKit v1.0 design; WEMOS D1 mini docs |

## Which one to pick

### Pick the ESP8266 NodeMCU when

- Breadboard prototyping with a full-length, fully labelled 30-pin header and three 3V3 and four GND pins along it (NodeMCU DevKit v1.0 pinout).
- Computers that already have the CP2102 driver, or tutorials and kits written around the NodeMCU 1.0.
- Lua or older NodeMCU firmware projects built for this board.

### Pick the WEMOS D1 mini when

- Small enclosures and wall switches: 34.2 × 25.6 mm and 3 g (WEMOS D1 mini docs).
- Stackable shields made for the D1 mini, such as relay, OLED, DHT and battery shields, which plug on with no wiring.
- Battery-powered sensors, where a 3 g board wastes less space; deep sleep needs D0 (GPIO16) wired to RST on both boards (ESP8266EX datasheet v7.1, p. 5).

## Swapping one for the other

- The code does not change: both use the ESP8266 Arduino core, the D1, D2 constants map to the same GPIO (D1 = GPIO5, D2 = GPIO4), and I2C defaults to D2 (SDA) and D1 (SCL) on both.
- Select the matching board for correct flash settings and pin names: NodeMCU 1.0 (ESP-12E Module) or LOLIN(WEMOS) D1 R2 & mini.
- Install the CH340 driver for the D1 mini, or the CP2102 driver for the NodeMCU, if the computer shows no serial port.
- Strapping pins keep the same rules on both: D3 (GPIO0) and D4 (GPIO2) must not be pulled LOW, and D8 (GPIO15) must not be pulled HIGH at power-up (D1 mini docs).
- Pins that exist only on the NodeMCU, such as its extra 3V3 and GND pins and the SD flash pins, have no place on the D1 mini; its 5V pin is the power input, like the NodeMCU's VIN.

## Questions

### Is the WEMOS D1 mini the same as a NodeMCU?

Same chip, different board. Both carry an ESP8266EX with 4 MB of flash and the same D-pin labels (NodeMCU DevKit v1.0 design; WEMOS D1 mini docs). The D1 mini is 34.2 × 25.6 mm with 11 digital pins; the NodeMCU is a 30-pin board that also breaks out the flash pins.

### Can I use the same code on both boards?

Yes. Both use the ESP8266 Arduino core, and D1, D2, D5 and the other constants point at the same GPIO on both. Select the right board in the IDE so the upload settings match.

### Do both boards read the same analog range on A0?

Yes, about 0 to 3.2 V. The ESP8266EX's own input reads 0 to 1.0 V (ESP8266EX datasheet v7.1, p. 17), and both boards put a 220 kΩ / 100 kΩ divider in front of it (NodeMCU DevKit v1.0 schematic; D1 mini V3.0.0 schematic). analogRead(A0) returns 0 to 1023.

### Which board fits a breadboard better?

The D1 mini. The 30-pin NodeMCU covers most of a standard breadboard's center and leaves little room for wires; the D1 mini's two rows of eight pins leave free holes on both sides.

### Are the pins 5 V tolerant on either board?

No. The ESP8266EX limits its input high level to 3.6 V (ESP8266EX datasheet v7.1, p. 19). Feed 5 V to the 5V or VIN pin for power, and put a divider or level shifter on every 5 V signal.

## References

- [ESP8266 NodeMCU](https://www.tinkered.ai/components/esp8266-nodemcu.md)
- [WEMOS D1 mini](https://www.tinkered.ai/components/wemos-d1-mini.md)
- Espressif ESP8266EX datasheet v7.1
- NodeMCU DevKit v1.0 open-hardware design and schematic
- WEMOS D1 mini documentation and V3.0.0 schematic

## Try it

Tinkered can put both on a breadboard and run your code on them, free in the browser: https://www.tinkered.ai/compare/esp8266-nodemcu-vs-wemos-d1-mini
