Building the YaNis EOS Controller
by manis404 in Circuits > Arduino
35619 Views, 48 Favorites, 0 Comments
Building the YaNis EOS Controller
The YaNis EOS controller is a device that allows you to wirelessly control your Canon DSLR from your Android phone.
What's really exciting here is that the Android interface allows you to change most of the camera's settings (like Shutter Speed, Aperture Size, ISO, White Balance, Focus Position and others) from more than 20 meters away!
The controller is based on the Arduino platform and some commonly available parts. And as I will show you here, it's also very easy to assemble.
First, the list of things you will need:
1. An Arduino Pro Mini Board (3.3V version)
2. A USB Host Shield (Arduino Mini version)
3. A Bluetooth Module. (BlueSMIRF , RN-42 , or cheap ebay ones) [Anything SPP compatible will do]
4. A power source for the Arduino board
As you might have guessed, the 3 modules listed above will be simply stacked onto each other to obtain the nice PCB Sandwich that I decided to call "YaNis EOS Controller". Impressive.
When you have completed all the steps in this instructable, you will basically have a hardware interface that allows your camera to accept commands from your android phone via bluetooth. Now, to make your phone issue those specific commands, you will need the YaNis EOS app that I created. It's free, open source and available on the Android Market.
What's really exciting here is that the Android interface allows you to change most of the camera's settings (like Shutter Speed, Aperture Size, ISO, White Balance, Focus Position and others) from more than 20 meters away!
The controller is based on the Arduino platform and some commonly available parts. And as I will show you here, it's also very easy to assemble.
First, the list of things you will need:
1. An Arduino Pro Mini Board (3.3V version)
2. A USB Host Shield (Arduino Mini version)
3. A Bluetooth Module. (BlueSMIRF , RN-42 , or cheap ebay ones) [Anything SPP compatible will do]
4. A power source for the Arduino board
As you might have guessed, the 3 modules listed above will be simply stacked onto each other to obtain the nice PCB Sandwich that I decided to call "YaNis EOS Controller". Impressive.
When you have completed all the steps in this instructable, you will basically have a hardware interface that allows your camera to accept commands from your android phone via bluetooth. Now, to make your phone issue those specific commands, you will need the YaNis EOS app that I created. It's free, open source and available on the Android Market.
Soldering the Arduino and USB Shield
Step 1: Insert the pin headers on the USB Host Shield's two sides. Solder them to the USB Shield PCB.
Step 2: Insert the Arduino Pro Mini in those headers. Make sure you respect the orientation shown in the picture for this step.
Step 3: Solder the Arduino Board to the USB Shield's pins you just installed in step 1.
Step 4: (Optional) Cut off the pins leaving only the 3 pins shown in the picture.
If you have followed those steps correctly, you should get something similar to picture 2 and 3.
Step 2: Insert the Arduino Pro Mini in those headers. Make sure you respect the orientation shown in the picture for this step.
Step 3: Solder the Arduino Board to the USB Shield's pins you just installed in step 1.
Step 4: (Optional) Cut off the pins leaving only the 3 pins shown in the picture.
If you have followed those steps correctly, you should get something similar to picture 2 and 3.
Programming the Device
You will need to upload the firmware to the device BEFORE connecting the Bluetooth Module.
The firmware(or Arduino sketch) can be downloaded here:
http://code.google.com/p/yanis-android-wireless-camera-controller/downloads/list
(If there are several files, download the most recent one)
If you google around, you will see that there are several ways to program an Arduino Pro Mini board. Here I used an Arduino UNO board as a programmer.
Step 1: First, remove the ATMega Chip from the Arduino Uno.
Step 2: Connect the UNO and the Mini as described below:
(Uno -> Mini)
RX -> RX
TX -> TX
+3.3v -> VCC
GND -> GND
Reset -> GRN (Reset/DTR)
Step 3: Open up the Arduino IDE. Go to Tools>Board>Arduino Pro Mini (3.3v/8Mhz / 328)
(See picture 2)
Step 4: In the Arduino IDE, open the sketch you downloaded in the first paragraph above. Click upload.
If you get errors here, check your connections between the Arduino UNO and Arduino Mini. Make sure you did Step 3 correctly.
Step 5: At this point, you have uploaded the firmware successfully, adn you can now proceed to connect the Bluetooth module to the Arduino Mini/USB Host contraption.
The firmware(or Arduino sketch) can be downloaded here:
http://code.google.com/p/yanis-android-wireless-camera-controller/downloads/list
(If there are several files, download the most recent one)
If you google around, you will see that there are several ways to program an Arduino Pro Mini board. Here I used an Arduino UNO board as a programmer.
Step 1: First, remove the ATMega Chip from the Arduino Uno.
Step 2: Connect the UNO and the Mini as described below:
(Uno -> Mini)
RX -> RX
TX -> TX
+3.3v -> VCC
GND -> GND
Reset -> GRN (Reset/DTR)
Step 3: Open up the Arduino IDE. Go to Tools>Board>Arduino Pro Mini (3.3v/8Mhz / 328)
(See picture 2)
Step 4: In the Arduino IDE, open the sketch you downloaded in the first paragraph above. Click upload.
If you get errors here, check your connections between the Arduino UNO and Arduino Mini. Make sure you did Step 3 correctly.
Step 5: At this point, you have uploaded the firmware successfully, adn you can now proceed to connect the Bluetooth module to the Arduino Mini/USB Host contraption.
Connecting the Bluetooth Module
After you have uploaded the firmware to the Arduino Mini, you are now free to attach the bluetooth module.
But FIRST , you need to make sure that the bluetooth module is configured at 9600 Baud . Consult the datasheet of the module for more info on how to do this. The steps are usually simple, but they vary greatly across modules so I can't cover them all here.
I now assume that your module is configured at 9600 Baud .
Step 1: First solder the wires that provide power to the BT module. (picture 5)
Step 2: Solder the Rx pin on the module to the Tx pin of the Arduino. Likewise, the Tx on the module goes to the Rx pin of the Arduino.
(picture 6)
Step 3: You have now an essentially complete YaNis EOS controller. We just need to connect the power supply then we're good to go.
But FIRST , you need to make sure that the bluetooth module is configured at 9600 Baud . Consult the datasheet of the module for more info on how to do this. The steps are usually simple, but they vary greatly across modules so I can't cover them all here.
I now assume that your module is configured at 9600 Baud .
Step 1: First solder the wires that provide power to the BT module. (picture 5)
Step 2: Solder the Rx pin on the module to the Tx pin of the Arduino. Likewise, the Tx on the module goes to the Rx pin of the Arduino.
(picture 6)
Step 3: You have now an essentially complete YaNis EOS controller. We just need to connect the power supply then we're good to go.
Connecting the Power Supply.
The pictures will provide a better description of this step. Make sure you respect the polarity or you might end up frying up the whole thing.
The power supply can be anything between 3.5v and 8v. The arduino can theoretically accept up to 12v, but I am suspicious of the thermal dissipation rating of the regulator that is on the Pro Mini. Try at your own risk.
Once you are done, connect turn the controller on, connect to your camera and then turn on your camera. (The sequence is important here)
After that, you can pair the controller with you android phone/tablet and start using your new remote shooting skills.
Feel free to contact me for questions. But try to do a google search about the issue first.
manis404 @ gmail.com
quadslash @ yahoo.com
Notes:
- I used a 3.7v LiPo 400mAh battery from sparkfun here. This battery provides is good for about 8 hours of use.
- I replaced that annoying connector that comes with the battery with a standard 'jumper-wire' connector.
The power supply can be anything between 3.5v and 8v. The arduino can theoretically accept up to 12v, but I am suspicious of the thermal dissipation rating of the regulator that is on the Pro Mini. Try at your own risk.
Once you are done, connect turn the controller on, connect to your camera and then turn on your camera. (The sequence is important here)
After that, you can pair the controller with you android phone/tablet and start using your new remote shooting skills.
Feel free to contact me for questions. But try to do a google search about the issue first.
manis404 @ gmail.com
quadslash @ yahoo.com
Notes:
- I used a 3.7v LiPo 400mAh battery from sparkfun here. This battery provides is good for about 8 hours of use.
- I replaced that annoying connector that comes with the battery with a standard 'jumper-wire' connector.