For nearly every problem, it’s possible to engineer a solution, even if you’re dealing with an extraordinarily niche problem that might only apply to yourself. [Joel] wanted to be able to program the microSD card in his BeagleBone with a new bootloader or file system without removing the SD card from the target board. This is a peculiar requirement, and it’s highly doubtful a product or even a circuit exists for such a function. This meant [Joel] would need to roll his own board to accomplish the task.
The board is remarkably simple, housing a single microSD socket, two expansion headers for a microSD sniffer for a computer and an embedded board, an FTDI header, and a pair of 4-bit multiplexer/demultiplexers. The operation of the device is fairly straightforward: send a signal down the FTDI cable, and the board switches the onboard SD card from one device to another.
[Joel] has a video of his screen that shows him pulling off in-circuit SD card reading and writing. You can check that out below.
28 thoughts on “The In-Circuit SD Card Switch”
Totally did this the exact same way. Same USB-SD converter too.
Can you share the board design files? I’m curious to see what yours looks like.
Email: email@example.com . Thanks.
Took me a while from the picture to see what was actually going on. Would it have been any harder to only have one board with the two micro SD shape and contacts, instead of two large sparkfun breakouts connected the the board?
The hard part was finding a PCB service to build one of the suitable thickness. The sparkfun boards are thin enough (0.75mm) to fit into an SD slot. I had otherwise had no reason to use them. Let me know if you have any suggestions of PCB fab houses that can build one of the required thickness (<= 0.75mm).
“For nearly every problem, it’s possible to engineer a solution, even if you’re dealing with an extraordinarily niche problem that might only apply to yourself.”
Am I the only person who feels this way almost all of the time? Somebody should create an easy to use place that is easy to search that can allow people to explore previous, related work (if possible) for things like this.
Yeah, you’ll be surprised how many people have a similar problem that may be thought niche. Quite a few folks have shown interest in my board which I did not at all expect.:)
If I had to do this, I’d probably use one of the generic (non-EyeFi) sd+wifi cards that have been on the market recently – the embedded linux they run has been hacked, so you could telnet into it and modify the data exported from the SD interface on the fly.
That’s exactly what I expected to see, turns out i was wrong.
Do you know of one that is available in microSD form factor? Thanks.
I don’t think you could build a linux-based card inside the microSD form factor, but they do make SD to microSD adapters:
Well that is an interesting idea. I will want to see any immediate debugging that he has to do.
I’ve too have faced a similar problem. I had a microcontroller writing data to a SD card and then creating a MSD for a computer to download the data via USB. But the having the microcontroller handle all the USB data meant slow downloads (~100kB/s) and complicated firmware! My solution was to use a specialized IC (MAX14502). It added made the BOM quite a bit more expensive but was worth it.
Where were you able to purchase the MAX14502? I only need 1 or 2 of them but cannot find any suppliers.
Mouser stocks these ICs. But they are quite expensive. I ended up buying directly from MAXIM, which ended up being about 1/4 the price in low MOQ (25 or so). Also I found that you need to toggle the SD card’s power after the MSD has enumerated so that you can read the disk properly.
If its possible, could you share the schematics/design with me? (Email: firstname.lastname@example.org).
Do you know if the MAX14502 can handle UHS signalling?
Another option is to use an MSP430 or similar microcontroller and write to the card in SPI mode.
TFTP to load uImage and NFS for the root FS
How about a SD card that you can write on via wifi instead?
not a bad idea, how bad is that it is too costly
I can’t find the link atm but this is old hat. Linero had a much simpler pcb to do this years ago
I just got back to town, it was such a pleasant surprise to see my project featured on hackaday! I will reply to all comments and keep up with new ones.
Thanks again hackaday, its very encouraging!
I have an idea: how about a SD card that would serve as a ethernet controller with a ethernet port?
Sounds good but what application/use are you targeting? Why not SD + wifi as suggested in previous comments.
Where can I buy one of these ?
2 Years along, are there any updates on who is selling such devices, looks like this board would work for me, but ned a trial or some way to know if speed/bus timing will be an issue in advance? Any places to get a trial board?
Do you sell these boards either put together or as a pieced out set? I would love to purchase a couple from you. Please contact me at email@example.com with information.
3 years after the last comment I stumbled across this…
You might try out this one, we are using that with great success for automated deployment to test-devices:
hey Jogi. I’m facing the same issue but I can’t order here in Brazil.
Trying with a 4066 the switching between inputs didn’t work. Could you suggest a “common”/simple IC for switch the channels?
Please be kind and respectful to help make the comments section excellent. (Comment Policy)