Forgot Password
Pentax Camera Forums Home
 

Reply
Show Printable Version Search this Thread
07-21-2009, 07:48 AM   #1
Site Supporter
Site Supporter
cheekygeek's Avatar

Join Date: Jul 2008
Location: Kearney, Nebraska USA
Photos: Gallery | Albums
Posts: 1,261
Turn a TI Graphing Calulator into an Intervalometer

Instructables.com is one of the coolest sites on the interweb, but this particular one is just ingenius. It seems that some TI graphing calculators have a 2.5mm data port (and cable). As you know, this is also the size of the remote plug on the Pentax DSLRs. A simple program entered into the calculator is all you need to turn it into an intervalometer for your Pentax.

Turn a TI Graphing Calculator into an Intervalometer and Create Time Lapse Videos

The instructions above are for the TI-83 Plus model (which still brings pretty good money on eBay). Luckily, I found that the TI-82 also has the same data port and is available much cheaper. I got one with a set of fresh AAA batteries & the data cable for $15 (including shipping).

The program code is slightly different, but provides the same functionality:
Code:
: Prompt A
: While 1
: For (H,1,A,1)
: End
: Send(A)
: End


07-21-2009, 04:44 PM   #2
Junior Member
Flacosaurio's Avatar

Join Date: Jun 2009
Location: Santiago, CL
Photos: Albums
Posts: 43
Well, this is just great.... I'm an HP49G guy, so no TI for me.
I was thinking of asking some friends to do the circuitry for me....
07-21-2009, 05:16 PM   #3
New Member




Join Date: Jun 2009
Location: San Francisco
Posts: 3
I did this with my old TI-85 calculator when I had my K100D. Unfortunately a bit of wind and an unsecured tripod while using said solution ended in sadness. I now have a K20D, but the limit of 99 frames using the internal intervalometer is so limiting. Unfortunately my Ti-85 has died, so it's either off to eBay to replace it or to get a "real" intervalometer.

Here's my post about using the TI-85 as an intervalometer:
Time-Lapse Photography with a TI-85 Graphing Calculator | Geeked Info

A couple of the resulting time lapses taken with my K100D:




Last edited by edrabbit; 07-21-2009 at 05:23 PM. Reason: added links to time lapses
07-21-2009, 08:17 PM   #4
Site Supporter
Site Supporter
cheekygeek's Avatar

Join Date: Jul 2008
Location: Kearney, Nebraska USA
Photos: Gallery | Albums
Posts: 1,261
Original Poster
QuoteOriginally posted by Flacosaurio Quote
Well, this is just great.... I'm an HP49G guy, so no TI for me.
I was thinking of asking some friends to do the circuitry for me....
There's an instructable for that too (alas, in Spanish)
Turn-a-HP49G-Graphing-Calculator-into-an-Intervalomet for Canon Eos

Just to get your mind juiced up for some time lapse work, here's a time lapse of an incredible supercell near Valentine, Nebraska (USA) from about a week ago. The photographer is Roger Hill, a Colorado-based storm chaser and storm tour operator.
Enjoy: YouTube - July 13, 2009 AMAZING Supercell Time Lapse

03-19-2010, 01:32 PM   #5
Veteran Member
Nachodog's Avatar

Join Date: Dec 2007
Location: Montreal, Qc
Posts: 472
I just found the above program for the TI-83 on the instructables.com site.

I played around with it and wasn't crazy about the simplistic nature of the program. I tweaked it up a bit and this is what I came up with:


Code:

1. Press [PRGM] button. Select 'New'. Give the program a name (Ex. Camera).
2. Input the program below.
3. Functions 'Prompt', 'While', 'For(', 'End' and 'Send(' can be found by
pressing the [PRGM] button. The -> is added by pressing the [STO->] button.



:Disp "Enter Time"
:Disp "Interval (Sec):"
:Prompt I
:Disp "How Many Frames?"
:Prompt N
:I*790->I
:0->C
:Send(I)
:While C<N-1
:C+1->C
:For(H,1,I,1)
:End
:Send(I)
:End
Gonna keep working on it. Might post an update in a bit.

I changed the programming a bit. The '790' scales the time interval to be close to seconds. I also added a 'Send' function before the loop so that it releases the shutter right away instead of waiting one cycle. You can still interrupt the program before it reaches the set number of frames by pressing the [ON] button.

I'm pretty happy with the tweaked program. I'm gonna look into setting up my calculator with a constant electricity source.

Last edited by Nachodog; 03-19-2010 at 02:12 PM.
03-19-2010, 03:07 PM   #6
Veteran Member
Nachodog's Avatar

Join Date: Dec 2007
Location: Montreal, Qc
Posts: 472
Hmm... been playing around a little bit, and I really don't like using the 'For(' command as a timer. I'm getting really erratic results. I looked around the net a bit, and it seems as though the TI-84+ has a built in timer that looks like it would keep better time.

I'll have to find myself one of them to try it out.
03-19-2010, 04:25 PM   #7
Veteran Member
Jodokast96's Avatar

Join Date: Oct 2007
Location: Erial, NJ USA
Photos: Gallery | Albums
Posts: 2,134
Wow, a reason to dust mine off. Can't wait to give this a shot.

03-19-2010, 05:32 PM   #8
Veteran Member
Jodokast96's Avatar

Join Date: Oct 2007
Location: Erial, NJ USA
Photos: Gallery | Albums
Posts: 2,134
Ok, in this line:

I*790->I

how do you input "->"?
03-19-2010, 06:15 PM   #9
Veteran Member




Join Date: Jun 2009
Photos: Albums
Posts: 1,674
never thought of doing this...but no reason I should not be able to use my HP48SX's IR port to do the same thing. Great one more thing for my "list"....

heck I would think one should be able to write something to do long exposures as well as time lapse stuff...might be a gawd send for ND shooters. Enter the filter strength, the info for the filterless expsoure values and have the program crunch the numbers and take it from there. Or have the option to just enter the exposure length.

Now, I REALLY wanna do it...next month, maybe.
03-19-2010, 06:29 PM   #10
Veteran Member
Nachodog's Avatar

Join Date: Dec 2007
Location: Montreal, Qc
Posts: 472
QuoteOriginally posted by Jodokast96 Quote
Ok, in this line:

I*790->I

how do you input "->"?
Just above the [ON] button is the [STO->] button. It stores the value into the variable.
03-19-2010, 06:34 PM   #11
Veteran Member
Nachodog's Avatar

Join Date: Dec 2007
Location: Montreal, Qc
Posts: 472
One thing about this program though... the "timer" is really a function that's run over and over and over a few hundred times. It's dependant on the processor and how fast it can go through a loop. As a result, it's not very accurate. Luckily it's consistent, but not accurate. I found that time intervals below 4 seconds tended to be slow and intervals above 4 was fast.

I think that the "timer" is also dependant on how fresh your batteries are. This is why I really want to get my hands on a Ti-84 Plus or Silver because it has a real timer function.

Also, responding to brecklundin, I was thinking the same thing. There must be a way to keep the shutter open. I'll take a look when I get some time.

I've found that this site had good reference material on Ti-Basic: TI-Basic Developer: TI-Basic Developer Home: TI-83/84/+/SE

I've also tried a variation that allowed me to get intervals closer to 1 second.
03-21-2010, 09:25 PM   #12
Veteran Member
MoiVous's Avatar

Join Date: Sep 2008
Location: Adelaide, South Australia
Photos: Gallery
Posts: 677
I've been fiddling with this on my daughters TI83+ - and note a few inconsistencies:
  • trigger voltage (3.3v) is high, and drops to 0 for the trigger event! This seems ok for short time intervals, but not so good for long ones - hmmmmm.
  • time calibration - it varies a bit again due to batteries

However, I've had a play with the program to make it a touch more user friendly and find a For loop calibration value that is reasonably accurate.
(note that -> is the Sto function):
I've included comments preceded by a // (Delphi programmer....) which should be removed if you type this in
Code:
240->Z    // Basic calibration value when you start

Lbl ME // the Menu section - function buttons Window Zoom and Trace are used
ClrHome
Disp " Camera"
Disp " Intervalometer"
Disp ""
Disp " Options"
Output(6,7,"Cal=")
Output(6,11,Z)

Output(8,2,"Start")
Output(7,8,"Adj")
Output(8,12,"Exit")
Repeat Ans
getKey->A
End
If A=12
Goto IV
If A=14
Goto X
If A=13
Goto C

Goto ME

Lbl C // This is the calibration function
ClrHome

Disp " Intervalometer"
Disp " calibration"
Disp ""
Disp "Any key to start"
Repeat getKey
End
Disp "Wait 60 sec...."
Disp "Any key to STOP"

0->Z
Repeat getKey // loop over this till the user presses a key - hopefully at 60 sec
Z+1->Z
End

Z/60->Z // the number of interations in 1 secont
Goto ME

Lbl IV // the intervalometer
ClrHome
Disp " Intervalometer"
Disp " --------------"
Input "Interval(sec)?",I // time between frames
Input "Frames ?",N // number of frames
ClrHome
Disp " Intervalometer" // tell the user what to do
Disp " --------------"
Disp "With camera off"
Disp "connect camera"
Disp "and TI calc"
Disp ""
Disp "Any key to start"
Repeat getKey
End
ClrHome
Disp "INTERVALOMETER" // tell the user what is going on
Disp "--------------"
Output(3,1,N)
Output(3,4," frames at")
Output(4,1,"1 per ")
Output(4,7,I)
Output(4,11,"sec")

I*Z->I
0->C
10000->D
Output(6,2,"Click 1")
Send(D) // send signal
While C<N // frames counter
C+1->C
0->Y
For(H,1,I,1) // apply delay
Y+1->Y
End
Output(6,8,C+1) // tell the user what frame
Send(D) // and trigger again
End
Output(7,1,"Complete")
Output(8,1,"")
Disp ""
Disp ""
Disp ""
Disp ""
Goto ME // back to the main menu

Lbl X
ClrHome
There are some useful tools on the TI website, including a programming tool that lets you write the code on your PC - as long as you have the connector to transfer it!

For those that do, the compiled version is attached.

Enjoy
Attached Files
File Type: zip INTERVAL.zip (658 Bytes, 186 views)

Last edited by MoiVous; 03-21-2010 at 09:26 PM. Reason: Attachment added
03-21-2010, 10:11 PM   #13
Veteran Member
Nachodog's Avatar

Join Date: Dec 2007
Location: Montreal, Qc
Posts: 472
Hey Chris, that's awesome! I'm definitely going to try out your program when I get a chance.

Just a quick couple of questions though:

1. Will the values set in the calibration section remain in memory (cached) or does it need to be run every session? (Genius idea btw)
2. Also could you explain the reasoning for connecting the camera after the program has started?
3. Can you also explain why you set D to 10000? Is it just a dummy variable or does the 10000 have some significance?
4. Lastly, I can't figure out what the Y variable does. Looks like a counter of some sort, but the C variable seems to hold that job.

Sorry for all the questions. I'm not a programmer at all (do a bit of html and php and did a very little in college) but I really would like to know what the program does every step of the way.

Thanks again!

Edit: One more thing... I can recognize a couple of my lines surviving your modification and that you changed the While condition back to 'C<N' from my 'C<N-1'. I had originally done that because with the initial 'Send' command, the 'C<N' condition would give me one too many frames. Can you comment on your decision to change it back?

Last edited by Nachodog; 03-21-2010 at 10:21 PM.
03-21-2010, 10:25 PM   #14
Veteran Member
MoiVous's Avatar

Join Date: Sep 2008
Location: Adelaide, South Australia
Photos: Gallery
Posts: 677
QuoteOriginally posted by Nachodog Quote
Hey Chris, that's awesome! I'm definitely going to try out your program when I get a chance.
Thanks Alex!

QuoteOriginally posted by Nachodog Quote
Just a quick couple of questions though:

1. Will the values set in the calibration section remain in memory (cached) or does it need to be run every session? (Genius idea btw)
Not yet - though I've just read that you can store a variable in one of the graphics storage variables and read it back - but it slows it down a touch. I'll try and implement it next time around.

QuoteOriginally posted by Nachodog Quote
2. Also could you explain the reasoning for connecting the camera after the program has started?
Just the electronics geek in me. With 3.3v on the output pins, why risk it? If someone want to correct me please do - I'm happy to eat humble pie

QuoteOriginally posted by Nachodog Quote
3. Can you also explain why you set D to 10000? Is it just a dummy variable or does the 10000 have some significance?
This is my attempt to make sure that the value in the Send has no effect. I've had inconsistent results on the trigger event. This seems to help along with fresh batteries. I'm looking into Assembly Language control of the port instead (this is actually a Zilog Z80 - for those that remember CP/M!!)

QuoteOriginally posted by Nachodog Quote
4. Lastly, I can't figure out what the Y variable does. Looks like a counter of some sort, but the C variable seems to hold that job.
Now thats a bit subtle. Y is there to provide a small delay in the loop in the same way that when the calibration phase is storing a number. There are clock cycles for every event, and storing values uses some too. So try and repeat the event.

QuoteOriginally posted by Nachodog Quote
Sorry for all the questions. I'm not a programmer at all (do a bit of html and php and did a very little in college) but I really would like to know what the program does every step of the way.

Thanks again!
Hope that answers most of your questions.

BTW, anyone with a TI84 or better doesn't need the calibration phase as there is a timer command in TIbasic. That would be better than this attempt.

Cheers
03-22-2010, 03:46 PM   #15
Veteran Member
MoiVous's Avatar

Join Date: Sep 2008
Location: Adelaide, South Australia
Photos: Gallery
Posts: 677
Update to TI83+ code

After some more playing I noted a problem with long delays vs short delays in time. It seems that for times under 2 seconds it will skip a trigger (at least on my K200d).

So after some more measurements with a multimeter and some fiddling with the code I worked out that the Send(D) variable needs to be sufficiently large and composed of binary 1 (I chose a very large value) and it needs to be sent twice for longer delays as a single trigger has to short a duration.

So here's the new code - it sends 2 triggers for times over 2 seconds, and 1 trigger for times under that. The value of the sent number is (2^32 - 1) - ie 32 1s so the trigger stays at zero for longer.

The elegant solution would be to do some assembler coding......but no time!

Once again, the Sto command is replace with ->

Code:
240->Z
Lbl ME
ClrHome
Disp " Camera"
Disp " Intervalometer"
Disp ""
Disp " Options"
Output(6,7,"Cal=")
Output(6,11,Z)

Output(8,3,"Go")
Output(8,8,"Adj")
Output(8,12,"Exit")
Repeat Ans
getKey->A
End
If A=12
Goto IV
If A=14
Goto X
If A=13
Goto C

Goto ME
Lbl C
ClrHome

Disp " Intervalometer"
Disp " Calibration"
Disp ""
Disp "Any key to start"
Disp "and WAIT 60 sec"
Repeat getKey
End
Disp "Any key to STOP"

0->Z
Repeat getKey
Z+1->Z
End

Z/60->Z
Goto ME

Lbl IV
ClrHome
Disp " Intervalometer"
Disp " --------------"
Input "Interval(sec)?",I
Input "Frames ?",N
ClrHome
Disp " Intervalometer"
Disp " --------------"
Disp "With camera off"
Disp "connect camera"
Disp "and TI calc"
Disp ""
Disp "Any key to start"
Repeat getKey
End
ClrHome
Disp "INTERVALOMETER"
Disp "--------------"
Output(3,1,N)
Output(3,4," frames at")
Output(4,1,"1 per ")
Output(4,7,I)
Output(4,11,"sec")

I*Z->I
0->C
4294967295->D
Output(6,2,"Click 1")
Send(D)
If I/Z>2
Send(D)
While C<N-1
C+1->C
0->Y
For(H,1,I,1)
Y+1->Y
End
Output(6,8,C+1)
Send(D)
If I/Z>2
Send(D)
End
Output(7,1,"Complete")
Output(8,1,"")
Disp ""
Disp ""
Disp ""
Disp ""
Goto ME

Lbl X
ClrHome
I've also attached the 8XP file in a ZIP for those who don't want to type it on on the calculator.

Alex - I restored the C<N-1 in the While loop as it adds the extra frame as you say. Just a typing oversight on my part......

Cheers
Attached Files
File Type: zip INTERVAL.zip (677 Bytes, 209 views)

Last edited by MoiVous; 03-22-2010 at 11:04 PM. Reason: Note about C<N
Reply

Bookmarks
  • Submit Thread to Facebook Facebook
  • Submit Thread to Twitter Twitter
  • Submit Thread to Digg Digg
Tags - Make this thread easier to find by adding keywords to it!
cable, calculator, data, intervalometer, pentax, port, program, ti, tripod
Thread Tools Search this Thread
Search this Thread:

Advanced Search


Similar Threads
Thread Thread Starter Forum Replies Last Post
pentax k-x infrared intervalometer, anyone tried this one? Thanatos Pentax DSLR Discussion 8 10-28-2010 06:46 AM
Intervalometer for k200d lurchlarson Pentax Camera and Field Accessories 5 03-01-2010 08:59 PM
Timer remote control (intervalometer) for K7 Torva Pentax Camera and Field Accessories 4 01-09-2010 06:31 PM
To turn right or to turn left spura Pentax SLR Lens Discussion 14 04-15-2009 11:29 AM
K20D intervalometer dosdan Photographic Technique 17 04-14-2009 09:42 PM



All times are GMT -7. The time now is 03:45 AM. | See also: NikonForums.com, CanonForums.com part of our network of photo forums!
  • Red (Default)
  • Green
  • Gray
  • Dark
  • Dark Yellow
  • Dark Blue
  • Old Red
  • Old Green
  • Old Gray
  • Dial-Up Style
Hello! It's great to see you back on the forum! Have you considered joining the community?
register
Creating a FREE ACCOUNT takes under a minute, removes ads, and lets you post! [Dismiss]
Top