mirror of
https://git.mirrors.martin98.com/https://github.com/luc-github/ESP3D.git
synced 2025-08-01 22:10:40 +08:00
Add code base for better support for FYSETC WIFI SD PRO - WIP
This commit is contained in:
parent
4c5c21653c
commit
dc84b0bbdb
@ -45,10 +45,15 @@
|
|||||||
#define DEFAULT_SCREEN_FLAG 1
|
#define DEFAULT_SCREEN_FLAG 1
|
||||||
#define DEFAULT_SERIAL_BRIDGE_FLAG 1
|
#define DEFAULT_SERIAL_BRIDGE_FLAG 1
|
||||||
|
|
||||||
//position in EEPROM / preferences will use `P_` + <position> to make a string : P_0 for 0
|
// position in EEPROM / preferences will use `P_` + <position> to make a string
|
||||||
|
// : P_0 for 0
|
||||||
#define ESP_RADIO_MODE 0 // 1 byte = flag
|
#define ESP_RADIO_MODE 0 // 1 byte = flag
|
||||||
#define ESP_STA_SSID 1 //33 bytes 32+1 = string ; warning does not support multibyte char like chinese
|
#define ESP_STA_SSID \
|
||||||
#define ESP_STA_PASSWORD 34 //65 bytes 64 +1 = string ;warning does not support multibyte char like chinese
|
1 // 33 bytes 32+1 = string ; warning does not support multibyte char like
|
||||||
|
// chinese
|
||||||
|
#define ESP_STA_PASSWORD \
|
||||||
|
34 // 65 bytes 64 +1 = string ;warning does not support multibyte char like
|
||||||
|
// chinese
|
||||||
#define ESP_STA_IP_MODE 99 // 1 byte = flag
|
#define ESP_STA_IP_MODE 99 // 1 byte = flag
|
||||||
#define ESP_STA_IP_VALUE 100 // 4 bytes xxx.xxx.xxx.xxx
|
#define ESP_STA_IP_VALUE 100 // 4 bytes xxx.xxx.xxx.xxx
|
||||||
#define ESP_STA_MASK_VALUE 104 // 4 bytes xxx.xxx.xxx.xxx
|
#define ESP_STA_MASK_VALUE 104 // 4 bytes xxx.xxx.xxx.xxx
|
||||||
@ -62,13 +67,23 @@
|
|||||||
#define ESP_HTTP_PORT 121 // 4 bytes = int
|
#define ESP_HTTP_PORT 121 // 4 bytes = int
|
||||||
#define ESP_TELNET_PORT 125 // 4 bytes = int
|
#define ESP_TELNET_PORT 125 // 4 bytes = int
|
||||||
#define ESP_SERIAL_FLAG 129 // 1 bytes = flag
|
#define ESP_SERIAL_FLAG 129 // 1 bytes = flag
|
||||||
#define ESP_HOSTNAME 130 //33 bytes 32+1 = string ; warning does not support multibyte char like chinese
|
#define ESP_HOSTNAME \
|
||||||
|
130 // 33 bytes 32+1 = string ; warning does not support multibyte char like
|
||||||
|
// chinese
|
||||||
#define ESP_SENSOR_INTERVAL 164 // 4 bytes = int
|
#define ESP_SENSOR_INTERVAL 164 // 4 bytes = int
|
||||||
#define ESP_SETTINGS_VERSION 168 // 8 bytes = 7+1 = string ESP3D + 2 digits
|
#define ESP_SETTINGS_VERSION 168 // 8 bytes = 7+1 = string ESP3D + 2 digits
|
||||||
#define ESP_ADMIN_PWD 176 //21 bytes 20+1 = string ; warning does not support multibyte char like chinese
|
#define ESP_ADMIN_PWD \
|
||||||
#define ESP_USER_PWD 197 //21 bytes 20+1 = string ; warning does not support multibyte char like chinese
|
176 // 21 bytes 20+1 = string ; warning does not support multibyte char
|
||||||
#define ESP_AP_SSID 218 //33 bytes 32+1 = string ; warning does not support multibyte char like chinese
|
// like chinese
|
||||||
#define ESP_AP_PASSWORD 251 //65 bytes 64 +1 = string ;warning does not support multibyte char like chinese
|
#define ESP_USER_PWD \
|
||||||
|
197 // 21 bytes 20+1 = string ; warning does not support multibyte char
|
||||||
|
// like chinese
|
||||||
|
#define ESP_AP_SSID \
|
||||||
|
218 // 33 bytes 32+1 = string ; warning does not support multibyte char like
|
||||||
|
// chinese
|
||||||
|
#define ESP_AP_PASSWORD \
|
||||||
|
251 // 65 bytes 64 +1 = string ;warning does not support multibyte char like
|
||||||
|
// chinese
|
||||||
#define ESP_AP_IP_VALUE 316 // 4 bytes xxx.xxx.xxx.xxx
|
#define ESP_AP_IP_VALUE 316 // 4 bytes xxx.xxx.xxx.xxx
|
||||||
#define ESP_BOOT_DELAY 320 // 4 bytes = int
|
#define ESP_BOOT_DELAY 320 // 4 bytes = int
|
||||||
#define ESP_WEBSOCKET_PORT 324 // 4 bytes= int
|
#define ESP_WEBSOCKET_PORT 324 // 4 bytes= int
|
||||||
@ -76,21 +91,33 @@
|
|||||||
#define ESP_TELNET_ON 329 // 1 byte = flag
|
#define ESP_TELNET_ON 329 // 1 byte = flag
|
||||||
#define ESP_WEBSOCKET_ON 330 // 1 byte = flag
|
#define ESP_WEBSOCKET_ON 330 // 1 byte = flag
|
||||||
#define ESP_SD_SPEED_DIV 331 // 1 byte = flag
|
#define ESP_SD_SPEED_DIV 331 // 1 byte = flag
|
||||||
#define ESP_NOTIFICATION_TOKEN1 332 //64 bytes 63+1 = string ; warning does not support multibyte char like chinese
|
#define ESP_NOTIFICATION_TOKEN1 \
|
||||||
#define ESP_NOTIFICATION_TOKEN2 396 //64 bytes 63+1 = string ; warning does not support multibyte char like chinese
|
332 // 64 bytes 63+1 = string ; warning does not support multibyte char like
|
||||||
|
// chinese
|
||||||
|
#define ESP_NOTIFICATION_TOKEN2 \
|
||||||
|
396 // 64 bytes 63+1 = string ; warning does not support multibyte char like
|
||||||
|
// chinese
|
||||||
#define ESP_SENSOR_TYPE 460 // 1 bytes = flag
|
#define ESP_SENSOR_TYPE 460 // 1 bytes = flag
|
||||||
#define ESP_TARGET_FW 461 // 1 bytes = flag
|
#define ESP_TARGET_FW 461 // 1 bytes = flag
|
||||||
#define ESP_TIMEZONE 462 // 1 bytes = flag
|
#define ESP_TIMEZONE 462 // 1 bytes = flag
|
||||||
#define ESP_TIME_IS_DST 463 // 1 bytes = flag
|
#define ESP_TIME_IS_DST 463 // 1 bytes = flag
|
||||||
#define ESP_TIME_SERVER1 464 //129 bytes 128+1 = string ; warning does not support multibyte char like chinese
|
#define ESP_TIME_SERVER1 \
|
||||||
#define ESP_TIME_SERVER2 593 //129 bytes 128+1 = string ; warning does not support multibyte char like chinese
|
464 // 129 bytes 128+1 = string ; warning does not support multibyte char
|
||||||
#define ESP_TIME_SERVER3 722 //129 bytes 128+1 = string ; warning does not support multibyte char like chinese
|
// like chinese
|
||||||
|
#define ESP_TIME_SERVER2 \
|
||||||
|
593 // 129 bytes 128+1 = string ; warning does not support multibyte char
|
||||||
|
// like chinese
|
||||||
|
#define ESP_TIME_SERVER3 \
|
||||||
|
722 // 129 bytes 128+1 = string ; warning does not support multibyte char
|
||||||
|
// like chinese
|
||||||
#define ESP_REMOTE_SCREEN_FLAG 851 // 1 bytes = flag
|
#define ESP_REMOTE_SCREEN_FLAG 851 // 1 bytes = flag
|
||||||
#define ESP_SD_MOUNT 852 // 1 bytes = flag
|
#define ESP_SD_MOUNT 852 // 1 bytes = flag
|
||||||
#define ESP_SESSION_TIMEOUT 853 // 1 bytes = flag
|
#define ESP_SESSION_TIMEOUT 853 // 1 bytes = flag
|
||||||
#define ESP_WEBSOCKET_FLAG 854 // 1 bytes = flag
|
#define ESP_WEBSOCKET_FLAG 854 // 1 bytes = flag
|
||||||
#define ESP_SD_CHECK_UPDATE_AT_BOOT 855 // 1 bytes = flag
|
#define ESP_SD_CHECK_UPDATE_AT_BOOT 855 // 1 bytes = flag
|
||||||
#define ESP_NOTIFICATION_SETTINGS 856 //129 bytes 128+1 = string ; warning does not support multibyte char like chinese
|
#define ESP_NOTIFICATION_SETTINGS \
|
||||||
|
856 // 129 bytes 128+1 = string ; warning does not support multibyte char
|
||||||
|
// like chinese
|
||||||
#define ESP_CALIBRATION_1 985 // 4 bytes = int
|
#define ESP_CALIBRATION_1 985 // 4 bytes = int
|
||||||
#define ESP_CALIBRATION_2 989 // 4 bytes = int
|
#define ESP_CALIBRATION_2 989 // 4 bytes = int
|
||||||
#define ESP_CALIBRATION_3 993 // 4 bytes = int
|
#define ESP_CALIBRATION_3 993 // 4 bytes = int
|
||||||
@ -126,7 +153,6 @@
|
|||||||
#define DEBUG_OUTPUT_TELNET 4
|
#define DEBUG_OUTPUT_TELNET 4
|
||||||
#define DEBUG_OUTPUT_WEBSOCKET 5
|
#define DEBUG_OUTPUT_WEBSOCKET 5
|
||||||
|
|
||||||
|
|
||||||
// Serial
|
// Serial
|
||||||
#define USE_SERIAL_0 1
|
#define USE_SERIAL_0 1
|
||||||
#define USE_SERIAL_1 2
|
#define USE_SERIAL_1 2
|
||||||
@ -136,7 +162,6 @@
|
|||||||
#define MAIN_SERIAL 1
|
#define MAIN_SERIAL 1
|
||||||
#define BRIDGE_SERIAL 2
|
#define BRIDGE_SERIAL 2
|
||||||
|
|
||||||
|
|
||||||
// Communication protocols
|
// Communication protocols
|
||||||
#define RAW_SERIAL 0
|
#define RAW_SERIAL 0
|
||||||
#define MKS_SERIAL 1
|
#define MKS_SERIAL 1
|
||||||
@ -161,6 +186,10 @@
|
|||||||
#define ESP_DIRECT_SD 1
|
#define ESP_DIRECT_SD 1
|
||||||
#define ESP_SHARED_SD 2
|
#define ESP_SHARED_SD 2
|
||||||
|
|
||||||
|
// SD Device type
|
||||||
|
#define ESP_NORMAL_SDCARD 0
|
||||||
|
#define ESP_FYSETC_WIFI_PRO_SDCARD 1
|
||||||
|
|
||||||
// Upload type
|
// Upload type
|
||||||
#define ESP_UPLOAD_DIRECT_SD 1
|
#define ESP_UPLOAD_DIRECT_SD 1
|
||||||
#define ESP_UPLOAD_SHARED_SD 2
|
#define ESP_UPLOAD_SHARED_SD 2
|
||||||
|
@ -439,9 +439,36 @@
|
|||||||
#define ESP_SD_DETECT_VALUE LOW
|
#define ESP_SD_DETECT_VALUE LOW
|
||||||
#endif // ESP_SD_DETECT_VALUE
|
#endif // ESP_SD_DETECT_VALUE
|
||||||
#if SD_DEVICE_CONNECTION == ESP_SHARED_SD
|
#if SD_DEVICE_CONNECTION == ESP_SHARED_SD
|
||||||
|
|
||||||
|
#if SD_CARD_TYPE == ESP_FYSETC_WIFI_PRO_SDCARD
|
||||||
|
// #define all pins
|
||||||
|
// 1 - Undef all pins to be clear
|
||||||
|
#undef ESP_SD_CS_PIN
|
||||||
|
#undef ESP_SD_MISO_PIN
|
||||||
|
#undef ESP_SD_MOSI_PIN
|
||||||
|
#undef ESP_SD_SCK_PIN
|
||||||
|
#undef ESP_SD_DETECT_PIN
|
||||||
|
#undef ESP_FLAG_SHARED_SD_PIN
|
||||||
|
#undef ESP_FLAG_SHARED_SD_VALUE
|
||||||
|
// 2 - Define all pins / values for FYSETC_WIFI_PRO_SDCARD
|
||||||
|
#define ESP_SD_CS_PIN 13 // D3
|
||||||
|
#define ESP_SD_MISO_PIN 2 // D0
|
||||||
|
#define ESP_SD_MOSI_PIN 15 // CMD
|
||||||
|
#define ESP_SD_SCK_PIN 14 // CLK
|
||||||
|
#define ESP_SD_DETECT_PIN -1
|
||||||
|
#define ESP_FLAG_SHARED_SD_PIN 26
|
||||||
|
#define ESP_FLAG_SHARED_SD_VALUE LOW
|
||||||
|
#define ESP_SD_CS_SENSE 32
|
||||||
|
#define ESP_SD_POWER_PIN 27
|
||||||
|
#define ESP_POWER_SD_VALUE LOW
|
||||||
|
#define ESP_SD_D1_PIN 4
|
||||||
|
#define ESP_SD_D2_PIN 12
|
||||||
|
#else
|
||||||
#ifndef ESP_FLAG_SHARED_SD_PIN
|
#ifndef ESP_FLAG_SHARED_SD_PIN
|
||||||
#define ESP_FLAG_SHARED_SD_PIN -1
|
#define ESP_FLAG_SHARED_SD_PIN -1
|
||||||
#endif // ESP_PIN_SHARED_SD
|
#endif // ESP_PIN_SHARED_SD
|
||||||
|
#endif // SD_CARD_TYPE==ESP_FYSETC_WIFI_PRO_SDCARD
|
||||||
|
|
||||||
#ifndef ESP_FLAG_SHARED_SD_VALUE
|
#ifndef ESP_FLAG_SHARED_SD_VALUE
|
||||||
#define ESP_FLAG_SHARED_SD_VALUE 0
|
#define ESP_FLAG_SHARED_SD_VALUE 0
|
||||||
#endif // ESP_FLAG_SHARED_SD_VALUE
|
#endif // ESP_FLAG_SHARED_SD_VALUE
|
||||||
|
@ -20,13 +20,12 @@
|
|||||||
|
|
||||||
#ifndef _SANITY_ESP3D_H
|
#ifndef _SANITY_ESP3D_H
|
||||||
#define _SANITY_ESP3D_H
|
#define _SANITY_ESP3D_H
|
||||||
|
|
||||||
#include "esp3d_config.h"
|
|
||||||
#if not defined(ESP_NO_SANITY_CHECK)
|
#if not defined(ESP_NO_SANITY_CHECK)
|
||||||
/**************************
|
/**************************
|
||||||
* Settings
|
* Settings
|
||||||
* ***********************/
|
* ***********************/
|
||||||
#if (ESP_SAVE_SETTINGS == SETTINGS_IN_PREFERENCES) && defined( ARDUINO_ARCH_ESP8266)
|
#if (ESP_SAVE_SETTINGS == SETTINGS_IN_PREFERENCES) && \
|
||||||
|
defined(ARDUINO_ARCH_ESP8266)
|
||||||
#error Preferences library is not available for ESP8266
|
#error Preferences library is not available for ESP8266
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -55,16 +54,16 @@
|
|||||||
#error ESP_SERIAL_OUTPUT must be defined
|
#error ESP_SERIAL_OUTPUT must be defined
|
||||||
#endif //! defined(ESP_SERIAL_OUTPUT) && COMMUNICATION_PROTOCOL!=SOCKET_SERIAL
|
#endif //! defined(ESP_SERIAL_OUTPUT) && COMMUNICATION_PROTOCOL!=SOCKET_SERIAL
|
||||||
|
|
||||||
#if COMMUNICATION_PROTOCOL!=SOCKET_SERIAL && defined(ESP_SERIAL_BRIDGE_OUTPUT) && ESP_SERIAL_OUTPUT==ESP_SERIAL_BRIDGE_OUTPUT
|
#if COMMUNICATION_PROTOCOL != SOCKET_SERIAL && \
|
||||||
|
defined(ESP_SERIAL_BRIDGE_OUTPUT) && \
|
||||||
|
ESP_SERIAL_OUTPUT == ESP_SERIAL_BRIDGE_OUTPUT
|
||||||
#error ESP_SERIAL_OUTPUT cannot be same as ESP_SERIAL_BRIDGE_OUTPUT
|
#error ESP_SERIAL_OUTPUT cannot be same as ESP_SERIAL_BRIDGE_OUTPUT
|
||||||
#endif //! defined(ESP_SERIAL_OUTPUT) && COMMUNICATION_PROTOCOL!=SOCKET_SERIAL
|
#endif //! defined(ESP_SERIAL_OUTPUT) && COMMUNICATION_PROTOCOL!=SOCKET_SERIAL
|
||||||
|
|
||||||
|
|
||||||
#if (ESP_SERIAL_OUTPUT == USE_SERIAL2) && defined(ARDUINO_ARCH_ESP8266)
|
#if (ESP_SERIAL_OUTPUT == USE_SERIAL2) && defined(ARDUINO_ARCH_ESP8266)
|
||||||
#error Serial 2 is not available in ESP8266
|
#error Serial 2 is not available in ESP8266
|
||||||
#endif // ESP_SERIAL_OUTPUT == USE_SERIAL_2 ) && ARDUINO_ARCH_ESP8266
|
#endif // ESP_SERIAL_OUTPUT == USE_SERIAL_2 ) && ARDUINO_ARCH_ESP8266
|
||||||
|
|
||||||
|
|
||||||
/**************************
|
/**************************
|
||||||
* Bluetooth
|
* Bluetooth
|
||||||
* ***********************/
|
* ***********************/
|
||||||
@ -72,7 +71,6 @@
|
|||||||
#error Bluetooth is not available in ESP8266
|
#error Bluetooth is not available in ESP8266
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/**************************
|
/**************************
|
||||||
* Ethernet
|
* Ethernet
|
||||||
* ***********************/
|
* ***********************/
|
||||||
@ -84,7 +82,6 @@
|
|||||||
* Time
|
* Time
|
||||||
* ***********************/
|
* ***********************/
|
||||||
|
|
||||||
|
|
||||||
/**************************
|
/**************************
|
||||||
* Filesystem
|
* Filesystem
|
||||||
* ***********************/
|
* ***********************/
|
||||||
@ -111,12 +108,21 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined (SD_DEVICE_CONNECTION) && defined(PIN_RESET_FEATURE) && ESP3D_RESET_PIN!=-1
|
#if defined(SD_DEVICE_CONNECTION) && defined(PIN_RESET_FEATURE) && \
|
||||||
#if SD_DEVICE_CONNECTION == ESP_SHARED_SD && ESP_FLAG_SHARED_SD_PIN == ESP3D_RESET_PIN
|
ESP3D_RESET_PIN != -1
|
||||||
|
#if SD_DEVICE_CONNECTION == ESP_SHARED_SD && \
|
||||||
|
ESP_FLAG_SHARED_SD_PIN == ESP3D_RESET_PIN
|
||||||
#error ESP_FLAG_SHARED_SD_PIN and ESP3D_RESET_PIN are same, it is not allowed.
|
#error ESP_FLAG_SHARED_SD_PIN and ESP3D_RESET_PIN are same, it is not allowed.
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if SD_CARD_TYPE == ESP_FYSETC_WIFI_PRO_SDCARD && \
|
||||||
|
(SD_DEVICE != ESP_SD_NATIVE || SD_DEVICE_CONNECTION != ESP_SHARED_SD)
|
||||||
|
#error ESP_FYSETC_WIFI_PRO_SDCARD only works with ESP_SD_NATIVE and ESP_SHARED_SD
|
||||||
|
#define ESP_NO_SANITY_CHECK 1
|
||||||
|
#endif // SD_CARD_TYPE == ESP_FYSETC_WIFI_PRO_SDCARD && SD_DEVICE !=
|
||||||
|
// ESP_SD_NATIVE && SD_DEVICE_CONNECTION!=ESP_SHARED_SD
|
||||||
|
|
||||||
/**************************
|
/**************************
|
||||||
* FTP
|
* FTP
|
||||||
* ***********************/
|
* ***********************/
|
||||||
|
@ -61,24 +61,24 @@ File tSDFile_handle[ESP_MAX_SD_OPENHANDLE];
|
|||||||
|
|
||||||
#if SD_DEVICE_CONNECTION == ESP_SHARED_SD
|
#if SD_DEVICE_CONNECTION == ESP_SHARED_SD
|
||||||
bool ESP_SD::_enabled = false;
|
bool ESP_SD::_enabled = false;
|
||||||
|
#if SD_CARD_TYPE == ESP_FYSETC_WIFI_PRO_SDCARD
|
||||||
|
#include <SPI.h>
|
||||||
|
#endif // SD_CARD_TYPE == ESP_FYSETC_WIFI_PRO_SDCARD
|
||||||
bool ESP_SD::enableSharedSD() {
|
bool ESP_SD::enableSharedSD() {
|
||||||
log_esp3d("Enable Shared SD if possible");
|
log_esp3d("Enable Shared SD if possible");
|
||||||
if (_enabled) {
|
if (_enabled) {
|
||||||
log_esp3d("Already enabled, skip");
|
log_esp3d("Already enabled, skip");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
_enabled = true;
|
#if defined(ESP_SD_CS_SENSE) && ESP_SD_CS_SENSE != -1
|
||||||
#if defined(ESP3D_CS_SD_SENSE)
|
bool active_cs = !digitalRead(ESP_SD_CS_SENSE);
|
||||||
log_esp3d("Setup SD sense pin %d", ESP3D_CS_SD_SENSE);
|
if (active_cs) {
|
||||||
pinMode(ESP3D_CS_SD_SENSE, INPUT_PULLUP);
|
log_esp3d("SD CS is active, skip");
|
||||||
#endif // defined(ESP3D_CS_SD_SENSE)
|
return false;
|
||||||
#if defined(ESP3D_POWER_SD_PIN) && ESP3D_POWER_SD_PIN != -1
|
}
|
||||||
log_esp3d("Setup SD power pin %d", ESP3D_POWER_SD_PIN);
|
#endif // ESP_SD_CS_SENSE
|
||||||
pinMode(ESP3D_POWER_SD_PIN, OUTPUT);
|
|
||||||
// digitalWrite(ESP3D_POWER_SD_PIN, ESP3D_POWER_SD_VALUE);
|
|
||||||
#endif // defined(ESP3D_POWER_SD_PIN)
|
|
||||||
|
|
||||||
|
_enabled = true;
|
||||||
#if defined(ESP_FLAG_SHARED_SD_PIN) && ESP_FLAG_SHARED_SD_PIN != -1
|
#if defined(ESP_FLAG_SHARED_SD_PIN) && ESP_FLAG_SHARED_SD_PIN != -1
|
||||||
// need to check if SD is in use ?
|
// need to check if SD is in use ?
|
||||||
// Method : TBD
|
// Method : TBD
|
||||||
@ -89,6 +89,13 @@ bool ESP_SD::enableSharedSD() {
|
|||||||
digitalWrite(ESP_FLAG_SHARED_SD_PIN, ESP_FLAG_SHARED_SD_VALUE);
|
digitalWrite(ESP_FLAG_SHARED_SD_PIN, ESP_FLAG_SHARED_SD_VALUE);
|
||||||
Hal::wait(100);
|
Hal::wait(100);
|
||||||
#endif // ESP_FLAG_SHARED_SD_PIN
|
#endif // ESP_FLAG_SHARED_SD_PIN
|
||||||
|
|
||||||
|
#if SD_CARD_TYPE == ESP_FYSETC_WIFI_PRO_SDCARD
|
||||||
|
log_esp3d("Custom spi : CS: %d, Miso: %d, Mosi: %d, SCK: %d", ESP_SD_CS_PIN,
|
||||||
|
ESP_SD_MISO_PIN, ESP_SD_MOSI_PIN, ESP_SD_SCK_PIN);
|
||||||
|
SPI.begin(ESP_SD_SCK_PIN, ESP_SD_MISO_PIN, ESP_SD_MOSI_PIN, ESP_SD_CS_PIN);
|
||||||
|
#endif // SD_CARD_TYPE == ESP_FYSETC_WIFI_PRO_SDCARD
|
||||||
|
|
||||||
#if defined(ESP3DLIB_ENV)
|
#if defined(ESP3DLIB_ENV)
|
||||||
// check if card is not currently in use
|
// check if card is not currently in use
|
||||||
if (card.isMounted() && (IS_SD_PRINTING() || IS_SD_FETCHING() ||
|
if (card.isMounted() && (IS_SD_PRINTING() || IS_SD_FETCHING() ||
|
||||||
@ -101,6 +108,22 @@ bool ESP_SD::enableSharedSD() {
|
|||||||
|
|
||||||
return _enabled;
|
return _enabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool ESP_SD::disableSharedSD() {
|
||||||
|
#if SD_CARD_TYPE == ESP_FYSETC_WIFI_PRO_SDCARD
|
||||||
|
pinMode(ESP_SD_CS_PIN, INPUT_PULLUP);
|
||||||
|
pinMode(ESP_SD_MISO_PIN, INPUT_PULLUP);
|
||||||
|
pinMode(ESP_SD_MOSI_PIN, INPUT_PULLUP);
|
||||||
|
pinMode(ESP_SD_SCK_PIN, INPUT_PULLUP);
|
||||||
|
pinMode(ESP_SD_D1_PIN, INPUT_PULLUP);
|
||||||
|
pinMode(ESP_SD_D2_PIN, INPUT_PULLUP);
|
||||||
|
SPI.end();
|
||||||
|
#endif // SD_CARD_TYPE == ESP_FYSETC_WIFI_PRO_SDCARD
|
||||||
|
// do the switch
|
||||||
|
digitalWrite(ESP_FLAG_SHARED_SD_PIN, !ESP_FLAG_SHARED_SD_VALUE);
|
||||||
|
Hal::wait(100);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
#endif // SD_DEVICE_CONNECTION == ESP_SHARED_SD
|
#endif // SD_DEVICE_CONNECTION == ESP_SHARED_SD
|
||||||
|
|
||||||
bool ESP_SD::_started = false;
|
bool ESP_SD::_started = false;
|
||||||
@ -144,9 +167,9 @@ void ESP_SD::releaseFS(uint8_t FS) {
|
|||||||
#if SD_DEVICE_CONNECTION == ESP_SHARED_SD
|
#if SD_DEVICE_CONNECTION == ESP_SHARED_SD
|
||||||
_enabled = false;
|
_enabled = false;
|
||||||
#if defined(ESP_FLAG_SHARED_SD_PIN) && ESP_FLAG_SHARED_SD_PIN != -1
|
#if defined(ESP_FLAG_SHARED_SD_PIN) && ESP_FLAG_SHARED_SD_PIN != -1
|
||||||
log_esp3d("SD shared disabled PIN %d with %d", ESP_FLAG_SHARED_SD_PIN,
|
if (ESP_SD::disableSharedSD()) {
|
||||||
!ESP_FLAG_SHARED_SD_VALUE);
|
log_esp3d("Shared SD disabled");
|
||||||
digitalWrite(ESP_FLAG_SHARED_SD_PIN, !ESP_FLAG_SHARED_SD_VALUE);
|
}
|
||||||
#endif // ESP_FLAG_SHARED_SD_PIN
|
#endif // ESP_FLAG_SHARED_SD_PIN
|
||||||
#if defined(ESP3DLIB_ENV)
|
#if defined(ESP3DLIB_ENV)
|
||||||
log_esp3d("Mount SD in Marlin");
|
log_esp3d("Mount SD in Marlin");
|
||||||
|
@ -20,19 +20,22 @@
|
|||||||
|
|
||||||
#ifndef _ESP_SD_H
|
#ifndef _ESP_SD_H
|
||||||
#define _ESP_SD_H
|
#define _ESP_SD_H
|
||||||
#include "../../include/esp3d_config.h"
|
|
||||||
#include "../../core/esp3doutput.h"
|
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
|
||||||
|
#include "../../core/esp3doutput.h"
|
||||||
|
#include "../../include/esp3d_config.h"
|
||||||
|
|
||||||
|
|
||||||
#define ESP_SD_FS_HEADER "/SD"
|
#define ESP_SD_FS_HEADER "/SD"
|
||||||
|
|
||||||
#define ESP_MAX_SD_OPENHANDLE 4
|
#define ESP_MAX_SD_OPENHANDLE 4
|
||||||
|
|
||||||
class ESP_SDFile
|
class ESP_SDFile {
|
||||||
{
|
|
||||||
public:
|
public:
|
||||||
ESP_SDFile(void * handle = nullptr, bool isdir =false, bool iswritemode = false, const char * path = nullptr);
|
ESP_SDFile(void* handle = nullptr, bool isdir = false,
|
||||||
ESP_SDFile(const char * name, const char * filename, bool isdir = true, size_t size =0);
|
bool iswritemode = false, const char* path = nullptr);
|
||||||
|
ESP_SDFile(const char* name, const char* filename, bool isdir = true,
|
||||||
|
size_t size = 0);
|
||||||
~ESP_SDFile();
|
~ESP_SDFile();
|
||||||
operator bool() const;
|
operator bool() const;
|
||||||
bool isDirectory();
|
bool isDirectory();
|
||||||
@ -52,6 +55,7 @@ public:
|
|||||||
size_t read(uint8_t* buf, size_t size);
|
size_t read(uint8_t* buf, size_t size);
|
||||||
void flush();
|
void flush();
|
||||||
ESP_SDFile openNextFile();
|
ESP_SDFile openNextFile();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
String _dirlist;
|
String _dirlist;
|
||||||
bool _isdir;
|
bool _isdir;
|
||||||
@ -63,8 +67,7 @@ private:
|
|||||||
time_t _lastwrite;
|
time_t _lastwrite;
|
||||||
};
|
};
|
||||||
|
|
||||||
class ESP_SD
|
class ESP_SD {
|
||||||
{
|
|
||||||
public:
|
public:
|
||||||
static String& formatBytes(uint64_t bytes);
|
static String& formatBytes(uint64_t bytes);
|
||||||
static bool begin();
|
static bool begin();
|
||||||
@ -89,17 +92,12 @@ public:
|
|||||||
static bool rmdir(const char* path);
|
static bool rmdir(const char* path);
|
||||||
static bool rename(const char* oldpath, const char* newpath);
|
static bool rename(const char* oldpath, const char* newpath);
|
||||||
static void closeAll();
|
static void closeAll();
|
||||||
static uint8_t getSPISpeedDivider()
|
static uint8_t getSPISpeedDivider() { return _spi_speed_divider; }
|
||||||
{
|
|
||||||
return _spi_speed_divider;
|
|
||||||
}
|
|
||||||
static bool setSPISpeedDivider(uint8_t speeddivider);
|
static bool setSPISpeedDivider(uint8_t speeddivider);
|
||||||
#if SD_DEVICE_CONNECTION == ESP_SHARED_SD
|
#if SD_DEVICE_CONNECTION == ESP_SHARED_SD
|
||||||
static bool enableSharedSD();
|
static bool enableSharedSD();
|
||||||
static bool isEnabled()
|
static bool disableSharedSD();
|
||||||
{
|
static bool isEnabled() { return _enabled; }
|
||||||
return _enabled;
|
|
||||||
}
|
|
||||||
#endif // SD_DEVICE_CONNECTION == ESP_SHARED_SD
|
#endif // SD_DEVICE_CONNECTION == ESP_SHARED_SD
|
||||||
private:
|
private:
|
||||||
static bool _started;
|
static bool _started;
|
||||||
@ -111,5 +109,4 @@ private:
|
|||||||
static bool _sizechanged;
|
static bool _sizechanged;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
#endif //_ESP_SD_H
|
#endif //_ESP_SD_H
|
||||||
|
@ -27,7 +27,6 @@ sd_native_esp32.cpp - ESP3D sd support class
|
|||||||
#include "FS.h"
|
#include "FS.h"
|
||||||
#include "SD.h"
|
#include "SD.h"
|
||||||
|
|
||||||
|
|
||||||
// TBC: base frequency
|
// TBC: base frequency
|
||||||
// or use (1000000 * ESP.getCpuFreqMHz())
|
// or use (1000000 * ESP.getCpuFreqMHz())
|
||||||
#define ESP_SPI_FREQ 4000000
|
#define ESP_SPI_FREQ 4000000
|
||||||
@ -73,12 +72,6 @@ uint8_t ESP_SD::getState(bool refresh) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool ESP_SD::begin() {
|
bool ESP_SD::begin() {
|
||||||
#if (ESP_SD_CS_PIN != -1) || (ESP_SD_MISO_PIN != -1) || \
|
|
||||||
(ESP_SD_MOSI_PIN != -1) || (ESP_SD_SCK_PIN != -1)
|
|
||||||
log_esp3d("Custom spi : CS: %d, Miso: %d, Mosi: %d, SCK: %d", ESP_SD_CS_PIN,
|
|
||||||
ESP_SD_MISO_PIN, ESP_SD_MOSI_PIN, ESP_SD_SCK_PIN);
|
|
||||||
SPI.begin(ESP_SD_SCK_PIN, ESP_SD_MISO_PIN, ESP_SD_MOSI_PIN, ESP_SD_CS_PIN);
|
|
||||||
#endif
|
|
||||||
_started = true;
|
_started = true;
|
||||||
_state = ESP_SDCARD_NOT_PRESENT;
|
_state = ESP_SDCARD_NOT_PRESENT;
|
||||||
_spi_speed_divider = Settings_ESP3D::read_byte(ESP_SD_SPEED_DIV);
|
_spi_speed_divider = Settings_ESP3D::read_byte(ESP_SD_SPEED_DIV);
|
||||||
@ -95,7 +88,28 @@ bool ESP_SD::begin() {
|
|||||||
pinMode(ESP_FLAG_SHARED_SD_PIN, OUTPUT);
|
pinMode(ESP_FLAG_SHARED_SD_PIN, OUTPUT);
|
||||||
digitalWrite(ESP_FLAG_SHARED_SD_PIN, !ESP_FLAG_SHARED_SD_VALUE);
|
digitalWrite(ESP_FLAG_SHARED_SD_PIN, !ESP_FLAG_SHARED_SD_VALUE);
|
||||||
#endif // ESP_FLAG_SHARED_SD_PIN
|
#endif // ESP_FLAG_SHARED_SD_PIN
|
||||||
|
#if SD_CARD_TYPE == ESP_FYSETC_WIFI_PRO_SDCARD
|
||||||
|
#if defined(ESP_SD_CS_SENSE)
|
||||||
|
log_esp3d("Setup SD sense pin %d", ESP_SD_CS_SENSE);
|
||||||
|
pinMode(ESP_SD_CS_SENSE, INPUT_PULLUP);
|
||||||
|
#endif // defined(ESP_SD_CS_SENSE)
|
||||||
|
#if defined(ESP_SD_POWER_PIN) && ESP_SD_POWER_PIN != -1
|
||||||
|
log_esp3d("Setup SD power pin %d", ESP_SD_POWER_PIN);
|
||||||
|
pinMode(ESP_SD_POWER_PIN, OUTPUT);
|
||||||
|
digitalWrite(ESP_SD_POWER_PIN, ESP_POWER_SD_VALUE);
|
||||||
|
#endif // defined(ESP3D_POWER_SD_PIN)
|
||||||
|
#endif // SD_CARD_TYPE == ESP_FYSETC_WIFI_PRO_SDCARD
|
||||||
#endif // SD_DEVICE_CONNECTION == ESP_SHARED_SD
|
#endif // SD_DEVICE_CONNECTION == ESP_SHARED_SD
|
||||||
|
#if (ESP_SD_CS_PIN != -1) || (ESP_SD_MISO_PIN != -1) || \
|
||||||
|
(ESP_SD_MOSI_PIN != -1) || (ESP_SD_SCK_PIN != -1)
|
||||||
|
log_esp3d("Custom spi : CS: %d, Miso: %d, Mosi: %d, SCK: %d", ESP_SD_CS_PIN,
|
||||||
|
ESP_SD_MISO_PIN, ESP_SD_MOSI_PIN, ESP_SD_SCK_PIN);
|
||||||
|
SPI.begin(ESP_SD_SCK_PIN, ESP_SD_MISO_PIN, ESP_SD_MOSI_PIN, ESP_SD_CS_PIN);
|
||||||
|
#endif
|
||||||
|
#if SD_CARD_TYPE == ESP_FYSETC_WIFI_PRO_SDCARD && \
|
||||||
|
SD_DEVICE_CONNECTION == ESP_SHARED_SD
|
||||||
|
SPI.end();
|
||||||
|
#endif // SD_CARD_TYPE == ESP_FYSETC_WIFI_PRO_SDCARD
|
||||||
return _started;
|
return _started;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -20,6 +20,7 @@ sd_sdfat2_esp32.cpp - ESP3D sd support class
|
|||||||
#include "../../../include/esp3d_config.h"
|
#include "../../../include/esp3d_config.h"
|
||||||
#if defined(ARDUINO_ARCH_ESP32) && defined(SD_DEVICE)
|
#if defined(ARDUINO_ARCH_ESP32) && defined(SD_DEVICE)
|
||||||
#if (SD_DEVICE == ESP_SDFAT2)
|
#if (SD_DEVICE == ESP_SDFAT2)
|
||||||
|
|
||||||
#include <SdFat.h>
|
#include <SdFat.h>
|
||||||
#include <sdios.h>
|
#include <sdios.h>
|
||||||
|
|
||||||
@ -151,10 +152,7 @@ uint8_t ESP_SD::getState(bool refresh) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool ESP_SD::begin() {
|
bool ESP_SD::begin() {
|
||||||
#if (ESP_SD_CS_PIN != -1) || (ESP_SD_MISO_PIN != -1) || \
|
pinMode(ESP_SD_CS_PIN, OUTPUT);
|
||||||
(ESP_SD_MOSI_PIN != -1) || (ESP_SD_SCK_PIN != -1)
|
|
||||||
SPI.begin(ESP_SD_SCK_PIN, ESP_SD_MISO_PIN, ESP_SD_MOSI_PIN, ESP_SD_CS_PIN);
|
|
||||||
#endif
|
|
||||||
_started = true;
|
_started = true;
|
||||||
_state = ESP_SDCARD_NOT_PRESENT;
|
_state = ESP_SDCARD_NOT_PRESENT;
|
||||||
_spi_speed_divider = Settings_ESP3D::read_byte(ESP_SD_SPEED_DIV);
|
_spi_speed_divider = Settings_ESP3D::read_byte(ESP_SD_SPEED_DIV);
|
||||||
@ -176,6 +174,11 @@ bool ESP_SD::begin() {
|
|||||||
digitalWrite(ESP_FLAG_SHARED_SD_PIN, !ESP_FLAG_SHARED_SD_VALUE);
|
digitalWrite(ESP_FLAG_SHARED_SD_PIN, !ESP_FLAG_SHARED_SD_VALUE);
|
||||||
#endif // ESP_FLAG_SHARED_SD_PIN
|
#endif // ESP_FLAG_SHARED_SD_PIN
|
||||||
#endif // SD_DEVICE_CONNECTION == ESP_SHARED_SD
|
#endif // SD_DEVICE_CONNECTION == ESP_SHARED_SD
|
||||||
|
#if (ESP_SD_CS_PIN != -1) || (ESP_SD_MISO_PIN != -1) || \
|
||||||
|
(ESP_SD_MOSI_PIN != -1) || (ESP_SD_SCK_PIN != -1)
|
||||||
|
SPI.begin(ESP_SD_SCK_PIN, ESP_SD_MISO_PIN, ESP_SD_MOSI_PIN, ESP_SD_CS_PIN);
|
||||||
|
#endif // SPI
|
||||||
|
|
||||||
return _started;
|
return _started;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user