NodeMCU

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
NodeMCU
NodeMCU DEVKIT 1.0.jpg
NodeMCU DEVKIT 1.0
DeveloperESP8266 Opensource Community
TypeSingle-board microcontroller
Introductory price$5
Operating systemXTOS
CPUESP8266[1](LX106[2])
Memory128kBytes
Storage4MBytes[3]
PowerUSB
Websitewww.nodemcu.com
NodeMCU DEVKIT 1.0, bottom

NodeMCU is an open source IoT platform.[4][5] It includes firmware which runs on the ESP8266 Wi-Fi SoC from Espressif Systems, and hardware which is based on the ESP-12 module.[6][7] The term "NodeMCU" by default refers to the firmware rather than the development kits. The firmware uses the Lua scripting language. It is based on the eLua project, and built on the Espressif Non-OS SDK for ESP8266. It uses many open source projects, such as lua-cjson[8] and SPIFFS.[9]

History[edit]

NodeMCU was created shortly after the ESP8266 came out. On December 30, 2013, Espressif Systems[6] began production of the ESP8266.[10] The ESP8266 is a Wi-Fi SoC integrated with a Tensilica Xtensa LX106 core,[citation needed] widely used in IoT applications (see related projects). NodeMCU started on 13 Oct 2014, when Hong committed the first file of nodemcu-firmware to GitHub.[11] Two months later, the project expanded to include an open-hardware platform when developer Huang R committed the gerber file of an ESP8266 board, named devkit v0.9.[12] Later that month, Tuan PM ported MQTT client library from Contiki to the ESP8266 SoC platform,[13] and committed to NodeMCU project, then NodeMCU was able to support the MQTT IoT protocol, using Lua to access the MQTT broker. Another important update was made on 30 Jan 2015, when Devsaurus ported the u8glib[14] to NodeMCU project,[15] enabling NodeMCU to easily drive LCD, Screen, OLED, even VGA displays.

In summer 2015 the creators abandoned the firmware project and a group of independent contributors took over. By summer 2016 the NodeMCU included more than 40 different modules. Due to resource constraints, users need to select the modules relevant for their project and build a firmware tailored to their needs.

Related projects[edit]

ESP8266 Arduino Core[edit]

As Arduino.cc began developing new MCU boards based on non-AVR processors like the ARM/SAM MCU and used in the Arduino Due, they needed to modify the Arduino IDE so that it would be relatively easy to change the IDE to support alternate toolchains to allow Arduino C/C++ to be compiled for these new processors. They did this with the introduction of the Board Manager and the SAM Core. A "core" is the collection of software components required by the Board Manager and the Arduino IDE to compile an Arduino C/C++ source file for the target MCU's machine language. Some ESP8266 enthusiasts developed an Arduino core for the ESP8266 WiFi SoC, popularly called the "ESP8266 Core for the Arduino IDE".[16] This has become a leading software development platform for the various ESP8266-based modules and development boards, including NodeMCUs.

Pins[edit]

NodeMCU provides access to the GPIO (General Purpose Input/Output) and a pin mapping table is part of the API documentation.[17]

I/O index ESP8266 pin
0 [*] GPIO16
1 GPIO5
2 GPIO4
3 GPIO0
4 GPIO2
5 GPIO14
6 GPIO12
7 GPIO13
8 GPIO15
9 GPIO3
10 GPIO1
11 GPIO9
12 GPIO10

[*] D0 (GPIO16) can only be used for GPIO read/write. It does not support open-drain/interrupt/PWM/I²C or 1-Wire.

See also[edit]

References[edit]

  1. ^ Kumar, Abhijeet, and Apoorva Sharma. "Internet of Life (IOL)." (2015). ISBN 978-93-5156-328-0
  2. ^ Brian Benchoff. "An SDK for the ESP8266 Wi-Fi chip". Hackaday. Retrieved 2 April 2015.
  3. ^ Vowstar. "NodeMCU Devkit". Github. NodeMCU Team. Retrieved 2 April 2015.
  4. ^ Zeroday. "A lua based firmware for wifi-soc esp8266". Github. Retrieved 2 April 2015.
  5. ^ Hari Wiguna. "NodeMCU LUA Firmware". Hackaday. Retrieved 2 April 2015.
  6. ^ a b Systems, Espressif. "Espressif Systems". Espressif-WikiDevi. Retrieved 3 June 2017.
  7. ^ Brian Benchoff. "A DEV BOARD FOR THE ESP LUA INTERPRETER". Hackaday. Retrieved 2 April 2015.
  8. ^ Mpx. "Lua CJSON is a fast JSON encoding/parsing module for Lua". Github. Retrieved 2 April 2015.
  9. ^ Pellepl. "Wear-leveled SPI flash file system for embedded devices". GitHub. Retrieved 2 April 2015.
  10. ^ Espressif system (December 30, 2013). "IoT Wi-Fi 802.11b/g/n integrated SoC implementation of volume production". 中国上海讯. Retrieved 2 April 2015.
  11. ^ Hong. "First commit of NodeMCU Firmware". Github. Retrieved 2 April 2015.
  12. ^ Huang R. "Initial design of NodeMCU devkit". Github. Retrieved 2 April 2015.
  13. ^ Tuan PM. "MQTT client library for ESP8266". Github. Retrieved 2 April 2015.
  14. ^ Olikraus; Daniel Sittig. "Universal Graphics Library for 8 Bit Embedded Systems". Google code. Retrieved 2 April 2015.
  15. ^ Devsaurus. "U8glib for esp8266". Github. Retrieved 2 April 2015.
  16. ^ "ESP8266 core for Arduino". GitHub. Retrieved 10 January 2019.
  17. ^ "gpio - NodeMCU Documentation". nodemcu.readthedocs.io. Retrieved 2018-11-11.

External links[edit]