Hoping someone can point me in the right direction:
I would like to store a document (pdf) in my project and have it presented or available to the user when the device is plugged into USB. The USB will also be used to charge the battery on the device. The device does not need to store any information from the end user. It only needs to present a read only copy of the document.
Any pointers to a project that does something similar would be appreciated.
Would it be possible to store the document on the EEPROM and make it available via the USB?
A PDF requires a reader on the client PC, so "something" running on the PC would need to make a request over USB/serial to the Arduino to transfer the file from EEPROM or flash SD card. The client PC software would need to buffer the download and hand the file handle over to the PC PDF reader. This is in the realm of possibility but is a rather advanced concept. You may be able to use something like this to glue some pieces together: http://playground.arduino.cc/Interfacing/GoBetwino
With external SDcard or large EEPROM, the amount of data can be large. Of course, USB 1.1 is not fast, a better protocol (using a 32U4 based Arduino) would be a better approach.
Thanks for the reply. I think Frank Zhao's USB Business Card is a step in the right direction.
To clarify my thoughts, the document does not actually have to open on the machine. It only has to be available. The user could choose to copy the document to the computer or not. I am thinking it would function like a read only USB drive but with the added capability of charging the device.
My project is based on Arduino and will eventually be stripped down to the bare minimum (an ATTiny of some sort most likely) on a PCB so a full Arduino is not optimal. Switching to Pi is not an option.
To clarify my thoughts, the document does not actually have to open on the machine. It only has to be available. The user could choose to copy the document to the computer or not. I am thinking it would function like a read only USB drive but with the added capability of charging the device.
The concern I see is that a PC opens a SD card using the "SD interface" but the Arduino uses the SD card in SPI mode. With some cleaver wiring, you likely could perform whatever Arduino-ish stuff you wish to do, then switch the SD card onto the USB bus where the host PC can perform a traditional mount of the card as a logical drive.