Update: Nintendo DS Camera Control

All of the juicy details needed to control a camera from your Nintendo DS are now available at the Open Camera Control project. This is the descendant of [Steve Chapman’s] setup from a few years ago. The system has been polished up and has seen many feature additions. It’s been used in movie production and works with a wide range of cameras.

Start by building your own interface cable using an AVR microcontroller running the Arduino bootloader. Finish up by loading some open source software onto the DS to add a cornucopia of shot options.

[Thanks Pops Macgruder]

14 thoughts on “Update: Nintendo DS Camera Control

  1. Do you not need some kind of firmware flash or does the DS just accept the arduino as a stock gb rom? When I run homebrew on my DS, I had to flash the firmware or use a hardware bootloader. Things may have changed though.

  2. There are DS cartridges that load homebrew now. The reason new firmware was needed was because the DS would not, by default, load code on both cores if that code came from the GBA slot. Since the code is loaded from a DS cart, it can access the GBA slot in the same way that the Opera browser could access the RAM expansion, or other games could use the vibration or tilt sensors.

    I might have gone with a prebuilt cart, as there are lots with I/O for the DS. But this is a slick piece of software, which I think is the real hack to showcase here.

  3. Ive been using gphoto2 and a Nikon D70 for a while. I can control any of the camera functions, take a pic, and it auto saves to my laptop. Much like a normal studio setup. Works a charm.

  4. Has anyone ever seen an implementation of Canon’s SDK for ARM, Pic, or ATmel? There are many people using the standard 3 pin N3 shutter release cables to trigger Canon Cameras, but using the USB port allows a lot more flexibility.

    This site seems to hint they think it would be easy with a Vinculum module and PTP. I call BS on this. I have the Vinculum module, have looked at the gphoto2 source to see how ptp works, and am convinced it’s not a simple task. I think it would take me at least a few weeks to get the details worked out. I’ll probably do it someday when I’m not too busy, but if someone else knows of people doing this already I’d love to use their work as a starting point.

    The thing is it would be even better to use the Canon priority SDK protocols since they allow more flexibility than PTP, but this would require sniffing the USB port and decoding their protocol which is even more work than PTP. I’ve done a lot of searching, but I haven’t found anyone who has done this yet.

  5. @ Maurice. If you download the current docs for the canon SDK (search rapidshare / megaupload for “EDSDK-API.pdf”) you will find that Canon publishes the SDK for an extremely few OS’s and is X86 only. So any control app using Canon’s SDK would have to be developed on WinXP or MacOS. Neither of which run on the ARM, Pic, or ATmel.

    Perhaps it would be possible to make an app using the Canon SDK which iterated through all possible variations of calls in the API and then construct a new API based on the observed USB traffic. Just writing that sentence annoys me but it’s probably less work than what these developers went through using the gameboy.

    Another possibility is to use a compatibility layer like wine (but as far as I know there is no wine for Android and a lot of reasons why it would be difficult to implement). Still Android would be an attractive platform for this

    The last possibility I can think of is an iPhone app but I do not think the Canon SDK for mac could be wedged into service for the iPhone/iPad (being that it is for Intel macs only). Does make me wonder what sort of effort porting the existing gameboy apps to the iPhone/Android and combining the USB functionality would be.

  6. @ Maurice
    Theres small linux versions you can run on a DS im guessing. Just compile gphoto2 and make it point to the right ports. PTP on the camera, BAM all sorted.
    Else get a 7″ netbook thing.. Same concept just larger than a DS, it works fine. DS will do it, just requires more fiddling to make it work is all.

  7. I’ve tried to implemented this with a embeded linux system using gphoto thru USB and it works. It can do HDR, timelapse and being just a remote shutter. One more bonus is that it can use the USB over IP thru WIFI so that I can do anything with Canon EOS utility wirelessly. Acutally it can work with any camera wirelessly as it just maps a remote USB device wirelessly as a local device..
    But one issue of this is the battery power supply. It seems 2AA batter can not drive the embedded linux system and this is important to make it a small device used outdoor..

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.