Hey guys!
Just saw this post, I decided to jump in. I've done my own data logger system as a thesis to graduate, you can read some here
http://www.f1technical.net/forum/viewto ... 14&t=14890.
First some clarification on the sampling frequency for the damper measurement. It's true that if the signal is 25Hz then you only need a 50Hz sampling rate. But that is theory only, because if you do that you will have aliasing. So you need to put some low-pass filter to avoid this, an ideal filter is not possible (not causal, you need information from the future). And you don't want to mess with complicated filters, just an RC, order 2 filter at most. In order for the filter not to affect your signal you put your cutoff signal at 50/100Hz, and then sample at 1kHz to make sure you have attenuated the noise enough.
Of course a 1kHz signal is ussually useless from a visualization point of view, just think of the most basic example. You will be watchcing 10 seconds of laptime on an HD screen (ca. 2000 pixels wide). You have 10.000 points and can only draw 2.000. What you do with your 1kHz signal is downsample and filter it, basically just get some points and average them, so you can have a signal with less noise. With this, 10bit should be more than enough, assuming you get 8 useful and effective bits out of the Arduino, for 80mm of travel this is 0.3mm/bit, even more interesting, since you oversampled you would get a little "extra bits" (one bit per every 4x oversample).
Going into all the Arduino stuff. Arduino is useful for hobbyists and DIY, but it's extremely inefficient. So try to get the fastest arduino you can, some people mentioned the Teensy and it would seem like a good option.
Try to start with the most basic sensors, let's say GPS, accel, gyro, and a couple analog (throttle/break/wheel). You need to synchronize all of these sensors, use the fastest one to create periodic interrupt.
Lets imagine:
ADC 1kHz, GPS 10HZ, accel/gyro 100Hz.
Make a periodic interrupt at 1ms. Every time you enter this interrupt trigger the ADC (but don't wait for the conversion to end, there's no time for that), and get the conversion results from the last time. Every 10 times you access the accel/gyro, and every 100 times you access the GPS. So now you have everything synchronized on the same timebase.
Wait until you have a chunk of data before putting it to the SD card. Writing mere bytes into the SD is really inefficient. Also, try not to use .csv for the SD, just write your plain bytes. If you use csv you need to convert the values to string, do processing, and require many times more data. You just want the arduino to capture and save, you have infinite time in your computer to process. If you can't manage to do it with an SD card, you can use a simple memory chip (32MB will probably be more than 1 hour of data), and then upload the data to the computer.
Once you finished logging, you can download your data and use all your CPU power to turn that into a csv file, format it, make it pretty, and then show it with whatever soft you like.
You could put a real time linux to a raspberry pi and use that, but it really doesn't make much sense IMHO, that is made for real time processing and you really are not doing processing. Just managing and scheduling some peripherals.
And for the 3.3V, that is absolutely no problem, just an extra voltage divider, and since you were going to put an RC filter anyways, it's only 1 more resistor.
Hope it helps a little bit. Just let me know if you have any particular doubts.