github

Specs

  • 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.

image image

Note

Because there is no serial connection to printer, the features are limited to SD card access features

Note

My boards have only 4MB flash and no PSRAM unlike described in github and FYSETC website, so the following pio settings are limited to 4MB flash size and no PSRAM, if you have an 8MB board and 2MB PSRAM you may need to adjust the parameters .

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

;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