2

Problem description

I am trying to build a datalogger with an Arduino UNO. I have connected a SD card module to the Arduino. I have planned to catch the measurement data from the analog input pins. Everything works fine if connected to the usb port. But if I run the Arduino over an external power supply, the SD.open-method fails (It simply returns false). The problem occurs even, if I connect the external power supply additional to the USB connection. So the problem can't be a missing serial connection.

Note that the problem only occurs, if SD.open is in WRITE-mode. (File dataFile = SD.open("datalog.txt", FILE_WRITE);)

What I've already tried:

  • running the SD-card example code, which is included in the SD card library.
  • trying different types of file-system formattings (FAT, FAT32, with different cluster-sizes)
  • powering the sd-card reader with 3.3V instead of 5V

Arduino wiring

Look at the pictures to check if there are some mistakes with the wiring: Digital inputs on the arduino Wiring on the SD-card module and power connection

Specifications of the power supply

And here are the specifications of the power supply:

  • Manufacturer: MyVolts
  • Model: DD282MU
  • Input: 100-240V (AC) - 50-60 Hz
  • Output: 9V, 1A (DC)

I hope you can help me with my problem. And of course, I hope there is a solution for the problem at all. Thank you.

3
  • Have you tried connecting the SD card module 5V pin directly to the PSU through a 7805 regulator? How do you know SD.open() returns false when you arent connected to the PC over USB? Mar 28, 2016 at 22:58
  • Thanks for your reply. I don't have a 7805 regulator - so I didn't try it. I know that SD.open() returns false, because I have connected a LED and let it flashing in this case. Secondly I saw it in the Serial monitor: The error also occurs if both, the usb cable AND the PSU, are connected. Mar 28, 2016 at 23:37
  • Scratch what I said about the 7805; just remembered theres no need for one since the Arduino 5 V output is from an internal regulator anyways. SD cards draw a lot of current (at least 100mA) when reading or writing. So it could be that with the current drawn by both Arduino and SD card causes the PSU voltage to dip and and cause dropout, Try another PSU if you have one (one with 2 A max draw); a 100uF cap from 5V to GND would help. Also did you check the return value of SD.begin()? Mar 29, 2016 at 0:05

2 Answers 2

2

Okay, thank you all for your efforts.

Finally, after changing the PSU and connecting the Arduino to another usb-port without operating system, I found the solution.

The problem was the SD-Card itself: I swapped the SD-card with a newer (maybe more expensive(?)) one and it just works now. No matter if you connect the Arduino with the PSU or over an usb connection. My assumption is, that there could be a different clock speed of the sd-card module on different voltages, which causes the problem. The old sd-card can't handle the fast speed and runs into an error (or just rejects it) on a write attempt...

Anyway, thank you again for your efforts!

0

I had this problem too, SD card not initiliasing on external power.
Having read this I turned down my external power voltage to 5.1 V (from 7.5V ish) and suddenly my SD card initialises on external power. So a 'solid' 5 V must have the SPI running at a higher speed ( I guess) make sense. The drawback is TFT is not as bright as should be. ... better get a more 'expensive' SD card module LOL.

Ps - After some testing I had found that the SD card would work up to 6.4V on the power jack, above that the card would not initialise. BTW I am not convinced it is a speed issue only because the SPI speed is locked by a divider to the Mega clock, so the Mega clock needs to change first.

Hope this helps

Not the answer you're looking for? Browse other questions tagged or ask your own question.