Setting up FTP server to enable deployment

In preparation for moving my application from my development board to the world at large, I need to make sure that my application includes an FTP server with the required characteristics so that I can upload image.bin files to it when a firmware upgrade is required.

I’m unclear as to the precise settings I need to incorporate to make this work; there are a couple of different FTP server examples in ESP, but I can’t find a clear statement of what is needed to enable deployment.

For example, if I create a project using the standard Wizard, which calls the initAppServices() routine from its root.c file, it seems I obviously need to have the macro FTP_SERVER_ENABLED defined as TRUE (in appservices.h), but do I also need to have FLASH_FILESYSTEM_ENABLED defined as well? The latter does not seem to be defined by default.

I don’t need to have a directory structure as such within my device’s flash memory, but I would like to be able to store one other file, an XML configuration file. Can this go into the same directory (or into the root directory) along with the image.bin file? Or do I need to create a dedicated driectory for it?


THe sample application is set up so that both FTP and the Web interface will operate correctly to downlaod firmware.

Easiest thing to do is to statr a new project and tick to include the FTB and HTTP servers, and then integrate your code into this application.

I believe that I am correct in saying that the firmware download does not actually use the File System. I think that the firmware update mechasnism traps the request based on the file name and does all its work in RAM without actually writing to the file system

Thank you, that’s exactly what I’m doing at the moment but it helps to understand what is going on behind the scenes.