- ESP32-PICO with 4MB flash memory, ceramic antenna, SD Card with no serial header, the sharing of SD card between ESP and printer/CNC is done by a multiplexer which make sharing reliable without risk of conflict, only one device can access to SD at once.

configuration.h
Section titled “configuration.h”// This file was generated by ESP3D-Configurator V1.0.0-a27
/*
configuration.h - ESP3D configuration file
Copyright (c) 2014 Luc Lebosse. All rights reserved.
This code is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This code is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with This code; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef _CONFIGURATION_H
#define _CONFIGURATION_H
//Setup station as default, use AP mode first if not done
//Note: need both defined to enable it
//Uncomment and edit them to define
//#define STATION_WIFI_SSID "*********"
//#define STATION_WIFI_PASSWORD "*********"
//You can also use a different config file for SSID/password
//Just save it in same location as this configuration.h
//This file is ignored by github
#if defined __has_include
# if __has_include ("myconfig.h")
# include "myconfig.h"
# endif
#endif
/************************************
*
* Board description
*
* ESP Board using ESP3D firmware
*
************************************/
// MCU=ESP32
// ESP flash size=4MB
// Form factor=Original (all pins)
// Flash mode=dio
// Has PSRAM=null
/************************************
*
* Serial Communications
*
* Settings and protocols
*
************************************/
// Serial Communication protocol
// Basic serial protocol, without data change
#define COMMUNICATION_PROTOCOL RAW_SERIAL
// Serial port
#define ESP_SERIAL_OUTPUT USE_SERIAL_0
// Serial buffer size
// 512 Bytes
// Maximum size of the serial buffer
#define SERIAL_RX_BUFFER_SIZE 512
/************************************
*
* Target firmware
*
* Targeted firmware that ESP3D will communicate with
*
************************************/
// System type=3D printer
// Target firmware
// Undefined firmware
#define DEFAULT_FW UNKNOWN_FW
/************************************
*
* Radio mode of ESP3D
*
* The radio mode ESP3D communicate with the network
*
************************************/
// Use WiFi
// Enable wifi communications
#define WIFI_FEATURE
/************************************
*
* Channels of ESP3D
*
* The way ESP3D communicate
*
************************************/
// Use webserver
// Enable http server
#define HTTP_FEATURE
/************************************
*
* Discovery methods of ESP3D
*
* The discovery methods of ESP3D
*
************************************/
// Use captive portal
// Enable captive portal in AP mode
#define CAPTIVE_PORTAL_FEATURE
// Use mDNS discovery
// This method need `bonjour` protocol on windows, or `avahi` on linux
#define MDNS_FEATURE
// Use Simple Service Discovery Protocol
// It is supported on Windows out of the box
#define SSDP_FEATURE
/************************************
*
* SSDP Customization settings
*
* Customize your ESP3D
*
************************************/
// Model name
// Modele name of device
#define ESP_MODEL_NAME "ESP32"
// Model number
// Modele number of device
#define ESP_MODEL_NUMBER "ESP3D 3.0"
// Model url
// Modele url of device
#define ESP_MODEL_URL "https://www.espressif.com/en/products/devkits"
// Manufacturer name
// Manufacturer name of device
#define ESP_MANUFACTURER_NAME "Espressif Systems"
// Manufacturer url
// Manufacturer url of device
#define ESP_MANUFACTURER_URL "https://www.espressif.com"
/************************************
*
* Flash filesystem
*
* Filesystem on flash
*
************************************/
// File system type
// LittleFS
// Type of file system used by ESP3D to store files
#define FILESYSTEM_FEATURE ESP_LITTLEFS_FILESYSTEM
/************************************
*
* SD filesystem
*
* Filesystem on SD card
*
************************************/
// SD card connection
// Your system has SDCard and your ESP is connected to it using sharing solution
// Does your system has SD card and how it is connected to your ESP3D
#define SD_DEVICE_CONNECTION ESP_SHARED_SD
// SD card library
// No additionnal library required
#define SD_DEVICE ESP_SD_NATIVE
//Default confiuration for FYSETC WIFI SD PRO card
#define SD_CARD_TYPE ESP_FYSETC_WIFI_PRO_SDCARD
// Enable date/time on files
// Set date/time on files using SNTP or last webui connection
#define SD_TIMESTAMP_FEATURE
/************************************
*
* Remote access
*
* Remote filesystem access
*
************************************/
// Enable global filesystem
// Allows to access to all filesystems fromsame location
#define GLOBAL_FILESYSTEM_FEATURE
// WebDav access
// All filesystems
// Use WebDav to access to your filesystem
#define WEBDAV_FEATURE FS_ROOT
/************************************
*
* Update ESP3D
*
* Update ESP3D firmware
*
************************************/
// Enable Web Update
// Update firmware using WebUI
#define WEB_UPDATE_FEATURE
// Enable SD card Update
// Update firmware and settings using file on SDCard
#define SD_UPDATE_FEATURE
/************************************
*
* Display settings
*
* Rendering screens
*
************************************/
// Printer screen
// Your printer has a display
#define PRINTER_HAS_DISPLAY
/************************************
*
* Levels of security
*
* How commands are allowed to be sent to ESP3D
*
************************************/
// Enable serial commands
// Allow commands to be sent to ESP3D via serial port
#define SERIAL_COMMAND_FEATURE
/************************************
*
* Default settings for ESP3D
*
* Do not edit them
*
************************************/
// Gcode Host Feature
// This feature allows to process Gcode files like macros.
#define GCODE_HOST_FEATURE
// Settings location
// EEPROM
// Location where ESP3D will save settings
#define ESP_SAVE_SETTINGS SETTINGS_IN_EEPROM
// Add serial task
// ESP32 need to add a task to handle serial communication
#define SERIAL_INDEPENDANT_TASK
/************************************
*
* Development setting
* Do not modify them for production
************************************/
//Enable debug mode
//Do not do this when connected to printer !!!
//be noted all upload may failed if enabled
//DEBUG_OUTPUT_SERIAL0
//DEBUG_OUTPUT_SERIAL1
//DEBUG_OUTPUT_SERIAL2
//DEBUG_OUTPUT_TELNET
//DEBUG_OUTPUT_WEBSOCKET
//#define ESP_DEBUG_FEATURE DEBUG_OUTPUT_SERIAL0
#ifdef ESP_DEBUG_FEATURE
#define DEBUG_BAUDRATE 115200
#define DEBUG_ESP3D_OUTPUT_PORT 8000
#endif //ESP_DEBUG_FEATURE
//Enable benchmark report in dev console
//#define ESP_BENCHMARK_FEATURE
//Disable sanity check at compilation
//#define ESP_NO_SANITY_CHECK
/************************************
*
* Sanity checks
* Do not modify
************************************/
#if defined(ESP_GOT_DATE_TIME_HOOK) || defined (SD_TIMESTAMP_FEATURE) || defined (FILESYSTEM_TIMESTAMP_FEATURE)
#define TIMESTAMP_FEATURE
#endif //SD_TIMESTAMP_FEATURE || FILESYSTEM_TIMESTAMP_FEATURE
#if defined(PRINTER_HAS_DISPLAY)
#define HAS_SERIAL_DISPLAY ""
#endif // PRINTER_HAS_DISPLAY
#if defined(CAMERA_DEVICE)
#if CAMERA_DEVICE==CAMERA_MODEL_ESP32_CAM_BOARD || CAMERA_DEVICE==CAMERA_MODEL_ESP32S2_CAM_BOARD
#define USE_BOARD_HEARDER 1
#endif // CAMERA_DEVICE==CAMERA_MODEL_ESP32_CAM_BOARD || CAMERA_DEVICE==CAMERA_MODEL_ESP32S2_CAM_BOARD
#endif // CAMERA_DEVICE
#if !defined(WIFI_FEATURE) && !defined(ETH_FEATURE)
#undef HTTP_FEATURE
#undef TELNET_FEATURE
#undef WEBDAV_FEATURE
#undef FTP_FEATURE
#undef WEB_UPDATE_FEATURE
#undef CAPTIVE_PORTAL_FEATURE
#undef SSDP_FEATURE
#undef MDNS_FEATURE
#undef NOTIFICATION_FEATURE
#endif
#endif //_CONFIGURATION_H
platformio.ini
Section titled “platformio.ini”;This file was generated by ESP3D-Configurator V1.0.0-a27
; PlatformIO Project Configuration File
;
; Build options: build flags, source filter
; Upload options: custom upload port, speed and extra flags
; Library options: dependencies, extra library storages
; Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html
[platformio]
src_dir = esp3d
build_dir = .pioenvs
lib_dir = libraries
libdeps_dir = .piolibdeps
data_dir = esp3d/data
default_envs = esp32_4MB_wifi
[env:esp32_4MB_wifi]
platform = espressif32@6.2.0
board = esp32dev
framework = arduino
monitor_speed = 115200
monitor_echo = yes
monitor_filters = send_on_enter, colorize, esp32_exception_decoder
; set frequency to 240MHz
;board_build.f_cpu = 240000000L
; set frequency to 80MHz
;board_build.f_flash = 80000000L
board_build.flash_mode = dio
upload_speed = 460800
extra_scripts = pre:platformIO/extra_script.py
board_build.filesystem = littlefs
board_upload.flash_size = 4MB
board_build.partitions = default.csv
build_flags = -DCORE_DEBUG_LEVEL=0
lib_ignore = esp32-usb-serial