Which of these is the best way to transfer data from an SD card to an RF module?

Hi, I have an SD card module and an RF (24L01) module connected to my Arduino. I want to transfer data from a data file on the SD card to another Arduino by using the nRF module. I've got both working together now, and I can send data through the nRF module.

However, there is a complication. Because the SD card and nRF both are SPI devices, only one can be open at a time.

My naive way of doing this would be, read 32 bytes from the SD, then send over the nRF, and repeat. However, this requires a bunch of opens and closes of each.

Alternatively, I could read in as much of the SD card as I can in one go, and then send all that data over the nRF. That would minimize the number of SD and nRF open/closes, but also obviously be a little more complicated. It essentially adds an "intermediate" step between the SD card and RF module.

It currently says in the IDE, when I compile:

Sketch uses 10,484 bytes (34%) of program storage space. Maximum is 30,720 bytes.
Global variables use 1,072 bytes (52%) of dynamic memory, leaving 976 bytes for local variables. Maximum is 2,048 bytes.

And this is actually for a relatively small program... does this mean I'd really only have 976 bytes for this intermediate step anyway? Is it even worth doing then?

Step up to a processor with more memory, 8x more - the Atmega1284P, with 16K of SRAM. Buffer a bunch of 512 byte blocks before sending them out.
I offer a 1284P card with SD socket, prototype area to install the nfr24L01+, extra 5V to 3.3V buffers for SCK, MOSI, CS to the RF module, and 3.3V to 5V coming back for MISO, and a 400mA 3.3V supply to power the SD card and RF module. And optional screw terminals if needed.
http://www.crossroadsfencing.com/BobuinoRev17/

Hi, thanks for the response and advice. I'm sorry, but I really should have mentioned in my OP: I'm trying to do a super low power thing, so I'm using the Pro Mini. It will be in a very low power state except for about once a day when it sends out this data for a few seconds.

Do you have some way to power down the other devices to save on their power as well?

ranchmebro:
My naive way of doing this would be, read 32 bytes from the SD, then send over the nRF, and repeat. However, this requires a bunch of opens and closes of each.

I see nothing wrong with that if it achieves your objective.

You might improve throughput if you read (say) 128 bytes (or 256 bytes) from the SD Card and send that as 4 (or 8 ) chunks of 32 bytes.

...R
Edited to correct typos

CrossRoads:
Do you have some way to power down the other devices to save on their power as well?

Hi, yes, I've seen a similar project elsewhere, where the guy used a transistor (IIRC) on the power line of the SD card/etc, to basically turn it off when the Arduino is off. Thank you for the suggestion.

Robin2:
I see nothing wrong with that if it achieves your objective.

You might improve throughput if you read (say) 128 bytes (or 256 bytes) from the SD Card and rend that as 4 (or 8) chunks of 32 bytes.

...R

Hmm, so, similar to my "intermediate" approach? Thanks for the advice.

Be sure to bring the control lines low as well to the slaves are not "phantom powered" thru them.