From 45107226bf36c94d675556e33d7e687c5d9eb231 Mon Sep 17 00:00:00 2001 From: Hieromon Ikasamo Date: Wed, 22 May 2019 14:37:57 +0900 Subject: [PATCH] Support ESP8266 core 2.5.1 --- src/AutoConnectDefs.h | 7 +++---- src/AutoConnectUploadImpl.h | 11 ++++++++++- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/AutoConnectDefs.h b/src/AutoConnectDefs.h index dc35053..c59993b 100644 --- a/src/AutoConnectDefs.h +++ b/src/AutoConnectDefs.h @@ -135,6 +135,9 @@ // SD pin assignment for AutoConnectFile #ifndef AUTOCONNECT_SD_CS #if defined(ARDUINO_ARCH_ESP8266) +#ifndef SD_CHIP_SELECT_PIN +#define SD_CHIP_SELECT_PIN SS +#endif #define AUTOCONNECT_SD_CS SD_CHIP_SELECT_PIN #elif defined(ARDUINO_ARCH_ESP32) #define AUTOCONNECT_SD_CS SS @@ -143,11 +146,7 @@ // SPI transfer speed for SD #ifndef AUTOCONNECT_SD_SPEED -#if defined(ARDUINO_ARCH_ESP8266) -#define AUTOCONNECT_SD_SPEED SPI_HALF_SPEED -#elif defined(ARDUINO_ARCH_ESP32) #define AUTOCONNECT_SD_SPEED 4000000 -#endif #endif // !AUTOCONNECT_SD_SPEED // ArduinoJson buffer size diff --git a/src/AutoConnectUploadImpl.h b/src/AutoConnectUploadImpl.h index baf935e..dc70fcd 100644 --- a/src/AutoConnectUploadImpl.h +++ b/src/AutoConnectUploadImpl.h @@ -102,6 +102,15 @@ class AutoConnectUploadFS : public AutoConnectUploadHandler { SPIFileT _file; }; +// Fix to be compatibility with backward for ESP8266 core 2.5.1 or later +#ifdef ARDUINO_ARCH_ESP8266 +#if defined(SD_SCK_HZ) +#define AC_SD_SPEED(s) SD_SCK_HZ(s) +#else +#define AC_SD_SPPED(s) s +#endif +#endif + // Default handler for uploading to the standard SD class embedded in the core. class AutoConnectUploadSD : public AutoConnectUploadHandler { public: @@ -111,7 +120,7 @@ class AutoConnectUploadSD : public AutoConnectUploadHandler { protected: bool _open(const char* filename, const char* mode) override { #if defined(ARDUINO_ARCH_ESP8266) - if (_media->begin(_cs, _speed)) { + if (_media->begin(_cs, AC_SD_SPEED(_speed))) { uint8_t oflag = *mode == 'w' ? FILE_WRITE : FILE_READ; #elif defined(ARDUINO_ARCH_ESP32) if (_media->begin(_cs, SPI, _speed)) {