I recently put together a sketch that creates an SDCard file manager with ZModem file transfers via the Serial interface that the Arduino USB port provides. I thought I would share it with the community; perhaps others will find it useful as well.
Video demonstration here:
Arduino SDCard file manager sketch with ZModem - Demonstration Video
Sketch available for download at GitHub here:
Arduino SDCard file manager sketch with ZModem - GitHub repository
First - much credit goes to Pete (El Supremo) who got this started in this thread a few years back:
Zmodem transfer from Teensy to PC
I managed to get the dynamic memory usage down to just under 4K, but unfortunately that means if you want to use this sketch, the Uno isn't going to cut it, you'll need a board like a Mega with a little more memory (Even Chuck Forsberg who wrote the original ZModem code back in 1987 probably had more than 2K of memory available!)
I realize that there are more modern options available than Serial, like WiFi for example, but my project involves an SDCard on a SparkFun MP3 shield and no WiFi. For those in a similar situation, this sketch may form a simpler way to get files to/from an Arduino SDCard without getting into wherever your Arduino is hidden away and unplugging the SDCard to move it to a computer.
On my Arduino Mega 2560 R3, I can receive files on the Arduino at up to 57600 baud reliably; maybe those using much faster boards can crank out more bps on receive, it's easy to configure and try.
I tried HyperTerminal, SyncTERM, and TeraTerm all successfully, send and receive. While SyncTERM is available for any platform you're likely to be using, I'm hopeful that this sketch will operate with other popular terminal applications on Mac and Linux platforms given that I got a perfect run on anything that still reasonably runs on Windows.
More information is available on the Wiki page of the GitHub repository.
I hope someone finds this sketch useful! Thanks again to Pete (El Supremo) for seeding this idea!