Content on this site may not be resold or reproduced. Copying is strictly prohibited.
This post may contain affiliate links. See the Affiliate Disclosure for more information.
Use of information on this site is at your own risk. View the Terms of Service.
When you’re first learning Arduino, most people recommend using the Arduino Uno. And, I too, agree that the Arduino Uno is a great controller to use when you’re starting out. Once you have a better grasp of how to setup your circuit and begin to dabble into your own projects, you may want to expand your knowledge and pick out a different controller. This brings up the common question… which controller should I use… Wemos D1 mini or NodeMCU?
In this article, we will examine two popular WiFi-enabled Arduino controllers: the Wemos D1 Mini and the NodeMCU. Both of these chips include an ESP8266 chip, which is great for an Internet of Things (IoT) project. So, if you’re trying to decide which of these controllers to use in your next project, this article will outline the pro’s and con’s to each.
Choosing a Microcontroller with WiFi
First off, if you don’t need WiFi for your project, you do not need to use the Wemos or NodeMCU. A traditional Arduino Uno or Mega might be sufficient. So, for this article, I’m going to assume your project requires WiFi connectivity.
WeMos WiFi Controlled Robot using L298N
Before we dive into the full review of what controller to use (Wemos D1 Mini or NodeMCU), I’m going to give a quick technical overview of each. If you already know about each controller, feel free to click here and skip down to the review portion.
Wemos D1 Mini Technical Overview
The Wemos D1 Mini is a small microcontroller made by the Chinese company, Wemos Electronics. The D1 Mini is only one of six families that the Wemos company makes. You can learn more about their other products, here. For the purposes of this article, when I say Wemos, I’m referring to the D1 Mini controller. Feel free to let me know in the comments below, if you’d like to see a full review on all of the Wemos Electronics products.
The D1 Mini is a 4MB flash controller based on the ESP8266 chip. It includes 11 digital input/output pins (I/O) each with an interrupt, PWM, I2C (except D0). There’s also 1 analog pin (A0). It’s compatible with Arduino, NodeMCU, and MicroPython. And, it also has a built-in Micro USB port, which you can use for power or to download programs.
How to use Dweet.io with Wemos D1 Mini (Arduino Tutorial)
The controller weighs only 3g and has a very small footprint at 34.2mm long by 25.6mm wide. There are also an assortment of “shields” compatible with the Wemos, which are really neat if you’re looking to create a rapid prototype.
Lastly, the Wemos D1 Mini is very affordable ($5-$10 per controller). You can find them on Amazon, Aliexpress, or Banggood for exceptionally good prices. If you are based out of the US, I recommend getting your Wemos from Amazon, or you’ll be waiting anywhere from 20-50 days to save $5. Depending on your scenario, it may or may not be worth the wait from Aliexpress or Banggood.
Now that we’ve spoken a bit about the Wemos D1 Mini, let’s review the tech specs for the NodeMCU.
NodeMCU Technical Overview
The controller has 10 GPIO pins that can be PWM, I2C, or 1-wire. There’s also a built-in ADC for your analog devices. The NodeMCU has a slightly longer footprint than the Wemos D1 Mini at 48.0mm long by 23.88mm wide. And, it weighs about 50g vs the 3g of the Wemos D1 mini.
NodeMCU, dweet.io, & Freeboard.io Tutorial for IoT
Another thing to note about the NodeMCU, is that the GPIO pin numbers are referenced differently than the I/O pins in software. Therefore, GPIO5 is not pin 5 in the code. It’s actually pin D1. (Refer to the pinout diagram above.)
Technology is forever changing
I was recently informed about the upgraded ESP32 chip on some NodeMCU’s. (Shoutout to Javier Corado for mentioning this on Facebook!) This chip provides a much better spec in comparison to the ESP8266 (and for about the same price).
If you plan on using the NodeMCU, I recommend checking out the version with an ESP32.
- Small Footprint
- Lower Cost ~ $5/ea
- 11X GPIO (multi-purpose)
- Programmable with Arduino, NodeMCU, and MicroPython
- Not programmable with Lua
- Pins aren’t aligned with breadboard
- Programmable with Arduino, MicroPython, and Lua
- LOTS of documentation + API
- ESP32 Version with enhanced specs
- Larger Footprint & Weight
- Affordable, A few dollars more ~$8/ea
- 10X GPIO (multi-purpose)
- Reference I/O in code not GPIO
WeMos WiFi Controlled Robot using L298N
How to pick the better controller
I recommend choosing your controller based on the application. Some considerations might be space (footprint), weight requirements, number of I/O required, available libraries, the language you want to write in, etc.
Better is relative
Both of these controllers can handle very similar projects. I think the biggest deciding factor is not which one is better, but which one do you prefer. In this scenario, it’s a lot like choosing a sedan. Do you like Toyota Corollas or Honda Civics? Both provide reliability and roughly the same features for a similar price. It all comes down to which brand or model do you like better.
And in case you’re wondering, I’m team Wemos D1 Mini all the way. I’m sure this could change in the future, but I’ve really enjoyed creating projects in such a small footprint! Feel free to check out my Wemos tutorials out here.