Data Storage on Arduino

Brief Description: I would like to perform drop testing on an object and collect high frequency yet short duration acceleration data of the of the dropped object to measure impulse and deflection.

More Description: Drop test rig had a max drop height of 8.5 ft with a free fall time of approximately .75 seconds. I am predicting that I need to log 1.5 seconds of acceleration data (.75 seconds of free fall and .75 seconds of impact data).

Sensor: Looking at the ADXL345 accelerometer with +/- 16g logging capability at 3.2 kHz. The accelerometer logs 13-bits of acceleration data on 6 channels (+x, -x, +y, -y, +z, -z). Uses SPI or I2C interface. This also has a free fall interrupt. I am open to different accelerometers.

Data: While it logs 13-bits of data, I am assuming that data storage in the arduino is best done by bytes, therefore 16-bits per sample. Is this a fair assumption? Therefore, I am calculating 460.8 kb of data, or 57.6 kB (3200 samples16bits6 channels*1.5 seconds).

Data Export: I have done some work with SD write that stored data on an SD card at 1 second intervals. I seriously doubt that I could store each sample on the card.

Data Storage: Can this be stored in onboard memory and then exported to the SD card (or read via USB)? If using USB, I don't want to have a computed connected for the drop. What type of memory can be utilized (EEPROM vs. SRAM vs FLASH)?

Board: I think this is beyond the memory capability of the UNO. Is the memory large enough on the Mega for this application?


Mega has nowhere near enough RAM. I doubt it could keep up with sampling at that rate either.

Maybe try a Teensy 4.0, or one of the new nano 33 range. The latter seemed a bit flaky when I used one in January, hopefully better by now.

Teensy 4.1 looks great with expandable memory and SD card.

Battery attachment options would be nice.

Anybody know of tutorials on an array of data stored on the RAM and exported to SD?