I figured it would be best to start a new thread for this then posting it in the USB thread.
This is my first rough prototype of a USB host controller for the GBA (slot-2) of a nintendo DS & DS lite. You may have seen the GBA DMA interface in the USB thread. The code was written and developed on an Atmel AVR (non-Arduino) and ported over to the DS. It is much easier to develop code on an AVR then on the DS which you have to constantly swap SD cards on every recompile. I wrote the code to be as platform independent as possible so it can be moved to whichever device needed. I do not think it would be too hard to add to the OCC code once done, you will just need to call a few functions to init the vinculum and to take picture, change exposure time, etc. It is still very rough and once I clean it up and get some more kinks worked out I will post it (that could take some time). I am only using a very, very small subset of commands from the PTP & MTP specification.
I am using a FTDI Vinculum USB host controller for the USB interface. A xilinx CoolRunner-II CPLD is used to convert the GBA (slot-2) DMA interface to the FTDI PFIFO. There are only two main components uses the Xilinx CPLD and the Vinculum USB host controller, everything else is for development and debugging.
USB power is left disconnected from the USB port as it is not needed. A connector for external power and simple linear LDO regulator can be used for the rare cases where USB power is needed, for instant a firmware update from a flash drive.
This design can also trigger a camera from a standard shutter release cable for cameras not supported by USB commands. It is also slightly faster to command an exposure setting via USB and fire the shutter release cable then to send a command over USB to fire a shot. This is also how the promote controller does it.
http://www.youtube.com/watch?v=N9Nz87gh2-Y(Watch on You0Tube for HD and video annotations)