DIY Wireless SD Card Wemos D1 ESP8266

Features of the Wireless SD Card

This is such an amazing little tool to have for so many reasons.

Photos of how to connect and use this device are at the bottom of the article past the sketch.

Broadcasts its own wifi signal for you to connect to.

Use a free FTP app on your smartphone or PC to send and receive photos, videos or files.

It uses the exact same IP address every time so once you’ve set it up in your FTP manager you just click a button to send files.

Powered by good old fashioned USB or a 5v source.

Let’s talk about speeds

The speed of this device is not going to win any races but the low cost of a WemosD1 makes this worth it.

Upload speed is between 100 to 200 KBPS that’s kilobytes per second.
Download is faster at 200 to 300 KBPS.

When I tested the speeds I downloaded a 3.5MB photo and it took just under 10 seconds. This is the kind of device where you select all of the photos you want to move, click start and then go about another multitask.

I’m using an Iphone and an app called FTPManager that allows for one free connection at a time. The full app is $3.99

Wiring Schematic

MicroSD WemosD1

The Sketch

Important: You need three files, the sketch below is the first and then you need two more in the same folder as the sketch that can be downloaded here: CLICK HERE

#include <SD.h>
#include <ESP8266WiFi.h>
#include "ESP8266FtpServer.h"
const char* ssid = "SDcard1";
const char* password = "12345678";
// config static IP
IPAddress apIP(192, 168, 12,7);  
IPAddress gateway(192, 168,12, 7);
IPAddress subnet(255, 255, 255, 0); 
FtpServer ftpSrv;//set #define FTP_DEBUG in ESP8266FtpServer.h to see ftp verbose on serial
void setup(void){
  //Setting the Ip address for the WiFi connectivity
  WiFi.config(apIP, gateway, subnet);
  Serial.print("Configuring access point...");
  //Setting the esp to softaccess point mode
  //changing softAP config and starting the Start AP
  WiFi.softAPConfig(apIP, gateway, subnet);
  WiFi.softAP(ssid, password);
  Serial.println("Access point completed");  
  //2 indicates the Chip select pin
  if (SD.begin(D4)) {
      Serial.println("SD opened!");
      ftpSrv.begin("esp8266","esp8266");    //username, password for ftp.  set ports in ESP8266FtpServer.h  (default 21, 50009 for PASV)
    Serial.println("SD not opened");   
void loop(void){
  ftpSrv.handleFTP();        //make sure in loop you call handleFTP()!!   

Using the wireless sd card with my Iphone:

Open up your wifi connections and select SDcard1. If you want a different wifi signal look for these lines in the sketch above:
const char* ssid = “SDcard1”;
const char* password = “12345678”;

Change SDcard1 to what ever you like, the password is 12345678

Now open up your favorite ftp app, I’m using FTPManager Pro.

In the photo above you can see the PLUS sign at the top right, click that.

Then select FTP

Display Name can be what ever you want to show in the app, it doesn’t have to be the same as the wifi signal but I did keep it the same.

Type in the IP address of

Leave everything else alone except username and password which are both esp8266 and this can also be changed in the sketch

Leave a Reply

Your email address will not be published. Required fields are marked *