Step 10: Notes

  • The LC board has a 5v -> 3.3v regulator IC.
  • That's why the 3.3v pin is not connected.
  • The MISO pin on the LC board is an output and goes directly to the
  • Arduino, so no level shifting is necessary.
  • The meanings of the pin designations:
  • CS   = Chip Select
  • MOSI = Master Out, Slave In
  • MISO = Master In,  Slave Out
  • SCK  = Slave Clock
  • Really, folks, it's not about slavery or S&M. A master is the
  • controlling device, and the slave is the device getting signals
  • from the master. Sorry about the unsettling connotations, but it's
  • all engineering jargon, that is,  geekspeak, so to speak.
  • As noted in a previous step, higher-capacity SD cards may not work because
  • our point-to-point wiring might add noise and delays to the signal lines.
  • Try one of your old 1 or 2 GB cards.
  • Almost all the examples that come with the Arduino SD library work
  • with our DIY shield. Only the "SD Card read/write" example fails,
  • possibly due to timing considerations because of point-to-point
  • wiring.
Hi, first of all this is a great project and exactly what I was looking for!<br> <br> Now my question: can I power the level shifting circuit (CD4050) from the regulator on the SD breakout board? I don't mind soldering a wire to the board if I can avoid a separate regulator for the level shifter.<br> <br> Thanks!
Thank you for the praise.<br><br>As for getting the 3.3 v Vcc from the SD breakout board,<br>I honestly don't know. Try it and see if it works, In any case,<br>please leave a follow-up comment here giving the result of<br>your experiment.<br><br>Possible problems are that the regulator on the SD board<br>might not be up to spec, and that you might have some sort<br>of ground loop. I don't see that it would damage anything<br>even if it didn't work.
I'm using a cheap $2 SD card reader, the sort that doesn't work because of a missing ground link. Having fixed that, I was indeed able to use the 3.3V from the on-board voltage regulator (there's a dedicated pin). Yes!!<br><br>My level shifter uses (schottky-)diodes for the 5V to 3.3V signals, and a BSS138 for the 3.3V to 5V signal. It seemed simpler than using a 4050.<br><br>Thanks again<br>
<p>there is problem in writing the data into the file???? i dont know why????????</p>
I need more details. There are a couple of possible causes.<br>High capacity SD cards (&gt; 2 GB) do not work.<br>You may need to lower the write speed.
<p>Useful project. Thank you</p>
<p>isnt it even easier to just use a 3.3V arduino board (like http://goo.gl/4Er5Bw) from the beginning?</p>
<p>Yes, such as my own ...</p><p><a href="http://www.instructables.com/id/Switchable-Dual-Voltage-33v5v-Hacduino/" rel="nofollow">http://www.instructables.com/id/Switchable-Dual-Vo...</a></p>
<p>Can I change the pins? Im building a project uncluding the card-reader and a RFID transmitter and some of the pins is already taken.</p>
<p>I'm not sure. Certain of the pins, such as SCK and MOSI/MISO seem to be dedicated. Could you change the RFID pins?</p>
<p>I noticed now that I have to change to a different card-reader. I tried to connect a openlog shield (https://www.sparkfun.com/products/9530) witch is using TX and RX for communication and that seems to work.</p>
<p>can I just breadboard this and jump it straight to the arduino uno from the breakout board?<br></p>
It would probably work if the jumper wires are kept short.<br>Remember -- these are signal lines.
<p>OBTW, the +3V3 pin on my LC Studio board (which appears to be identical to the one pictured in the Instructable) is an OUTPUT from the on-board 3V3 regulator. When you apply +5V to the corresponding input pin, +3V3 appears.. My adapter is not going to be a proper shield; instead, I'm building it on a small hunk of perfboard and using DIP headers and a short piece of ribbon cable to connect it to the 'duino. (A shield wouldn't work for me anyway, as I'm using a SparkFun Arduino Pro Mini board, which is about the size of a postage stamp.)</p>
<p>You can also use a 74LVC245 instead of a CD4050 if you have one laying around (as I do).</p>
Yes, indeed. There are a number of suitable level-shifter buffer chips.
Another alternative is one of the newer generation of switchable<br>5v/3.3v Arduinos. Or a Hackduino powered at 3.3v. See one of<br>my other Instructables on my experience of building a couple<br>of these babies.
<p>Can you elaborate a little bit on the last paragraph? It's a little confusing with regards to the 5v input on the SD card module. First you say that we can supply +5v at the +5v input and that the module includes a 3.3v regulator but then you state that the +5v input is not dropped to 3.3v? So is it safe or not to connect the +5v from the Arduino over to the +5v input on the module without any additional logic? </p>
Feeding the data lines of an SD card with 5v logic will likely work.<br>For a while. But, you do so at your own risk. You may burn out<br>the card. Danger!
Thank you for your reply! I'll add a logic shifter to the project.
5v to power the breakout board is okay, as the on-board regulator<br>will drop it to 3.3v. But, 5v on the logic lines is NOT okay, so that's why <br>you need the level shifters.
<p>Interesting, I wired up the breakout board without level shifting the signal lines after I posted the comment and was able to write and read from an old 2GB SandDisk SD card. What are the side effects of not adding the level shifting logic on the signal lines? Data corruption or the SD card will die after short use?</p>
You can findSD shields for $1.50. In example: http://www.ebay.es/itm/330809484080
Yes, on eBay / Spain. And this particular vendor has had<br>payment problems lately.
I am in Spain, and boughth many things on ebay + paypal. Never had problems. Chinese vendors are very concerned about the paypal voting.
I was wondering about that. I found item #221242530114 on ebay and several others that stated specifically they support 3.3 or 5v levels on inputs as well as supply voltage. Guess it depends on the device. I wish they would supply data sheets.
Data sheets? Data sheets?<br>We don' need no steenkin' data sheets.<br><br>If they supplied data sheets and docs, then they wouldn't be selling<br>these breakout boards for a coupla bucks, shipping included. If you want docs and tech support, then buy the same products for about $10 more from Adafruit or Sparkfun.
If you've been having problems with this and other SD card shields, <br>try slowing down the read speed. To do this, you'll need to alter <br>SD card and/or FAT library files. I won't go into detail on this, since <br>mistakes can have bad consequences, so don't try it unless you're <br>confident that you know what you're doing. <br> <br>A hint (you'll want HALF_SPEED or less): <br> <br>Sd2Card.h:uint8_t const SPI_FULL_SPEED = 0; <br>Sd2Card.h:uint8_t const SPI_HALF_SPEED = 1; <br>Sd2Card.h:uint8_t const SPI_QUARTER_SPEED = 2; <br>Sd2Card.h:uint8_t const SPI_EIGHTH_SPEED = 3; <br>Sd2Card.h:uint8_t const SPI_SIXTEENTH_SPEED = 4; <br>Sd2Card.h: bool init(uint8_t sckRateID = SPI_FULL_SPEED, <br>SdFat.h: uint8_t sckRateID = SPI_FULL_SPEED) { <br>SdFat.h: bool init(uint8_t sckRateID = SPI_FULL_SPEED, <br>SdFatmainpage.h:card.init(SPI_HALF_SPEED) to initialize the SD card. <br> <br>
Great instructable , I've made it on protoboard and it's working good with a 4GB SDHC card. I had one of those LC Studio SD breakout's around and didn't know how to use it, this was exactly what I needed, only needed to buy an CD4050 for 0.5$.
Thanks, Vlad. Everyone who constructs this encourages the<br>next one to make it. I appreciate your comments.
Hi! I did it a little bit differently and it worked so I'll just share it. I used this breakout wich I assume is the same : <br>http://dx.com/p/sd-card-reading-writing-module-for-arduino-deep-blue-142121 <br>If you use the 5v input at the breakout board, most of the pins that go to the sd card will get regulated to 3.3v, that's good for pins 1, 3, 6, 7, 9 and 10 (1 being the one next to c4). So in order to regulate pins that belong to CS, MOSI and SCK I used three IRU1050-33 which are fixed 3.3V regulators (definitely overkill but I did not have a 4050 in my bag). It worked like a charm and even with 8gb SD =). Hope it's good info.
Yes. Alternate ways of getting to the same place <br>are always interesting. <br> <br>As Ruddy Kipling said, <br>&quot;There are nine and sixty ways <br>of constructing tribal lays, <br>And every single one of them is right!&quot;
great article!, one question though, is there a reason to not use the 3.3v output from the arduino board as the input to the 3.3v pin at the sd breakout board instead of using the level shifter?
Using the 3.3v from the Arduino board would probably work,<br>but note that the 5v source on the board is good for 500 ma,<br>whereas the 3.3v regulator can only output 100 ma max.<br>
How do you get free shipping from China when there are customs fees?
The seller absorbs the shipping and custom fees. <br>Look for eBay listings that say &quot;free shipping.&quot;
Isn't it about $25 minimum on a shipment? How could that be absorbed on a low cost item?
I don't know about any minimum, and I've quite often ordered items<br>on eBay for as low as $1, total, with free shipping from China.
great info. nevertheless..... the fact that one might already have a few protoboards afcourse does not really alter the price of this :-)
Not having to buy a protoboard knocks $5 or $6 off the<br>cost of building this. All the same, as I pointed out,<br>the purpose of the project is not so much to save money<br>as it is educational (and recreational). And, yes,<br>thank you for the compliment.
I realy dont want to nitpick, but it does not. That is the same as ordering all the parts, let them lie idle for a week and then build the thing saying it is free 'because you had all the parts laying around'
The cost to the project, if using a protio &quot;laying around&quot; would be indirect SO basically THIS prioject would be cheaper assuming the proto (as an example) was purchased for another reason and never used the outlay for THIS project would be less... <br> <br>SO although the cost is still the same with the above considerd the outlay for THIS project is less so we can split hairs all day seeing as this is so VERY important?--- or is it? So VAUE =$14 and expenditure in this case = $8+/- <br> <br>GREAT instructable!
Sounds like politician-style accounting.
Hi, thanks for this great instructable! Could you elaborate on the &quot;not-compatible with SDHC cards&quot; a bit please? I have several SD cards lying around here but they are all SDHC. What would have to be changed to reduce the noise/delays you mention? Is it somehow possible to make it work with SDHC cards? What about the ready-made SD shields, do they work with SDHC cards? Thanks a lot! <br>Chris
As I understand it, the difficulty with SDHC cards is that they <br>require narrower and more precise timing on the data lines. <br>This can cause problems with haywired leads, such as you find <br>in this project. And the ATMega 328 chip itself may not be fast <br>enough to interface with these cards. <br> <br>I suggest that you find references on the Net on this, as I certainly <br>don't represent myself as being very knowledgeable about it.
OK. Thanks for the clarification. As far as I have seen even the commercial SD card shields don't work with anything above 2GB. See the comments in https://www.sparkfun.com/products/9802. What a pity I don't have the old SD cards anymore....
http://www.dealextreme.com/p/2gb-micro-tf-card-with-sd-card-adapter-black-128032?item=2 <br> <br>$3.80 for 2GB with free shipping
My WiseClock 4 (http://timewitharduino.blogspot.ca/), using ATmega1284, works with SDHC as well. It's a matter of software, not hardware.
Thanks for the hint! I will have a look into your project! ... Chris
You can still find 1 and 2 GB SD cards on eBay and a few<br>other places, such as All Electronics. They typically sell in<br>the range of $3 - $5 each.

About This Instructable


165 favorites


Bio: hobbyist, tinkerer, old curmudgeon
More by thegrendel: The Arduino / TFT LCD Connection Using an In-System Programmer Switchable Dual-Voltage (3.3v/5v) Hacduino
Add instructable to: