Tag Archives: iot

Uploading LUA code on ESP8266

After flashing the nodemcu firmware

Flashing the firmware

you can upload your own LUA script code on your device. To do this there are several tools

Uploading LUA code

In this article we’ll treat  ESPlorer

ESPlorer

It ‘a java application available for Windows, Linux and OSX. As a prerequisite requires the presence of Java SE ver. 7 or higher.

Download the tool from the link listed below to a folder

ESPlorer Download

To run it excecute from command prompt

or we can use a script in dos or unix (ESPlorer.bat or ESPlorer.sh).

At this point we plug the Nodemcu devkit to the PC and set the communication parameters and the speed of the COM port.

In Windows we have the following screen

ESPlorer

You can press Open, which allows access to the device.

ESPlorerConnesso

You can proceed at this point to the creation of your own code in LUA script and upload it on the ESP8266; you can use the various modules available in the  firmware according to the documentation

Nodemcu API

In the next article we’ll describe how to compile your personalized firmware in Linux

Nodemcu compilation

Flashing the firmware using Nodemcu Flasher

In the previous article we examined the different ways to flash the firmware

Flashing Nodemcu firmware

Now we describe how to proceed in Windows.

Looking at the Nodemcu firmware github

Nodemcu github

we find the followng application for Windows

 Nodemcu flasher

 We download the version compatible with our Windows operating system (32 or 64 bit)

First operation is to install the USB-Serial chip drivers of our Nodemcu Devkit, as specified in previous article. We have a devkit Nodemcu ver. 0.9, so we have to install the CH340G drivers

CH340G Drivers

After the drivers installation we can download the Nodemcu flasher in a folder and plug the  USB-Micro Usb cable between the pc and the devkit. Our COM port should be visible in the Windows device manager in the COM  devices list

PortaCom

In our case it is available on the COM port 5.

The steps to follow are the following:

  • Run Nodemcu Flasher and choose the COM5 port.

NodemcuProg

  • In Config select  INTERNAL://NODEMCU  with address 0x00000.

NodemcuProgConfig

  •  In Advanced we have the following parameters
    • Baudate: 9600 as specified in our devkit.
    • Flash size: 4MByte. Flash size of our devkit.
    • Flash Speed: 40MHz. The default speed.
    • SPI Mode: DIO is the default for 4Mb flash size.

NodemcuProgAdvanced

  • Proceed with the flash of the firmware pressing the FLASH button

NodemcuProgFlash

  • The application shows a progress bar of the operation

NodemcuProgProgress

At the end you can close the window and make sure everything is working properly using a LUA script uploader program, which we’ll see in the next article

Uploading LUA code

 

How to flash the Nodemcu firmware

In previous article we described the ESP8266 wifi module integrate into the Nodemcu development kit

ESP8266 WiFi Module

Here we look at how to load the firmware on the device.

First step is to assess the nodemcu development kit model we are working with. In our case we’ll perform the various operations with a development board Nodemcu V0.9. The USB-Serial chipset in this case is the CH340G

The drivers for this chipset can be downloaded directly from github of nodemcu

USB-Serial Drivers

To load the firmware, you can use the methods described in the Nodemcu site

Flashing Firmware

Basically there are two main methods:

  • Flash through the Windows Nodemcu Flasher tool

Nodemcu Flasher

  • Flash via a utility in Python to use in Linux, OSX or Windows

esptool

The Nodemcu flasher tool allows you to load a default firmware on the card  intuitively and quickly.

As can be seen from the above documentation of the  devkit you do not need to take any action on the pin GPI0 ESP to put the devive in flash mode; the flash operation and execution start automatically.

In the next article we’ll flash the firmware using the Nodemcu Flasher tool

Flashing the firmware with Nodemcu Flasher

Nodemcu Firmware

As discussed in previous article

ESP8266 WiFi Module

we’ll work on the ESP8266 SOC using the Nodemcu firmware

Firmware Nodemcu

Nodemcu is, to date at rev.  1.5.4.1, based on LUA 5.1.4. It is based upon Expressif SDK NONOS

Expressif SDK NONOS

It uses the spiffs filesystem

spiffs filesystem

We can get the firmware, as specified at the link

Nodemcu building

with different methods

  • Using a cloud service, specifying the additional modules if required

Nodemcu Custom Build

  • Using a Docker system

Docker Nodemcu Build

  •  Using cross compilation under a Linux system

We’ll descrive how to install the cross compilation envinronment under our Debian machine described in previous post.

The easiest way to get a default firmware is to use the Nodemcu Flasher tool.

In the next article we’ll treat how to load the firmware using various tools, among which the Nodemcu Flasher tool

How to flash the Nodemcu firmware

ESP8266 Wifi Module

In this article we describe briefly the ESP8266 wifi chip from Espressif

ESP8266

This lower power SOC  contains a 32 bit RISC MCU and a wifi module. At the Espressif web site we can find the detailed informations about the ESP8266

ESP8266 Resources

The device datasheet is available in the following pdf document

ESP8266 Datasheet

The ESP8266 modules are available individually or in a development platform; the last system simplifies its usage as the development kit contains all the hardware to use rapidly the soc device; we are already ready to load the firmware and use the device.

On internet various web sites describe home automation or iot projects using this soc.

A reference site for the ESP8266 is

ESP8266 Forum

In the forum we can find the various systems utilized to develop applications for the ESP8266. The most relevant tools are

  • Arduino Ide

Arduino IDE

ESP8266 Arduino github

  • Espressif SDK

SDK Forum

ESP8266 SDK

  • PlatformIO

PlatformIO

  • Nodemcu

Nodemcu at esp8266.com forum

Nodemcu

Nodemcu github

We can buy the ESP8266 module from various internet online websites, for example ebay, as a single module

ESP8266 on ebay

or as a development kit

ESP8266 Development Kit

Different ESP8266  AI-Thinker modules are available

AI-Thinker

We’ll use the Nodemcu development kit. This kit contains the AI-Thinker ESP-12/ESP-12E modules. In the ebay search we have as results  ESP8266 ESP-01 modules too and development kits from other vendors.

On the Nodemcu github we can find the development kits we’ll use afterward. There are two versions

  • Nodemcu V1 (ESP-12E) development kit

Nodemcu devkit V1.0

  • Nodemcu  V0.9 (ESP-12) development kit

Nodemcu devkit V0.9

At the following link we can find the description of the different AI-Thinker modules and as obtain informations about the flash inside the device

ESP8266 Modules

From the Nodemcu github

Nodemcu Devkit

the pins available in the devkit 1.0  are the following

In next articles we’ll describe how to obtain the Nodemcu firmware, how to load it on the device, how to compile it and we’ll show some example using the LUA scripting language utilized by the Nodemcu firmware

Lua

with the LUA software modules available for the ESP8266

Nodemcu documentation

In the next article we’ll describe the Nodemcu firmware

Nodemcu Firmware