From 3bde54d5844610633f34c636977b7b2b80131e50 Mon Sep 17 00:00:00 2001 From: Ivan Grokhotkov Date: Fri, 3 Apr 2015 02:18:13 +0300 Subject: [PATCH 1/5] Initial support for CPU frequency selection --- hardware/esp8266com/esp8266/boards.txt | 8 +++++++- .../esp8266/cores/esp8266/core_esp8266_main.cpp | 13 +++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/hardware/esp8266com/esp8266/boards.txt b/hardware/esp8266com/esp8266/boards.txt index 0930d760a..05b49a20c 100644 --- a/hardware/esp8266com/esp8266/boards.txt +++ b/hardware/esp8266com/esp8266/boards.txt @@ -1,5 +1,5 @@ menu.UploadSpeed=Upload Speed - +menu.CpuFrequency=CPU Frequency ############################################################## esp01.name=Generic ESP8266 board @@ -17,6 +17,12 @@ esp01.build.board=ESP8266_ESP01 esp01.build.core=esp8266 esp01.build.variant=esp01 +esp01.menu.CpuFrequency.80=80MHz +esp01.menu.CpuFrequency.80.build.f_cpu=80000000L + +esp01.menu.CpuFrequency.160=160MHz +esp01.menu.CpuFrequency.160.build.f_cpu=160000000L + esp01.upload.tool=esptool esp01.menu.UploadSpeed.115200=115200 esp01.menu.UploadSpeed.115200.upload.speed=115200 diff --git a/hardware/esp8266com/esp8266/cores/esp8266/core_esp8266_main.cpp b/hardware/esp8266com/esp8266/cores/esp8266/core_esp8266_main.cpp index 55d60fa60..f6c2f5822 100644 --- a/hardware/esp8266com/esp8266/cores/esp8266/core_esp8266_main.cpp +++ b/hardware/esp8266com/esp8266/cores/esp8266/core_esp8266_main.cpp @@ -37,12 +37,24 @@ extern "C" { int atexit(void (*func)()) { return 0; } +extern "C" void ets_update_cpu_frequency(int freqmhz); void initVariant() __attribute__((weak)); void initVariant() { } extern void loop(); extern void setup(); +void preloop_update_frequency() __attribute__((weak)); +void preloop_update_frequency() +{ +#if defined(F_CPU) && (F_CPU == 16000000L) + REG_SET_BIT(0x3ff00014, BIT(0)); + ets_update_cpu_frequency(160); +#endif +} + + + extern void (*__init_array_start)(void); extern void (*__init_array_end)(void); @@ -87,6 +99,7 @@ static void loop_wrapper() setup(); setup_done = true; } + preloop_update_frequency(); loop(); esp_schedule(); } From ca31c45cae3c30b6b4693b3d65757e6a8feb953b Mon Sep 17 00:00:00 2001 From: Ivan Grokhotkov Date: Fri, 3 Apr 2015 02:19:16 +0300 Subject: [PATCH 2/5] Temporary fix for __dso_handle issue #39 --- hardware/esp8266com/esp8266/cores/esp8266/abi.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hardware/esp8266com/esp8266/cores/esp8266/abi.cpp b/hardware/esp8266com/esp8266/cores/esp8266/abi.cpp index 7eadfad10..674667776 100644 --- a/hardware/esp8266com/esp8266/cores/esp8266/abi.cpp +++ b/hardware/esp8266com/esp8266/cores/esp8266/abi.cpp @@ -58,4 +58,6 @@ namespace std { } } +// TODO: rebuild windows toolchain to make this unnecessary: +void* __dso_handle; From f57802e4e0e4d793d21e71774e2d63a94a8f0f87 Mon Sep 17 00:00:00 2001 From: Ivan Grokhotkov Date: Fri, 3 Apr 2015 08:18:23 +0300 Subject: [PATCH 3/5] Fix slashes in SPI library --- hardware/esp8266com/esp8266/libraries/SPI/HSPI.cpp | 4 ++-- hardware/esp8266com/esp8266/libraries/SPI/SPI.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/hardware/esp8266com/esp8266/libraries/SPI/HSPI.cpp b/hardware/esp8266com/esp8266/libraries/SPI/HSPI.cpp index b3c2ee37c..f24e64233 100644 --- a/hardware/esp8266com/esp8266/libraries/SPI/HSPI.cpp +++ b/hardware/esp8266com/esp8266/libraries/SPI/HSPI.cpp @@ -1,5 +1,5 @@ -#include "include\HSPI.h" -#include "include\spi_register.h" +#include "include/HSPI.h" +#include "include/spi_register.h" #define __min(a,b) ((a > b) ? (b):(a)) diff --git a/hardware/esp8266com/esp8266/libraries/SPI/SPI.cpp b/hardware/esp8266com/esp8266/libraries/SPI/SPI.cpp index ca647b3e0..047569e03 100644 --- a/hardware/esp8266com/esp8266/libraries/SPI/SPI.cpp +++ b/hardware/esp8266com/esp8266/libraries/SPI/SPI.cpp @@ -11,7 +11,7 @@ */ #include "SPI.h" -#include "include\HSPI.h" +#include "include/HSPI.h" SPIClass SPI; From 2c7a0245b0c5b79d89423c4b890666e57f5d9339 Mon Sep 17 00:00:00 2001 From: Ivan Grokhotkov Date: Fri, 3 Apr 2015 08:25:17 +0300 Subject: [PATCH 4/5] Update readme Be more clear about PubSubClient Close #38 [ci skip] --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d2b320da0..7950cdb8b 100644 --- a/README.md +++ b/README.md @@ -123,7 +123,7 @@ See attached example and library README file for details. Libraries that don't rely on low-level access to AVR registers should work well. Here are a few libraries that were verified to work: -- [PubSubClient](https://github.com/knolleary/pubsubclient) MQTT library - [sample](https://gist.github.com/igrr/7f7e7973366fc01d6393) +- PubSubClient MQTT library. This library is not bundled with the IDE, you need to [download it separately](https://github.com/knolleary/pubsubclient). Use this [sample](https://gist.github.com/igrr/7f7e7973366fc01d6393) to get started. - [DHT11](https://github.com/adafruit/DHT-sensor-library) - initialize DHT as follows: ```DHT dht(DHTPIN, DHTTYPE, 15);``` - [DallasTemperature](https://github.com/milesburton/Arduino-Temperature-Control-Library.git) From e9a0b1392f329ac42cf87d57bbf9d77b53dab7c3 Mon Sep 17 00:00:00 2001 From: Ivan Grokhotkov Date: Fri, 3 Apr 2015 08:51:31 +0300 Subject: [PATCH 5/5] Naming changes as suggested in #30 Close #30 --- hardware/esp8266com/esp8266/boards.txt | 65 ++++++++++--------- hardware/esp8266com/esp8266/platform.txt | 6 +- .../{esp01 => generic}/pins_arduino.h | 0 3 files changed, 36 insertions(+), 35 deletions(-) rename hardware/esp8266com/esp8266/variants/{esp01 => generic}/pins_arduino.h (100%) diff --git a/hardware/esp8266com/esp8266/boards.txt b/hardware/esp8266com/esp8266/boards.txt index 05b49a20c..fbbcd6ca8 100644 --- a/hardware/esp8266com/esp8266/boards.txt +++ b/hardware/esp8266com/esp8266/boards.txt @@ -1,44 +1,40 @@ menu.UploadSpeed=Upload Speed menu.CpuFrequency=CPU Frequency ############################################################## -esp01.name=Generic ESP8266 board +generic.name=Generic ESP8266 Module -esp01.upload.tool=esptool -esp01.upload.speed=115200 -esp01.upload.resetmethod=ck -esp01.upload.maximum_size=524288 -esp01.upload.wait_for_upload_port=true -esp01.serial.disableDTR=true -esp01.serial.disableRTS=true +generic.upload.tool=esptool +generic.upload.speed=115200 +generic.upload.resetmethod=ck +generic.upload.maximum_size=524288 +generic.upload.wait_for_upload_port=true +generic.serial.disableDTR=true +generic.serial.disableRTS=true -esp01.build.mcu=esp8266 -esp01.build.f_cpu=80000000L -esp01.build.board=ESP8266_ESP01 -esp01.build.core=esp8266 -esp01.build.variant=esp01 +generic.build.mcu=esp8266 +generic.build.f_cpu=80000000L +generic.build.board=ESP8266_ESP01 +generic.build.core=esp8266 +generic.build.variant=generic -esp01.menu.CpuFrequency.80=80MHz -esp01.menu.CpuFrequency.80.build.f_cpu=80000000L +generic.menu.CpuFrequency.80=80 MHz +generic.menu.CpuFrequency.80.build.f_cpu=80000000L +generic.menu.CpuFrequency.160=160 MHz +generic.menu.CpuFrequency.160.build.f_cpu=160000000L -esp01.menu.CpuFrequency.160=160MHz -esp01.menu.CpuFrequency.160.build.f_cpu=160000000L - -esp01.upload.tool=esptool -esp01.menu.UploadSpeed.115200=115200 -esp01.menu.UploadSpeed.115200.upload.speed=115200 -esp01.menu.UploadSpeed.9600=9600 -esp01.menu.UploadSpeed.9600.upload.speed=9600 -esp01.menu.UploadSpeed.57600=57600 -esp01.menu.UploadSpeed.57600.upload.speed=57600 -esp01.menu.UploadSpeed.256000=256000 -esp01.menu.UploadSpeed.256000.upload.speed=256000 -esp01.menu.UploadSpeed.921600=921600 -esp01.menu.UploadSpeed.921600.upload.speed=921600 - -esp01.upload.tool=esptool +generic.menu.UploadSpeed.115200=115200 +generic.menu.UploadSpeed.115200.upload.speed=115200 +generic.menu.UploadSpeed.9600=9600 +generic.menu.UploadSpeed.9600.upload.speed=9600 +generic.menu.UploadSpeed.57600=57600 +generic.menu.UploadSpeed.57600.upload.speed=57600 +generic.menu.UploadSpeed.256000=256000 +generic.menu.UploadSpeed.256000.upload.speed=256000 +generic.menu.UploadSpeed.921600=921600 +generic.menu.UploadSpeed.921600.upload.speed=921600 ############################################################## -wifio.name=WIFIO +wifio.name=Wifio wifio.upload.tool=esptool wifio.upload.speed=115200 @@ -52,4 +48,9 @@ wifio.build.board=ESP8266_WIFIO wifio.build.core=esp8266 wifio.build.variant=wifio +wifio.menu.CpuFrequency.80=80MHz +wifio.menu.CpuFrequency.80.build.f_cpu=80000000L +wifio.menu.CpuFrequency.160=160MHz +wifio.menu.CpuFrequency.160.build.f_cpu=160000000L + wifio.upload.tool=esptool diff --git a/hardware/esp8266com/esp8266/platform.txt b/hardware/esp8266com/esp8266/platform.txt index 065267dba..8cf256694 100644 --- a/hardware/esp8266com/esp8266/platform.txt +++ b/hardware/esp8266com/esp8266/platform.txt @@ -1,12 +1,12 @@ -# Arduino ESP8266 platform +# ESP8266 platform # ------------------------------ # For more info: # https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5---3rd-party-Hardware-specification -name=Arduino ESP8266 -version=1.5.8 +name=ESP8266 Modules +version=1.6.1 compiler.tools.path={runtime.ide.path}/hardware/tools/esp8266/ compiler.path={compiler.tools.path}xtensa-lx106-elf/bin/ diff --git a/hardware/esp8266com/esp8266/variants/esp01/pins_arduino.h b/hardware/esp8266com/esp8266/variants/generic/pins_arduino.h similarity index 100% rename from hardware/esp8266com/esp8266/variants/esp01/pins_arduino.h rename to hardware/esp8266com/esp8266/variants/generic/pins_arduino.h