secondo me anche qeulla dell'ADXL può essere tagliata, in oltre esistono librerie per l'sd più leggere. maprima vediamo come va così
ogni volta che dichiari una variabile, SPECIALMENTE le stringhe, stai occupando RAM. Che io sappia il compilatore NON capisce che stai scrivendo sempre la stessa cosa e quindi NON ottimizza, devi essere tu a creare UNA variabile con la scritta e poi usarla varie volte. In oltre racchiudendo le stringhe nella macro F() (esempio: F("salvata in flash"); ) sposta tutte le stringhe in flash: vedrai il compilato aumentare, ma la ram usata diminuire.
La mega ha il doppio (mi pare) di ram e falsh della UNO, la due ne ha molto di pià, ma essendo una architettura completamente diversa potrebbe non supportare tutte le librerie (esempio, lavora a 3V, se l'ADXL non funziona a 3v devi scegliere una ltro modello o fare un partitore di tensione)