can a SD card or usb flash drive be used to log to

can a SD card or usb flash drive be used to log to also be plugged into the computer so the computer can coppy the files to a database and work on them after the arduiono writes them to the file? In other words the arduino sends a tx rx command to the usb serial port virtual com port lets say R and the pc scans the memory card for new comma seperated value text files coppys them to the data base deletes them and then starts the database processing on them?

SD or MicroSD is fairly easy, take a look here:

A USB drive would be a lot more involved, the easiest way is to get a Vinculum (, but that makes it a much more expensive option.

Interesting but because I would like this to be a high speed real time data logger I would like the PC to be able to see the files after the micro is done writing them.

Would the drive is being written to by the micro and read from by the pc cause problems? would they know to wait their turn and how? What system would be better for that? What system would be faster if I bought the faster sd or usb cards?

If their is not a way to have the systems wait would I be able to write with the micro then after x number of writes have the pc read the files by a c program then wait till it gets the next command on the rx and tx line of the micro?

also if the micro wrote to the sd or usb would the PC have to reinitialise the SD or usb drive? or just refresh what files are their then read when it getts the command to from the micro?

24bits 10K sps lets say every half sec the pc gets a command to read from the sd memory from the micro after it writes?

Would the drive is being written to by the micro and read from by the pc cause problems? would they know to wait their turn and how?

This won't work as I think you're picturing it.

But, first, why couldn't you have the MCU transmit the data from the SD card to the PC. Why would the PC have to interface directly to the same card when it can go though the MCU.

And second, if you're going to have the PC in the system anyway, why have the SD card as part of the MCU system? Just have the MCU transmit the data in real time to the PC and let the PC do what it wants with the data and write it to the SD card.

How is the arduino supposed to talk to the pc that fast? The baud rate is too slow using USART to send 24bit samples taken at 10k samples per second.

Use an Ethernet shield to connect the Arduino faster than serial.

But...what are you doing to generate 10k samples per second at 24 bits? Only 100uS to take, package and send each sample isn't a lot of time. The numbers make it sound like something audio.

where can I read the speed of using the ethernet shield??? interesting idea. you said “Only 100uS to take, package and send each sample isn’t a lot of time.” is that relate to how much time I would have if I used the ether shield?

EMG Decomposition on the PC that is why I want the data to the pc as soon as possible because I am hoping to make prostetics to work with the decomposed signals.

I would like to find a student or nonforprofit version of matlab to use the EMGLab websites opensource matlab code they also describe nicely what is EMG Decomposition.

also delsys has a real time system that does this…

also another source for info i have not finished looking through is…

I am using a 1168 instramentation amplifier as the first stage with a low pass filter a DRL shown in modular eeg and monolith eeg. Also the design for the open Exg is quite interesting. I was going to use the same AD converter but it was too difficult.

I think the ethernet shield is talked to serialy by the spi port 4mhz is the fastest the hardware one goes. So it proably would not be faster than the smart media card but it could be as fast as the smart media card and not have to find how to read from the smart media card after the arduino does it's thing.

The usb could have 2 bytes put onto 2 ports and then a control button hit and it could be sent by usb. low speed usb HID Keyboard. then c could take in the key presses by something like getc or scanf. then put them in a file...