Mega r3 microSD card not initialising - CardInfo


I’m struggling to get a microSD card to work on the hardware pins of a Mega 2560 r3 board. SoftwareSPI appears to test OK, and the card/reader works just fine on an Uno (hw pins) so I don’t think the Reader is at fault.

New SanDisk 16Gb microSD card formatted using SD Card Formatter 5.0.0 by Tuxera
Geekcreit Mega 2560 hooked up via USB to Win10 IDE 1.6.12
RobotDyn SD reader hooked up to Mega thusly:
CS - 53
DI - 50
DO - 51
CLK - 52
5V - 5V

I have also used 80mm leads which I’ve soldered onto the SD reader and pushed into the header sockets on the Mega just in case length of lead was a problem. And tried using 3.3V.

Using the SD Example CardInfo, after modifying line 36:
const int chipSelect = 53;

I’ve also tried this on D22, D10, and D4. No joy.

Result on Serial Monitor is:
“Initializing SD card…initialization failed.”

I also tried SDFat/SdInfo, result being (after typing “a” and clicking the Send button in Serial Monitor):

"SdFat version: 1.0.3

Assuming the SD is the only SPI device.
Edit DISABLE_CHIP_SELECT to disable another device.

Assuming the SD chip select pin is: 53
Edit SD_CHIP_SELECT to change the SD chip select pin.

type any character to start
error: cardBegin failed
SD errorCode: 0X20,0XFF

type any character to start"

To prove the board works OK with the Mega, I tried Examples>SDFat>SoftwareSpi:

Type any character to start
This line was printed using software SPI.

I’ve got the usual array of basic test gear, spare Unos, pro Minis, mega boards etc.

I would welcome any assistance or thoughts people may have on getting this reader to run on the Mega board through its hardware SPI pins after succeeding on the Uno.

If I’ve missed something really obvious please be kind :slight_smile:

Finally figured it out, simply add this line to set pin D53 properly:

pinMode(53, OUTPUT);

ta dah!

It works.

@trullt, I have been having exactly the same problem, with the only difference being that I use an Uno instead of a Mega. I tried setting the pinMode, but seem to not be having success. Where did you put it in the code, just under setup I presume?