Welcome, Guest. Please Login or Register
Home Help Search Login Register
Page Index Toggle Pages: 1
Send Topic Print
Design and Build Notes (Read 559 times)
o12
Junior Member
**
Offline


I love HDR

Posts: 4
Design and Build Notes
Jun 17th, 2010 at 6:22am
 
I just finished building the OCC and thought I'd share my experiences in case they're useful for others.

First off, I created a project at Mouser with all the components except for the Atmega328, which I got with the Arduino bootloader from Adafruit. I used an Arduino I already had to program it.

Useful tools are a pair of flush cutters, a high-speed rotary tool, and a decent soldering station (temperature control and a fine soldering tip are very helpful).

I ordered a v3.2a board from Circuitboards to Go, but ran into a couple problems with it. Most importantly, the microcontroller is positioned too far forward to take full advantage of the large vertical space at the back of the Warioware: Twister cartridge.  I couldn't get the lid to close fully even before trying to squeeze in the LED and resonator. Also, there's no place to connect the ground pin on the ZTT resonator. The advantage of that particular resonator is that it has built-in load capacitance (see the datasheet), but without the ground pin connected I doubt it's functional. It may still run ok, just not at 16.00MHz.

So I made these changes to the board design:
  • made it longer, 1.925in, to take advantage of the Warioware:Twisted cartridge and its extra vertical space. The LED, resonator and socketed microcontroller now fit in much easier.
  • added a hole in the middle for the screw boss, so the board doesn't need to be glued in and the cartridge screws back together just like it was.
  • added guides for cutting the two notches on the sides, to keep the board held in place
  • added a hole for the resonator ground pin, but kept the option of a crystal oscillator with 2 SMD caps
  • added an option for the LED: either connect the cathode straight to ground or to an SMD resistor
  • grouped the 3 shutter release lines together
  • removed the Guitar Hero lines, since they'd never been used and new versions of the OCC (with USB control, say) will need a complete redesign anyway


Here's the design:
...
If it looks useful to anyone, maybe Achim can put the final touches on it, like a version number and the other info.
Dave at CircuitBoardsToGo will drill that 6mm hole for no extra charge.  I made it slightly small to allow for precise positioning during assembly; widen it as needed with a drill or rotary tool.
Use the rotary tool to round the two back corners of the circuit board and cut out a notch for the remote cord so it sits as low as possible.
For the optocouplers, the trick with them is to carefully cut off the flanges at the top of each pin so that they sit flush on the board. Otherwise they'll sit above the board and the top won't fit on. I used flush cutters for this.
One other trick: position the microcontroller socket a couple mm off the board, just enough so you can get a thin soldering iron tip and solder in there without touching the plastic.
As for the LED, I used a blinking one. These run at 3V, have a built-in resistor, and don't require any programming to make them blink :-)

This design also changes a couple pin assignments, so I modified the code too, removing some clutter along the way.  This version turns on the LED for 1.5s at power up, and then whenever the shutter is open.

Code:
#define FullPressPin 13   //Pin assignments
#define HalfPressPin 11
#define LEDPin 7

void CloseShutter() {
  digitalWrite(FullPressPin, LOW);
  digitalWrite(HalfPressPin, LOW);
  digitalWrite(LEDPin, LOW);
}

void OpenShutter() {
  digitalWrite(HalfPressPin, HIGH);
  digitalWrite(LEDPin, HIGH);
  digitalWrite(FullPressPin, HIGH);
}


void setup() {
  pinMode(HalfPressPin, OUTPUT);   
  pinMode(FullPressPin, OUTPUT);
  pinMode(LEDPin, OUTPUT);
  digitalWrite(LEDPin, HIGH);
  delay(1500);
  digitalWrite(LEDPin, LOW);
  attachInterrupt(0, CloseShutter, RISING);
  attachInterrupt(1, OpenShutter, FALLING);
}


void loop() {}


I tested it with a Canon 1Ds Mark II.  The only issue is that it clicks the shutter when first turned on.  I think this occurs when the Atmega is powered up--before it begins running any code--so there doesn't seem to be any way to fix that, other than turning on the DS before the camera. But it's a pretty minor grievance! Otherwise it works quite well.

Here are a few photos:
...
...
...
...
...
Back to top
 
 
IP Logged
 
Martin Clark
Full Member
***
Offline


I love HDR

Posts: 102
Re: Design and Build Notes
Reply #1 - Jun 17th, 2010 at 11:11pm
 
how much did it cost you? time and money?
Back to top
 
 
IP Logged
 
o12
Junior Member
**
Offline


I love HDR

Posts: 4
Re: Design and Build Notes
Reply #2 - Jun 18th, 2010 at 3:56am
 
If I had to build a second one, I could do it in a couple hours I think.  I spent a lot longer on this one :-)

Here's a summary of the costs:
  • Generic shutter release cable - $6.99
  • used WarioWare: Twisted cartridge - $14.81
  • circuit board - $15.99
  • Atmega 328 w/ Arduino bootloader - $9.65
  • other electronic components - $13.40

Total: $60.84

All these prices include shipping costs and any taxes.  Shipping costs account for at least a third of the total, I'd say.
Back to top
 
 
IP Logged
 
Steve Chapman
Global Moderator
*****
Offline


I love HDR

Posts: 348
Re: Design and Build Notes
Reply #3 - Jun 21st, 2010 at 10:04pm
 
That's neat. We had some code in their to turn off the shutter on power-up, though it was never thoroughly tested, and the errant shutter click is a minor inconvenience, like you said.

I wondered about the center pin on the oscillator, but it never seemed to effect the image quality. I assume it might account for some timing variation, but the DS acts as the master clock for the shutter in any case.
Back to top
 
 
IP Logged
 
Luke Skaff
Full Member
***
Offline


I love HDR

Posts: 34
East Coast, USA
Re: Design and Build Notes
Reply #4 - Jun 22nd, 2010 at 1:16am
 
Steve,
The center pin of the oscillator is ground, it is tied internally to a metal shield around the part.  To reduce RF\EMI you should tie this pin to ground but it is not critical for what the arduino is doing. Also to reduce noise issues decoupling caps should be used on the arduino, the reset line should be pulled high, and all unused inputs should be tied low.
Back to top
 
WWW  
IP Logged
 
Tomas Mac Master
YaBB Newbies
*
Offline


I love HDR

Posts: 2
Re: Design and Build Notes
Reply #5 - Jun 28th, 2010 at 10:01pm
 
Very nice!

Any chance to post the Eagle files please?
Back to top
 
 
IP Logged
 
Page Index Toggle Pages: 1
Send Topic Print