« Back to blog

Make a Time-Lapse Movie Using a TI89 Calculator

UPDATE: If you are having trouble getting the code to work right, make sure you have the most recent firmware installed on your ti89 (Thanks Colin).
I recently came across this post on Instructables that gave instructions on how to turn a TI83 calculator into a basic intervalometer for a Canon EOS Rebel Camera. For those of you that don't know, an intervalometer is a remote control that you can hook up to your camera that will snap photos at a specified time-interval. It is how you make time-lapse videos. I was stoked to see this because I was about to purchase the Canon TC80N3 for about $120!
While the instructable post worked great for the TI-83, it did not work for my TI-89 Titanium so I wrote a little program based on the original, but enhanced. I spent my time doing the coding through the calculators program editor, but later I found the TI Connect software that can be used to transfer files to/from the calculator, as well as do backups and screenshots, etc...

Example Time-Lapse Movie

This short movie was made in 45 minutes. Every 15 seconds a picture would snap, for a total of 180 pictures. Using a framerate of 15 frames per second (or in this case, photos per second), those 180 pictures combine to make a 12 second movie.

Necessary Components

For this to work you need a TI89 calculator (it may work on other calculators with a little code tweaking), a male-to-male mini-jack connection cable (it came with your calculator), and a camera with a mini-jack remote switch (such as the Canon Digital Rebel XTi). There is only 1 file you need to get on your calculator, in the "main" folder:
Download as TIProgram (for the TIConnect software)
or
Download as Text File (for inspection / manual input)
Like I said before, you can use either a transfer utility from your computer of just code it by hand... it's not too long.

Setup

Obviously you need to make sure you have fresh batteries in the calculator and the camera. I would use it on a tripod to keep it stable, and set you camera up so that the shots are consistent. This means that you should NOT use autofocus, autoflash, or auto-anything! Keep your camera on the manual setting, adjust the aperture, iso, and focus before hand. Most time-lapse movies span hours if not days, so making sure you are setup right is crucial in saving time. Take many test shots until you are hapy, and monitor the program at first to make sure things are going as planned.
I would keep the photos named in a numerical, sequential organization. This way, when you use Quicktime or another movie making software, you will have a much easier time. Also, you will not be making a movie that is 3888x2592 pixels. Turn the quality setting to the lowest one (1936x1288 on my XTi) to save space and time.

Execution

Simply type camera() into your calculator and answer the setup questions

Screenshots

Combining into a Movie

After all the photos have been taken, you should have many files all in numerical sequence. I'm sure there are plenty of programs out there to make time-lapse movies, but I use Quicktime Pro. All you have to do is goto File => Open Image Sequence... or press Shift-Command-O
Next you want to select the first picture in your sequence, select our frame rate, and Quicktime Pro will do the rest! This will usually produce a really big file so you might want to scale it down for online viewing. Save the movie and you are done!

Code

Maybe you just want to look at the code?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
camera()
Prgm
ClrIO
Disp "Interval in seconds?"
Prompt interval
Disp "Number of pictures?"
Prompt quantity
quantity*interval→total
timeCnv(total)→list
Disp "This will run for…"
Disp list
Disp "{days hrs min secs}"
Pause "Ready to start?"
Disp "Running…"
For i,quantity,0,–1
  startTmr()→time
  checkTmr(time)→t
  While t≤interval
    checkTmr(time)→t
  EndWhile
  Try
    Send {1}
  Else
    ClrErr
  EndTry
  Disp i
EndFor
Disp done
EndPrgm
  • Lines 3-14: Get input and calculate time
  • Line 15: Run a loop starting at "quantity" and counting down to 0
  • Lines 16-20: Make the program stall for "interval" seconds
  • Lines 21-25: Send the command to the camera, ignore the error about the camera not being a calculator.
| Viewed
times | Favorited 0 times

24 Comments

Oct 07, 2009
titaniumwombat said...
Thanks for this excellent post & program! Gonna try it out here soon. Just curious how long I can expect a fresh set of batteries on my TI89 while running this program. Looking to shoot an 8+ hour timelapse @ 5 second intervals. I assume there wont be an issue but just thought I'd ask.

cheers.
t.

Oct 07, 2009
Matt Coneybeare said...
I think 8 hrs should be ok. The calculators tend to have pretty good battery life. Just so you know, this is a very old post and I cannot vouch for its validity anymore. Try it out and if it works, post back here!
Nov 17, 2009
Karl said...
Matt,

I made a time lapse video using your code on my TI89 about a year ago and I completely forgot to thank you for taking the time to do the writeup. Here's the video if you would like to see it: http://www.youtube.com/watch?v=OLpLDN6uFr8 The calculator didn't like running for 5 hours continuously as the interval drifts quite a bit toward the end.

Thanks!

Karl

Nov 17, 2009
Matt Coneybeare said...
Great Vid!  Maybe this is due to the processor running slower when the batteries get low…?  I have no idea, but good catch.

-Matt

Dec 03, 2009
aprado17 said...
Matt,

I started to write the program into my TI-89 only to later find out that your TI-89 and mine must be different: I do not have such commands as "timeCnv()" (I do have a "tmpCnv()" instead, is it equivalent?) or "startTmr". My TI-89 is very, very old, probably one of the first that came out. Woudl it be possible for you to adapt this program to make it suitable for the TI-89 (non-Titanium). I would really, really appreciate it as I have been shooting time-lapses manually (as in with a timer in one hand and pressing the shutter with the other, check aprado17's channel on Youtube). Thanks. aprado

Jan 05, 2010
Paulo said...
I get a error message in the line 9 timeCnv(total)→list, can you help me out.
Jan 05, 2010
Matt Coneybeare said...
I would first ensure you have the latest OS on your calculator and then ensure you are calling the function right. You can find this info in the book that came with your calc.
May 01, 2010
Kush said...
Hey Matt, I was trying to get it to work but the for loop when i type in -1 using the grey negative button next to the Enter button, it gives me a domain error, and the minus sign doesnt work and gives a syntax error. Im using the latest version 2.09. I am testing it before actually using it so I don't have it hooked up is that why, im just waiting on the cable to arrive. I think the negative button will work could you try without the cable and tell me if it gives you the same error?
May 02, 2010
Matt Coneybeare said...
Sorry KUSH, this is a very old post (the original was written 3 years ago on my old blog) and I no longer have the calculator. I would try looking into your programming book to see what could be wrong.
May 05, 2010
KK said...
2.09 is not the latest version ... 301 has been out since 2005 or so
May 05, 2010
Matt Coneybeare said...
As I said before, this is a very old post.
May 06, 2010
Kush said...
Hey KK, 3.01 is for the ti89 titanium, I have the normal black ti89 which the latest version is 2.09. Anyways I'm really keen on using it as an intervalometer so I'll keep you guys up to date if I do succeed!
May 21, 2010
PH said...
Basic Syntax for TI-89:

camera(pics,delay)
Prgm
0->x
While x < pics
For y,0,delay,1
EndFor
Try
x+1->x
Send {1}
Else
ClrErr
EndTry
EndWhile
EndPrgm

Command Line Syntax:

camera(# of pictures,delay - this is not in seconds, 100 = 1 second)

I am using this code right now on a Canon Ti1 and a TI 89.

Aug 17, 2010
Brian said...
My TI connect says that the camera.TIProgram is an incompatible type with my TI 89 titanium...so I cant transfer it to my calculator =(
Aug 17, 2010
Brian said...
Nvm I wrote it in by hand...two things that which I fixed is that your code takes 1 picture more than the amount written. This is because your for loop is goes to 0 instead of 1

NOW: For i,quantity,0,–1
SHOULD BE : For i,quantity,1,–1

Also if you accidently type 1000 seconds and want to abort, it isnt possible, so I made a makeshift check, which allows the user to abort if they typed wrong.

I put the check after : Pause "Ready to start?"

Now : Pause "Ready to start?"
next should be :

Prompt ReadyCheck
If ReadyCheck = 9 Then
REST OF CODE HERE
In between line 28 and 29 you write
Else
EndIf

This makes is so if the user types anything but 9, the program will end

Oct 19, 2010
Michael said...
If you don't have the calculator or want do do it manually you can use the equation.. It's worked for me

http://americandslr.com/2010/10/time-lapse-calculator/

Nov 02, 2010
titaniumwombat said...
@PH

Thanks! That works perfectly for me. On a TI89 and a Canon XSi

cheers.
t.

Apr 17, 2011
Kansas said...
If you are getting an argument error for timeCnv() in line 9 then you need to set your mode to exact (as opposed to auto or approximate).
Apr 23, 2011
Zak said...
it did not work for me. I am using a TI-89 Titanium paired with a Canon EOS 60D. I downloaded the program contained on this site, and hooked it into my Canon. When I run the program, it counts down but I do not actually hear the shutter click and no photos are taken. I am also using a 3.5mm jack with two male 2.5mm converters. Anyone have any suggestions?
Apr 26, 2011
ssiicc said...
have the same problem Zak wrote, program runs but the camera wont do nothing
Jul 10, 2011
Teemu said...
I had same problems as Zak and ssiicc. I found out that when I modify the cable and make it as cross over all works as a charm. So Split the cable and cross connect white and red cables (sometimes black and red) and leave the ground as it is.
Oct 27, 2011
Lee said...
@Teemu: took me a hot second to figure out what you were talking about (i.e. _cut_ the cable apart and rewire the insides) but I did and it works! Just patched it back together with electrical tape and we're in business. Thanks dude!
Nov 10, 2011
ap said...
This was a super old post but hopefully someone can help me out!

I put wrote this code out on my ti-89 and connected it to my canon 7d using a 2.5 to the 3 prong canon remote style cord.

I have the 7d on the timer/remote setting.

When i run the program on the calculator it seems to be running fine, except no pictures are taken whatsoever!!!

Nov 10, 2011
Matt Coneybeare said...
I can't help you much as I no longer own a DSLR or a TI calculator... Sorry

Leave a comment...