Micropython FTP for the ESP32 MCU facilitates fast file transfers with your PC

A Micropython FTP Program: Fast File Transfer for the ESP32 MCU

Micropython is a compact subset of the Python 3 programming language. Designed for microcontrollers, it can be used to program the advanced ESP32 microcontroller from Espressif®.

Micropython FTP settings for ESP32 microprocessorThe ESP32 with Micropython comes very close to being a full blown computing system, albeit a very small one.

Micropython actually has an operating system that allows you to create/delete/copy sub-folders and files.

This is a considerable breakthrough as it creates an environment that is similar to what many users are familiar with on a PC, making it much more user-friendly, in our estimation.

It has a very active community, and 3 highly competent programmers have created an FTP (File Transfer Protocol) server that you can use with a regular FTP program on your PC.

We have developed an educational kit that includes the ESP32, with a remote control shade motor as a practical application that you can actually use in your home. This makes a great gift for anyone interested in learning how to use microcontrollers! Got a geek in your life? Please see the links at the bottom of this page for more info.

Micropython FTP Server Connection Screen

There isn't much you have to do in the way of settings (see picture above) ... just enter the IP address of your ESP32, set the protocol for plain old insecure FTP, and leave the identity as anonymous (no user or password required). Press the Connect button and voila, you'll be logged into the ESP32!

We use the FileZilla FTP program for transferring files to/from the ESP32, but there are many FTP programs to choose from; here is what the Filezilla screen (wwhen connected to ESP32) looks like:

Micropython FTP screen connected to ESP32 microprocessor

Micropython FTP Server for ESP32 Download

If you want to download the FTP program you'll find it on Github:

Micropython FTP for ESP32 microcontroller

We have also pre-loaded the Micropython FTP script onto the ESP32, and it can be called with the IMPORT command at the REPL prompt, like this:

>>> import start_ftp

As noted on the Github site, the FTP script does not coexist well with other programs running at the same time, so it is best to reboot the ESP32 device before you test a different Micropython script. This won't slow you down much because the ESP32 is so incredibly fast it will be back online from a cold start in less than a second!

You can also place a call in the code of the connect_wifi.py file to auto-load the FTP program (look at the line of code around 131). We use that file because there's no point loading FTP if the WiFi connection fails. The connect_wifi.py script is called automatically by the auto-loading main.py at boot time.


You can purchase educational kits for blinds and window openers, and our control products in our online DIY automation store.

Stay tuned, if you're interested; we are taking the journey into IoT and automation, writing about every step we take!

Adrian Biffen
Senior Partner
RollerTrol Automation Systems

We sincerely hope you enjoy our advanced technology products; if you have any questions, please contact us at any time!

Articles in this series:

Part 1: Micropython for the ESP32: Connecting to Your WiFi Router Network

Part 2: Micropython for the ESP32 Microcontroller: REPL Communications

Part 3: Micropython for the ESP32: FTP Fast File Transfer (you are here)

Part 4: Micropython for the ESP32: Pre-loaded Programs

Part 5: Micropython for the ESP32: DC Motor Reversing Switch

Part 6: Micropython for the ESP32: WiFi Blind Motor Educational Kit Components

Part 7: Micropython for the ESP32: Error Codes and Definitions