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) diff --git a/boards.txt b/boards.txt index 0930d760a..fbbcd6ca8 100644 --- a/boards.txt +++ b/boards.txt @@ -1,38 +1,40 @@ menu.UploadSpeed=Upload Speed +menu.CpuFrequency=CPU Frequency +############################################################## +generic.name=Generic ESP8266 Module + +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 + +generic.build.mcu=esp8266 +generic.build.f_cpu=80000000L +generic.build.board=ESP8266_ESP01 +generic.build.core=esp8266 +generic.build.variant=generic + +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 + +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 ############################################################## -esp01.name=Generic ESP8266 board - -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 - -esp01.build.mcu=esp8266 -esp01.build.f_cpu=80000000L -esp01.build.board=ESP8266_ESP01 -esp01.build.core=esp8266 -esp01.build.variant=esp01 - -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 - -############################################################## -wifio.name=WIFIO +wifio.name=Wifio wifio.upload.tool=esptool wifio.upload.speed=115200 @@ -46,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/cores/esp8266/abi.cpp b/cores/esp8266/abi.cpp index 7eadfad10..674667776 100644 --- a/cores/esp8266/abi.cpp +++ b/cores/esp8266/abi.cpp @@ -58,4 +58,6 @@ namespace std { } } +// TODO: rebuild windows toolchain to make this unnecessary: +void* __dso_handle; diff --git a/cores/esp8266/core_esp8266_main.cpp b/cores/esp8266/core_esp8266_main.cpp index 55d60fa60..f6c2f5822 100644 --- a/cores/esp8266/core_esp8266_main.cpp +++ b/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(); } diff --git a/libraries/SPI/HSPI.cpp b/libraries/SPI/HSPI.cpp index b3c2ee37c..f24e64233 100644 --- a/libraries/SPI/HSPI.cpp +++ b/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/libraries/SPI/SPI.cpp b/libraries/SPI/SPI.cpp index ca647b3e0..047569e03 100644 --- a/libraries/SPI/SPI.cpp +++ b/libraries/SPI/SPI.cpp @@ -11,7 +11,7 @@ */ #include "SPI.h" -#include "include\HSPI.h" +#include "include/HSPI.h" SPIClass SPI; diff --git a/platform.txt b/platform.txt index 065267dba..8cf256694 100644 --- a/platform.txt +++ b/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/variants/esp01/pins_arduino.h b/variants/generic/pins_arduino.h similarity index 100% rename from variants/esp01/pins_arduino.h rename to variants/generic/pins_arduino.h