- Choosing a Microcontroller with WiFi
- How to pick the better controller
- 6 comments
- Give me One Week in your Inbox.
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. Once you have a better grasp of how to set up your circuit and begin to dabble into your 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 pros and cons of each.
Table of Contents
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.
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 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 of all of the Wemos Electronics products.
Now, let’s talk tech specs for the D1 Mini.
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 download programs.
The controller weighs only 3g and has a very small footprint at 34.2mm long by 25.6mm wide. There is also an assortment of “shields” compatible with the Wemos, which are 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 NodeMCU chip is marketed as an “open-source, interactive, programmable, low cost, WiFi-enabled” controller. You can access the API documentation here.
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.
Lastly, the NodeMCU is slightly more expensive than the Wemos D1 mini at about $8 per chip. But, like the Wemos, the NodeMCU can be bought at Amazon, Aliexpress, and Banggood.
Another thing to note about the NodeMCU is that the GPIO PINs are referenced differently than the I/O pins in software. Therefore, GPIO5 is not pin 5 in the code. It’s 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
- Programmable with Arduino, MicroPython, and Lua
- LOTS of documentation + API
- ESP32 Version with enhanced specs
- Larger Footprint Weight
- Affordable, A few dollars more
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.
If you’re looking for a small footprint, the Wemos D1 Mini is a clear winner. However, if you want to script in Lua, you may want to choose the NodeMCU.
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 enjoyed creating projects in such a small footprint! Feel free to read my Wemos tutorials out here.
So with all that said, what controller do you like better? Wemos D1 mini or NodeMCU? Drop a comment below, and feel free to link to your project using either device!
Support Content Like This
You May Also Like
As Featured In
Have a question? Need Help?
I understand. Thank you for that explanation, Liz. In that case, the D1 does look like the better option as it’s considerably smaller
You’re welcome! Good luck with your project!
Liz from Learn Robotics
This article was very helpful as it addresses precisely the issue I am facing. Thank you but I do have a question.
The NodeMCU has far more pins than the D1 mini and the pinout diagram shows 13 GPIO pins rather than the 10 you state in the summary.
Does it have 10 or 13 and if there really are fewer on the NodeMCU than the D1 mini, why do the pinout diagrams appear to show more?
Thanks Simon! To answer your question, NodeMCU has 16 GPIO pins (GPIO0-GPIO15); however, only 10 of them can be used for digital I/O. The Wemos D1 Mini has 11 GPIO pins plus 1 Analog input pin. The pinout diagram is designed to show you what every pin is mapped to, regardless of if it’s usable for external I/O. Hope this helps!
Liz from Learn Robotics
Hi Liz, thank you for this article.
my reseller only has NodeMcu Lua ESP8266 CH340 , not wemos and nor ESP32 chip.
I’d like to program like it is Arduino, is it good? and i’d like to use Telegram BOT to turn on and off a Rele, do you have a good tutorial about it?
Thank you so much, i m waiting for your opinion 🙂
Ninni, the NodeMCU ESP8266 CH340 works as well. Just make sure you have the CH340 drivers installed on your computer. The NodeMCU Getting Started guide should help you out. We have a bunch of ESP8266 tutorials. You can use the search button at the top of the page to query “ESP8266” and the tutorials should appear. Best of luck!
This site uses Akismet to reduce spam. Learn how your comment data is processed.
Give me One Week in your Inbox.
…and I’ll show you the best ways to improve your robotics skills, develop your "engineering mind", and optimize your plan for advancing your career.
I’m Liz Miller, a Robotics Engineer and the brains behind Learn Robotics. I’ve helped hundreds of people build their first robots. Will you be next?