Camera control

Hi folks,

Have been reading the forum for the past week and decided to register as I have a question on feasibility.

I own a couple of different cameras, which have different remote-release ports/sockets on them (5d2 and 400d). I have cables for both ports but am trying to make something which will trigger them on lightning, sound, vibration and also act as an intervalometer and a simple remote release for both normal operation and hold the shutter open in bulb mode. The intervalometer and normal release functions can be bought on ebay for not very much, but I want to design&build this, not buy it

I could build relatively simple circuits to do each function (apart from intervalometer) and plug a board/box into the relevant cable for whichever method of triggering was required, but would prefer the challenge, of course, of doing this via a microcontroller in a box with buttons and display (of some sort, which can, for me, be LED's). Microcontroller control is especially relevant for the intervalometer function. The last time I did anything microcontroller based was over a decade ago at the end of a long course (most of which has fallen out of my ears when other things went in) and I/we(the group I was in) used a PIC as the heart of the project.

I've already found information on which pins I'm required to short in the remote cables to release the shutter, but am wondering how one might go about planning a project like this. I've defined (ish, and can be more formally written) what the end result needs to be, but trying to work out how to plan out the design stages before building. Past experience tells me that not defining things properly makes for things going wrong.

What software packages do you all use for planning things out? If not software, do you use a particular technique (just the names of techniques I can research would be appreciated), or is it just the old-fashioned back-of-a-beermat notes?

Thankyou in advance for both readng and any responses.

Best,
Matt

Use cases are popular where I work, but really, if you simply produce the formal write up you mentioned, in any form, you're way ahead of the curve on projects like this. Your requirement sounds simple enough that no more formal design would be required, or particularly helpful. Pick top down, bottom up (or a combination of the two) and get to it.

Oh boy, something I know about. 8) :slight_smile: XD

This is one the things that it depends. Some projects grow organically, and some are planned more from the top down. It depends on your skill and personality, and whether you are doing the job for your own amusement, or are trying to sell it as a product, or is meant to solve a particular problem.

When I'm at work, I tend to need to define things more formally, I find stuff I do for my own amusement is better done organically. For example, my current project for the last two years has been a steampunk camera, where I embed my DSLR inside of a wooden frame that I've built, to make it look like bellows camera used by newsphotographers in the 1930's. I don't really have a grand plan, but as I come up with things, I incorporate them into the design. I've probably rebuilt the box about 6-7 times now, refining as I come up with new ideas.

One of the bits on the camera involved a telegraph key, as I'm trying to add bits from modern day cell phones in the bit. After having a number of people ask me about firing the camera with the telegraph key, I sat done and did it, hooking the 2 wires for focus and fire on one side of the telegraph, and the ground wire on the other side. It was a simple hack, but a lot of people find it interesting.

However, in using it, I'm finding that I don't like having the focus (1/2 press of the shutter) and fire done at the same time, since my camera (Olympus E-5) in live view mode is somewhat slow at focusing, and occasionally shoots before it has achieved a focus lock. Since I just jumped into Arduino programming, I'm planning on programming the Arduino to monitor the pin connected to the telegraph key, and when the key goes from open to close, connect a relay that connects the ground and focus wire from the camera. When the telegraph key pin goes low, I will connect a second relay that connects the ground and fire wire (with the relay for focus also connected). After a short period of time, I will turn off both relays. This way it will give me both controls, and unlike my current setup, the focus and fire wires won't be tied together, which means if I 1/2 press the shutter with the normal shutter button, it will just do the focusing. Right now, I just ordered the battery and relays, and expect them on Monday or Tuesday.

One of the things when beginning a project it is often times useful to see what other people are doing. Now, if you just want the solution, you might find one of the other commercial projects will fit your needs. On the other hand, if you are a maker (which it sounds like you are), looking at what others have done might give you ideas. There are two Arduino commerical camera control projects that I'm aware of, some amateur projects, along with other projects that use cell phones. The links I have saved include:

  • Triggertrap: https://triggertrap.com/ -- I bought one last summer when it was a kickstarter project. They have had various delays in shipping the Arduino based product, and I'm still waiting. Since then, they have come out with a mobile version that runs on the iphone, but since I use an Android phone, that isn't useful to me. Their code is available for download if you want inspiration.
  • CameraAxe: http://www.cameraaxe.com/wiki/index.php?title=Main_Page -- I discovered cameraaxe recently, and it looks like a more finished product. It is also Arduino based, and the source code is available. They have a shield version if you wanted to extend it. Here is an early video on youtube showing the cameraaxe: Arduino High Speed Photography Trigger - YouTube
  • DSL remote: http://bitshift.bi.funpic.de/en/dslr-remote.php?lang=EN -- A free android phone app, that you need to make a custom cable for your camera.
  • DIY Arduino intervalometer: http://openmoco.org/node/88 -- Here is a basic DIY on how to setup an Arduino as an intervaometer
  • Arduino camera servo #1: Intervalometer Robot - YouTube -- For those cameras that don't support a wired shutter release, using an Arduino servo to push the shutter button. I've been playing with servos, and I'm thinking of replicating this.
  • Arduino camera servo #2: Ryosuke's Projects: Remote Shutter Release -- Another project to make an Arduino remote finger.
  • Camera release pin-outs: www.doc-diy.net :: camera remote release pinout list -- Here is a site that describes most of the known wiring setups for the various camera releases. It sounds like you don't need this, but perhaps others will find it useful.
  • Android Canon DSLR controller: http://www.howtogeek.com/94991/dslr-controller-enables-android-based-canon-camera-control/ -- This goes way beyond just firing the camera. It is only available for some Canon DSLRs. I suspect it requires more processing power than you can do on an Arduino, but maybe I'm wrong.
  • Yongnuo remote live view and shutter release: http://www.hkyongnuo.com/e-detail.php?ID=242 -- This is an example of combing live view with shutter release. There are several other devices, including wireless versions. Now, as I said, I suspect Arduino might not have the horsepower to process live view video from the camera, but you could always incorporate a hand held monitor to show the video out and use the Arduino as the shutter release. I wrote a review of this device on dpreview.com: Yongnuo LCD remote control live view finder: Olympus Compact Camera Talk Forum: Digital Photography Review.
  • Hand held monitor: In terms of a separate hand held monitor, if you look around you can find pocket video cameras and mp4 players that take video in, and use them. I originally used a Wolverine MyMovie camera, which is out of production now, and I've moved on to a JXD 696 that uses a standard Nokia 5C battery. You can also get portable monitors to attach to a car for backup, if you don't mind having a 12 volt power supply. The picture of my original setup with the MyMovie

Thankyou to both of you for responding.

Thankyou especially Michael for that full-of-information response. Lots of ideas there!

I could buy something which does all of the things I want to do, but it's been a long time since I was in a situation where I had to "make it work" (whether pretty or not) and I miss that a little.

It would probably save me what little remains of my hair to buy something, but there's no challenge there and when things go wrong, its far better to be your own as you can trace faults really easily and get the satisfaction of having fixed it. Building my own will also be much more robust and engaging my kids with the design aspects (at the least) will be a nice bonus.

You are welcome. Sometimes it is more convenient to buy something off the shelf, but it can be more satisfying to make something yourself, even if the commercial product is more finished. Of course it is also more frustrating when things don't go right.

In the commercial world there are two main schools of thought on developing a large project:

  • The waterfall method where you do a complete top down design and iterate until you have a finished product, and release it all at once. The problem with waterfall is it can be a vary daunting task to get everything you want done in a single release.
  • The agile method where you break things down to very small tasks, and do each task. You make releases early and often, iterating on the feeback from the stakeholders. The problem with agile is often times the iteration period is set to a fixed period of time, and you spend all of your time breaking things into smaller and smaller units just to meet the artificial deadline, and you lose track of the overall goal

Some things tend towards the waterfall method, and some to agile. Frankly I find both to have really good points, and points where they are completely inappropriate. I tend to be of the opinion that the way in the middle is better. You want to have a project that has multiple stops along the way that does something at each stop, but you also want to have an over-arching view of what you want to accomplish.

So in terms of your project, you have several different things you want to do. The first step, would be to rig a button and make a single camera fire. Then get wires for each of your cameras. If you look up pixel shutter releases, the resellers for pixel often times sell the cables for each camera fairly cheaply, and the cable has a 2.5mm phono plug with 3 sections. You would get a 2.5mm surface mount (or other similar) female connection that you would plug cable into. I tend to think you want some sort of electrical isolation between the Arduino and the camera, as you don't want to ruin your camera with extra voltage through the shutter release. You don't want to ruin the Arduino either, but it is much cheaper to replace the Arduino if you do. Here you would use an opto-isolator or a relay. I'm at that stage right now. I bought some opto-isolators from the local electronics store, and I can't get it to work, so I just ordered some relays to use.

After you have the basic shutter release working, then you can add additional triggers, one at a time, or timers, etc. Do them one at a time, iterating until you get each one done.

Be sure to remember to do backups off of the computer you are working on. It can be frustrating to have to recreate everything from scratch in case something happens. In addition to backing up the code, make sure you have a wiring diagram of how to wire the board, and what pin assignments to use, etc.

It may make sense to have two breadboards, one with the wires setup for the current finished project, and the other to use for development of the next round.

Every so often, it may make sense to step back, and see whether it would be useful to start over, using the knowledge you've gained in the redesign. But you want to guard against churn and changes just for change sake. You want to actually get to end points. I know from experience that sometimes engineers iterate too much, and never ship the product.

MichaelMeissner:
One of the things when beginning a project it is often times useful to see what other people are doing.

Thanks for the suggestions. I grabbed a flash sync cable from the local camera shop and made up something along the lines of what Matt Richardson described. Results here:

Seemed to work pretty well once the teething problems were eliminated. :wink:

Here, for example, the flash fired twice:

Here is the balloon half-burst:

I've done a post about the circuit, sketch etc. used for the above photos:

Nick,
That is great ... however, you miss so much. In order to flash the sound of the pop must reach the mic. Even with the mic close to the balloon, you loose the time before that. You need an Arduino Controlled Pin (ACP). You can then control the time delay between that ACP and flash. You could also control the shutter instead of the flash and them you could control the time between the ACP and shutter. This would work outside in daylight as well. You would probably need daylight to given the shutter speed you will want.

Your mission, Mr Phelps, should you decide to accept, is to build an ACP and post your results. Of course the Secretary will disavow any knowledge.

Interesting thoughts. The camera doesn't seem to have an external shutter, excepting some sort of IR one. I suppose that I could buy one, work out what the code is, and make something to send that quickly.

IIRC, IR is too slow for high speed photography type shots because it is a fairly slow serial protocol. On my Olympus, it was too slow to take pictures of people that weren't posing for the shot.

IIRC, the software here has most/all of the IR codes already programmed in: http://sebastian.setz.name/arduino/my-libraries/multi-camera-ir-control/

MichaelMeissner:
IIRC, IR is too slow for high speed photography type shots because it is a fairly slow serial protocol.

I thought that might be the case.

I don't recall if I mentioned this in my first reply. You could build a servo that fires your camera without using either IR or a wired shutter release:

I've been thinking of making one, particularly if I can get a robot finger to use with the servo.

Here is an commercial product:

However, in high speed photography, even the wired shutter release tends to be too slow, and most of the sites I've seen tend to like having the camera pre-focused in the dark using a bulb timer, and use the Arduino to power the flash instead of the shutter release. Obviously if you add the ADC to pop the balloon, it will know when to start the count down before doing the flash. I can see many helpless balloons being sacrificed to get the timing right.....

Well the first thing I discovered was, walking around in the dark with a balloon in one hand, and a pin in the other, is just asking for the balloon to burst a bit ahead of schedule. :wink:

And I can just imagine what a automated/arduino pin delivery system would do in the dark. Better have the shop safety glasses on.
8) ]:smiley:

I don't know much about cameras but I would think that if it had an IR remote it would support a wired one. I just ordered a wired remote for my camera. Some cameras, don't know which ones, have a socket like a cell phone head phone, 2.5mm 3 conductor. One is used for focus and the other shutter. I plan to put a "stereo jack" on the wired remote to make my connections easier.

I just watched a time-lapsed video that was composed from hundreds of JPGs. Apparently it made with free software and you just point the program to a directory with your photos and it converts them into a video. I might be able to do that.

I wish there was a way to connect a cheap web cam or similar camera with the Arduino so it could take and store the pictures. However, the closest I have seen is a $45-$50 dollar serial camera. I'm so cheap, lately I have been playing with breadboarding an Arduino using the internal oscillator just to save on the cost of a crystal ... (not really, just seeing if I can do it). But a camera for under $10 would be a great addition to an Arduino. It could store the photos on an SD card. Cheap cameras have such low resolution that a lot of photos could be stored on one SD.

MichaelMeissner:
And I can just imagine what a automated/arduino pin delivery system would do in the dark. Better have the shop safety glasses on.
8) ]:smiley:

But I want to take pictures like those ones of a bullet going through an apple. Now let's try that one in the dark Makes the pin look safe.

Lets see, I own several Olympus cameras, and they are all over the map in terms of what controls they have:

  • The point and shoot VG-120 has neither IR nor wired shutter release
  • The C-2100UZ uses an IR shutter release (RM-1), but does not support a wired release
  • The E-1, E-3, E-5 DSLRs uses both an IR shutter release (RM-1) and a wired shutter release (RM-CB1)
  • The SP-550UZ and E-P2 do not support an IR shutter release, but they support a different wired shutter release than the 3 DSLRs (RM-UC1).
  • Note that there are two different wired shutter releases, the older RM-CB1 used by the E- cameras, and the newer RM-UC1 used by most of the newer DSLR, mirrorless, and enthusiast cameras.

In terms of the 3 wires in the shutter release (ground, focus, and fire), some brands want the ground and focus connected to do the focus action, and the group and fire wire but not the focus wire connected to shoot. While others want all 3 wires connected. One camera (Panasonic) uses only two wires, but different voltage levels to distinguish the two.

MichaelMeissner:
Lets see, I own several Olympus cameras, and they are all over the map in terms of what controls they have:

  • The point and shoot VG-120 has neither IR nor wired shutter release
  • The C-2100UZ uses an IR shutter release (RM-1), but does not support a wired release
  • The E-1, E-3, E-5 DSLRs uses both an IR shutter release (RM-1) and a wired shutter release (RM-CB1)
  • The SP-550UZ and E-P2 do not support an IR shutter release, but they support a different wired shutter release than the 3 DSLRs (RM-UC1).
  • Note that there are two different wired shutter releases, the older RM-CB1 used by the E- cameras, and the newer RM-UC1 used by most of the newer DSLR, mirrorless, and enthusiast cameras.

In terms of the 3 wires in the shutter release (ground, focus, and fire), some brands want the ground and focus connected to do the focus action, and the group and fire wire but not the focus wire connected to shoot. While others want all 3 wires connected. One camera (Panasonic) uses only two wires, but different voltage levels to distinguish the two.

See, you proved my point "... I would think that if it had an IR remote it would support a wired one". Of all your cameras, only one has an IR but not wired remote.

As far as wires and how they are used my only defense is "I don't know much about cameras ...". I have one camera and have been reading about it. Obviously, if the camera doesn't have Auto-Focus then you probably would have only shutter.

I have heard but have no confirmation that some cameras have a data link and can report f-stops, shutter speed, light readings, etc. I assume that the f-stop and shutter speed could also be set via the same link. But as I said, I have only heard.

I assume that if I have the camera in "bulb" mode, I can use the shutter release to do a 5s, 6s, or 9.25s exposure. But can I also do a 1/60s, 1/95s, or 1/1024s?

What I am thinking is, you know about 'bracketing' a picture, but instead of doing large step brackets, do much smaller step, say +/- 10%. To bracket a 1/60 I would also shoot a 1/54 and 1/66.

RandallR:
See, you proved my point "... I would think that if it had an IR remote it would support a wired one". Of all your cameras, only one has an IR but not wired remote.

No, I gave you a counter-example of showing at least one camera has IR but not a wired shutter release, and many of the newer cameras no longer support IR. It doesn't matter what a camera manufacturer should do in an ideal world, only what are the capabilities of the camera you have in front of you. Camera companies are funny businesses, that seem to often miss obvious things they could do, since most of them still are thinking in their gut of film based cameras, and not as computers which happen to shoot pictures.

RandallR:
As far as wires and how they are used my only defense is "I don't know much about cameras ...". I have one camera and have been reading about it. Obviously, if the camera doesn't have Auto-Focus then you probably would have only shutter.

My point is, cameras are all over the map. I have cameras that will not do anything useful when you send the auto focus signal in certain modes (this particular camera supports live view, but it didn't support auto focus in live view, so when it got the fire command, it would first do the auto focus and fire in one operation). I also have cameras that are rather slow at auto focusing in some modes, and need a longer time to auto focus.

Some of the remotes I have collected over the years, don't seem to actually do anything with the focus signal, and just wire both the fire and focus wires together. Also, some use really thin wires that can break, particularly if the wire is yanked out (strain relief on the cables might add 5 cents to the build cost).

RandallR:
I have heard but have no confirmation that some cameras have a data link and can report f-stops, shutter speed, light readings, etc. I assume that the f-stop and shutter speed could also be set via the same link. But as I said, I have only heard.

This is generally called tethered mode, where the computer fully controls the camera. Many cameras do not support tethered mode at all, and those that do often times only support it with undocumented protocols that only run with their software on Windows or Mac systems. It is more of a challenge to support this on systems like the Arduino, Rasberry Pi, Beagle Boards, or Linux laptops.

The shutter release mechanism that I'm talking about is essentially equivalent to a finger pushing a button. There is no feedback from the camera to the arduino.

RandallR:
I assume that if I have the camera in "bulb" mode, I can use the shutter release to do a 5s, 6s, or 9.25s exposure. But can I also do a 1/60s, 1/95s, or 1/1024s?

Here you get into various limitations of the camera. I've been following the discussions over at triggertrap.com. They have an adruino based version that I bought and have been waiting for, and they just released a version using an iphone as the controller. A lot of users are extremely disappointed that due to shutter lag and other issues with the camera, that you can't really do speeds faster than 1/10 second. These issues come from the way the camera manufacturer designed the shutter release mechanism. It might work for your camera, but in general bulb mode is mostly designed for a human pushing the shutter release cable.

RandallR:
What I am thinking is, you know about 'bracketing' a picture, but instead of doing large step brackets, do much smaller step, say +/- 10%. To bracket a 1/60 I would also shoot a 1/54 and 1/66.

A lot of people would like this, but until camera manufacturers get hit over the head with a clue-by-4, it will be problematical. If you haven't bought your camera yet, then obviously you want add the specs for doing this to your purchase criteria. If you have already bought it, you pretty much have to craft something.

Some cameras firmware have been cracked by 3rd parties, and with those cameras, you might be able to load in your own firmware patches to do whatever you want. If you own certain Canon Powershot cameras, you might want to check out the CHDK (Canon Hack Development Kit): CHDK Wiki | Fandom

Some Panasonic cameras firmware have been cracked, but generally the author of the cracks are more interested in updating the video performance, and don't provide much support for still photography.

If you own a Samsung SH100 or Panasonic DMC-FX90, these cameras are now controllable via wifi. I looked briefly at the SH100, but lost interest when I learned I could only control it with a Samsung Android phone, and my Android phone is from LG. Given both of these cameras are point and shoot cameras, I would not expect much in the way of control.

If you have a Canon EOS DSLR that was released in 2006 Q3 or later and an Android phone, you can use DSLR controller: http://dslrcontroller.com/.

Helicon remote offers similar control for some Canon and Nikon cameras: http://www.androidzoom.com/android_applications/photography/helicon-remote-beta_capbw.html. There are other apps as well (Remote your cam, CamCap, etc.). I don't know if their are Arduino versions of these programs.

Now, I could imagine that one way to crack this egg, is to have an arduino with lots of servos set up to push each particular button on the camera, and then you would write a detained program that would press each button in turn. Obviously this would be limited to a single camera, since even a new camera from the same manufacturer, the menus are different, and buttons may be in different locations.

Check out Magic Lantern for Canon DSLR's. I've been coding it and supporting it for years now.
It works well with Arduino. Can download thumbnails with USB Host shield.