From 921a4761390343857bfb0fdee083cf8454fd3403 Mon Sep 17 00:00:00 2001 From: Andy Smith Date: Sat, 23 May 2015 17:06:47 +0100 Subject: [PATCH 1/7] Added support for NodeMCU dev kit v2 --- hardware/esp8266com/esp8266/boards.txt | 48 ++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/hardware/esp8266com/esp8266/boards.txt b/hardware/esp8266com/esp8266/boards.txt index 0177228e0..d3fdcc251 100644 --- a/hardware/esp8266com/esp8266/boards.txt +++ b/hardware/esp8266com/esp8266/boards.txt @@ -215,6 +215,54 @@ nodemcu.menu.UploadSpeed.512000.upload.speed=512000 nodemcu.menu.UploadSpeed.921600=921600 nodemcu.menu.UploadSpeed.921600.upload.speed=921600 +############################################################## +nodemcuv2.name=NodeMCU Dev Kit 2.0 (ESP8266 ESP-12E Module) + +nodemcuv2.upload.tool=esptool +nodemcuv2.upload.speed=115200 +nodemcuv2.upload.resetmethod=ck +nodemcuv2.upload.maximum_size=4194304 +nodemcuv2.upload.wait_for_upload_port=true +nodemcuv2.serial.disableDTR=true +nodemcuv2.serial.disableRTS=true + +nodemcuv2.build.mcu=esp8266 +nodemcuv2.build.f_cpu=80000000L +nodemcuv2.build.board=ESP8266_ESP12 +nodemcuv2.build.core=esp8266 +nodemcuv2.build.variant=nodemcu +nodemcuv2.build.flash_mode=dio +nodemcuv2.build.flash_size=4M +nodemcuv2.build.flash_freq=40 + +nodemcuv2.menu.CpuFrequency.80=80 MHz +nodemcuv2.menu.CpuFrequency.80.build.f_cpu=80000000L +nodemcuv2.menu.CpuFrequency.160=160 MHz +nodemcuv2.menu.CpuFrequency.160.build.f_cpu=160000000L + +nodemcuv2.menu.UploadSpeed.115200=115200 +nodemcuv2.menu.UploadSpeed.115200.upload.speed=115200 +nodemcuv2.menu.UploadSpeed.9600=9600 +nodemcuv2.menu.UploadSpeed.9600.upload.speed=9600 +nodemcuv2.menu.UploadSpeed.57600=57600 +nodemcuv2.menu.UploadSpeed.57600.upload.speed=57600 +nodemcuv2.menu.UploadSpeed.256000.windows=256000 +nodemcuv2.menu.UploadSpeed.256000.upload.speed=256000 +nodemcuv2.menu.UploadSpeed.230400.linux=230400 +nodemcuv2.menu.UploadSpeed.230400.macosx=230400 +nodemcuv2.menu.UploadSpeed.230400.macosx=230400 +nodemcuv2.menu.UploadSpeed.230400.upload.speed=230400 +nodemcuv2.menu.UploadSpeed.460800.linux=460800 +nodemcuv2.menu.UploadSpeed.460800.macosx=460800 +nodemcuv2.menu.UploadSpeed.460800.upload.speed=460800 +nodemcuv2.menu.UploadSpeed.512000.windows=512000 +nodemcuv2.menu.UploadSpeed.512000.upload.speed=512000 +nodemcuv2.menu.UploadSpeed.921600=921600 +nodemcuv2.menu.UploadSpeed.921600.upload.speed=921600 + +nodemcuv2.menu.FlashSize.4M=4M +nodemcuv2.menu.FlashSize.4M.build.flash_size=4M + ############################################################## # wifio.name=Wifio # From 2bb9f596f42d2049bdaa708876b37c41504a3657 Mon Sep 17 00:00:00 2001 From: Testato Date: Sun, 24 May 2015 19:02:16 +0200 Subject: [PATCH 2/7] Update build_board_manager_package.sh added all boards present in the core, so it is visible on Board Manager also before install the core. --- build/build_board_manager_package.sh | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/build/build_board_manager_package.sh b/build/build_board_manager_package.sh index dbccd9999..0868e887d 100755 --- a/build/build_board_manager_package.sh +++ b/build/build_board_manager_package.sh @@ -52,8 +52,15 @@ cat << EOF > package_esp8266com_index.json "help":{ "online":"http://esp8266.com" }, - "boards":[ { + "boards":[ + { "name":"Generic ESP8266 Module" + }, + { + "name":"Olimex MOD-WIFI-ESP8266(-DEV)" + }, + { + "name":"NodeMCU (ESP8266 ESP-12 Module)" } ], "toolsDependencies":[ { From fdaf126d31448759314b893c56375ab0c4b2300a Mon Sep 17 00:00:00 2001 From: Ivan Grokhotkov Date: Sun, 24 May 2015 22:07:33 +0300 Subject: [PATCH 3/7] Fix max upload size for modwifi and nodemcu (#314) --- hardware/esp8266com/esp8266/boards.txt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/hardware/esp8266com/esp8266/boards.txt b/hardware/esp8266com/esp8266/boards.txt index 3aba3feec..3588d09e2 100644 --- a/hardware/esp8266com/esp8266/boards.txt +++ b/hardware/esp8266com/esp8266/boards.txt @@ -134,7 +134,8 @@ modwifi.name=Olimex MOD-WIFI-ESP8266(-DEV) modwifi.upload.tool=esptool modwifi.upload.speed=115200 modwifi.upload.resetmethod=ck -modwifi.upload.maximum_size=2097152 +modwifi.upload.maximum_size=983040 +modwifi.upload.maximum_data_size=81920 modwifi.upload.wait_for_upload_port=true modwifi.serial.disableDTR=true modwifi.serial.disableRTS=true @@ -185,7 +186,8 @@ nodemcu.name=NodeMCU (ESP8266 ESP-12 Module) nodemcu.upload.tool=esptool nodemcu.upload.speed=115200 nodemcu.upload.resetmethod=ck -nodemcu.upload.maximum_size=4194304 +nodemcu.upload.maximum_size=983040 +nodemcu.upload.maximum_data_size=81920 nodemcu.upload.wait_for_upload_port=true nodemcu.serial.disableDTR=true nodemcu.serial.disableRTS=true From a38585c01473ed8b1b9bf0cd202390fcf5cc107b Mon Sep 17 00:00:00 2001 From: Ivan Grokhotkov Date: Sun, 24 May 2015 22:20:02 +0300 Subject: [PATCH 4/7] Proper naming of NodeMCU boards, flash map update #292 --- hardware/esp8266com/esp8266/boards.txt | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/hardware/esp8266com/esp8266/boards.txt b/hardware/esp8266com/esp8266/boards.txt index 6b09be677..fdf37d570 100644 --- a/hardware/esp8266com/esp8266/boards.txt +++ b/hardware/esp8266com/esp8266/boards.txt @@ -181,7 +181,7 @@ modwifi.menu.UploadSpeed.921600=921600 modwifi.menu.UploadSpeed.921600.upload.speed=921600 ############################################################## -nodemcu.name=NodeMCU (ESP8266 ESP-12 Module) +nodemcu.name=NodeMCU 0.9 (ESP-12 Module) nodemcu.upload.tool=esptool nodemcu.upload.speed=115200 @@ -232,12 +232,13 @@ nodemcu.menu.UploadSpeed.921600=921600 nodemcu.menu.UploadSpeed.921600.upload.speed=921600 ############################################################## -nodemcuv2.name=NodeMCU Dev Kit 2.0 (ESP8266 ESP-12E Module) +nodemcuv2.name=NodeMCU 1.0 (ESP-12E Module) nodemcuv2.upload.tool=esptool nodemcuv2.upload.speed=115200 nodemcuv2.upload.resetmethod=ck -nodemcuv2.upload.maximum_size=4194304 +nodemcuv2.upload.maximum_size=983040 +nodemcuv2.upload.maximum_data_size=81920 nodemcuv2.upload.wait_for_upload_port=true nodemcuv2.serial.disableDTR=true nodemcuv2.serial.disableRTS=true @@ -250,6 +251,11 @@ nodemcuv2.build.variant=nodemcu nodemcuv2.build.flash_mode=dio nodemcuv2.build.flash_size=4M nodemcuv2.build.flash_freq=40 +nodemcuv2.build.flash_ld=eagle.flash.4m.ld +nodemcuv2.build.spiffs_start=0x100000 +nodemcuv2.build.spiffs_end=0x3FB000 +nodemcuv2.build.spiffs_pagesize=256 +nodemcuv2.build.spiffs_blocksize=8192 nodemcuv2.menu.CpuFrequency.80=80 MHz nodemcuv2.menu.CpuFrequency.80.build.f_cpu=80000000L @@ -275,9 +281,6 @@ nodemcuv2.menu.UploadSpeed.512000.windows=512000 nodemcuv2.menu.UploadSpeed.512000.upload.speed=512000 nodemcuv2.menu.UploadSpeed.921600=921600 nodemcuv2.menu.UploadSpeed.921600.upload.speed=921600 - -nodemcuv2.menu.FlashSize.4M=4M -nodemcuv2.menu.FlashSize.4M.build.flash_size=4M ############################################################## # wifio.name=Wifio From 00604f35dec937ed53541900a66792d31ab181a4 Mon Sep 17 00:00:00 2001 From: Ivan Grokhotkov Date: Sun, 24 May 2015 23:15:05 +0300 Subject: [PATCH 5/7] Add API to set the beginning of local ports range for WiFiClient --- .../esp8266/libraries/ESP8266WiFi/src/WiFiClient.cpp | 6 ++++++ .../esp8266/libraries/ESP8266WiFi/src/WiFiClient.h | 2 ++ 2 files changed, 8 insertions(+) diff --git a/hardware/esp8266com/esp8266/libraries/ESP8266WiFi/src/WiFiClient.cpp b/hardware/esp8266com/esp8266/libraries/ESP8266WiFi/src/WiFiClient.cpp index 534c7fa89..056d5bb65 100644 --- a/hardware/esp8266com/esp8266/libraries/ESP8266WiFi/src/WiFiClient.cpp +++ b/hardware/esp8266com/esp8266/libraries/ESP8266WiFi/src/WiFiClient.cpp @@ -40,6 +40,8 @@ extern "C" #include "include/ClientContext.h" #include "c_types.h" +uint16_t WiFiClient::_localPort = 0; + ICACHE_FLASH_ATTR WiFiClient::WiFiClient() : _client(0) { @@ -93,6 +95,10 @@ int ICACHE_FLASH_ATTR WiFiClient::connect(IPAddress ip, uint16_t port) if (!pcb) return 0; + if (_localPort > 0) { + pcb->local_port = _localPort++; + } + ip_addr_t addr; addr.addr = ip; tcp_arg(pcb, this); diff --git a/hardware/esp8266com/esp8266/libraries/ESP8266WiFi/src/WiFiClient.h b/hardware/esp8266com/esp8266/libraries/ESP8266WiFi/src/WiFiClient.h index f4063cbba..a15cb1b68 100644 --- a/hardware/esp8266com/esp8266/libraries/ESP8266WiFi/src/WiFiClient.h +++ b/hardware/esp8266com/esp8266/libraries/ESP8266WiFi/src/WiFiClient.h @@ -61,6 +61,7 @@ public: uint16_t remotePort(); bool getNoDelay(); void setNoDelay(bool nodelay); + static void setLocalPortStart(uint16_t port) { _localPort = port; } template size_t write(T &src){ uint8_t obuf[1460]; @@ -97,6 +98,7 @@ private: void _err(int8_t err); ClientContext* _client; + static uint16_t _localPort; }; From 92147999b997e7e167ab0365cc98d1f2e99824c7 Mon Sep 17 00:00:00 2001 From: Ivan Grokhotkov Date: Mon, 25 May 2015 00:32:45 +0300 Subject: [PATCH 6/7] Update linker script for SDK 1.1.0 Exception vectors have moved into .text. --- .../tools/sdk/ld/eagle.app.v6.common.ld | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/hardware/esp8266com/esp8266/tools/sdk/ld/eagle.app.v6.common.ld b/hardware/esp8266com/esp8266/tools/sdk/ld/eagle.app.v6.common.ld index 986b441ff..a411c3391 100644 --- a/hardware/esp8266com/esp8266/tools/sdk/ld/eagle.app.v6.common.ld +++ b/hardware/esp8266com/esp8266/tools/sdk/ld/eagle.app.v6.common.ld @@ -13,6 +13,11 @@ PHDRS /* Default entry point: */ ENTRY(call_user_start) +EXTERN(_DebugExceptionVector) +EXTERN(_DoubleExceptionVector) +EXTERN(_KernelExceptionVector) +EXTERN(_NMIExceptionVector) +EXTERN(_UserExceptionVector) PROVIDE(_memmap_vecbase_reset = 0x40000000); /* Various memory-map dependent cache attribute settings: */ _memmap_cacheattr_wb_base = 0x00000110; @@ -158,6 +163,30 @@ SECTIONS { _stext = .; _text_start = ABSOLUTE(.); + *(.UserEnter.text) + . = ALIGN(16); + *(.DebugExceptionVector.text) + . = ALIGN(16); + *(.NMIExceptionVector.text) + . = ALIGN(16); + *(.KernelExceptionVector.text) + LONG(0) + LONG(0) + LONG(0) + LONG(0) + . = ALIGN(16); + *(.UserExceptionVector.text) + LONG(0) + LONG(0) + LONG(0) + LONG(0) + . = ALIGN(16); + *(.DoubleExceptionVector.text) + LONG(0) + LONG(0) + LONG(0) + LONG(0) + . = ALIGN (16); *(.entry.text) *(.init.literal) *(.init) From 49c25b9c1b38458b2e9508e4540519caaf052e04 Mon Sep 17 00:00:00 2001 From: Ivan Grokhotkov Date: Mon, 25 May 2015 00:42:41 +0300 Subject: [PATCH 7/7] Add NodeMCU 1.0 board to package json --- build/build_board_manager_package.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/build/build_board_manager_package.sh b/build/build_board_manager_package.sh index 0868e887d..d4d598bd0 100755 --- a/build/build_board_manager_package.sh +++ b/build/build_board_manager_package.sh @@ -60,8 +60,12 @@ cat << EOF > package_esp8266com_index.json "name":"Olimex MOD-WIFI-ESP8266(-DEV)" }, { - "name":"NodeMCU (ESP8266 ESP-12 Module)" + "name":"NodeMCU 0.9 (ESP-12 Module)" + }, + { + "name":"NodeMCU 1.0 (ESP-12E Module)" } + ], "toolsDependencies":[ { "packager":"esp8266",