-
Notifications
You must be signed in to change notification settings - Fork 7
Installing firmware
Previous page: Components supply - Next page: Known Errors
The operating system of the computer which will upload the sensor software or "firmware" to the NodeMCU - also called to flash - will need a driver to communicate with it. The computer will interact with the USB2Serial chip on the NodeMCU. This will also depend on the version of the NodeMCU. Linux natively provides drivers already.
If the version of the NodeMCU is unknown, a description of either CP2102
or CH340G
can be found on the back. Alternatively one of the chips are marked,in which case you will most likely need a magnifying glass.
CP210x USB TO UART Bridge Drivers
CH340G Bridge Drivers
- Driver page of manufacturer (Chinese)
- Mac drivers, or for Sierrra see these successfully tested instructions
- Windows drivers
- Raspberry Pi drivers
Restart the computer after installing the drivers. Comment MacOS >10.9: Unsigned drivers have to be explicitly allowed. A good description can be found here.
Caution: Do not use USB cables longer then 1m for uploading the firmware to NodeMCU.
We will be describing two variants of installing the sensor software. VARIANT 1 includes compilation of the source code, whereas with VARIANT 2 you use the esptool of the Arduino IDE to upload binaries. VARIANT 2 is recommended as fast path or for beginners. For both variants you'll need the follow these instructions:
- Download and install Arduino IDE.
- Install platform packages for ESP8266 (v2.3.0) with Boards Manager following these instructions.
- Close Arduino IDE.
In order to upload the firmware you will need to supply information of the USB port the operating system is supposed to use. You can do this by connecting the NodeMCU to the port you want use later on and then start the Arduino IDE. At Tools → Port the available ports will be listed and the NodeMCU should be easy to find. To confirm this is actually the right port: Select the port and select Tools → Get Board Info. In the status bar, under VID
and PID
you should now see codes. Close the IDE now to free up the ports.
- MAC:
CP2102
on/dev/cu.SLAB_USBTOUART
andCH340G
on/dev/cu.wchusbserialXXXXXXXX
. - Windows:
COM3
. If its not that port, just try the next ones in the list of available ports. - Linux:
/dev/ttyUSB0
or similar
Here we show how to compile the firmware yourself and upload it to the NodeMCU.
- Start Arduino IDE (after previously installing platform packages and closing it).
- Install the following libraries. Compare Readme.md and note license:
- Adafruit FONA (1.3.3) (BSD)
- ArduinoJson (5.13.1) (MIT)
- Adafruit Unified Sensor (1.0.2) (Apache)
- Adafruit BMP085 library (1.0.0) (BSD)
- Adafruit BMP280 library (1.0.2) (BSD)
- Adafruit BME280 library (1.0.7) (BSD)
- DallasTemperature (3.8.0)
- DHT sensor library (1.1.1) (MIT)
- ESP8266 and ESP32 Oled driver for SSD1306 display (4.0.0) (MIT)
- OneWire (2.3.4)
- LiquidCrystal I2C (1.1.2)
- Adafruit HTU21DF Library (1.0.1)
- SoftwareSerial (1.0.0) (GNU Lesser Public License >=2.1)
- In the IDE at Tools → Board select
- NodeMCU 0.9 (ESP-12 Module) for NodeMCU v1
- NodeMCU 1.0 (ESP-12E Module) for NodeMCU v2 und v3
- Now connect NodeMCU via USB and select the port at Tools → Port.
- Copy the source code to your computer. Best and most convenient method is to clone the repository or download the repository as archive and unpack it. Alternatively all files from the source code directory can be manually copied as well. If you do choose the latter, the RAW button might help.
- Open the sketch (
INO
) file in Arduino IDE. - Change the
ext_def.h
to meet your requirements (WLAN configuration, sensors, ...) - Now flash the NodeMCU with Sketch → Upload or the upload button (right arrow).
In this variant we will use the command line tool esptool, which came with the Arduino IDE installation.
- Download the compiled firmware in English or another language
- Open a command prompt or terminal in your operating system.
- Paths below may differ due a different version number - also the location of the esptool might have changed with your installation:
- Windows:
"%USERPROFILE%\AppData\Local\Arduino15\packages\esp8266\tools\esptool\0.4.13\esptool.exe" -vv -cd nodemcu -cb 57600 -ca 0x00000 -cp COM11 -cf "_PATH-TO-DOWNLOADED-FIRMWARE-FILE_"
- Change the port after
-cp
to yours - Use quotation marks as documented
- Change the port after
- Linux/MacOS:
$PATH-TO-ESPTOOL -vv -cd nodemcu -cb 57600 -ca 0x00000 -cp $USBPORT -cf $BINARY
-
$PATH-TO-ESPTOOL
might look something like~/Library/Arduino15/packages/esp8266/tools/esptool/0.4.13/esptool
or~/.arduino15/packages/esp8266/tools/esptool/0.4.13/esptool
-
$USBPORT
might look like something like this/dev/cu.wchusbserial1410
or/dev/ttyUSB0
-
$BINARY
is the path to the binary, eg.latest_en.bin
orsensors-software/airrohr-firmware/airrohr-firmware.ino.nodemcu.bin
-
- Windows:
Description of parameters:
-vv show additional information while flashing (useful for troubleshooting)
-cd nodemcu which reset method should be used
-cb 57600 baud rate for flashing
-ca 0x00000 start address in flash memory
-cp <pfad> path to the port the NodeMCU is connected to
-cf <pfad> path to downloaded firmware file
For Linux, yet untested with MacOs, there's a script to delete the config here.
You can delete the config with Arduino IDE and the ESP8266fs Plugin. After installing and executing the plugin, you'll have to confirm that you want to upload an empty SPIFFS image. The upload process (3 MB) might take a while. Once finished, the NodeMCU can be restarted.
Download this image file and use the esptool similar to VARIANT 2, but with these modifications:
- change
-ca 0x00000
to-ca 0x100000
- change path to just downloaded file. See above mentioned script.
In Arduino IDE, activate Tools → Serial Montior to review debug information via USB. The output can be read at a baud rate of 9600. Errors such as WLAN login failures or unsuccessful upload of data can be monitored here.
- sensors.AFRICA Introduction
- Components supply
- Installing firmware
- Known Errors
- Component assembly(Circuit)
- Assembling parts
- Sensor configuration
- Entry in the database
- Links(Graphics, Sensor Info)
- APIs
- NodeMCU Pinouts v2, v3
- Datasheets, Specifications
- Connection of additional sensors and hardware
- Send Air Quality Data
- Studies
- Similar projects
- Humidity Correction
for more, see logs