Arduino Uno and Fona 808 and PN532 and SD Card

I have been chasing my tail for a while on this one. I am unable to get an SD Card and an NFC reader to work at the same time as the Fona 808. I can get everything working independently, just not together.

When I have the SD card and the NFC reader hooked up, they both work.
When I have the NFC read and the Fona hooked up, they both work.

The NFC Reader and the SD card are both hooked up using SPI. Mosi Miso SCK and separate CS pins.

The Fona 808 is connected to pins 2, 3, and 4 and it is using SoftwareSerial.

Does anyone have any suggestions on how to make all three work together? The issue is that when they are all connected, I am unable to open a txt file from the SD card.

#include <Wire.h>
#include <SPI.h>
#include <SD.h>
#include <Adafruit_PN532.h>
#include <Adafruit_FONA.h>
#include <SoftwareSerial.h>

#define PN532_SS 8
#define FONA_RX 2
#define FONA_TX 3
#define FONA_RST 4
#define SD_SS 10

SoftwareSerial fonaSS = SoftwareSerial(FONA_TX, FONA_RX);
SoftwareSerial *fonaSerial = &fonaSS;

Adafruit_FONA fona = Adafruit_FONA(FONA_RST);
Adafruit_PN532 nfc(PN532_SS);

char deviceID[15] = {0};
File myFile;

void setup() {
  pinMode(SS, OUTPUT);

  if (!SD.begin(SD_SS)) {
    Serial.println("initialization failed!");
  Serial.println("initialization done.");

  // re-open the file for reading:
  myFile ="data.txt");
  if (myFile) {
    // read from the file until there's nothing else in it:
    while (myFile.available()) {
    // close the file:
  } else {
    // if the file didn't open, print an error:
    Serial.println("error opening data.txt");


  uint32_t versiondata = nfc.getFirmwareVersion();
  if (! versiondata) {
    Serial.println(F("Didn't find PN53x board"));
    while (1); // halt
    Serial.println(F("Found PN53x board"));
  // configure board to read RFID tags

  if (! fona.begin(*fonaSerial)) {
    //Serial.println(F("Couldn't find FONA"));
    while (1);
  Serial.println(F("FONA is OK"));
  char imei[15] = {0};
  uint8_t imeiLen = fona.getIMEI(deviceID);
  Serial.print(F("deviceID : ")); Serial.println(deviceID);
  if (!fona.enableGPS(true)){
    Serial.println(F("Failed to turn on GPS"));
    //Serial.println(F("GPS Activated"));
    while (fona.GPSstatus() <= 1) {
      Serial.println(F("Starting GPS..."));
    while (fona.enableGPRS(true) == 0){
      Serial.println(F("Starting GPRS..."));
  Serial.println(F("Ready to scan"));

void loop() {

Is the file being generated?
If you can’t open it, it probably doesn’t exist.