SD card module works with Arduino Uno(s), but not with any Arduino MEGA

Hello,

I am using the 5 VDC micro SD card SPI module to write data and debug logs to micro SD card. It works fine with Arduino Uno as well as with Arduino MEGA.

Recently I bought few 3.3VDC micro SD card SPI modules. Those are working fine with Arduino Uno, but not with Arduino MEGA.

I have:

  • Tried several Arduino MEGA boards
  • Tried several different SD cards
  • Tried the sample code. The CardInfo code works, but when the sketch writes data into file, only garbage is created on the SD card (it seems the FAT table is damaged?, looks like reading is okay, but writing not?) See the screenshot below:


Debug window with the Serial output

Anyone had same or similar experience? What could be the issue with Arduino MEGA and the possible root cause of the problem?

Here are photos of both modules:


3.3VDC (left) and 5VDC (right) micro SD card SPI modules

Thanks a lot

STeN

SD card is a 3.3 V device. you damage it with 5 V MISO and clock.
the IC left on the 5 V module does the logic level conversion. the IC right does the power level conversion

1 Like

If the 3.3V SD module has no regulator or translator, it should only be used with a 3.3V Arduino, such as a 3.3V 8MHz Pro Mini. It’s surprising it even works with an Uno. You should use the module on the right with 5V Arduinos.

1 Like

@Juraj | @ShermanP Thanks for explanation :+1: :+1: :+1:.

I spent hours trying to figure out where the problem is. I was worrying only about the VCC to be 3.3V but of course the SCK/MISO need to be below 3.3V as well! And indeed it is surprising it works with Arduino Uno.