How to use EEPROM to store data then read & serial print when EEPROM full?

I'm trying to log sensor data as fast as possible through the Arduino. As of now, I open the serial connection at the highest rate available, then write data in the standard fashion:

// in setup

//in a print function that is called from loop()

I'm using CoolTerm to view the data and save to a txt file for later processing in Excel/MATLAB. But with the above code I can only get a reading about every 2-3 ms. I'm wondering if I can take advantage of the EEPROM to somehow write several values there at once, then Serial.print the entire stored EEPROM every time it gets full? I've looked all through the example documentation I can find online, but can't figure out how to read (then Serial.print) more than one value at a time from the EEPROM. And if I have to loop through the EEPROM to Serial.print teach line, clearly there is no advantage to it here.

For various reasons I am not using a data logging shield, SD card, or anything else peripheral - and need to keep it that way.


I've estimated that you are writing about 30 characters per line and that will only get larger as the value of millis() increases. 30 characters requires sending 300 bits which at 115200 baud is one line every 2.6 milliseconds. The EEPROM isn't going to speed that up.

What sort of rate do you want to achieve?


Perfect math! Thanks for justifying that rate. I'm using an ACS712 hall effect current sensor with the Adafruit V2 motor shield that has a PWM rate of 1600 Hz. The Nyquist rate would dictate I need to sample at at least 3200 Hz to get non-aliased data. But clearly jumping from the <500 Hz rate I have now to something closer to 3200 Hz is not trivial. So I'm just trying to sample this current data without artifacts or aliasing. I don't know if there are any good hacks to get the rate up to the ideal frequency without adding more hardware (possible but not ideal).