ESP8266 NodeMCU Firmware
Custom firmware
Online custom-build, or Docker Build
- Could run from https://nodemcu-build.com/
- Docker build
- Install docker, git clone or download nodemcu firmware from github to your user directory for example c:\users\electrodragon\
git clone https://github.com/nodemcu/nodemcu-firmware.git
- run command to generate bin firmware file, in windows folder c:/user/hechao/nodemcu-firmware/ can not be changed, for example:
docker run --rm -it -v //c/Users/electrodragon/nodemcu-firmware:/opt/nodemcu-firmware marcelstoer/nodemcu-build
- run either integer or float only INTEGER or FLOAT
docker run -e "INTEGER_ONLY=1" --rm -it -v //c/Users/electrodragon/nodemcu-firmware:/opt/nodemcu-firmware marcelstoer/nodemcu-build docker run -e "FLOAT_ONLY=1" --rm -it -v //c/Users/hechao/nodemcu-firmware:/opt/nodemcu-firmware marcelstoer/nodemcu-build
Build Details
Enable/disable Modules - user_modules.h
Edit app/include/user_modules.h and comment-out the #define statement for modules you don't need. Example:
... #define LUA_USE_MODULES_MQTT // #define LUA_USE_MODULES_COAP // #define LUA_USE_MODULES_U8G ...
Enable smart config: in file /app/include/user_config.h
//#define WIFI_SMART_ENABLE
#define NODE_VERSION "NodeMCU 1.5.4.1 - custom build by electrodragon.com" #ifndef BUILD_DATE #define BUILD_DATE "2016-09-23"
Flashing details
- Need to flash nodemcu firmware and your code bin firmware now together into target device
- calculate your nodemcu firmware size for the code bin firmware address first, for example:
- use the nodemcu firmware, size on disk as below:
- so the bits size is: 408KB + 4KB =412 KB, 412 KB*1024 = 421888, change from dec to hex by using "calculator" you get 67000
- so for the two firmware, the upload address should be:
0x00000 for nodemcu firmware bin and 0x67000 for your code firmware bin
- Finally use esp download tool, combine bin function to combine the two bin files
Custom Lua to Bin file by Using SPIFFY
- The following methods has too many bugs, main file spiffs also obsoleted, better do not use
- Reference: spiffimg and spiffy use spiffs as core file
Setup
- Setup the Lubuntu environment and copy nodemcu firmware into "share" folder
- Find spiffy git here, download and copy all the file to nodemcu SDK > spiffy folder, so total directly should be look like:
/home/esp8266/Share/nodemcu-firmware-master/spiffy
- in spiffy folder, create build and run make, a few files will be generated into build folder
- create files folder, files to store lua file like init.lua print ("Hello")
- run spiffy to build the rom, before this, you may need delete file "spiff_rom.bin" first, this is the generated bin file
./build/spiffy
- Open file spiff_rom.bin by ultraedit can see the original codes
- If the file large than 16K should edit main.c to change this:
4*4*1024 = 16K, can change to 8*4*1024 = 32K