Some cool Arduino related links

by on Nov.17, 2010, under Arduino, Coding

Here are the links to some good pdf’s worth reading:

Arduino programming notebook, by Brian W. Evans. This book is a Reference on how to program with the Arduino language. I really like the way it is written.

Essential C , by By Nick Parlante , from Stanford CS department.  This is a good read for people new to c … It assumes that you have some programming experience.


Leave a Comment :, more...

Jump in to arduino

by on Nov.17, 2010, under Arduino, Coding, Electronics

So i spent the next evening converting the proof of concept over for use with the arduino.

I have added some extra bits:

1) A button for triggering the shutter.

2) A button to Increase the shutter open time.

3) A button to Decrease the shutter open time.



Parts used:

3 x small push buttons.

4x (insert ohms here) resistors

1x long breadboard.

1x npn transistor.

A ton of hook up wires.


The buttons were pretty straight forward to hook up, which was nice. The trigger button is connected to pin 12, the “add time / up” button is connected to pin 7 and the “reduce time / down” button is connected to pin 6.



The code to run the buttons looks like this:


simple program for setting my canon cameras shutter time.

I do long welding glass exposures and this will come in handy so i
wont need to hold the trigger down for too long.
The arduino will do that for me.


#define SHUTTER 13    // defines the shutter control
#define TRIGGER 12    // defines the trigger button
#define UP      7     // defines the +1 second button
#define DOWN    6     // defines the -1 second button
#define SECOND  1001  // defines how long a second is

int curTime = SECOND; // sets the current time to be one second at the
start of the program
int val = 0;           // this is the trigger button control

int upButton = LOW;
int downButton = LOW;

void setup()
 Serial.begin(9600);     // open the serial port at 9600 bps:
                         // so we can see what the arduino is doing
                         //before we attach the lcd screen later.
// the loop function
void loop()
 // get the vars.
 upButton = digitalRead(UP);
 downButton = digitalRead(DOWN);
 val = digitalRead(TRIGGER);

 if (upButton == HIGH)
  // adds one second on to current time
  curTime = curTime + SECOND;
  Serial.print("up button\n");
 if (downButton == HIGH)
  // removes one second from current time
  curTime = curTime - SECOND;
  Serial.print("down button\n");

 if (val == HIGH)

  // takes the photo.
  Serial.print("Shutter will be open for: ");
  Serial.print(" miliseconds\n");
  Serial.print("shutter closed\n");
 // delays the loop for a tad


You’ll see that i have my “SECOND” variable set to 1001. I have been running into issues where the shutter open and close time doesn’t match a correct one second interval…. Which is really strange…

Also because i have no way at the moment to display the information, i’m sending debug prints to the serial, so i can view it on the serial monitor.



I found a really good explanation about the canon 3 pin connect Im interfacing with:

Canon N3 details.


To finish this project i have a few more steps to do:

a) Add another button to control the mode the device is in.

b) Get hold of a LCD to allow for real world use……

c) Refine the code,  I’m still learning the api,  so im sure i can clean this up a little and work out where my time is going.

d) Start to plan a durable storage case to house the project in.



Leave a Comment :, , , , , more...

Jumping in to electronics

by on Nov.12, 2010, under Arduino, Electronics

So i have finished reading,Make: Getting Started with Arduino for the 2nd time. I have Gotten a few chapters thoughMake: Electronics” . I decided to try and put together a quick proof of concept on the breadboard for the circuit i need to create in order to make the shutter open for a period of time and then close.

I have a Canon 40D as my primary camera, this is the one i use to for the long exposures.

So for my proof of concept, i opened my canon rs-80n3 shutter control to see how the wires need to be setup. I have three alligator clips which i use to connect wires to the bread board.


There are 3 pins on my canon 40d, shutter, auto focus and one to make the connection back to the camera.

Ive read that a lot of people use an optoisolater to to trigger the shutter. I couldn’t get that to work, so i ended out using an npn transistor.  Then i could use a small current to trigger the shutter.


I have a 6volt battery pack connected for the power (4xAA). I have used a 22k resistor to limit the flow from the power rail to the transistor.

So when i turn on an off the 6volt battery pack the stutter opens, when i turn it of the shutter closes.

I also hooked up a button to test out, which worked too.

So what i get out of this….

I managed to get the shutter to open and closed based on whether there is a current passing through the npn transistor.

I got to learn about transistors,  optoisolators and ohms…..

I didn’t fry my camera.

Some other pictures can be found at:


Leave a Comment :, , , more...


by on Nov.08, 2010, under Arduino

So I have been inspired.

A few weeks ago i picked up a few books so i could start to learn electronics and the Arduino interface.

Its pretty fun, Learning about what i can use my coding skills for on open source hardware.

My first project is to make a shutter control for my camera. Since i do long exposure photography with a welding grass filter, i need to leave my shutter open for 2-6min as well as time lapse control. I don’t particularly want to fork out $270+ for the canon equiv shutter control with lcd monitor.

I figured this would be a great time to start learning how to control hardware as well as i can control the software.

Books i picked up:

Make: Electronics

Make: Getting Started with Arduino

Practical Arduino

Some other useful web pages i have found for learning are:
Arduino shield & embedded electronics tutorials (sparkfun)
Arduino 14 part tutorial (Australian)
AdaFruit / Ada Industries Tutorials.
Virtual breadboarding.
Electronic schematics symbol help.

Hopefully as i progress i will remember to post some progress images.

Leave a Comment :, , , more...

Gnomeo and Juiliet

by on Oct.13, 2010, under Uncategorized

Finally they posted a trailer for the movie i have been working on for the last year and a half.

Here is a link to the hd video:

Will have to add it to my demo reel at some point.

Leave a Comment more...

Carcassonne – Links to the different rules

by on Apr.22, 2010, under Uncategorized

Love this game.

I found a link to all the different rule pdf’s on “Rio Grande“‘ website here:

List of set i have:


Carcassonne: River I – (There arn’t really any different rules to this)

Carcassonne: River II

Carcassonne Inns & Cathedrals

Carcassonne Traders & Builders  –  (I still don’t quite understand the rules for this)

Carcassonne The Princess & The Dragon

Leave a Comment more...

10 Simple Google Search Tricks – NewYorkTimes

by on Apr.14, 2010, under Uncategorized

I found this really useful, to get the answers from that i want.

10 Simple Google Search Tricks

Leave a Comment : more...

Good Python coding tips / cookbook

by on Apr.14, 2010, under Coding

I love the examples on these pages, but i keep losing the links:


Leave a Comment : more...

24th Sketch Crawl, Toronto

by on Sep.28, 2009, under Uncategorized

Last weekend was the 24th Sketch Crawl , I hung out with the guys and took some photos of them doing there stuff and finding bees.


Leave a Comment :, , more...

python commands.getouput vs subprocess.Popen

by on Jul.02, 2009, under Uncategorized

I have been using the commands module for quite some time, purely because it is simple to use.
Now that i have to go to writing code to work on windows, its time to start using the suproccess module. Also to make it easier for the other hard core programmers i will be working with to read my code.

Using the commands module to get the output of a command:


import commands
output = commands.getoutput('ls -lah /home/')
outputList = output.split('\n')

print outputList


The command that is run by Popen, needs to be supplied to the command as a list, no spaces.

Using subproccess command:

<pre class="c:firstline[1]">import subprocess
output = subprocess.Popen(["ls","-lah","/home/"], stdout=subprocess.PIPE).communicate()[0]
outputList = output.split('\n')

print outputList

Im pretty sure that in a few months time i will have forgotten about this way of working.

Leave a Comment :, , more...

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!