OGO-FTPD: An FTP Server for the ODROID-GO

In this article, I will introduce you to an FTP server for the ODROID-GO. It is a rather minimal implementation that currently does not support authentication and passive mode operation. The use case I aimed for is one to transfer and manage your ODROID files on a trusted WiFi network, for which it already works quite good.

The reason for developing this application was that I recently got the ODROID-GO, but could not find my SD card reader. Since I could still flash the ODROID-GO using the USB cable, I thought it might be a good idea to implement an FTP server for the ODROID-GO. It was a nice learning experience, but took much longer than buying a new card reader, which I did later. Once I started working on the server, I wanted to finish a usable version. Later, I read in the Project Suggestions post in the forum (https://goo.gl/6wzxFv) that someone actually would like to use the odroid as a FTP Server. So I hope this will be helpful to you.

The maximum speed I got is around 500 KB/s, but I am not sure if the SD card or WiFi connection is the bottleneck. The tests were performed on Linux using FileZilla (https://filezilla-project.org) as a client. I would love to hear your impressions and bug reports on it.

You can download the application at https://github.com/Paspartout/ogo-ftpd/releases, and the source is available at https://github.com/Paspartout/ogo-ftpd. It is a known issue that sometimes I have to restart the app to make it connect to my WiFi.

In order to configure the WiFi access point that the ODROID should use, you have to place a file named wifi.json into the root folder of your SD card. The contents should follow this pattern:

{"networks": [{"ssid": "YOUR_SSID", "password": "YOUR_PASSWOD", "authmode": "YOUR_AUTHMODE"}]}
YOUR_AUTHMODE can be one of the following:

  • open
  • wep
  • wpa-psk
  • wpa2-psk
  • wpa/wpa2-psk

You can also add multiple networks by adding them to the json array. I may add the ability to configure the wifi using an on screen keyboard like the odroid-go-launcher does (https://github.com/jkent/odroid-go-launcher). I found the odroid-go-launcher to be an interesting project, especially the ability to install and use multiple apps without reflashing every time. The server uses some code from Jeff Kent, who created the launcher, so I want thank him for that.

For secure transferring of files over the Internet, even more things like encryption will be needed. Passive mode and authentication should not be difficult to implement, and maybe even FTPS (https://en.wikipedia.org/wiki/FTPS) might be easy to add, because the esp-idf already provides a TLS implementation. Pull requests are very welcome.

For comments, questions and suggestions, please visit the original post at https://forum.odroid.com/viewtopic.php?f=158&t=33275.

Be the first to comment

Leave a Reply