How do you communicate with your 3D printer? Carrying an SD card between your computer and the printer? This can end now using the SD-WIFI module! If you try to get it running on a Mac, some extra effort may be necessary.
What is SD-WIFI good for?
There are a couple of different ways to get 3D-data to your printer. You can do it over LAN or USB, if your printer supports that. You can use an Octoprint server running on a Raspberry Pi. Or you carry an SD card from your computer to the printer.
The Prusa i3 MK3 printer (which I use) uses the SD card method as the default. If you invest in a Raspberry Pi, you can use WLAN and Octoprint. And this is my plan—when Raspberry Pis are affordable again, which is announced to be the case later this year.
However, since plugging the SD-card in and out is not much fun, I decided as a provisional solution to buy an SD-card with WLAN connectivity. There used to be a number of different such cards around for digital cameras. However, now I only found some no-name brands and Canon, which all did not look convincing. And then I found the SD-WIFI module, which looks quite attractive.
The module and its firmware have been developed by the GitHub user ardyesp. It is an SD card adapter with a microSD slot and an ESP8266 on it. On the ESP8366, a WebDAV server has been implemented. The module is produced and distributed by the Chinese 3D printer company FYSETC. One can buy these cards at eBay and 3D printing online shops for around €20. Getting to the point that all this is usable is not completely easy, though, in particular if you try to do it on a Mac. I spent the better part of an afternoon trying to get the card up and running.
Configuring the card
One finds some information about how to configure and start the SD-WIFI module in the FYSETC GitHub repo. I tried the first way to configure the card, which is to put a file
SETUP.INI in the root directory of the Micro-SD-card. The file needs to contain the SSID and the password for your WLAN. Plugging the SD-WIFI card into my 3D printer resulted in … nothing. In particular, no new IP address showed up in my WLAN.
So, I tried the second way. It consists of connecting over USB to the card using a serial connection. In order to do so, you need to set the switch on the card to the position
USB2UART and put a USB cable into the card and your computer. Then you need a serial terminal window. On a Mac, you can do that with the program
screen. Under Windows, people usually use
PuTTY. Unfortunately, the instructions do not tell you, what baud rate you should select. Inspecting the code, it seems that 115200 is the right baud rate. However, when you connect and press the reset button, then the output of the module looks as follows.
This looks suspiciously as if the wrong baud rate has been chosen or perhaps one of the other communication parameters, e.g., parity, is wrong. However, if you are patient, after a while some reasonable things seem to happen.
The module tried to connect to the local WLAN and failed. The instructions state that you can set the SSID and WLAN password using the prefix
M51 respectively. So I typed
M50fogsnet (capital M!), where
fogsnet is the SSID of my WLAN. However, nothing happened. In particular, the input is not shown in the terminal window. Pressing
<RETURN> then gave the response
fogsnetok. OK, we are in business now. So, I followed up with M51 and the WLAN password and again a
M in order to start up the WebDAV server.
Obviously, the user interface has not been designed for a plain serial terminal, but probably for something line-oriented with local echo. But who cares. Now it works.
The LED on the card blinks every second, and one expects that everything is in order. Indeed, you can unplug the USB cable from your card and put it into your 3D printer. Now, the 3D printer is able to read the files that are on the card. After a while, the LED will again start blinking because the SD-WIFI card has remembered the WLAN parameters and connected again.
Connecting to the WebDAV server
Now you should be able to connect to the SD-WIFI card using the WebDAV protocol, which allows mounting a file system from a remote server into the local file system. Under macOS, you use the
Go->Connect to Server command. Just specify the IP address, which was displayed in the last step above, and the
http protocol, when asked for the server address, as in
http://192.168.X.Y . Then you will be asked for user credentials, or you can specify that you want to login as a guest. Unfortunately, one always gets strange error messages. You can also try the
https protocol. Again a failure.
Under Windows, you can type
\\192.168.X.Y\DavWWWRoot\ into the Explorer input line, and … wham … the content of the microSD card is shown. Similarly, when using Ubuntu, the microSD card can be reached via
So what is wrong with macOS? I have no idea! Even intensive googling did not help. As a last resort, I tried out programs that connect to cloud storage, such as CloudMounter and ocsmount. And with both, I was finally able to connect to the microSD card. Hurrah! So, I bought the latter one, and I am now a happy user, who does not have to carry the SD-card around. I still have to walk over to the printer to start it, though.
Finally, I should mention another potential pitfall, I fortunately did not encounter. You may need to install a driver for the USB-serial IC, the CH340. Sparkfun has a good tutorial on that.
Conclusions after 2 months of usage
So far, I have used the card quite often. Unfortunately, recently, I experienced some WebDAV disconnects and file transfer errors, leading to printing errors. So, I am back to carrying the SD-card between computer and printer.