Add code base for better support for FYSETC WIFI SD PRO - WIP

This commit is contained in:
Luc 2023-10-18 21:18:32 +08:00
parent 4c5c21653c
commit dc84b0bbdb
7 changed files with 736 additions and 637 deletions

View File

@ -21,22 +21,22 @@
#ifndef _DEFINES_ESP3D_H #ifndef _DEFINES_ESP3D_H
#define _DEFINES_ESP3D_H #define _DEFINES_ESP3D_H
//Settings // Settings
#define SETTINGS_IN_EEPROM 1 #define SETTINGS_IN_EEPROM 1
#define SETTINGS_IN_PREFERENCES 2 #define SETTINGS_IN_PREFERENCES 2
//Supported FW ///////////////////////////////////////////////////////////// // Supported FW /////////////////////////////////////////////////////////////
#define UNKNOWN_FW 0 #define UNKNOWN_FW 0
#define GRBL 10 #define GRBL 10
#define MARLIN 20 #define MARLIN 20
#define MARLIN_EMBEDDED 30 #define MARLIN_EMBEDDED 30
#define SMOOTHIEWARE 40 #define SMOOTHIEWARE 40
#define REPETIER 50 #define REPETIER 50
#define REPRAP 70 #define REPRAP 70
#define GRBLHAL 80 #define GRBLHAL 80
#define HP_GL 90 #define HP_GL 90
//Default flags // Default flags
#define DEFAULT_SERIAL_OUTPUT_FLAG 1 #define DEFAULT_SERIAL_OUTPUT_FLAG 1
#define DEFAULT_REMOTE_SCREEN_FLAG 1 #define DEFAULT_REMOTE_SCREEN_FLAG 1
#define DEFAULT_WEBSOCKET_FLAG 1 #define DEFAULT_WEBSOCKET_FLAG 1
@ -45,253 +45,282 @@
#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
#define ESP_RADIO_MODE 0 //1 byte = flag // : P_0 for 0
#define ESP_STA_SSID 1 //33 bytes 32+1 = string ; warning does not support multibyte char like chinese #define ESP_RADIO_MODE 0 // 1 byte = flag
#define ESP_STA_PASSWORD 34 //65 bytes 64 +1 = string ;warning does not support multibyte char like chinese #define ESP_STA_SSID \
#define ESP_STA_IP_MODE 99 //1 byte = flag 1 // 33 bytes 32+1 = string ; warning does not support multibyte char like
#define ESP_STA_IP_VALUE 100 //4 bytes xxx.xxx.xxx.xxx // chinese
#define ESP_STA_MASK_VALUE 104 //4 bytes xxx.xxx.xxx.xxx #define ESP_STA_PASSWORD \
#define ESP_STA_GATEWAY_VALUE 108 //4 bytes xxx.xxx.xxx.xxx 34 // 65 bytes 64 +1 = string ;warning does not support multibyte char like
#define ESP_BAUD_RATE 112 //4 bytes = int // chinese
#define ESP_NOTIFICATION_TYPE 116 //1 byte = flag #define ESP_STA_IP_MODE 99 // 1 byte = flag
#define ESP_CALIBRATION 117 //1 byte = flag #define ESP_STA_IP_VALUE 100 // 4 bytes xxx.xxx.xxx.xxx
#define ESP_AP_CHANNEL 118 //1 byte = flag #define ESP_STA_MASK_VALUE 104 // 4 bytes xxx.xxx.xxx.xxx
#define ESP_BUZZER 119 //1 byte = flag #define ESP_STA_GATEWAY_VALUE 108 // 4 bytes xxx.xxx.xxx.xxx
#define ESP_INTERNET_TIME 120 //1 byte = flag #define ESP_BAUD_RATE 112 // 4 bytes = int
#define ESP_HTTP_PORT 121 //4 bytes = int #define ESP_NOTIFICATION_TYPE 116 // 1 byte = flag
#define ESP_TELNET_PORT 125 //4 bytes = int #define ESP_CALIBRATION 117 // 1 byte = flag
#define ESP_SERIAL_FLAG 129 //1 bytes = flag #define ESP_AP_CHANNEL 118 // 1 byte = flag
#define ESP_HOSTNAME 130 //33 bytes 32+1 = string ; warning does not support multibyte char like chinese #define ESP_BUZZER 119 // 1 byte = flag
#define ESP_SENSOR_INTERVAL 164 //4 bytes = int #define ESP_INTERNET_TIME 120 // 1 byte = flag
#define ESP_SETTINGS_VERSION 168 //8 bytes = 7+1 = string ESP3D + 2 digits #define ESP_HTTP_PORT 121 // 4 bytes = int
#define ESP_ADMIN_PWD 176 //21 bytes 20+1 = string ; warning does not support multibyte char like chinese #define ESP_TELNET_PORT 125 // 4 bytes = int
#define ESP_USER_PWD 197 //21 bytes 20+1 = string ; warning does not support multibyte char like chinese #define ESP_SERIAL_FLAG 129 // 1 bytes = flag
#define ESP_AP_SSID 218 //33 bytes 32+1 = string ; warning does not support multibyte char like chinese #define ESP_HOSTNAME \
#define ESP_AP_PASSWORD 251 //65 bytes 64 +1 = string ;warning does not support multibyte char like chinese 130 // 33 bytes 32+1 = string ; warning does not support multibyte char like
#define ESP_AP_IP_VALUE 316 //4 bytes xxx.xxx.xxx.xxx // chinese
#define ESP_BOOT_DELAY 320 //4 bytes = int #define ESP_SENSOR_INTERVAL 164 // 4 bytes = int
#define ESP_WEBSOCKET_PORT 324 //4 bytes= int #define ESP_SETTINGS_VERSION 168 // 8 bytes = 7+1 = string ESP3D + 2 digits
#define ESP_HTTP_ON 328 //1 byte = flag #define ESP_ADMIN_PWD \
#define ESP_TELNET_ON 329 //1 byte = flag 176 // 21 bytes 20+1 = string ; warning does not support multibyte char
#define ESP_WEBSOCKET_ON 330 //1 byte = flag // like chinese
#define ESP_SD_SPEED_DIV 331 //1 byte = flag #define ESP_USER_PWD \
#define ESP_NOTIFICATION_TOKEN1 332 //64 bytes 63+1 = string ; warning does not support multibyte char like chinese 197 // 21 bytes 20+1 = string ; warning does not support multibyte char
#define ESP_NOTIFICATION_TOKEN2 396 //64 bytes 63+1 = string ; warning does not support multibyte char like chinese // like chinese
#define ESP_SENSOR_TYPE 460 //1 bytes = flag #define ESP_AP_SSID \
#define ESP_TARGET_FW 461 //1 bytes = flag 218 // 33 bytes 32+1 = string ; warning does not support multibyte char like
#define ESP_TIMEZONE 462 //1 bytes = flag // chinese
#define ESP_TIME_IS_DST 463 //1 bytes = flag #define ESP_AP_PASSWORD \
#define ESP_TIME_SERVER1 464 //129 bytes 128+1 = string ; warning does not support multibyte char like chinese 251 // 65 bytes 64 +1 = string ;warning does not support multibyte char like
#define ESP_TIME_SERVER2 593 //129 bytes 128+1 = string ; warning does not support multibyte char like chinese // chinese
#define ESP_TIME_SERVER3 722 //129 bytes 128+1 = string ; warning does not support multibyte char like chinese #define ESP_AP_IP_VALUE 316 // 4 bytes xxx.xxx.xxx.xxx
#define ESP_REMOTE_SCREEN_FLAG 851 //1 bytes = flag #define ESP_BOOT_DELAY 320 // 4 bytes = int
#define ESP_SD_MOUNT 852 //1 bytes = flag #define ESP_WEBSOCKET_PORT 324 // 4 bytes= int
#define ESP_SESSION_TIMEOUT 853 //1 bytes = flag #define ESP_HTTP_ON 328 // 1 byte = flag
#define ESP_WEBSOCKET_FLAG 854 //1 bytes = flag #define ESP_TELNET_ON 329 // 1 byte = flag
#define ESP_SD_CHECK_UPDATE_AT_BOOT 855//1 bytes = flag #define ESP_WEBSOCKET_ON 330 // 1 byte = flag
#define ESP_NOTIFICATION_SETTINGS 856 //129 bytes 128+1 = string ; warning does not support multibyte char like chinese #define ESP_SD_SPEED_DIV 331 // 1 byte = flag
#define ESP_CALIBRATION_1 985 //4 bytes = int #define ESP_NOTIFICATION_TOKEN1 \
#define ESP_CALIBRATION_2 989 //4 bytes = int 332 // 64 bytes 63+1 = string ; warning does not support multibyte char like
#define ESP_CALIBRATION_3 993 //4 bytes = int // chinese
#define ESP_CALIBRATION_4 997 //4 bytes = int #define ESP_NOTIFICATION_TOKEN2 \
#define ESP_CALIBRATION_5 1001 //4 bytes = int 396 // 64 bytes 63+1 = string ; warning does not support multibyte char like
#define ESP_SETUP 1005 //1 byte = flag // chinese
#define ESP_TELNET_FLAG 1006 //1 byte = flag #define ESP_SENSOR_TYPE 460 // 1 bytes = flag
#define ESP_BT_FLAG 1007 //1 byte = flag #define ESP_TARGET_FW 461 // 1 bytes = flag
#define ESP_SCREEN_FLAG 1008 //1 byte = flag #define ESP_TIMEZONE 462 // 1 bytes = flag
#define ESP_FTP_CTRL_PORT 1009 //4 bytes = int #define ESP_TIME_IS_DST 463 // 1 bytes = flag
#define ESP_FTP_DATA_ACTIVE_PORT 1013 //4 bytes = int #define ESP_TIME_SERVER1 \
#define ESP_FTP_DATA_PASSIVE_PORT 1017 //4 bytes = int 464 // 129 bytes 128+1 = string ; warning does not support multibyte char
#define ESP_FTP_ON 1021 //1 byte = flag // like chinese
#define ESP_AUTO_NOTIFICATION 1022 //1 byte = flag #define ESP_TIME_SERVER2 \
#define ESP_VERBOSE_BOOT 1023 //1 byte = flag 593 // 129 bytes 128+1 = string ; warning does not support multibyte char
#define ESP_WEBDAV_ON 1024 //1 byte = flag // like chinese
#define ESP_WEBDAV_PORT 1025 //4 bytes= int #define ESP_TIME_SERVER3 \
#define ESP_STA_DNS_VALUE 1029 //4 bytes= int 722 // 129 bytes 128+1 = string ; warning does not support multibyte char
#define ESP_SECURE_SERIAL 1033 //1 byte = flag // like chinese
#define ESP_BOOT_RADIO_STATE 1034 //1 byte = flag #define ESP_REMOTE_SCREEN_FLAG 851 // 1 bytes = flag
#define ESP_STA_FALLBACK_MODE 1035 //1 byte = flag #define ESP_SD_MOUNT 852 // 1 bytes = flag
#define ESP_SERIAL_BRIDGE_ON 1036 //1 byte = flag #define ESP_SESSION_TIMEOUT 853 // 1 bytes = flag
#define ESP_SERIAL_BRIDGE_FLAG 1037 //1 byte = flag #define ESP_WEBSOCKET_FLAG 854 // 1 bytes = flag
#define ESP_SERIAL_BRIDGE_BAUD 1038 //4 bytes= int #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_CALIBRATION_1 985 // 4 bytes = int
#define ESP_CALIBRATION_2 989 // 4 bytes = int
#define ESP_CALIBRATION_3 993 // 4 bytes = int
#define ESP_CALIBRATION_4 997 // 4 bytes = int
#define ESP_CALIBRATION_5 1001 // 4 bytes = int
#define ESP_SETUP 1005 // 1 byte = flag
#define ESP_TELNET_FLAG 1006 // 1 byte = flag
#define ESP_BT_FLAG 1007 // 1 byte = flag
#define ESP_SCREEN_FLAG 1008 // 1 byte = flag
#define ESP_FTP_CTRL_PORT 1009 // 4 bytes = int
#define ESP_FTP_DATA_ACTIVE_PORT 1013 // 4 bytes = int
#define ESP_FTP_DATA_PASSIVE_PORT 1017 // 4 bytes = int
#define ESP_FTP_ON 1021 // 1 byte = flag
#define ESP_AUTO_NOTIFICATION 1022 // 1 byte = flag
#define ESP_VERBOSE_BOOT 1023 // 1 byte = flag
#define ESP_WEBDAV_ON 1024 // 1 byte = flag
#define ESP_WEBDAV_PORT 1025 // 4 bytes= int
#define ESP_STA_DNS_VALUE 1029 // 4 bytes= int
#define ESP_SECURE_SERIAL 1033 // 1 byte = flag
#define ESP_BOOT_RADIO_STATE 1034 // 1 byte = flag
#define ESP_STA_FALLBACK_MODE 1035 // 1 byte = flag
#define ESP_SERIAL_BRIDGE_ON 1036 // 1 byte = flag
#define ESP_SERIAL_BRIDGE_FLAG 1037 // 1 byte = flag
#define ESP_SERIAL_BRIDGE_BAUD 1038 // 4 bytes= int
//Hidden password // Hidden password
#define HIDDEN_PASSWORD "********" #define HIDDEN_PASSWORD "********"
//Debug // Debug
#define DEBUG_OUTPUT_SERIAL0 1 #define DEBUG_OUTPUT_SERIAL0 1
#define DEBUG_OUTPUT_SERIAL1 2 #define DEBUG_OUTPUT_SERIAL1 2
#define DEBUG_OUTPUT_SERIAL2 3 #define DEBUG_OUTPUT_SERIAL2 3
#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
#define USE_SERIAL_2 3 #define USE_SERIAL_2 3
//Serial service ID // Serial service ID
#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
#define SOCKET_SERIAL 2 #define SOCKET_SERIAL 2
//Display // Display
#define OLED_I2C_SSD1306_128X64 1 #define OLED_I2C_SSD1306_128X64 1
#define OLED_I2C_SSDSH1106_132X64 2 #define OLED_I2C_SSDSH1106_132X64 2
#define TFT_SPI_ILI9341_320X240 3 #define TFT_SPI_ILI9341_320X240 3
#define TFT_SPI_ILI9488_480X320 4 #define TFT_SPI_ILI9488_480X320 4
#define TFT_SPI_ST7789_240X240 5 #define TFT_SPI_ST7789_240X240 5
#define TFT_SPI_ST7789_135X240 6 #define TFT_SPI_ST7789_135X240 6
//UI type for display // UI type for display
#define UI_TYPE_BASIC 1 #define UI_TYPE_BASIC 1
#define UI_TYPE_ADVANCED 2 #define UI_TYPE_ADVANCED 2
#define UI_COLORED 1 #define UI_COLORED 1
#define UI_MONOCHROME 2 #define UI_MONOCHROME 2
//SD connection // SD connection
#define ESP_NO_SD 0 #define ESP_NO_SD 0
#define ESP_DIRECT_SD 1 #define ESP_DIRECT_SD 1
#define ESP_SHARED_SD 2 #define ESP_SHARED_SD 2
//Upload type // SD Device type
#define ESP_UPLOAD_DIRECT_SD 1 #define ESP_NORMAL_SDCARD 0
#define ESP_UPLOAD_SHARED_SD 2 #define ESP_FYSETC_WIFI_PRO_SDCARD 1
#define ESP_UPLOAD_SERIAL_SD 3
#define ESP_UPLOAD_FAST_SERIAL_SD 4 // Upload type
#define ESP_UPLOAD_DIRECT_SD 1
#define ESP_UPLOAD_SHARED_SD 2
#define ESP_UPLOAD_SERIAL_SD 3
#define ESP_UPLOAD_FAST_SERIAL_SD 4
#define ESP_UPLOAD_FAST_SERIAL_USB 5 #define ESP_UPLOAD_FAST_SERIAL_USB 5
#define ESP_UPLOAD_DIRECT_USB 6 #define ESP_UPLOAD_DIRECT_USB 6
//IP mode // IP mode
#define DHCP_MODE 1 #define DHCP_MODE 1
#define STATIC_IP_MODE 0 #define STATIC_IP_MODE 0
//Network Mode // Network Mode
#define ESP_NO_NETWORK 0 #define ESP_NO_NETWORK 0
#define ESP_WIFI_STA 1 #define ESP_WIFI_STA 1
#define ESP_WIFI_AP 2 #define ESP_WIFI_AP 2
#define ESP_BT 3 #define ESP_BT 3
#define ESP_ETH_STA 4 #define ESP_ETH_STA 4
#define ESP_AP_SETUP 5 #define ESP_AP_SETUP 5
//#define ESP_ETH_SRV 5 // #define ESP_ETH_SRV 5
//SD mount point // SD mount point
#define ESP_SD_ROOT 1 #define ESP_SD_ROOT 1
#define ESP_SD_SUB_SD 2 #define ESP_SD_SUB_SD 2
#define ESP_SD_SUB_EXT 3 #define ESP_SD_SUB_EXT 3
//Touch // Touch
#define XPT2046_SPI 1 #define XPT2046_SPI 1
//Input // Input
#define ROTARY_ENCODER 1 #define ROTARY_ENCODER 1
//File systems // File systems
#define ESP_SPIFFS_FILESYSTEM 1 #define ESP_SPIFFS_FILESYSTEM 1
#define ESP_FAT_FILESYSTEM 2 #define ESP_FAT_FILESYSTEM 2
#define ESP_LITTLEFS_FILESYSTEM 3 #define ESP_LITTLEFS_FILESYSTEM 3
//SD READER FS type supported // SD READER FS type supported
#define ESP_SD_NATIVE 1 #define ESP_SD_NATIVE 1
#define ESP_SDIO 2 #define ESP_SDIO 2
#define ESP_SDFAT2 3 #define ESP_SDFAT2 3
//SDIO Mode // SDIO Mode
#define SD_ONE_BIT_MODE 1 #define SD_ONE_BIT_MODE 1
#define SD_FOUR_BIT_MODE 0 #define SD_FOUR_BIT_MODE 0
//SD state // SD state
#define ESP_SDCARD_IDLE 0 #define ESP_SDCARD_IDLE 0
#define ESP_SDCARD_NOT_PRESENT 1 #define ESP_SDCARD_NOT_PRESENT 1
#define ESP_SDCARD_BUSY 2 #define ESP_SDCARD_BUSY 2
//Notifications // Notifications
#define ESP_NO_NOTIFICATION 0 #define ESP_NO_NOTIFICATION 0
#define ESP_PUSHOVER_NOTIFICATION 1 #define ESP_PUSHOVER_NOTIFICATION 1
#define ESP_EMAIL_NOTIFICATION 2 #define ESP_EMAIL_NOTIFICATION 2
#define ESP_LINE_NOTIFICATION 3 #define ESP_LINE_NOTIFICATION 3
#define ESP_TELEGRAM_NOTIFICATION 4 #define ESP_TELEGRAM_NOTIFICATION 4
#define ESP_IFTTT_NOTIFICATION 5 #define ESP_IFTTT_NOTIFICATION 5
//SENSOR // SENSOR
#define NO_SENSOR_DEVICE 0 #define NO_SENSOR_DEVICE 0
#define DHT11_DEVICE 1 #define DHT11_DEVICE 1
#define DHT22_DEVICE 2 #define DHT22_DEVICE 2
#define ANALOG_DEVICE 3 #define ANALOG_DEVICE 3
#define BMP280_DEVICE 4 #define BMP280_DEVICE 4
#define BME280_DEVICE 5 #define BME280_DEVICE 5
#define USE_CELSIUS 1 #define USE_CELSIUS 1
#define USE_FAHRENHEIT 2 #define USE_FAHRENHEIT 2
//Camera // Camera
#define CAMERA_MODEL_CUSTOM 0 #define CAMERA_MODEL_CUSTOM 0
#define CAMERA_MODEL_ESP_EYE 1 #define CAMERA_MODEL_ESP_EYE 1
#define CAMERA_MODEL_M5STACK_PSRAM 2 #define CAMERA_MODEL_M5STACK_PSRAM 2
#define CAMERA_MODEL_M5STACK_V2_PSRAM 3 #define CAMERA_MODEL_M5STACK_V2_PSRAM 3
#define CAMERA_MODEL_M5STACK_WIDE 4 #define CAMERA_MODEL_M5STACK_WIDE 4
#define CAMERA_MODEL_AI_THINKER 7 #define CAMERA_MODEL_AI_THINKER 7
#define CAMERA_MODEL_WROVER_KIT 8 #define CAMERA_MODEL_WROVER_KIT 8
#define CAMERA_MODEL_ESP32_CAM_BOARD 10 #define CAMERA_MODEL_ESP32_CAM_BOARD 10
#define CAMERA_MODEL_ESP32S2_CAM_BOARD 11 #define CAMERA_MODEL_ESP32S2_CAM_BOARD 11
#define CAMERA_MODEL_ESP32S3_CAM_LCD 12 #define CAMERA_MODEL_ESP32S3_CAM_LCD 12
#define CAMERA_MODEL_ESP32S3_EYE 13 #define CAMERA_MODEL_ESP32S3_EYE 13
//Errors code // Errors code
#define ESP_ERROR_AUTHENTICATION 1 #define ESP_ERROR_AUTHENTICATION 1
#define ESP_ERROR_FILE_CREATION 2 #define ESP_ERROR_FILE_CREATION 2
#define ESP_ERROR_FILE_WRITE 3 #define ESP_ERROR_FILE_WRITE 3
#define ESP_ERROR_UPLOAD 4 #define ESP_ERROR_UPLOAD 4
#define ESP_ERROR_NOT_ENOUGH_SPACE 5 #define ESP_ERROR_NOT_ENOUGH_SPACE 5
#define ESP_ERROR_UPLOAD_CANCELLED 6 #define ESP_ERROR_UPLOAD_CANCELLED 6
#define ESP_ERROR_FILE_CLOSE 7 #define ESP_ERROR_FILE_CLOSE 7
#define ESP_ERROR_NO_SD 8 #define ESP_ERROR_NO_SD 8
#define ESP_ERROR_MOUNT_SD 9 #define ESP_ERROR_MOUNT_SD 9
#define ESP_ERROR_RESET_NUMBERING 10 #define ESP_ERROR_RESET_NUMBERING 10
#define ESP_ERROR_BUFFER_OVERFLOW 11 #define ESP_ERROR_BUFFER_OVERFLOW 11
#define ESP_ERROR_START_UPLOAD 12 #define ESP_ERROR_START_UPLOAD 12
#define ESP_ERROR_SIZE 13 #define ESP_ERROR_SIZE 13
#define ESP_ERROR_UPDATE 14 #define ESP_ERROR_UPDATE 14
//File system // File system
#define ESP_FILE_READ 0 #define ESP_FILE_READ 0
#define ESP_FILE_WRITE 1 #define ESP_FILE_WRITE 1
#define ESP_FILE_APPEND 2 #define ESP_FILE_APPEND 2
#define ESP_SEEK_SET 0 #define ESP_SEEK_SET 0
#define ESP_SEEK_CUR 1 #define ESP_SEEK_CUR 1
#define ESP_SEEK_END 2 #define ESP_SEEK_END 2
#define FS_ROOT 0 #define FS_ROOT 0
#define FS_FLASH 1 #define FS_FLASH 1
#define FS_SD 2 #define FS_SD 2
#define FS_USBDISK 3 #define FS_USBDISK 3
#define FS_UNKNOWN 254 #define FS_UNKNOWN 254
#define MAX_FS 3 #define MAX_FS 3
//ethernet clock modes (check ETH.h for eth_clock_mode_t) // ethernet clock modes (check ETH.h for eth_clock_mode_t)
#define MODE_ETH_CLOCK_GPIO0_IN 0 #define MODE_ETH_CLOCK_GPIO0_IN 0
#define MODE_ETH_CLOCK_GPIO0_OUT 1 #define MODE_ETH_CLOCK_GPIO0_OUT 1
#define MODE_ETH_CLOCK_GPIO16_OUT 2 #define MODE_ETH_CLOCK_GPIO16_OUT 2
#define MODE_ETH_CLOCK_GPIO17_OUT 3 #define MODE_ETH_CLOCK_GPIO17_OUT 3
//Ethernet type (Check ETH.h eth_phy_type_t) // Ethernet type (Check ETH.h eth_phy_type_t)
#define TYPE_ETH_PHY_LAN8720 0 #define TYPE_ETH_PHY_LAN8720 0
#define TYPE_ETH_PHY_TLK110 1 #define TYPE_ETH_PHY_TLK110 1
#define TYPE_ETH_PHY_RTL8201 2 #define TYPE_ETH_PHY_RTL8201 2
#define TYPE_ETH_PHY_DP83848 3 #define TYPE_ETH_PHY_DP83848 3
#define TYPE_ETH_PHY_DM9051 4 #define TYPE_ETH_PHY_DM9051 4
#define TYPE_ETH_PHY_KSZ8041 5 #define TYPE_ETH_PHY_KSZ8041 5
#define TYPE_ETH_PHY_KSZ8081 6 #define TYPE_ETH_PHY_KSZ8081 6
//Host path // Host path
#define ESP3D_HOST_PATH "/" #define ESP3D_HOST_PATH "/"
#endif //_DEFINES_ESP3D_H #endif //_DEFINES_ESP3D_H

View File

@ -18,349 +18,349 @@
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
//Serial Pins // Serial Pins
//-1 means use default pins of your board what ever the serial you choose //-1 means use default pins of your board what ever the serial you choose
// * UART 0 possible options are (1, 3), (2, 3) or (15, 13) // * UART 0 possible options are (1, 3), (2, 3) or (15, 13)
// * UART 1 allows only TX on 2 if UART 0 is not (2, 3) // * UART 1 allows only TX on 2 if UART 0 is not (2, 3)
#ifndef ESP_RX_PIN #ifndef ESP_RX_PIN
#define ESP_RX_PIN -1 #define ESP_RX_PIN -1
#endif //ESP_RX_PIN #endif // ESP_RX_PIN
#ifndef ESP_TX_PIN #ifndef ESP_TX_PIN
#define ESP_TX_PIN -1 #define ESP_TX_PIN -1
#endif //ESP_TX_PIN #endif // ESP_TX_PIN
#if defined(ESP_SERIAL_BRIDGE_OUTPUT) #if defined(ESP_SERIAL_BRIDGE_OUTPUT)
#ifndef ESP_BRIDGE_RX_PIN #ifndef ESP_BRIDGE_RX_PIN
#define ESP_BRIDGE_RX_PIN -1 #define ESP_BRIDGE_RX_PIN -1
#endif //ESP_BRIDGE_RX_PIN #endif // ESP_BRIDGE_RX_PIN
#ifndef ESP_BRIDGE_TX_PIN #ifndef ESP_BRIDGE_TX_PIN
#define ESP_BRIDGE_TX_PIN -1 #define ESP_BRIDGE_TX_PIN -1
#endif //ESP_BRIDGE_TX_PIN #endif // ESP_BRIDGE_TX_PIN
#endif //ESP_SERIAL_BRIDGE_OUTPUT #endif // ESP_SERIAL_BRIDGE_OUTPUT
#ifndef ESP_DEBUG_RX_PIN #ifndef ESP_DEBUG_RX_PIN
#define ESP_DEBUG_RX_PIN -1 #define ESP_DEBUG_RX_PIN -1
#endif //ESP_DEBUG_RX_PIN #endif // ESP_DEBUG_RX_PIN
#ifndef ESP_DEBUG_TX_PIN #ifndef ESP_DEBUG_TX_PIN
#define ESP_DEBUG_TX_PIN -1 #define ESP_DEBUG_TX_PIN -1
#endif //ESP_DEBUG_TX_PIN #endif // ESP_DEBUG_TX_PIN
//I2C Pins // I2C Pins
#ifndef ESP_SDA_PIN #ifndef ESP_SDA_PIN
#define ESP_SDA_PIN SDA #define ESP_SDA_PIN SDA
#endif //~ESP_SDA_PIN #endif //~ESP_SDA_PIN
#ifndef ESP_SCL_PIN #ifndef ESP_SCL_PIN
#define ESP_SCL_PIN SCL #define ESP_SCL_PIN SCL
#endif //~ESP_SCL_PIN #endif //~ESP_SCL_PIN
//Pins for the support of connected camera // Pins for the support of connected camera
#ifndef USE_BOARD_HEADER #ifndef USE_BOARD_HEADER
#define USE_BOARD_HEADER 0 #define USE_BOARD_HEADER 0
#endif //USE_BOARD_HEADER #endif // USE_BOARD_HEADER
#if defined (CAMERA_DEVICE) #if defined(CAMERA_DEVICE)
#if CAMERA_DEVICE == CAMERA_MODEL_CUSTOM #if CAMERA_DEVICE == CAMERA_MODEL_CUSTOM
#define CAM_LED_PIN 4 #define CAM_LED_PIN 4
#define CAM_PULLUP1 -1 #define CAM_PULLUP1 -1
#define CAM_PULLUP2 -1 #define CAM_PULLUP2 -1
#define PWDN_GPIO_NUM 32 #define PWDN_GPIO_NUM 32
#define RESET_GPIO_NUM -1 #define RESET_GPIO_NUM -1
#define XCLK_GPIO_NUM 0 #define XCLK_GPIO_NUM 0
#define SIOD_GPIO_NUM 26 #define SIOD_GPIO_NUM 26
#define SIOC_GPIO_NUM 27 #define SIOC_GPIO_NUM 27
#define Y9_GPIO_NUM 35 #define Y9_GPIO_NUM 35
#define Y8_GPIO_NUM 34 #define Y8_GPIO_NUM 34
#define Y7_GPIO_NUM 39 #define Y7_GPIO_NUM 39
#define Y6_GPIO_NUM 36 #define Y6_GPIO_NUM 36
#define Y5_GPIO_NUM 21 #define Y5_GPIO_NUM 21
#define Y4_GPIO_NUM 19 #define Y4_GPIO_NUM 19
#define Y3_GPIO_NUM 18 #define Y3_GPIO_NUM 18
#define Y2_GPIO_NUM 5 #define Y2_GPIO_NUM 5
#define VSYNC_GPIO_NUM 25 #define VSYNC_GPIO_NUM 25
#define HREF_GPIO_NUM 23 #define HREF_GPIO_NUM 23
#define PCLK_GPIO_NUM 22 #define PCLK_GPIO_NUM 22
#endif //CAMERA_MODEL_CUSTOM #endif // CAMERA_MODEL_CUSTOM
#if CAMERA_DEVICE == CAMERA_MODEL_WROVER_KIT #if CAMERA_DEVICE == CAMERA_MODEL_WROVER_KIT
#define CAM_LED_PIN -1 #define CAM_LED_PIN -1
#define CAM_PULLUP1 -1 #define CAM_PULLUP1 -1
#define CAM_PULLUP2 -1 #define CAM_PULLUP2 -1
#define PWDN_GPIO_NUM -1 #define PWDN_GPIO_NUM -1
#define RESET_GPIO_NUM -1 #define RESET_GPIO_NUM -1
#define XCLK_GPIO_NUM 21 #define XCLK_GPIO_NUM 21
#define SIOD_GPIO_NUM 26 #define SIOD_GPIO_NUM 26
#define SIOC_GPIO_NUM 27 #define SIOC_GPIO_NUM 27
#define Y9_GPIO_NUM 35 #define Y9_GPIO_NUM 35
#define Y8_GPIO_NUM 34 #define Y8_GPIO_NUM 34
#define Y7_GPIO_NUM 39 #define Y7_GPIO_NUM 39
#define Y6_GPIO_NUM 36 #define Y6_GPIO_NUM 36
#define Y5_GPIO_NUM 19 #define Y5_GPIO_NUM 19
#define Y4_GPIO_NUM 18 #define Y4_GPIO_NUM 18
#define Y3_GPIO_NUM 5 #define Y3_GPIO_NUM 5
#define Y2_GPIO_NUM 4 #define Y2_GPIO_NUM 4
#define VSYNC_GPIO_NUM 25 #define VSYNC_GPIO_NUM 25
#define HREF_GPIO_NUM 23 #define HREF_GPIO_NUM 23
#define PCLK_GPIO_NUM 22 #define PCLK_GPIO_NUM 22
#endif //CAMERA_MODEL_WROVER_KIT #endif // CAMERA_MODEL_WROVER_KIT
#if CAMERA_DEVICE == CAMERA_MODEL_ESP_EYE #if CAMERA_DEVICE == CAMERA_MODEL_ESP_EYE
#define CAM_LED_PIN -1 #define CAM_LED_PIN -1
#define CAM_PULLUP1 13 #define CAM_PULLUP1 13
#define CAM_PULLUP2 14 #define CAM_PULLUP2 14
#define PWDN_GPIO_NUM -1 #define PWDN_GPIO_NUM -1
#define RESET_GPIO_NUM -1 #define RESET_GPIO_NUM -1
#define XCLK_GPIO_NUM 4 #define XCLK_GPIO_NUM 4
#define SIOD_GPIO_NUM 18 #define SIOD_GPIO_NUM 18
#define SIOC_GPIO_NUM 23 #define SIOC_GPIO_NUM 23
#define Y9_GPIO_NUM 36 #define Y9_GPIO_NUM 36
#define Y8_GPIO_NUM 37 #define Y8_GPIO_NUM 37
#define Y7_GPIO_NUM 38 #define Y7_GPIO_NUM 38
#define Y6_GPIO_NUM 39 #define Y6_GPIO_NUM 39
#define Y5_GPIO_NUM 35 #define Y5_GPIO_NUM 35
#define Y4_GPIO_NUM 14 #define Y4_GPIO_NUM 14
#define Y3_GPIO_NUM 13 #define Y3_GPIO_NUM 13
#define Y2_GPIO_NUM 34 #define Y2_GPIO_NUM 34
#define VSYNC_GPIO_NUM 5 #define VSYNC_GPIO_NUM 5
#define HREF_GPIO_NUM 27 #define HREF_GPIO_NUM 27
#define PCLK_GPIO_NUM 25 #define PCLK_GPIO_NUM 25
#endif //CAMERA_MODEL_ESP_EYE #endif // CAMERA_MODEL_ESP_EYE
#if CAMERA_DEVICE == CAMERA_MODEL_M5STACK_PSRAM #if CAMERA_DEVICE == CAMERA_MODEL_M5STACK_PSRAM
#define CAM_LED_PIN -1 #define CAM_LED_PIN -1
#define CAM_PULLUP1 -1 #define CAM_PULLUP1 -1
#define CAM_PULLUP2 -1 #define CAM_PULLUP2 -1
#define PWDN_GPIO_NUM -1 #define PWDN_GPIO_NUM -1
#define RESET_GPIO_NUM 15 #define RESET_GPIO_NUM 15
#define XCLK_GPIO_NUM 27 #define XCLK_GPIO_NUM 27
#define SIOD_GPIO_NUM 25 #define SIOD_GPIO_NUM 25
#define SIOC_GPIO_NUM 23 #define SIOC_GPIO_NUM 23
#define Y9_GPIO_NUM 19 #define Y9_GPIO_NUM 19
#define Y8_GPIO_NUM 36 #define Y8_GPIO_NUM 36
#define Y7_GPIO_NUM 18 #define Y7_GPIO_NUM 18
#define Y6_GPIO_NUM 39 #define Y6_GPIO_NUM 39
#define Y5_GPIO_NUM 5 #define Y5_GPIO_NUM 5
#define Y4_GPIO_NUM 34 #define Y4_GPIO_NUM 34
#define Y3_GPIO_NUM 35 #define Y3_GPIO_NUM 35
#define Y2_GPIO_NUM 32 #define Y2_GPIO_NUM 32
#define VSYNC_GPIO_NUM 22 #define VSYNC_GPIO_NUM 22
#define HREF_GPIO_NUM 26 #define HREF_GPIO_NUM 26
#define PCLK_GPIO_NUM 21 #define PCLK_GPIO_NUM 21
#endif //CAMERA_MODEL_M5STACK_PSRAM #endif // CAMERA_MODEL_M5STACK_PSRAM
#if CAMERA_DEVICE == CAMERA_MODEL_M5STACK_PSRAM_2 #if CAMERA_DEVICE == CAMERA_MODEL_M5STACK_PSRAM_2
#define CAM_LED_PIN -1 #define CAM_LED_PIN -1
#define CAM_PULLUP1 -1 #define CAM_PULLUP1 -1
#define CAM_PULLUP2 -1 #define CAM_PULLUP2 -1
#define PWDN_GPIO_NUM -1 #define PWDN_GPIO_NUM -1
#define RESET_GPIO_NUM 15 #define RESET_GPIO_NUM 15
#define XCLK_GPIO_NUM 27 #define XCLK_GPIO_NUM 27
#define SIOD_GPIO_NUM 22 #define SIOD_GPIO_NUM 22
#define SIOC_GPIO_NUM 23 #define SIOC_GPIO_NUM 23
#define Y9_GPIO_NUM 19 #define Y9_GPIO_NUM 19
#define Y8_GPIO_NUM 36 #define Y8_GPIO_NUM 36
#define Y7_GPIO_NUM 18 #define Y7_GPIO_NUM 18
#define Y6_GPIO_NUM 39 #define Y6_GPIO_NUM 39
#define Y5_GPIO_NUM 5 #define Y5_GPIO_NUM 5
#define Y4_GPIO_NUM 34 #define Y4_GPIO_NUM 34
#define Y3_GPIO_NUM 35 #define Y3_GPIO_NUM 35
#define Y2_GPIO_NUM 32 #define Y2_GPIO_NUM 32
#define VSYNC_GPIO_NUM 25 #define VSYNC_GPIO_NUM 25
#define HREF_GPIO_NUM 26 #define HREF_GPIO_NUM 26
#define PCLK_GPIO_NUM 21 #define PCLK_GPIO_NUM 21
#endif //CAMERA_MODEL_M5STACK_PSRAM_2 #endif // CAMERA_MODEL_M5STACK_PSRAM_2
#if CAMERA_DEVICE == CAMERA_MODEL_M5STACK_WIDE #if CAMERA_DEVICE == CAMERA_MODEL_M5STACK_WIDE
#define CAM_LED_PIN -1 #define CAM_LED_PIN -1
#define CAM_PULLUP1 -1 #define CAM_PULLUP1 -1
#define CAM_PULLUP2 -1 #define CAM_PULLUP2 -1
#define PWDN_GPIO_NUM -1 #define PWDN_GPIO_NUM -1
#define RESET_GPIO_NUM 15 #define RESET_GPIO_NUM 15
#define XCLK_GPIO_NUM 27 #define XCLK_GPIO_NUM 27
#define SIOD_GPIO_NUM 22 #define SIOD_GPIO_NUM 22
#define SIOC_GPIO_NUM 23 #define SIOC_GPIO_NUM 23
#define Y9_GPIO_NUM 19 #define Y9_GPIO_NUM 19
#define Y8_GPIO_NUM 36 #define Y8_GPIO_NUM 36
#define Y7_GPIO_NUM 18 #define Y7_GPIO_NUM 18
#define Y6_GPIO_NUM 39 #define Y6_GPIO_NUM 39
#define Y5_GPIO_NUM 5 #define Y5_GPIO_NUM 5
#define Y4_GPIO_NUM 34 #define Y4_GPIO_NUM 34
#define Y3_GPIO_NUM 35 #define Y3_GPIO_NUM 35
#define Y2_GPIO_NUM 32 #define Y2_GPIO_NUM 32
#define VSYNC_GPIO_NUM 25 #define VSYNC_GPIO_NUM 25
#define HREF_GPIO_NUM 26 #define HREF_GPIO_NUM 26
#define PCLK_GPIO_NUM 21 #define PCLK_GPIO_NUM 21
#endif //CAMERA_MODEL_M5STACK_WIDE #endif // CAMERA_MODEL_M5STACK_WIDE
#if CAMERA_DEVICE == CAMERA_MODEL_M5STACK_ESP32CAM #if CAMERA_DEVICE == CAMERA_MODEL_M5STACK_ESP32CAM
#define CAM_LED_PIN -1 #define CAM_LED_PIN -1
#define CAM_PULLUP1 -1 #define CAM_PULLUP1 -1
#define CAM_PULLUP2 -1 #define CAM_PULLUP2 -1
#define PWDN_GPIO_NUM -1 #define PWDN_GPIO_NUM -1
#define RESET_GPIO_NUM 15 #define RESET_GPIO_NUM 15
#define XCLK_GPIO_NUM 27 #define XCLK_GPIO_NUM 27
#define SIOD_GPIO_NUM 25 #define SIOD_GPIO_NUM 25
#define SIOC_GPIO_NUM 23 #define SIOC_GPIO_NUM 23
#define Y9_GPIO_NUM 19 #define Y9_GPIO_NUM 19
#define Y8_GPIO_NUM 36 #define Y8_GPIO_NUM 36
#define Y7_GPIO_NUM 18 #define Y7_GPIO_NUM 18
#define Y6_GPIO_NUM 39 #define Y6_GPIO_NUM 39
#define Y5_GPIO_NUM 5 #define Y5_GPIO_NUM 5
#define Y4_GPIO_NUM 34 #define Y4_GPIO_NUM 34
#define Y3_GPIO_NUM 35 #define Y3_GPIO_NUM 35
#define Y2_GPIO_NUM 17 #define Y2_GPIO_NUM 17
#define VSYNC_GPIO_NUM 22 #define VSYNC_GPIO_NUM 22
#define HREF_GPIO_NUM 26 #define HREF_GPIO_NUM 26
#define PCLK_GPIO_NUM 21 #define PCLK_GPIO_NUM 21
#endif //CAMERA_MODEL_M5STACK_ESP32CAM #endif // CAMERA_MODEL_M5STACK_ESP32CAM
#if CAMERA_DEVICE == CAMERA_MODEL_M5STACK_UNITCAM #if CAMERA_DEVICE == CAMERA_MODEL_M5STACK_UNITCAM
#define CAM_LED_PIN -1 #define CAM_LED_PIN -1
#define CAM_PULLUP1 -1 #define CAM_PULLUP1 -1
#define CAM_PULLUP2 -1 #define CAM_PULLUP2 -1
#define PWDN_GPIO_NUM -1 #define PWDN_GPIO_NUM -1
#define RESET_GPIO_NUM 15 #define RESET_GPIO_NUM 15
#define XCLK_GPIO_NUM 27 #define XCLK_GPIO_NUM 27
#define SIOD_GPIO_NUM 25 #define SIOD_GPIO_NUM 25
#define SIOC_GPIO_NUM 23 #define SIOC_GPIO_NUM 23
#define Y9_GPIO_NUM 19 #define Y9_GPIO_NUM 19
#define Y8_GPIO_NUM 36 #define Y8_GPIO_NUM 36
#define Y7_GPIO_NUM 18 #define Y7_GPIO_NUM 18
#define Y6_GPIO_NUM 39 #define Y6_GPIO_NUM 39
#define Y5_GPIO_NUM 5 #define Y5_GPIO_NUM 5
#define Y4_GPIO_NUM 34 #define Y4_GPIO_NUM 34
#define Y3_GPIO_NUM 35 #define Y3_GPIO_NUM 35
#define Y2_GPIO_NUM 32 #define Y2_GPIO_NUM 32
#define VSYNC_GPIO_NUM 22 #define VSYNC_GPIO_NUM 22
#define HREF_GPIO_NUM 26 #define HREF_GPIO_NUM 26
#define PCLK_GPIO_NUM 21 #define PCLK_GPIO_NUM 21
#endif //CAMERA_MODEL_M5STACK_UNITCAM #endif // CAMERA_MODEL_M5STACK_UNITCAM
#if CAMERA_DEVICE == CAMERA_MODEL_AI_THINKER #if CAMERA_DEVICE == CAMERA_MODEL_AI_THINKER
#define CAM_LED_PIN -1 //used by SD so must left unset #define CAM_LED_PIN -1 // used by SD so must left unset
#define CAM_PULLUP1 -1 #define CAM_PULLUP1 -1
#define CAM_PULLUP2 -1 #define CAM_PULLUP2 -1
#define PWDN_GPIO_NUM 32 #define PWDN_GPIO_NUM 32
#define RESET_GPIO_NUM -1 #define RESET_GPIO_NUM -1
#define XCLK_GPIO_NUM 0 #define XCLK_GPIO_NUM 0
#define SIOD_GPIO_NUM 26 #define SIOD_GPIO_NUM 26
#define SIOC_GPIO_NUM 27 #define SIOC_GPIO_NUM 27
#define Y9_GPIO_NUM 35 #define Y9_GPIO_NUM 35
#define Y8_GPIO_NUM 34 #define Y8_GPIO_NUM 34
#define Y7_GPIO_NUM 39 #define Y7_GPIO_NUM 39
#define Y6_GPIO_NUM 36 #define Y6_GPIO_NUM 36
#define Y5_GPIO_NUM 21 #define Y5_GPIO_NUM 21
#define Y4_GPIO_NUM 19 #define Y4_GPIO_NUM 19
#define Y3_GPIO_NUM 18 #define Y3_GPIO_NUM 18
#define Y2_GPIO_NUM 5 #define Y2_GPIO_NUM 5
#define VSYNC_GPIO_NUM 25 #define VSYNC_GPIO_NUM 25
#define HREF_GPIO_NUM 23 #define HREF_GPIO_NUM 23
#define PCLK_GPIO_NUM 22 #define PCLK_GPIO_NUM 22
#endif //CAMERA_MODEL_AI_THINKER #endif // CAMERA_MODEL_AI_THINKER
#if CAMERA_DEVICE == CAMERA_MODEL_ESP32_CAM_BOARD #if CAMERA_DEVICE == CAMERA_MODEL_ESP32_CAM_BOARD
#define CAM_LED_PIN -1 #define CAM_LED_PIN -1
#define CAM_PULLUP1 -1 #define CAM_PULLUP1 -1
#define CAM_PULLUP2 -1 #define CAM_PULLUP2 -1
// The 18 pin header on the board has Y5 and Y3 swapped // The 18 pin header on the board has Y5 and Y3 swapped
#define USE_BOARD_HEADER 0 #define USE_BOARD_HEADER 0
#define PWDN_GPIO_NUM 32 #define PWDN_GPIO_NUM 32
#define RESET_GPIO_NUM 33 #define RESET_GPIO_NUM 33
#define XCLK_GPIO_NUM 4 #define XCLK_GPIO_NUM 4
#define SIOD_GPIO_NUM 18 #define SIOD_GPIO_NUM 18
#define SIOC_GPIO_NUM 23 #define SIOC_GPIO_NUM 23
#define Y9_GPIO_NUM 36 #define Y9_GPIO_NUM 36
#define Y8_GPIO_NUM 19 #define Y8_GPIO_NUM 19
#define Y7_GPIO_NUM 21 #define Y7_GPIO_NUM 21
#define Y6_GPIO_NUM 39 #define Y6_GPIO_NUM 39
#if USE_BOARD_HEADER #if USE_BOARD_HEADER
#define Y5_GPIO_NUM 13 #define Y5_GPIO_NUM 13
#else #else
#define Y5_GPIO_NUM 35 #define Y5_GPIO_NUM 35
#endif #endif
#define Y4_GPIO_NUM 14 #define Y4_GPIO_NUM 14
#if USE_BOARD_HEADER #if USE_BOARD_HEADER
#define Y3_GPIO_NUM 35 #define Y3_GPIO_NUM 35
#else #else
#define Y3_GPIO_NUM 13 #define Y3_GPIO_NUM 13
#endif #endif
#define Y2_GPIO_NUM 34 #define Y2_GPIO_NUM 34
#define VSYNC_GPIO_NUM 5 #define VSYNC_GPIO_NUM 5
#define HREF_GPIO_NUM 27 #define HREF_GPIO_NUM 27
#define PCLK_GPIO_NUM 25 #define PCLK_GPIO_NUM 25
#endif //CAMERA_MODEL_ESP32_CAM_BOARD #endif // CAMERA_MODEL_ESP32_CAM_BOARD
#if CAMERA_DEVICE == CAMERA_MODEL_ESP32S3_CAM_LCD #if CAMERA_DEVICE == CAMERA_MODEL_ESP32S3_CAM_LCD
#define CAM_LED_PIN -1 #define CAM_LED_PIN -1
#define CAM_PULLUP1 -1 #define CAM_PULLUP1 -1
#define CAM_PULLUP2 -1 #define CAM_PULLUP2 -1
#define PWDN_GPIO_NUM -1 #define PWDN_GPIO_NUM -1
#define RESET_GPIO_NUM -1 #define RESET_GPIO_NUM -1
#define XCLK_GPIO_NUM 40 #define XCLK_GPIO_NUM 40
#define SIOD_GPIO_NUM 17 #define SIOD_GPIO_NUM 17
#define SIOC_GPIO_NUM 18 #define SIOC_GPIO_NUM 18
#define Y9_GPIO_NUM 39 #define Y9_GPIO_NUM 39
#define Y8_GPIO_NUM 41 #define Y8_GPIO_NUM 41
#define Y7_GPIO_NUM 42 #define Y7_GPIO_NUM 42
#define Y6_GPIO_NUM 12 #define Y6_GPIO_NUM 12
#define Y5_GPIO_NUM 3 #define Y5_GPIO_NUM 3
#define Y4_GPIO_NUM 14 #define Y4_GPIO_NUM 14
#define Y3_GPIO_NUM 47 #define Y3_GPIO_NUM 47
#define Y2_GPIO_NUM 13 #define Y2_GPIO_NUM 13
#define VSYNC_GPIO_NUM 21 #define VSYNC_GPIO_NUM 21
#define HREF_GPIO_NUM 38 #define HREF_GPIO_NUM 38
#define PCLK_GPIO_NUM 11 #define PCLK_GPIO_NUM 11
#endif //CAMERA_MODEL_ESP32S3_CAM_LCD #endif // CAMERA_MODEL_ESP32S3_CAM_LCD
#if CAMERA_DEVICE == CAMERA_MODEL_ESP32S2_CAM_BOARD #if CAMERA_DEVICE == CAMERA_MODEL_ESP32S2_CAM_BOARD
#define CAM_LED_PIN -1 #define CAM_LED_PIN -1
#define CAM_PULLUP1 -1 #define CAM_PULLUP1 -1
#define CAM_PULLUP2 -1 #define CAM_PULLUP2 -1
// The 18 pin header on the board has Y5 and Y3 swapped // The 18 pin header on the board has Y5 and Y3 swapped
#define PWDN_GPIO_NUM 1 #define PWDN_GPIO_NUM 1
#define RESET_GPIO_NUM 2 #define RESET_GPIO_NUM 2
#define XCLK_GPIO_NUM 42 #define XCLK_GPIO_NUM 42
#define SIOD_GPIO_NUM 41 #define SIOD_GPIO_NUM 41
#define SIOC_GPIO_NUM 18 #define SIOC_GPIO_NUM 18
#define Y9_GPIO_NUM 16 #define Y9_GPIO_NUM 16
#define Y8_GPIO_NUM 39 #define Y8_GPIO_NUM 39
#define Y7_GPIO_NUM 40 #define Y7_GPIO_NUM 40
#define Y6_GPIO_NUM 15 #define Y6_GPIO_NUM 15
#if USE_BOARD_HEADER #if USE_BOARD_HEADER
#define Y5_GPIO_NUM 12 #define Y5_GPIO_NUM 12
#else #else
#define Y5_GPIO_NUM 13 #define Y5_GPIO_NUM 13
#endif #endif
#define Y4_GPIO_NUM 5 #define Y4_GPIO_NUM 5
#if USE_BOARD_HEADER #if USE_BOARD_HEADER
#define Y3_GPIO_NUM 13 #define Y3_GPIO_NUM 13
#else #else
#define Y3_GPIO_NUM 12 #define Y3_GPIO_NUM 12
#endif #endif
#define Y2_GPIO_NUM 14 #define Y2_GPIO_NUM 14
#define VSYNC_GPIO_NUM 38 #define VSYNC_GPIO_NUM 38
#define HREF_GPIO_NUM 4 #define HREF_GPIO_NUM 4
#define PCLK_GPIO_NUM 3 #define PCLK_GPIO_NUM 3
#endif //CAMERA_MODEL_ESP32S2_CAM_BOARD #endif // CAMERA_MODEL_ESP32S2_CAM_BOARD
#if CAMERA_DEVICE == CAMERA_MODEL_ESP32S3_EYE #if CAMERA_DEVICE == CAMERA_MODEL_ESP32S3_EYE
#define CAM_LED_PIN -1 #define CAM_LED_PIN -1
#define CAM_PULLUP1 -1 #define CAM_PULLUP1 -1
#define CAM_PULLUP2 -1 #define CAM_PULLUP2 -1
#define PWDN_GPIO_NUM -1 #define PWDN_GPIO_NUM -1
#define RESET_GPIO_NUM -1 #define RESET_GPIO_NUM -1
#define XCLK_GPIO_NUM 15 #define XCLK_GPIO_NUM 15
@ -379,71 +379,98 @@
#define VSYNC_GPIO_NUM 6 #define VSYNC_GPIO_NUM 6
#define HREF_GPIO_NUM 7 #define HREF_GPIO_NUM 7
#define PCLK_GPIO_NUM 13 #define PCLK_GPIO_NUM 13
#endif //CAMERA_MODEL_ESP32S3_EYE #endif // CAMERA_MODEL_ESP32S3_EYE
#endif //CAMERA_DEVICE #endif // CAMERA_DEVICE
//Pins for the support of SD Card Reader // Pins for the support of SD Card Reader
//-1 means use default pins of your board defined core //-1 means use default pins of your board defined core
//this are overwrited if defined in configuration.h or myconfig.h // this are overwrited if defined in configuration.h or myconfig.h
#ifndef ESP_SDIO_CLK_PIN #ifndef ESP_SDIO_CLK_PIN
#define ESP_SDIO_CLK_PIN -1 #define ESP_SDIO_CLK_PIN -1
#endif // ESP_SDIO_CLK_PIN #endif // ESP_SDIO_CLK_PIN
#ifndef ESP_SDIO_CMD_PIN #ifndef ESP_SDIO_CMD_PIN
#define ESP_SDIO_CMD_PIN -1 #define ESP_SDIO_CMD_PIN -1
#endif // ESP_SDIO_CMD_PIN #endif // ESP_SDIO_CMD_PIN
#ifndef ESP_SDIO_D0_PIN #ifndef ESP_SDIO_D0_PIN
#define ESP_SDIO_D0_PIN -1 #define ESP_SDIO_D0_PIN -1
#endif //ESP_SDIO_D0_PIN #endif // ESP_SDIO_D0_PIN
#ifndef ESP_SDIO_D1_PIN #ifndef ESP_SDIO_D1_PIN
#define ESP_SDIO_D1_PIN -1 #define ESP_SDIO_D1_PIN -1
#endif //ESP_SDIO_D1_PIN #endif // ESP_SDIO_D1_PIN
#ifndef ESP_SDIO_D2_PIN #ifndef ESP_SDIO_D2_PIN
#define ESP_SDIO_D2_PIN -1 #define ESP_SDIO_D2_PIN -1
#endif //ESP_SDIO_D2_PIN #endif // ESP_SDIO_D2_PIN
#ifndef ESP_SDIO_D3_PIN #ifndef ESP_SDIO_D3_PIN
#define ESP_SDIO_D3_PIN -1 #define ESP_SDIO_D3_PIN -1
#endif //ESP_SDIO_D3_PIN #endif // ESP_SDIO_D3_PIN
#ifndef ESP_SD_CS_PIN #ifndef ESP_SD_CS_PIN
#define ESP_SD_CS_PIN -1 #define ESP_SD_CS_PIN -1
#endif //ESP_SD_CS_PIN #endif // ESP_SD_CS_PIN
//These are hardcoded on ESP8266 to 12/13/14 // These are hardcoded on ESP8266 to 12/13/14
//so modifications are ignored on ESP8266 // so modifications are ignored on ESP8266
#ifndef ESP_SD_MISO_PIN #ifndef ESP_SD_MISO_PIN
#define ESP_SD_MISO_PIN -1 #define ESP_SD_MISO_PIN -1
#endif //ESP_SD_MISO_PIN #endif // ESP_SD_MISO_PIN
#ifndef ESP_SD_MOSI_PIN #ifndef ESP_SD_MOSI_PIN
#define ESP_SD_MOSI_PIN -1 #define ESP_SD_MOSI_PIN -1
#endif //ESP_SD_MOSI_PIN #endif // ESP_SD_MOSI_PIN
#ifndef ESP_SD_SCK_PIN #ifndef ESP_SD_SCK_PIN
#define ESP_SD_SCK_PIN -1 #define ESP_SD_SCK_PIN -1
#endif //ESP_SD_SCK_PIN #endif // ESP_SD_SCK_PIN
#ifndef ESP_SD_DETECT_PIN #ifndef ESP_SD_DETECT_PIN
#define ESP_SD_DETECT_PIN -1 #define ESP_SD_DETECT_PIN -1
#endif //ESP_SD_DETECT_PIN #endif // ESP_SD_DETECT_PIN
#if defined (PIN_RESET_FEATURE) && !defined(ESP3D_RESET_PIN) #if defined(PIN_RESET_FEATURE) && !defined(ESP3D_RESET_PIN)
#define ESP3D_RESET_PIN -1 #define ESP3D_RESET_PIN -1
#endif //PIN_RESET_FEATURE #endif // PIN_RESET_FEATURE
#ifdef SD_DEVICE_CONNECTION #ifdef SD_DEVICE_CONNECTION
#ifndef ESP_SD_DETECT_VALUE #ifndef ESP_SD_DETECT_VALUE
#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
#endif //SD_DEVICE_CONNECTION == ESP_SHARED_SD #endif // SD_DEVICE_CONNECTION == ESP_SHARED_SD
#endif //SD_DEVICE_CONNECTION #endif // SD_DEVICE_CONNECTION

View File

@ -20,17 +20,16 @@
#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
#if !defined (ESP_SAVE_SETTINGS) #if !defined(ESP_SAVE_SETTINGS)
#error Choose Preferences or EEPROM for settings #error Choose Preferences or EEPROM for settings
#endif #endif
@ -41,42 +40,41 @@
#if defined(ESP_DEBUG_FEATURE) #if defined(ESP_DEBUG_FEATURE)
#if ESP_DEBUG_FEATURE == ESP_SERIAL_OUTPUT #if ESP_DEBUG_FEATURE == ESP_SERIAL_OUTPUT
#warning You use same serial for output and debug #warning You use same serial for output and debug
#endif //ESP_DEBUG_FEATURE == ESP_SERIAL_OUTPUT #endif // ESP_DEBUG_FEATURE == ESP_SERIAL_OUTPUT
#if (ESP_DEBUG_FEATURE == DEBUG_OUTPUT_SERIAL2) && defined( ARDUINO_ARCH_ESP8266) #if (ESP_DEBUG_FEATURE == DEBUG_OUTPUT_SERIAL2) && defined(ARDUINO_ARCH_ESP8266)
#error Serial 2 is not available in ESP8266 for debug #error Serial 2 is not available in ESP8266 for debug
#endif //ESP_DEBUG_FEATURE == DEBUG_OUTPUT_SERIAL2 ) && ARDUINO_ARCH_ESP8266 #endif // ESP_DEBUG_FEATURE == DEBUG_OUTPUT_SERIAL2 ) && ARDUINO_ARCH_ESP8266
#endif //ESP_DEBUG_FEATURE #endif // ESP_DEBUG_FEATURE
/************************** /**************************
* Serial * Serial
* ***********************/ * ***********************/
#if !defined(ESP_SERIAL_OUTPUT) && COMMUNICATION_PROTOCOL!=SOCKET_SERIAL #if !defined(ESP_SERIAL_OUTPUT) && COMMUNICATION_PROTOCOL != SOCKET_SERIAL
#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
* ***********************/ * ***********************/
#if defined (BLUETOOTH_FEATURE) && defined( ARDUINO_ARCH_ESP8266) #if defined(BLUETOOTH_FEATURE) && defined(ARDUINO_ARCH_ESP8266)
#error Bluetooth is not available in ESP8266 #error Bluetooth is not available in ESP8266
#endif #endif
/************************** /**************************
* Ethernet * Ethernet
* ***********************/ * ***********************/
#if defined (ETH_FEATURE) && defined( ARDUINO_ARCH_ESP8266) #if defined(ETH_FEATURE) && defined(ARDUINO_ARCH_ESP8266)
#error Ethernet is not available in ESP8266 #error Ethernet is not available in ESP8266
#endif #endif
@ -84,39 +82,47 @@
* Time * Time
* ***********************/ * ***********************/
/************************** /**************************
* Filesystem * Filesystem
* ***********************/ * ***********************/
#if FILESYSTEM_FEATURE == ESP_FAT_FILESYSTEM && defined( ARDUINO_ARCH_ESP8266) #if FILESYSTEM_FEATURE == ESP_FAT_FILESYSTEM && defined(ARDUINO_ARCH_ESP8266)
#error Fat FS is not available in ESP8266 #error Fat FS is not available in ESP8266
#endif #endif
#if FILESYSTEM_FEATURE == ESP_SPIFFS_FILESYSTEM && defined( ARDUINO_ARCH_ESP8266) #if FILESYSTEM_FEATURE == ESP_SPIFFS_FILESYSTEM && defined(ARDUINO_ARCH_ESP8266)
#error ESP_SPIFFS_FILESYSTEM is no more available in ESP8266, use ESP_LITTLEFS_FILESYSTEM instead #error ESP_SPIFFS_FILESYSTEM is no more available in ESP8266, use ESP_LITTLEFS_FILESYSTEM instead
#endif #endif
/************************** /**************************
* Camera * Camera
* ***********************/ * ***********************/
#if defined(CAMERA_DEVICE) && defined( ARDUINO_ARCH_ESP8266) #if defined(CAMERA_DEVICE) && defined(ARDUINO_ARCH_ESP8266)
#error Camera is not available in ESP8266 #error Camera is not available in ESP8266
#endif #endif
/************************** /**************************
* SD * SD
* ***********************/ * ***********************/
#if defined(SD_DEVICE) && defined( ARDUINO_ARCH_ESP8266) #if defined(SD_DEVICE) && defined(ARDUINO_ARCH_ESP8266)
#if SD_DEVICE == ESP_SDIO #if SD_DEVICE == ESP_SDIO
#error SDIO is not available in ESP8266 #error SDIO is not available in ESP8266
#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
* ***********************/ * ***********************/
@ -166,6 +172,6 @@
#error SD_UPDATE_FEATURE is not available because SD_DEVICE is not enabled #error SD_UPDATE_FEATURE is not available because SD_DEVICE is not enabled
#endif #endif
#endif //ESP_NO_SANITY_CHECK #endif // ESP_NO_SANITY_CHECK
#endif //SANITY_ESP3D_H #endif // SANITY_ESP3D_H

View File

@ -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");

View File

@ -20,96 +20,93 @@
#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,
ESP_SDFile(void * handle = nullptr, bool isdir =false, bool iswritemode = false, const char * path = nullptr); bool iswritemode = false, const char* path = nullptr);
ESP_SDFile(const char * name, const char * filename, bool isdir = true, size_t size =0); ESP_SDFile(const char* name, const char* filename, bool isdir = true,
~ESP_SDFile(); size_t size = 0);
operator bool() const; ~ESP_SDFile();
bool isDirectory(); operator bool() const;
bool seek(uint32_t pos, uint8_t mode = ESP_SEEK_SET); bool isDirectory();
const char* name() const; bool seek(uint32_t pos, uint8_t mode = ESP_SEEK_SET);
const char* shortname() const; const char* name() const;
const char* filename() const; const char* shortname() const;
void close(); const char* filename() const;
bool isOpen(); void close();
ESP_SDFile & operator=(const ESP_SDFile & other); bool isOpen();
size_t size(); ESP_SDFile& operator=(const ESP_SDFile& other);
time_t getLastWrite(); size_t size();
int available(); time_t getLastWrite();
size_t write(uint8_t i); int available();
size_t write(const uint8_t *buf, size_t size); size_t write(uint8_t i);
int read(); size_t write(const uint8_t* buf, size_t size);
size_t read(uint8_t* buf, size_t size); int read();
void flush(); size_t read(uint8_t* buf, size_t size);
ESP_SDFile openNextFile(); void flush();
private: ESP_SDFile openNextFile();
String _dirlist;
bool _isdir; private:
bool _iswritemode; String _dirlist;
int8_t _index; bool _isdir;
String _filename; bool _iswritemode;
String _name; int8_t _index;
size_t _size; String _filename;
time_t _lastwrite; String _name;
size_t _size;
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(); static bool accessFS(uint8_t FS = FS_SD);
static bool accessFS(uint8_t FS = FS_SD); static void releaseFS(uint8_t FS = FS_SD);
static void releaseFS(uint8_t FS = FS_SD); static uint8_t getFSType(const char* path = nullptr);
static uint8_t getFSType(const char * path=nullptr); static void handle();
static void handle(); static void end();
static void end(); static uint8_t getState(bool refresh = false);
static uint8_t getState(bool refresh=false); static uint8_t setState(uint8_t state);
static uint8_t setState(uint8_t state); static void refreshStats(bool force = false);
static void refreshStats(bool force = false); static uint64_t totalBytes(bool refresh = false);
static uint64_t totalBytes(bool refresh = false); static uint64_t usedBytes(bool refresh = false);
static uint64_t usedBytes(bool refresh = false); static uint64_t freeBytes(bool refresh = false);
static uint64_t freeBytes(bool refresh = false); static uint maxPathLength();
static uint maxPathLength(); static const char* FilesystemName();
static const char * FilesystemName(); static bool format(ESP3DOutput* output = nullptr);
static bool format(ESP3DOutput * output = nullptr); static ESP_SDFile open(const char* path, uint8_t mode = ESP_FILE_READ);
static ESP_SDFile open(const char* path, uint8_t mode = ESP_FILE_READ); static bool exists(const char* path);
static bool exists(const char* path); static bool remove(const char* path);
static bool remove(const char *path); static bool mkdir(const char* path);
static bool mkdir(const char *path); 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() { return _spi_speed_divider; }
static uint8_t getSPISpeedDivider() static bool setSPISpeedDivider(uint8_t speeddivider);
{
return _spi_speed_divider;
}
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
} private:
#endif // SD_DEVICE_CONNECTION == ESP_SHARED_SD static bool _started;
private:
static bool _started;
#if SD_DEVICE_CONNECTION == ESP_SHARED_SD #if SD_DEVICE_CONNECTION == ESP_SHARED_SD
static bool _enabled; static bool _enabled;
#endif // SD_DEVICE_CONNECTION == ESP_SHARED_SD #endif // SD_DEVICE_CONNECTION == ESP_SHARED_SD
static uint8_t _state; static uint8_t _state;
static uint8_t _spi_speed_divider; static uint8_t _spi_speed_divider;
static bool _sizechanged; static bool _sizechanged;
}; };
#endif //_ESP_SD_H
#endif //_ESP_SD_H

View File

@ -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;
} }

View File

@ -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;
} }