|The new NodeMCU V1.0 Dev Kit module|
Image Source: https://github.com/nodemcu/nodemcu-devkit-v1.0
The first “instalment” of the NodeMCU Dev Kit I reviewed had the version number 0.9. It was the first of its kind, since it came with an integrated USB-to-Serial converter and was fitting into a standard bread board. But both key features that would justify the higher price were tainted: at least on Mac OS X the USB-To-Serial converter did not really work well together with the standard tools, especially for firmware flashing.
While it was OK to flash it first with an external converter and then only use it to transfer files to the LUA firmware it was still a disappointment to me. The second problems was the size: it would cover all pins on both sides of the gap on a standard breadboard. This made it hard to connect it to other components. You could still use female connectors and leave the breadboard out in the first place but still, it was a design issue.
It seems that the NodeMCU team learned a lot from the first version and also listened to the community feedback. The second instalment has the version number 1.0 and this truly reflects the maturity of the board. The size of the module has shrunk considerably, making it fit wonderfully in a breadboard: with a length of 48.5mm and a width of 25.6mm it fits also better in casings than the old version (47.1×30.6mm).
ESP8266 ESP-12E Module Riding Piggy-Back
The V0.9 version used the ESP-12 module which is a pretty common choice. For the new version the group around NodeMCU used the newer ESP-12E which comes 4MB of flash memory. This gives you a lot of space to store code and data. The interface to write to the memory also changed, which gave me some initial troubles until the “standard” tools were updated (read more here). Besides the upgrade in flash memory there seem to be more pins available. But I’m not sure to if and how these additional pins can be used. It looks to me as if the same amount of GPIO pins are available (see section below).
com_silabs_driver_CP210xVCPDriver(.)::setPowerState - Waking up com_silabs_driver_CP210xVCPDriver(.)::GetCP210xInfo - Part Number Found: 0x02 com_silabs_driver_CP210xVCPDriver(.)::GetCP210xInfo - UsbConfigurationDescriptor - com_silabs_driver_CP210xVCPDriver(.)::GetCP210xInfo .bLength = 9 com_silabs_driver_CP210xVCPDriver(.)::GetCP210xInfo .bDescriptorType = 0x02 com_silabs_driver_CP210xVCPDriver(.)::GetCP210xInfo .wTotalLength = 32 com_silabs_driver_CP210xVCPDriver(.)::GetCP210xInfo .bNumInterfaces = 1 com_silabs_driver_CP210xVCPDriver(.)::GetCP210xInfo .bConfigurationValue = 1 com_silabs_driver_CP210xVCPDriver(.)::GetCP210xInfo .iConfiguration = 0 com_silabs_driver_CP210xVCPDriver(.)::GetCP210xInfo .bmAttributes = 0x80 com_silabs_driver_CP210xVCPDriver(.)::GetCP210xInfo .MaxPower = 50 com_silabs_driver_CP210xVCPDriver(.)::start - Sucessfully loaded the driver
A nice feature that I didn’t know/have before is that I don’t have to press the buttons or change jumpers anymore before flashing new firmware to the module. Together with the Arduino IDE this happens automagically. This saves you a lot of handwork when writing your code.
The Module Pin-Out
|The NodeMCU V1.0 pin out map. |
|3D printed case for NodeMCU, running my code (on the right side)|
|Multi display output, driven by a NodeMCU V1.0|
A ridiculous amount of coffee was consumed in the process of building this project. Add some fuel if you'd like to keep me going!