Prototyping an sdio interface

I am trying to add functionality to camcorders that store data to SD cards. I would like to be able to put a connector or board into the SD slot of my camera so it looks like a regular SD card, but it is actually a shield or otherwise directly connected to the Arduino. My goal is to be able to use the Arduino to ship the video files to other locations on my network automatically without the latency involved with wifi cards like the Eye Fi. The writes would only come from the camera so I do not want to try to have two devices connected as read/write at the same time.

My question is, has anyone encountered something like this or can give me a hind as to how I might get started on something like this? My first instinct is to find some old ribbon cable from a hard drive, cut it down to the number of wires I need, get an old sd card, remove the memory and solder the ribbon wires to the contacts there. Then solder the other end into a standard sd shield. Is it that simple or is there more to it?

All that said, I am a total noob to arduino and hardware in general so any guidance from the community is appreciated.

Hopefully this description of what I am trying to do is clear enough. If not, here is a more detailed description:

The Requirement:
Get video off a regular digital camcorder without having to turn off the camera, pull out the sd card, upload it to a computer, then put the sd card back in and record again. This is for a camera that is mounted somewhere out of reach for manual interaction.

The Problem:
Most consumer-grade camcorders do not allow you to shoot tethered the way some DSLRs do. Using a WIFI sd card is slow and seems kind of silly to pull it off one sd card just to put it somewhere else to actually do something useful with it.

My idea for solving this:
Build a shield with an SD slot on it which has a ribbon extension that plugs into the camera where the SD card would go, but the ribbon connects it back to the sd shield on the arduino. The arduino would have read only access to the SD card, but would obviously provide a programmable interface to do things like exposing it to the rest of the network via a small web server or pushing the files to a central location via ssh or something similar.

An additional reason I want to use an Arduino is to control pan and tilt for the camera as well as additional controls to adjust zoom and press the record button since many budget camcorders don’t have the option for remote control of those features.

The Arduino is too slow for what you are proposing. Even the Due is too slow to process video.

There are also loads of other technical issues, which are not worth explaining in detail.

I've no idea what sort of device would be capable of doing what you want, as you required

SDIO slave functionality SDIO master functionality and connection to an SD card Ethernet functionality

And all at very high data rates, e.g. at least 10 mega bytes per second, (probably more)

It doesn't need to process the video. I'm not talking about writing a video stream to a file or transcoding it. The camcorder already does a good job of that when it writes files to the SD card. What I want to do is make those files available to the Arduino so I can do something with them(like copy them to another machine on my network for example) without having to transfer them from one card to another over wifi.

Think of a normal scenario where someone shoots a clip, maybe 4-10 seconds of video. 30 seconds at the most. They hit stop. The camcorder records that as a file to the SD card. Now I want to make that clip available on the network. So I want to copy that file to a media server. This is what EyeFi, Transcend, Flucard,etc are already doing, just over wifi. If they are able to accomplish that with the small amount of resources available I find it hard to believe that is impossible on an Arduino over ethernet.

It doesn't need to process the video. I'm not talking about writing a video stream to a file or transcoding it. The camcorder already does a good job of that when it writes files to the SD card. What I want to do is make those files available to the Arduino so I can do something with them(like copy them to another machine on my network for example)

It kind of depends on your camera.

What you are saying is that you want to make a dual port SD card.

ie the camera can write to the card on SDIO, but you then want to electrically disconnect the SD card from the camera and for the Arduino to read the card.

The only way to know if this is possible would be to build something with bidirectional tristate buffers on the data lines from the camera to the SD card, and try electrically connecting and disconnecting the card from the camera, and seeing whether the camera could handle this.

If the camera is OK with you doing this, you could then get the Arduino to access the data on the card.

However, like I said before, the Arduino is very slow and its access to SD cards is very slow. AFIK the best data rate that you can get onto or off the card is equivalent to low quality audio.

So the time taken for the Arduino to read off the huge data files that the camera creates is going to be quite considerable.

Also when you say transfer " copy them to another machine on my network", you are actually describing a very complex process that PC's Mac's do with ease as they are high powered devices with plenty of ram and rom etc. The Arduino has very little ram or rom space and is very slow by comparison with a PC.

You may be able to build something using an Arduino Yun, as its basically a unix box and an AVR arduino strapped together, but I think its still going to be a challenging project.

I'd also advise you post to a Raspberry PI forum as that board is more suited to this job, but would require additional custom hardware

Awesome. I appreciate you taking time to explain that to me. I will definitely check out the Raspberry Pi and I know there are several other small form factor devices that could work. Regardless, I still have to figure out how to get the data off the SD card in the camera without physically removing it from the camera.

Do you know if I would have to electrically disconnect the SD memory from the camera? I know that the wifi sd cards actually run a very small linux distribution and the EyeFi will do a SOAP call to a specified server on the network. The Transcend cards run a small web server to allow access to the files and they do not interrupt recording to allow that access. So it is theoretically the same thing where two operating systems and devices connect to the same SD memory simultaneously. The only real difference is I want to expose those files over a wired network or use a higher powered wifi device as the wifi cards have a very limited range.