We've tried this with both an Arduino Uno and a Mega and found that it works only intermittently.
CardInfo (with SS = 10 for the Uno and 53 for the Mega) most often gives an "Initializing SD card...initialization failed. Things to check:" error but sometimes works O.K. In fact, once it works, it tends to keep working, and once it fails, it tends to keep failing. (We suspect that it works only when Murphy's attention is elsewhere.)
It switches between working and not working on its own without any changes to the wiring.
We've tried (1) several different freshly-formatted microSD cards, (2) disconnecting the rest of our circuitry so that only the card reader is connected to the Arduino, (3) reseating the microSD card, (4) etc., etc. to no avail.
Do you think we have a defective board?
Is there anything else we should try?
Thanks.
Mike
MicroSD card breakout board (PID: 254)
Moderators: adafruit_support_bill, adafruit
Please be positive and constructive with your questions and comments.
- adafruit_support_bill
- Posts: 88037
- Joined: Sat Feb 07, 2009 10:11 am
Re: MicroSD card breakout board (PID: 254)
Sounds like an intermittent connection somewhere. Post a photo showing your soldering and connections.
- mjsadaway
- Posts: 9
- Joined: Thu Jun 13, 2013 2:45 am
Re: MicroSD card breakout board (PID: 254)
Yes, the wiring was a problem. We used your short 4.5" jumpers as shown in most of your tutorials. Even though they passed our continuity tests, they were apparently not suitable. Then we noticed that in your tutorial for the card reader you used the shortest possible solid wires. As soon as we did the same, the card reader worked perfectly.
Next we reconnected the rest of our circuitry, including an LCD (a Seeed V2.0 touchscreen) that also uses an SPI interface. That caused the card reader to fail. Apparently the card reader and display can't share the SPI bus.
We solved this problem by using the nice feature of your SD library that lets you specify all of the SPI pin numbers for the card reader.
Next we reconnected the rest of our circuitry, including an LCD (a Seeed V2.0 touchscreen) that also uses an SPI interface. That caused the card reader to fail. Apparently the card reader and display can't share the SPI bus.
We solved this problem by using the nice feature of your SD library that lets you specify all of the SPI pin numbers for the card reader.
- adafruit_support_bill
- Posts: 88037
- Joined: Sat Feb 07, 2009 10:11 am
Re: MicroSD card breakout board (PID: 254)
Not sure about the Seeed display, but you can usually share the SPI bus if you specify a different CS for each device. Many of our TFT/LCD display breakouts have integral uSD card holders and we wire them that way.Apparently the card reader and display can't share the SPI bus.
- mjsadaway
- Posts: 9
- Joined: Thu Jun 13, 2013 2:45 am
Re: MicroSD card breakout board (PID: 254)
They don't play nicely together with separate chip selects. We've ordered a couple of Adafruit touchscreens to see if they work better and are faster than the poky Seeed display.
Thanks again for your help.
Thanks again for your help.
-
- Posts: 8
- Joined: Wed Sep 25, 2013 2:25 am
Re: MicroSD card breakout board (PID: 254)
I think I have a broken micro SD card reader, the card detect (CD) function.
With the Arduino off and the wire from CD to the Arduino digital input pin disconnected, with the card inserted and with it out, I measure the continuity from the pin on the reader to the GND pin and to the 5V pin. No connection to either pin with the card either in or out.
With the Arduino on and the wire from CD to the Arduino digital input pin disconnected, with the card inserted and with it out, I measure the voltage from the CD pin on the reader to the GND pin on the reader always at around 2mV with the card either in or out. (The 5V pin has 4.8V.)
(Of course, the reader detection fails when the pin is wired to the Arduino, either.)
I am using a solderless breadboard.
Do you conclude it is broken? Is there something mechanical on the reader that could be prodded--a contact?
With the Arduino off and the wire from CD to the Arduino digital input pin disconnected, with the card inserted and with it out, I measure the continuity from the pin on the reader to the GND pin and to the 5V pin. No connection to either pin with the card either in or out.
With the Arduino on and the wire from CD to the Arduino digital input pin disconnected, with the card inserted and with it out, I measure the voltage from the CD pin on the reader to the GND pin on the reader always at around 2mV with the card either in or out. (The 5V pin has 4.8V.)
(Of course, the reader detection fails when the pin is wired to the Arduino, either.)
I am using a solderless breadboard.
Do you conclude it is broken? Is there something mechanical on the reader that could be prodded--a contact?
- adafruit_support_bill
- Posts: 88037
- Joined: Sat Feb 07, 2009 10:11 am
Re: MicroSD card breakout board (PID: 254)
The card detect switch mechanism is circled below. There is an NO and an NC contact. Check to see that it opens & closes with card insertion. Also check continuity from there to the pin.
- Attachments
-
- Capture.JPG (83.24 KiB) Viewed 1515 times
-
- Posts: 8
- Joined: Wed Sep 25, 2013 2:25 am
Re: MicroSD card breakout board (PID: 254)
1. My reader seems to have only the normally closed (NC) Card-Detect contact (hereinafter referred to as a "finger"). The finger is what is failing. When I remove the card and manually depress the finger, contact is made and the SD pin is grounded.
2. The code sets pinMode to INPUT_PULLUP, so (ONLY) when I poke the finger down after removing the card, the Arduino digital I/O pin is pulled low and the absence of the card is detected. But I shouldn't have to poke the finger down.
3a. The finger is also associated with locking the card in when you push it in.
3b. I tried bending the end of the finger down. It bent but does not result in automatic grounding when the card is removed.
3c. I tried bending the shaft of the finger down. It bent but does not result in automatic grounding when the card is removed. This destroyed the snap which keeps the card in the holder.
4. We have four (4) of these readers. Only one works. One is soldered in place. Unfortunately this is not the one with the working Card Detect. (For this one, we will have to modify the code to ignore CD.) The other three fail grounding when the card is absent or removed. Can you send us pre-tested replacement card readers (3)?
2. The code sets pinMode to INPUT_PULLUP, so (ONLY) when I poke the finger down after removing the card, the Arduino digital I/O pin is pulled low and the absence of the card is detected. But I shouldn't have to poke the finger down.
3a. The finger is also associated with locking the card in when you push it in.
3b. I tried bending the end of the finger down. It bent but does not result in automatic grounding when the card is removed.
3c. I tried bending the shaft of the finger down. It bent but does not result in automatic grounding when the card is removed. This destroyed the snap which keeps the card in the holder.
4. We have four (4) of these readers. Only one works. One is soldered in place. Unfortunately this is not the one with the working Card Detect. (For this one, we will have to modify the code to ignore CD.) The other three fail grounding when the card is absent or removed. Can you send us pre-tested replacement card readers (3)?
-
- Posts: 8
- Joined: Wed Sep 25, 2013 2:25 am
Re: MicroSD card breakout board (PID: 254)
Incidentally, thanks much for your prompt reply!
-
- Posts: 8
- Joined: Wed Sep 25, 2013 2:25 am
Re: MicroSD card breakout board (PID: 254)
Our cards are different from that imaged in your reply. (Which card is current?) ("Which switch is which?" wicked witch of the west).
- Attachments
-
- Our microSD card.gif (42.41 KiB) Viewed 1470 times
- adafruit_support_mike
- Posts: 67391
- Joined: Thu Feb 11, 2010 2:51 pm
Re: MicroSD card breakout board (PID: 254)
The switch will be the little paddle-thingy toward the bottom of the photo you posted.
It looks like the normally-closed connection is right out at the open end of the card holder.. you can just see the indication of a gap in the photo. The normally-open connection will be at the square at the end of the metal tab.
It looks like the normally-closed connection is right out at the open end of the card holder.. you can just see the indication of a gap in the photo. The normally-open connection will be at the square at the end of the metal tab.
-
- Posts: 8
- Joined: Wed Sep 25, 2013 2:25 am
Re: MicroSD card breakout board (PID: 254)
1. I thought I had made clear in the post that I knew
"The switch will be the little paddle-thingy toward the bottom of the photo"
(because a small poke on the finger caused it to make contact).
2. I did not void the warranty on two other of our cards which fail the same way.
3. You are no longer being helpful or prompt or complete in your replies. Why are the d__n things failing? Arrange to send replacements.
"The switch will be the little paddle-thingy toward the bottom of the photo"
(because a small poke on the finger caused it to make contact).
2. I did not void the warranty on two other of our cards which fail the same way.
3. You are no longer being helpful or prompt or complete in your replies. Why are the d__n things failing? Arrange to send replacements.
- adafruit_support_rick
- Posts: 35092
- Joined: Tue Mar 15, 2011 11:42 am
Re: MicroSD card breakout board (PID: 254)
Hi - I'm jumping in here, trying to understand what the problem is.
First, I believe the paddle thingy is the spring latch, not the card detect.
The card detects are the two fingers at the end of the card socket.
These are normally closed, and they open when you insert a card. I just checked this out with a multimeter. With no card inserted, you should have continuity between the metal card socket and CD. With the card inserted, you should have no continuity. Also, with the card inserted, you can press down on one of those fingers to restore continuity to CD.
So, if I understand you correctly, you are not seeing continuity between CD and ground with the card removed?
You should always see continuity between the metal card socket itself and GND. Do you see that?
First, I believe the paddle thingy is the spring latch, not the card detect.
The card detects are the two fingers at the end of the card socket.
These are normally closed, and they open when you insert a card. I just checked this out with a multimeter. With no card inserted, you should have continuity between the metal card socket and CD. With the card inserted, you should have no continuity. Also, with the card inserted, you can press down on one of those fingers to restore continuity to CD.
So, if I understand you correctly, you are not seeing continuity between CD and ground with the card removed?
You should always see continuity between the metal card socket itself and GND. Do you see that?
-
- Posts: 8
- Joined: Wed Sep 25, 2013 2:25 am
Re: MicroSD card breakout board (PID: 254)
Wow! That was prompt. Thanks. I'm getting out my reader, magnifier, and multimeter even as we speak.
That is great information, about the two fingers at the end being the CD contacts.
Sorry, I do not have one of our broken cards with me. (On the reader that I have, the case is ground and CD shows up as grounded when the card is out.) So I am wondering how those fingers (on the other cards) can be failing to make contact when the card is removed!
I'll have to "call you back".
That is great information, about the two fingers at the end being the CD contacts.
Sorry, I do not have one of our broken cards with me. (On the reader that I have, the case is ground and CD shows up as grounded when the card is out.) So I am wondering how those fingers (on the other cards) can be failing to make contact when the card is removed!
I'll have to "call you back".
- adafruit_support_rick
- Posts: 35092
- Joined: Tue Mar 15, 2011 11:42 am
Re: MicroSD card breakout board (PID: 254)
You might also want to check your breadboard connections and jumper wires for continuity.
Please be positive and constructive with your questions and comments.