3 Simple Ways to
Share What You Make

With Instructables you can share what you make with the world — and tap into an ever-growing community of creative experts.

PhotosPhotos

Share one or more photos of a project, recipe, or whatever you've made, quickly and easily.

Step by StepStep-By-Step

Share your step-by-step photos with text instructions of what you made so others can do it too!

VideoVideo

Share your how-to video. You'll need your embed code from a video site such as YouTube.

Build your own (cheap!) multi-function wireless camera controller.

Build your own (cheap!) multi-function wireless camera controller.
«
  • DSC_7552.jpg
  • DSC_7559.jpg
  • DSC_7611.jpg
  • DSC_7584.jpg
  • DSC_5772.jpg
Introduction

Ever fancied building your own camera controller?

IMPORTANT NOTE: Capacitors for the MAX619 are 470n or 0.47u.  The schematic is correct, but the component list was wrong - updated.


This is an entry into the Digital Days competition so if you find it useful, please rate/vote/comment favourably!  If you reallly like it and are a stumbler, hit "i like it!" :)

Update: featured on hackaday! hackaday.com/2009/10/13/a-different-breed-of-camera-controllers/
Update: new photos of the laser trigger in action!
Update: First Prize =D, thanks for voting and/or rating!

This instructable is mainly for the benefit of SLR users looking to get a bit more mileage out of their cameras, however if there are any point and shoots with IR interfaces, you might find this interesting. Certainly this will also work (with a bit of modification) with camera hacks where you can wire up logical outputs to camera trigger terminals.

This started off as a full blown tutorial, but due to some unexpected constraints i encountered later on, it may be more of a guide as to how to accomplish various things - i'll often leave you the choice on how you could do things which i think is a better way of doing things than just blindly saying "you must do this".  Think of this as a lesson in camera controller design.

I've provided schematics and full code so you can always just copy it.  It will be a simple case of transferring the design to a stripboard and adding the LCD for most people.  I've gone through how to breadboard it since the process is very similar and allows for correcting mistakes before you make the design permanent!

Features:

Single shot mode
Interval (time lapse) mode
Triggered shot (trigger from external sensor) mode with variable conditions
Included sensor designs - light, sound (many more possible!)
Total cost - under £25 (excluding tools)
LCD Display for easy change of settings
Compatible with Nikon/Canon (coded), potential support (untested) for Olympus/Pentax
No firmware modification needed
Uses IR so is both wireless and doesn't damage your camera

I had the idea for this after sitting outside in the cold clicking my remote control for hours. I was doing an 8 second interval for around 1000 shots. I thought, hey, it's just an IR LED isn't it? Why can't i replicate it and make my own remote with a built in delay?

I then found out (somewhat embarrassedly, because i thought i'd had a massive brain wave) that this has been done and there are even a couple of instructables on the topic.

Where my implementation differs from most intervalometers and diy remotes is that it allows for a lot of customisation and modularity, is compatible with both Nikon/Canon (and likely others later) and combines the ability to take a picture on a particular trigger.

The idea is simple. You want to take a picture of something quite fast (limited currently by the lag on your shutter, for me 6ms). There are a variety of methods for doing this:

1. Trial and error  you try to take the picture at the right moment
2. Improved trial and error  you black out the room, put your camera on bulb (open shutter) and fire a flash at the right time
3. Buy a dedicated trigger controller that has some kind of audio/light sensor to take the picture at your command
4. Build one yourself!

Ok, 1 and 2 are fine for messing around and can yield some very good pictures. But what im going to show you is that its possible to construct a circuit that will give you consistent results time and time again. Most importantly, in these tight times, the cost is lower than alternative models (some people have produced kits doing this kind of thing, but they cost a fortune  see links).

The versatility of the design is this:
If your sensor generates an output voltage between 0 and 5V, you can use it to trigger your camera!
On the face of it this is a boring statement, but once you begin to understand the implications it becomes very powerful. By simply monitoring a voltage level, your trigger could be light based (LDR), sound based (microphone or ultrasound), temperature based (thermistor) or even a simple potentiometer. In fact, just about anything. You could even link the circuit up to another controller and provided it can give you a logical output, thus you can trigger from it.

The only major limitation of the design currently is that it works only with IR interfaces, it would be fairly simple to modify the software and hardware to output via mini-USB or whatever sort of interface is required.

Note: Source Code:

I have provided some applications in step 13.  The code i run on my controller as of now is up there in a hex file along with the main c file and its dependencies.  You can simply run my code if you are unsure about compiling.  I've also included some sample code that you can use in various steps (they're named obviously like remote_test, intervalometer test and adc test.  If i refer to code in a step, odds are it's in there.

EDIT: An update about balloons popping - it seems i was a bit short sighted when i said you could easily shoot photos of popping balloons.  Turns out that the skin on the average balloon travels so fast that it'll have popped completely by the time your camera fires.  This is an issue with most cameras, NOT the controller (which senses the ADC at a rate of around 120kHz).  The way round this is to use a triggered flash, which is doable if you add an extra wire out and another small circuit.  That said, you could in theory use something else to pop it and play with the delay (or even change the delay code to include microseconds).  A air pellet travelling 1m at 150ms-1 takes about 6-7ms, enough time to trigger and shoot.  Just moving the gun would provide a rudimentary delay of a few microseconds.  Again, apologies about this, i'm going to play about tonight if i can get hold of some balloons, but there are still many uses for an audio trigger, like fireworks!

I've put a quick and dirty time lapse below to show that it works however :)



Don't forget to read, rate and/or vote!

Cheers, Josh

Disclaimer

In the unlikely event that something goes horrifically wrong or you somehow brick your camera/dremel your cat, i am not liable for anything.  By starting a project based on this instructable, you accept that and continue at your own risk.


If you make one of these, or use my instructable to help you - please send me a link/photo so i can include it here!  The response has been overwhelming so far (at least by my standards) so it'd be awesome to see how people are interpreting it.  I'm working on revision 2 as i type ;)


 
Remove these adsRemove these ads by Signing Up
 

Step 1Some initial thoughts...

So, how are we going to build this thing?

Microcontroller

The heart and soul of this project is an AVR ATMega8. It is essentially a slightly trimmed version of the ATMega168 chip that Arduino use. It is programmable in C or Assembly and has a variety of really useful features that we can use to our advantage.

" 28 pins, the majority of which are input/output (i/o)
" Onboard analog to digital converter
" Low power consumption
" 3 onboard timers
" Internal or external clock source
" Lots of code libraries and samples online

Having lots of pins is good. We can interface with an LCD screen, have 6 button inputs and still have enough left over for an IR LED to shoot with and some status LEDs.

The Atmel AVR series of processors has a lot of support online and there are plenty of tutorials in getting started (i will go over this briefly, but there are better dedicated tutorials) and heaps and heaps of code to mull over. For reference ill be coding this project in C using the AVR-LibC library.

I could have easily gone with PIC to do this, but AVR is well supported and all the examples i've found for remotes have been AVR based!

LCD Display

There are two main types of display, graphical and alphanumeric. Graphical displays have a resolution and you can put pixels wherever you like. The downside is that theyre harder to code for (although libraries exist). Alphanumeric displays are simply one or more rows of characters, the LCD has an onboard store of basic characters (i.e. the alphabet, some numbers and symbols) and its relatively easy to output strings and so on. The downside is theyre not as flexible and displaying graphics is virtually impossible, but it suits our purpose. Theyre also cheaper!

Alphanumerics are categorised by their row and column count. The 2x16 is pretty common, with two rows of 16 characters, each character being a 5x8 matrix. You can get 2x20s too, but i dont see the need. Buy whatever you feel comfortable with.

I chose to use a red backlit LCD (i want to use this for astrophotography and red light is better for night vision). You can go without a backlight - its entirely your choice. If you choose a non backlit route you will save power and money, but you might need a torch in the dark.

When looking for an LCD, you should ensure that it is controlled by the HD44780. It is an industry standard protocol developed by Hitachi and there are a lot of good libraries that we can use to output data. The model i bought was a JHD162A from eBay.

Input

Input will be done by buttons (simple!). I chose 6 - mode select, ok/shoot and 4 directions. Its also worth getting another small button for resetting the micro in case of a crash.
As for the trigger input, some basic ideas are a light dependent resistor or an electret microphone. This is where you can get creative or stingy depending on your budget. Ultrasound sensors will cost a bit more and require some extra programming but you can do some really neat stuff with them.

Most people will be happy with a microphone (probably the most useful general sensor) and electrets are very cheap. Be aware that itll need to be amplified too (but ill go over this later).

Output - Status

The only real output we need is status (besides the display), so a couple of LEDs will work fine here.

Output - Shooting

For taking pictures, we need to interface with the camera and for that we need a light source that can produce infra-red radiation. Thankfully there are a multitude of LEDs that do this and you should try to pick up a reasonably high power one. The unit i chose has a current rating of 100mA max (most LEDs are around 30mA).

You should also take care to note the wavelength output. Infrared light is in the longer wavelength part of the EM spectrum and you should be looking for a value of around 850-950nm. Most IR LEDs tend towards the 950 end and you may see a bit of red light when it's turned on, this isn't a problem, but it's wasted spectrum so try to go closer to 850 if possible.

Power

How are we going to power all this? Well, it's going to be portable so batteries! I chose to use 2 AA batteries which are then stepped up to 5V. I'll go over the reasoning behind this in the next few sections.

'Casing and Construction'

How you do this bit is entirely up to you. I decided to use stripboard for the circuit after prototyping because it's cheap and flexible and saves designing a custom PCB. I have provided the schematics so you are free to make your own PCB layout - although if you do, i would be grateful to have a copy!

Again the case is entirely your choice, it needs to be able to fit the screen, buttons (in a fairly intuitive layout if possible) and the batteries. As circuit boards go, this one isn't that complicated, a lot of the connections are simply to things like the buttons/LCD.
« Previous StepDownload PDFView All StepsNext Step »
43 comments
1-40 of 43next »
Sep 17, 2011. 12:54 AMvignesh1230 says:
Can this be made to have a bulb mode for the D3000? I have no experience in C though :/
Sep 18, 2011. 12:36 AMvignesh1230 says:
And i also dont get how you used a MAX619 regulator to give you 5v and 3v, but if i use a 9v battery with a LM7805, i would only get 5v and 9v rails :/ Or do i use another regulator to get it down to 3v?
Sep 18, 2011. 2:42 AMvignesh1230 says:
OR could i just use a LM7805 with a 9v battery and Have a only a 5v rail. Then power everything off that (the LEDs rated to 5v) and for the IR emitter (forward V - 1.5) so i guess R = 60/5 - 12 Ohms And then the 5 Ohms from the FET should mean that i only need a 10 Ohm resistor? Correct me if i am totally wrong :) Sorry for all these questions
Sep 17, 2011. 7:29 PMvignesh1230 says:
I will wait for you to create the next one then :) Ill have a couple of read through this to understand it more. Great instructable!

I did have an idea to do something like this but instead of an IR i could connect it to the mini USB port on my camera and somehow program an Atmel chip to send WIA commands.

And also dosent bulb mode need to have its shutter button pressed so it would take bulb? Dosent that mean that the IR has to continually send the shutter open command?
Sep 27, 2011. 10:56 PMvignesh1230 says:
So i run everything off 5v if i choose to down convert?... Would i need to put anything between the leds so i dont fry it?
Dec 17, 2010. 7:48 AMSushi Warrior says:
I was about to order an ATMega8 when I noticed it has an interesting sibling - the ATMega8A is built for a 3V input! Now I'm not exactly experienced, so I was wondering what your thoughts on using that one instead are. I'd run into lots of problems if it functioned different than the version you used in this (awesome) instructable.

http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=ATMEGA8A-PU-ND

Thanks for the help, and AMAZING guide!
Nov 6, 2009. 1:31 PMKitty-Tippie says:
This is stupid i only see a board with: |Max 619| on it.
                                                                |Csa        |
                                                                |O +         |
                                                                |-------------|
This does not help to build it.
Oct 20, 2009. 8:16 AMvectragt says:
Hello!

Nice Project!
I build that, but not working (nothing write to  LCD & no LED light up)
How set the fusebit in ponyprog?

What light LED1&2?
What doing the S1-S6?

Can u help me?

Have a nice day!

Oct 21, 2009. 1:02 PMvectragt says:
Thanks reply!

I write the Code\Cannon\main_canon.hex with pony-prog.
Fusebit : Spien,EEsave,BOOTSZO0    CKSEL1
Wiring the circuit! When connect the power than display 1 line all pixel is on.
Resonator is working when powered (See with scope)
When touch Osc1 Pin9 than scrolling random characters and random flashing the led1-2.
What maybe wrong.
Thanks for help!
Oct 15, 2009. 9:07 AMlynne123 says:
Too cool - but Youch - my non-electronics brain is getting a cramptrying to understand it.
Which leads me to a question:
Since you are obviously electronically adept, Maybe you could helpme.  I have been trying to make a large trash can that willdispense a treat when trash is thrown in. I have a cereal dispenser,small electric motor and gears, but have not been able to find a sensingsystem that will trigger the motor for a variable 1-4 seconds, cover alarge area, and sense a thrown object.
Is this something that I could put together with my limited skills? Andwhere would I look for help and supplies?
Oct 16, 2009. 10:13 AMlynne123 says:
Thanks for the good ideas. I feel less like I'm stumbling in the dark.

And I'm sure breaking it into chunks will be the best advise yet for helping me work this out.

Thanks again.
Lynne123
Oct 16, 2009. 9:08 PMdeathfromabove says:
i would go even simpler than that... if you just need voltage to go high for a few second to the motor, i.e. no pulses or data, you could just pick up a PIR motion detector and delay timer from an alarm company and wire the motion detector to close a relay for however many seconds when it sense motion in the trash can... it sounds likke you have a very interesting project here and i'd be interested to see how it turns out....

and by the way, Whiternoise, i LOVE this instructable and i LOVE your camera controller... i will definitely be trying this as soon as i can!
Oct 19, 2009. 9:17 AMlynne123 says:
to deathfromabove,
Thanks for the great idea for the motion detector and timer. I will be sure to make it an "instructible" if I ever get it done.


Oct 15, 2009. 5:24 PMrndmnmbr says:
Upregulation is an interesting idea.  Personally, though, I'd gofor 4 AA's. 4 2500mAh NiMH's will produce 4.8v, enough to power theremote, and convenient too since I carry 16 of them in my camera baganyways for my flash, and another 4 won't make that much of a difference(in a pinch, 4 alkalines will work, too, but I wouldn't do it for long).
Oct 15, 2009. 3:41 PMflemron says:
I must say brilliant read! you sir know your stuff!
Oct 15, 2009. 3:25 PMflemron says:
'You should then connect RS to pin , R/W to pin and E to pin .'

what are these pins?
Oct 15, 2009. 3:17 PMMig Welder says:
wow nice.
too bad I probably couldn't build something like this :( :)
Oct 15, 2009. 11:15 AMjamwaffles says:
This instructable is awesome :D it makes me envious due to the fact idont think i could get one to be this good AND the fact i need to dosomething to make an instructable out of! nice job and i really like the results

James
Oct 15, 2009. 6:04 AMHowlinPreacherMan says:
Nice job Josh!

I'm going to start ordering the components this weekend.

Cheers,
Joe
Oct 13, 2009. 9:15 PMFrivolous Engineering says:
Wow!  Great instructable.

 

Oct 14, 2009. 5:14 AMchilll2009 says:
 I will vote ! ! ! I will put 5 stars! ! !
Oct 13, 2009. 8:12 PMyokozuna says:
I didn't exactly read this all the way through, but it's clear all the proper documentation is there.  Excellent photos as well, props for including the needed code, five stars, great project.
Oct 13, 2009. 12:47 AMTrigger_Happy says:
"... my first real project in electronics..."

Your FIRST project involves circuit design, interfacing, programming, - wow!

If this is the standard of your first project, I predict that you will be the guy to invent nuclear fusion within 12 months!

Incredible job!
Oct 13, 2009. 8:21 AMkmpres says:
Most impressive!  The detail is just what I need to fill in the gaps of my limited understanding.  I have made many electronic projects, and enjoyed writing about one for this website, but never have I built one so feature rich for the number of components used like this one.  The advantages of "going digital" are readily apparent.  I can see I'm going to have to dust off my as yet unused Arduino and get to programming something useful with it. Well done, and well written, too! 
1-40 of 43next »

Pro

Get More Out of Instructables

Already have an Account?

close

All Steps Viewing
View all steps of an Instructable on the same page when you're a Pro Member.

Upgrade to Pro today!
15
Followers
1
Author:Whiternoise
I'm a third year physicist at Warwick University, dabbling in electronics and photography and currently seeing what interesting combinations you can make with the two :)