Canon copied and implemented this project's functionality in its latest 6D camera! Awesome.
Project Instructable published! http://www.instructables.com/id/Building-the-YaNis-EOS-Controller/
This article is about a wireless Canon EOS controller that I was planning to build a few weeks ago when I saw Oleg Mazurov's PTP libraries for Arduino.
Basically, the controller accepts commands over Bluetooth from an Android device to offer full manual control over most of the camera's settings.
Manual control over:
- Shutter Speed
- White Balance
- Focus Position
- Live View STATUS
- Video mode
- Rack Focusing
- HDR Bracketing
- Bracketed intervalometer
- Arduino Side Battery life optimizations (about 80% improvement expected)
- Multiple camera control
- 'Script' mode
The set of command the device accepts in order to issue relevant PTP commands will be reffered to as the "Manis Command Set", MCS.
The app is available for free on the android market as:
This is an Open Source project - I plan to release the app's source code as soon as it exits beta status.
While I will write something more in-depth in the coming days, here is a quick build instructions of the hardware:
-An Arduino Board. (I used the Pro Mini 3.3v from Sparkfun)
-A USB Host Shield from here.
-(optional) A portable power source.
A LiPo battery can be useful. 1000mAh or more is recommended.
The Arduino sketch and required libraries is available at: http://code.google.com/p/yanis-android-wireless-camera-controller/
The Arduino software part is heavily based on Oleg Maruzov's excellent PTP/USB Libraries.
Current hardware revision has been tested to work successfully with a Canon 1000D. Should work equally well with 450D, 400D, 500D, etc. The whole Canon EOS range is expected to be supported at some point.
The pictures should have given you a pretty good idea how the listed components fit together.
If not, check out the instructable.
1. Arduino code is available on http://code.google.com/p/yanis-android-wireless-camera-controller/
2. Set the Bluetooth module to operate at 9600Baud. (else it won't work unless you alter the code). 9600 Baud is perfectly appropriate for this circuit. I don't recommend to move to higher baud rates.
3. Youtube Demo is being upload as I am typing this.
Feel free to report issues on the google code project page.