Page 1 of 1

micro FTP server for DS (v0.70)

Posted: Fri Aug 27, 2010 6:54 am
by laser
Hi All,

This is a basic FTP server implementation for the DS using the devkitARM tool chain.
It is by no means a full FTP server implementation. It's intention is to allow for
basic SD card file manipulation over Wifi without having to constantly remove the SD card.

The motivation was to make a small, no frills, fast, clean and reliable FTP server as a
development tool to get your creations on to the SD card for testing. It uses safe
buffered file read and writes mode so that there is minimum chance of file system
corruption if sockets crash or the system is reset. Transfer speeds up to 80KB/s have been
tested and there is no limit to the length of file lists except for the 4MB ram limit. All
tesing has been done with the free Windows "Core FTP LE" application.

It is freely given to the DS home brew community just as devkitARM is freely given.

*** Important notes ***

As of this writing I have found some bugs in the Wifi lib socket implementation. There
is a problem when sending data out from the DS. When sending more than 1420 bytes of data the
data will get truncated. When sending less than 41 bytes of data the socket will fail to
signal the other end the connection has closed. As a work around for this a 1 second delay
is now inserted before closing the socket when the data size sent is 1421 bytes or more and also
when the data size sent is 40 bytes or less. Also DSi (XL) uses will enjoy regular lock-ups on
the socket level. The DS lite seems to be more stable for the wifi lib. I hope these problems
will be fixed soon.



*** Changes from version 0.50 to version 0.70 ***

* Fixed a problem with the "REST" command
* Now using a 1 second delay instead of the previous file padding work around.
* File retrieves now work too.



*** Changes from version 0.30 to version 0.50 ***

* Fixed a problem with the "RMD" command (remove directory) on nested directories.
* Added support for the “APPE” command.
* Now blanks top LCD.
* Directory lists larger than 1420 bytes are now padded with 7100 bytes of empty lines as
a work around until the wifi lib is fixed. Please comment out the "PADME" define
to stop this padding AFTER the lib is fixed...



Enjoy :)


Edit: Updated to v0.70