Description
I would switch to storing raw data, rather than strings.
There is probably a significant overhead in doing a string conversion, because you're implicitly calling itoa a bunch of times. You'd be better off having three 16-bit arrays to store the accelerations and just putting the raw measurements in there each loop.
projects/accelerometer/sensor_logger.ino
Lines 162 to 172 in a298bcd
It will also save a lot of space. This string "m/s^2, "
alone contains as much data as a single 3 axis measurement!
The Adafruit library also does a bunch of float calculations which is also going to be a lot of extra cycles, but worry about that when you've optimised as far as you can with their library.
So in principle your max data rate is 3 x 5000 x 16 bits or around 240kbaud. From your writeup it looks like you're capturing at a much lower rate (around 140Hz). I'd be curious to see how much faster you can write to disk just making the changes above.