I am exactly in this type of project, trying to make a rugged versatile data logger. After a couple of poor attempts, I focussed on the SD card as a memory device. My strong advise is: SPI! Not much litterature to read on that (except official doc), but not too tough neither. And so much room! I store data in a 512 bytes buffer which matches exactly the size of the SD sectors and leaves you a good additional 512 bytes for the code on the arduino. I placed all the strings in PROGMEM. Even my spare 16Mb SD looks huuuuuuuge!
My data logger can be programmed from a computer and parameters are not volatile. So that you can unplug from usb and plug to DC supply and control runs from one single button (start/stop/clear all runs
). Runs (and their related headers, containing acquisition parameters) are stored sequencially using a tricky feature which prevents loosing the data in case of unexpected power failure. Rough specifications are: records interval from 10 ms to 1 hour (watch out the rollover of timer), averages from 1 to 16, channels from 1 to 6, programmable nbr of records (or infinite if 0). There is a list and print command for reading headers or data from each run.
Further development could be: LCD display, high speed DAC, programmable ranging, etc.
I do not plan to tease you just for fun, but I say: yes, it is possible! I will probably publish it soon