wordclock_esp8266
Software for a Wordclock based on ESP8266 and Neopixel LEDs with PONG, TETRIS, SNAKE game modes
A simple FTP server for Arduino, ArduinoSAMD WiFiNINA, esp8266, esp32, stm32 and Raspberry Pi Pico W
git clone https://github.com/xreef/SimpleFTPServer.gitxreef/SimpleFTPServerA lightweight Arduino/embedded library to expose a device filesystem over FTP, allowing uploads, downloads and remote file management from standard FTP clients (FileZilla, WinSCP, Explorer, etc.). This version supports a single FTP session.
Author: Renzo Mischianti Website: www.mischianti.org GitHub: xreef/SimpleFTPServer
Complete tutorials and platform-specific guides by the author are available on mischianti.org.
FtpServerKey.hbegin() and handleFTP()| Platform | Filesystems | Notes |
|---|---|---|
| ESP32 | SPIFFS, LittleFS, FFAT, SD, SD_MMC | Full support, see examples |
| ESP8266 | SPIFFS, LittleFS, SD | Limited RAM vs ESP32 |
| RP2040 / Pico W | LittleFS, SD | See Pico W examples |
| STM32 | SdFat, SPI flash | Use SdFat examples |
| Arduino (AVR) | SD (8.3), SdFat | Use SdFat for better compatibility |
| Wio Terminal | SdFat, Seed SD, native FAT | See Wio examples |
⚠️ Note: Some older AVR boards (Uno/Mega) have limited RAM and may not support large transfers.
libraries/ folderAdd to platformio.ini:
lib_deps = xreef/SimpleFTPServer
#include <WiFi.h>
#include "SPIFFS.h"
#include <SimpleFTPServer.h>
const char* ssid = "YOUR_SSID";
const char* password = "YOUR_PASS";
FtpServer ftpSrv;
void setup(){
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println();
Serial.print("Connected. IP: ");
Serial.println(WiFi.localIP());
// Mount filesystem before starting FTP
if (SPIFFS.begin(true)) {
Serial.println("SPIFFS opened!");
// username, password for ftp.
ftpSrv.begin("esp32","esp32");
}
}
void loop(){
ftpSrv.handleFTP();
}
See FtpServerKey.h for config defines and defaults. Key settings:
FTP_BUF_SIZE — transfer buffer sizeFTP_TIME_OUT — inactivity timeout (seconds)FTP_AUTH_TIME_OUT — authentication timeout (seconds)DEBUG_PRINTER — debug output stream (defaults to Serial)UTF8_SUPPORT — enable/disable UTF-8 supportSee the examples/ folder for ready-to-use sketches for many platforms (ESP32, ESP8266, RP2040, STM32, Wio Terminal, Arduino). Adapt SSID, credentials and SD pins as needed.
2025-11-28 3.0.2
2025-11-22 3.0.1 Fix / Example:
ESP32_SD_WiFi demonstrating SD (SPI) + WiFi usage with SimpleFTPServer.2025-10-13 3.0.0 Fix:
2025-02-11 2.1.11 Management of relative and absolute path in command prompt (./ ../ /)
2025-01-28 2.1.11 Fix REST and add ALLO, and STAT commands
2025-01-13 2.1.11 Add addictional LOG to prevent multiple user issues
2025-01-12 2.1.11 Add REST (resume) command
2025-01-11 2.1.10 Multiple minor fix and optimization
2024-09-16 2.1.9 Fix LittleFS filename size.
2024-07-16 2.1.8 Add SYST command.
2023-10-07 2.1.7 Fix ESP32 rename on SD (thanks @scuba-hacker) #44
2023-02-02 2.1.6 Fix esp8266 Ethernet (w5x00) issue and explain solution for ESP32 Ethernet (w5x00), add new Networks management
2023-01-13 2.1.5 Fix SPIFM external SPI Flash date management (add SPIFM esp32 example)
2022-09-21 2.1.4 Add support for Raspberry Pi Pico W and rp2040 boards, Fix SD card config
2022-09-20 2.1.3 Soft AP IP management, more disconnect event and SD_MCC
2022-05-21 2.1.2 Fix SD path (#19)
2022-05-21 2.1.1 Minor fix
2022-03-30 2.1.0 Add UTF8 support and enabled It by default (Thanks to @plaber)
2022-03-30 2.0.0 Complete support for STM32 with SD and SPI Flash minor bux fix and HELP command support
2022-03-17 1.3.0 Fix enc28j60 and w5500 support and restructuring for local settings
2022-02-25 1.2.1 Fix anonymous user begin and fix SPIFFS wrong display
2022-02-22 1.2.0 Add anonymous user and implement correct RFC (#9 now work correctly with File Explorer)
2022-02-01 1.1.1 Add workaround to start FTP server before connection, add end and setLocalIP method.
MIT License — see LICENSE.md for details.
Copyright (c) 2017-2025 Renzo Mischianti
Contributions are welcome! Fork the repo, create a feature branch, commit and submit a Pull Request. Please ensure examples build on target platforms before opening a PR.
Renzo Mischianti Website: https://www.mischianti.org Email: renzo.mischianti@gmail.com GitHub: @xreef
⭐ If this library helped your project, please star the repository on GitHub!
more like this
Software for a Wordclock based on ESP8266 and Neopixel LEDs with PONG, TETRIS, SNAKE game modes
Arduino library and MATLAB/Simulink API for the AutomationShield Arduino expansion boards for control engineering educa…
search projects, people, and tags