NODEMCU ESP8266 VS ARDUINO UNO
Table of Contents
Description:
NODEMCU ESP8266 VS ARDUINO UNO:- In this article, we will be discussing the comparison between ESP8266 and Arduino UNO.
The ESP8266 is a microcontroller with Wi-Fi capability. There are different modules and development boards with this system. Some development boards use basic esp8266 modules and some integrate the chip flash memory and the antenna on the PCB.
NODEMCU is a development board with ESP8266 and a firmware with the same name.
Similarly the Arduino Uno is a microcontroller board based on 8 bit ATmega328P microcontroller. Beside ATmega328P it contains other elements such as crystal oscillator serial communication voltage regulator etc. to support the microcontroller. The Arduino Uno has 14 digital input output pins out of which 6 can be used as PWM outputs 6 analog input pins a USB connection The Power barrel jack an ICSP header and a reset button.
NODEMCU ESP8266 VS ARDUINO UNO OPERATING VOLTAGE
The voltage of operation of the ESP microprocessors is 3.3 V compared to the Arduino operating voltage of 5V. The boards used while connected to the socket there will be no difference in the power consumption because the current will be reduced to gather the same amount of power But in the case of a battery-powered, the difference will be much greater because if the battery discharging curve falls below the operating voltage the microprocessor will shut down.
Hence the boards based on the ESP will have a longer operation time because these boards could operate under 4 V although at 4 V the Arduino boards have been shut down.
NODEMCU ESP8266 VS ARDUINO UNO POWER SUPPLY
Power supply from the ESP8266 boards are between 2.5 V to 12 V based on the different boards and Arduino boards have a higher power supply between 7V and 12V. In reality the difference will not have a big effect.
NODEMCU ESP8266 VS ARDUINO UNO CURRENT CONSUMPTION
We know that the current consumption is significant for battery-based projects to increase the lifetime of the project. In common the NODEMCU is based on the ESP8266 microprocessor have a very low current consumption between 15 µA and 400 mA which can be further decreased with the deep sleep mode activated to 0.5 µA. The current consumption is then a factor 70000 higher in deep sleep mode for the Arduino Uno with 35 mA. In common i always prefer ESP based boards when a battery is the power supply.
NODEMCU ESP8266 VS ARDUINO UNO DIGITAL I/O, PWM, ANALOG PINS
Digital I/O Pins:-
The Variation between all boards regarding the digital I/O pins is nearly zero. The only difference is that the big boards like the NODEMCU ESP32 and the biggest board the Arduino MEGA R3 (54) has a lot of digital I/O pins.
PWM Pins:–
In ESP based boards have a better ratio between digital I/O pins and PWM pins because the PWM is used by a digital pin In my opinion all boards have a sufficient amount of PWM pins.
Analog Pins:-
The core disadvantage in my opinion for the NODEMCU is because they have either only 1 or 2 analog input pins. Of course you can use an IC as multiplexer but I think it is easier to use if you have the right amount of analog pins directly on the board itself. The Arduino boards have a good amount of analog input pins between 5 and 15.
SPI (Serial Peripheral Interface):-
The communication protocol to send data between microcontrollers. The synchronous data bus which means that it practices a clock to regulate the data transfer.
I2C communication:-
The Protocol most used to send and receive data from other devices like OLED displays barometric pressure sensors and so on. The I2S is an electrical serial bus interface standard used for connecting digital audio devices together.
UART (Universal Asynchronous Receiver/Transmitter):-
It is not a communication protocol like SPI and I2C but a physical circuit in a microcontroller. The key purpose is to transmit and receive serial data. Generally the ESP based boards and the Arduino boards have at least one pin for these data transfer connections but the ESP modules have mostly a 2nd pin for this kind of communication.
NODEMCU ESP8266 VS ARDUINO UNO DC CURRENT PER PIN
We know that the current the board provides does not matter. The Arduino Raspberry Pi or ESP boards any other microcontroller comparison board are designed to control devices and not to provide these devices with power. As there are a lot of devices like LEDs displays and so on which can be powered by the board. But then there are a lot of other devices like motors which need much more power than a microcontroller can provide. Hence you can always power the devices from an external power supply.
Flash Memory and SRAM
- The Flash memory which tell about program space is where the Arduino sketch is stored.
- The SRAM (static random access memory) is where the sketch creates and manipulates variables when it runs.
- The EEPROM is memory space that programmers can use to store long term information.
The Flash memory and EEPROM memory are nonvolatile the information persists after the power is turned off. The SRAM is volatile and will be lost when the power is cycled.
Clock Speed
As Arduino boards are all operating with 16 MHz which means that the microprocessor can execute up to 16 million instructions per second which may sound like a lot but when you consider that a simple setting digital pin to high can take over 50 clock cycles. The ESP based boards are much faster with a clock speed of 52 MHz up to 160 MHz for the ESP32. This is 10 times faster. Therefore if you plan a big project with many operations you should go with the ESP based boards.
WIFI
Here is a bad news for Arduino board user and good news for ESP boards. The Arduino Uno exists in two version. One without Wi-Fi and one Wi-Fi included on the board. But no worries, because there are plenty of possibilities to use Wi-Fi despite there is no Wi-Fi chip onboard. Either you can use an Arduino Wi-Fi shield or you can connect the Arduino board with an ESP-01 with as Wi-Fi included.
Size
In this microcontroller comparison we look at different sizes of boards with one big impact factor on the size the total number of pins. The more pins the board has the larger the board will be generally are the ESP based boards like the NODEMCU smaller than these Arduino boards and will fit onto a breadboard which dependent on your project size.
COMPARISON OF NODEMCU ESP8266 VS ARDUINO UNO
ESP8266 NODEMCU V2 | NODEMCU V3 | Arduino NANO 3 | Arduino UNO R3 | Arduino MEGA R3 | |
Microcontroller | ESP8266 | ESP8266 | ATmega328p | ATmega328p | ATmega2560 |
Operating Voltage | 3.3V | 3.3V | 5V | 5V | 5V |
Power supply | 7V – 12V | 7V – 12V | 7V – 12V | 7V – 12V | 7V – 12V |
Current consumption | 15 µA – 400 mA | 15 µA – 400 mA | 19 mA – 180 mA | 45 mA – 80 mA | 50 mA – 200 mA |
Current consumption Deep Sleep | 0.5 µA | 0.5 µA | 23 µA (with special settings) | 35 mA | 500 µA |
Digital I/O Pins | 11 or 13 | 16 | 14 | 14 | 54 |
Digital I/O Pins with PWM | 11 or 13 | 16 | 6 | 6 | 15 |
Analog Input Pins | 1 | 1 | 8 | 6 | 16 |
SPI/I2C/I2S/UART | 2/1/2/2 | 2/1/2/2 | 1/1/1/1 | 1/1/1/1 | 1/1/1/4 |
DC Current per I/O Pin | 12 mA | 12 mA | 40 mA | 40 mA | 20 mA |
DC Current for 3.3V Pin | 50 mA | 150 mA | 150 mA | ||
Flash Memory | 4 MB | 4 MB | 32 KB | 32 KB | 256 KB |
SRAM | n.A | 64 KB | 2 KB | 2 KB | 8 KB |
EEPROM | 512 bytes | 512 bytes | 1024 bytes | 1024 bytes | 4096 bytes |
Clock Speed | 52 MHz | 80 MHz | 16 MHz | 16 MHz | 16 MHz |
Length | 48 mm | 58 mm | 45 mm | 69 mm | 102 mm |
Width | 26 mm | 31 mm | 18 mm | 53 mm | 53 mm |
WIFI | yes | yes | no | no | no |
Bluetooth | no | no | no | no | no |
Touch sensor | no | no | no | no | no |
CAN | no | no | no | no | no |
Ethernet MAC Interface | no | no | no | no | no |
Temperature Sensor | no | no | no | no | no |
Hall effect sensor | no | no | no | no | no |
Power jack | no | no | no | yes | yes |
USB connection | yes | yes | yes | yes | yes |
Pin Category | Name | Description |
Power | Micro-USB, 3.3V, GND, Vin | Micro-USB: NodeMCU can be powered through the USB port
3.3V: Regulated 3.3V can be supplied to this pin to power the board
GND: Ground pins
Vin: External Power Supply |
Control Pins | EN, RST | The pin and the button resets the microcontroller |
Analog Pin | A0 | Used to measure analog voltage in the range of 0-3.3V |
GPIO Pins | GPIO1 to GPIO16 | NodeMCU has 16 general purpose input-output pins on its board |
SPI Pins | SD1, CMD, SD0, CLK | NodeMCU has four pins available for SPI communication. |
UART Pins | TXD0, RXD0, TXD2, RXD2 | NodeMCU has two UART interfaces, UART0 (RXD0 & TXD0) and UART1 (RXD1 & TXD1). UART1 is used to upload the firmware/program. |
I2C Pins | NodeMCU has I2C functionality support but due to the internal functionality of these pins, you have to find which pin is I2C. |
NodeMCU ESP8266 Development Board Pinout Configuration
Applications of Arduino
- The Prototyping of Electronics Products and Systems
- In Multiple DIY Projects.
- It is Easy to use for beginner level DIY and makers.
- The Projects requiring Multiple I/O interfaces and communications.
Applications of NODEMCU
- The Prototyping of IoT devices
- It has Low power battery operated applications
- Used in Network projects
- The Projects requiring multiple I/O interfaces with Wi-Fi and Bluetooth functionalities
Conclusion:-
Which one is the best between these two in this comparison? In my opinion there are only few use cases where you should not go with an ESP based board. The ESP based boards are fast have a low power consumption a high memory and Wi-Fi build in also the price is very low. The ESP8266 is still great and extremely useful. Even Lua is useful for quick small projects. In most cases where internet connectivity is required they seem to be the best solution.
Only use case I can think the Arduino boards are better is when it comes to analog inputs. If you working to read a lot of analog input values and you do not want to use a multiplexer than you should go with an Arduino board. As always, “the right tool for the job” is the way to go or combination of tools.
Wow, nice post
One minus for ESP that makes it unusable for a project I have is that the USB connection on ESP is only Serial by means of a CH340 chip. It is ok for flashing from sketch IDE, but ATmega328p can do full USB support, and act as a slave device (in my case I need USB-MIDI). On ESP, MIDIUSB library gives hardware capability compile errors.