Finding cause for "Unable to access SD Card"

cowboycub

New member
I'm in my first Teensy project with the infamous audio guestbook project. I had the project working, but then it stopped, and it seems to be because the SD card isn't detected. Using Teensy 4.0 and Audio Shield Rev D.

The defines and SD card initialization code:

Code:
// DEFINES
// Define pins used by Teensy Audio Shield
#define SDCARD_CS_PIN    10
#define SDCARD_MOSI_PIN  11
#define SDCARD_SCK_PIN   13

// Initialize the SD card
  SPI.setMOSI(SDCARD_MOSI_PIN);
  SPI.setSCK(SDCARD_SCK_PIN);
  if (!(SD.begin(SDCARD_CS_PIN)))
  {
    // stop here if no SD card, but print a message
    while (1) {
      Serial.println("Unable to access the SD card");
      delay(500);
    }
  }
    else Serial.println("SD card correctly initialized");

...and the serial monitor just consistently prints the "Unable to access the SD card" message.

When testing other Example programs in the Arduino IDE (such as File > Examples > SD > ReadWrite), I get similar errors ("Initializing SD card...initialization failed!" in this example).

I have scoured the forum and seems soldering is often the issue, but I've resoldered several times with no luck. I've attached photos of my solder job in case they're not as viable as I think.

I've also reformatted the SD card (exFAT) but no change.

If it's not a solder issue nor an SD card issue, is the next possibility that I've ruined the board? I was soldering at 700 degrees (I've since learned 500 is more appropriate) - perhaps I damaged the board? I'm still able to upload programs to the board though (i.e. the tutorial "Blink" works fine). Any suggestions for what to check next are appreciated!
 

Attachments

  • IMG_2569 Large.jpeg
    IMG_2569 Large.jpeg
    284.6 KB · Views: 32
  • IMG_2571 Large.jpeg
    IMG_2571 Large.jpeg
    272.3 KB · Views: 33
  • IMG_2570 Large.jpeg
    IMG_2570 Large.jpeg
    260.3 KB · Views: 31
Two quick ideas...

1: Try running SD CardInfo example. If the card is detected but data format isn't usable, CardInfo will at least tell if the hardware was detected and which type it is and its capacity.

2: Remove the SD card and try running the LED blink example (File > Examples > 01.Basics > Blink). Look for the LED to blink (it's on pin 13, which is also 1 of the 4 signals to the SD card). Then try using a voltmeter to observe the voltage. Maybe edit the code for longer delays if your multimeter responds slowly. If you can see the voltage change, edit the blink program to pin 10, 11, 12 and repeat.
 
Paul, many thanks for your quick response!

1. The initialization failed.

2. When testing each pin as the ledPin, I measured the voltage on all 4, and this led me to discover that the 10 pin is just holding a constant 3.3 volts. The other pins behaved as expected (flipping between 0 and 3.3 volts when blinking, or holding 0 if it's not the active pin). The 10 pin holds a steady 3.3 volts regardless of which program is used, regardless of whether the audio shield is attached, and regardless of whether on battery power or USB power. My understanding is that pin 10 should default to an input state and be at 0 voltage if not being utilized in the program.

Would you also interpret that to mean there's an issue with the board and that I'm best off replacing the Teensy 4.0?

More focused photos of the 10 pin on both sides of the Teensy to show that I don't believe it's a sloppy solder causing the issue.
 

Attachments

  • IMG_2579.jpg
    IMG_2579.jpg
    176.9 KB · Views: 27
  • IMG_2578 Large.jpeg
    IMG_2578 Large.jpeg
    212.4 KB · Views: 29
With power off and no audio shield connected, next I'd try measuring ohms between pin 10 and 3.3V. Bur first, touch the 2 leads together to check what your multimeter actually reads for zero.

If you get a reading close to zero ohms between pin 10 and 3.3V, while power is off and nothing else connected, that's a sign you probably have a metal short somewhere. Usually those metal short problems are fixable if you can find and remove the stray solder or metal object.

If you get a "strange" reading, that's probably a sign of damage within a chip. Probably best to just replace Teensy rather than pouring more time into a problem that probably isn't viable to repair.
 
Thanks y'all for your input! I washed the flux off (with a small paintbrush and 99% isopropyl) and no change.

When checking the resistance, pin 10 reads about 630 while all other pins read about 470. Sounds like damage to the chip. Thank you both for your troubleshooting support on this! I have a new Teensy in the mail now. :)
 
You should also check pin 10 on audio pcb with Ohm meter between pin 10 and 3.3V just in case audio pcb is source of the fault.
 
hi,cowboycub
You could test with a 16GB sdcard,i remember i had issues with sdcard>16Gb not recognized
 
Back
Top