"Make a Time-Lapse Movie Using a TI89 Calculator"

Jan 5, 2008 2:46pm | 43 comments
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*intervaltotal
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 tinterval
    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.

Comments Subscribe to Recent Comments

Avatar
Jan 13, 2008 10:49am

I think this program actually takes one more picture than is wanted. I fixed that by changing the for loop to:
For i,quantity,1,-1

Avatar
Jan 14, 2008 12:29am

Thanks for the fix... those boundary conditions always elude me in these quick jobs.

Avatar
Jan 19, 2008 4:21pm

This post is fantastic (in theory) :) i'm making a time-lapse video for a class and was looking for a way to avoid standing in the closet with a stopwatch.

I'm running into trouble with the program though, and i believe it's happening between lines 7-10. Although i coded everything identically to the example, when i run the program, it doesn't display the time as "{0 0 0 50}" but rather as "timecnv(50)", and subsequently gives me an error - "a test did not resolve to TRUE or FALSE"

I'm using a TI-89 and a Canon Rebel XT

Any thoughts?

Avatar
Jan 19, 2008 4:47pm

Without seeing your code, it looks like you typed timecnv(50) instead of timeCnv(50)... note the capitalization of the "C". Thanks for the kind words

Avatar
Jan 19, 2008 5:03pm

Thank you for the feedback.

The capitalization was my instinct as well, buti doublechecked and the command is written correctly in the code. my code says timeCnv, but displays timecnv.

is there any way to simplify?

Avatar
Jan 19, 2008 5:19pm

Also, i'm using a regular TI-89, not the Titanium. Could that be the culprit? perhaps that's a function it doesn't support?

Avatar
Jan 19, 2008 5:30pm

The code in question is only used to help you figure out how long its going to run for in days, hours, minutes and seconds. Try changing lines 8-12 to:

quantity*interval→total
Disp "This will run for…"
Disp total
Disp "Seconds"

Then you can just figure out how long it runs yourself

Avatar
Jan 21, 2008 11:33am

Thanks for the update to the code. I also have a non-Titanium TI-89, and I'm having similar issues. I had already tried just removing lines 8-12 since it wasn't crucial to me. Now I have another problem though, at line 16. It seems like the checkTmr function might now work right (or at all) on my TI-89. I can use startTmr() out on the home screen, and it returns a value like you would expect. I can even use the startTmr() and store the value to a variable correctly, just not checkTmr. (I get an argument error, without any other details)

Has anyone else had a similar problem? I figured I'd have to write the code in a different way to get around this if I can't get checkTmr to work, but the original design here seemed much cleaner than something I would write...

Avatar
Jan 21, 2008 3:35pm

Bad news... after some guidebook research (here), it seems as though the ti89 does not support the same time based commmands as the ti89 titanium. Perhaps the original instructable article is better for you... you can experiment with the time it takes to get through a while loop. Or maybe pick up a used ti89 from ebay. Sorry

Avatar
Jan 21, 2008 4:20pm

I had read through the manual too, so I knew it wasn't explained very well, but the functions did exist in the catalog, so I kept trying. I got your code to work, exactly as it should too, thanks for writing it and all your help. To get it to work I flashed the OS to the newest version. It didn't make any sense, because I had v2.09 before, and I flashed it to the same (2.09, the newest out for the TI-89, dated 3/27/2003) version using TI-Connect, but whatever it did fixed what was wrong with my calculator.

Be careful when upgrading because it does wipe your memory clean in the process, but I backed up my RAM and Archive beforehand, then restored it back to get this result.

Avatar
Jan 21, 2008 8:13pm

Thanks Colin, you probably just figured out the solution to most peoples problems regarding this post. Kudos

Avatar
Feb 28, 2008 6:16am

I can't find the cable that came with the TI-89 so I need to get a new one. Are you using a mono or stereo cable? Got any sources??

Avatar
Feb 28, 2008 9:13am

try this one

Avatar
Mar 3, 2008 11:00am

I get an "Argument Error" when I input the "number of pictures quantity".

I simply copy and pasted the code you provided into a notefolio file, then copied that info while in the notefolio app, and pasted it into a program. Hit enter, and then opened it up via "camera()".

Any idea what I could have done wrong? I'm not a programmer by any means, so I don't know this calculator very well. Just happened to have it on hand and thought I'd give your tutorial a shot.

Thanks.

Avatar
Mar 6, 2008 3:51pm

@James

I would just manually type in the program in the calculator. I am unfamiliar with notefolio and it might be adding some formatting or something to the text. You need to open the program editor and try there.

Avatar
Mar 8, 2008 6:42pm

I don't undertand how the functions work while programming with the TI-89 Calc. Can someone help me? Here is the erro message I get when I execute the code, "ERROR: A test did not resolve to TRUE or FALSE" It seems to me as my arguments aren't getting passed to the function. Please someone help...

Avatar
Mar 8, 2008 6:50pm

I have the newer version of the TI-89, aka Titanium.

Avatar
Mar 8, 2008 9:55pm

@Didum, on your TI-89, go to HOME -> ProgramEditor -> Open camera(), and send me an email with everything inside (exactly as you typed) by clicking on my pic (top right side of this comment)

Avatar
Mar 13, 2008 8:26pm

Coneybeare, I have emailed you the code. In the email, I had the main program written first and followed by the function, namely, fctn(mach,beta). Both of these programs are written separately. When I execute the program, the same error keeps coming up: A test did not resolved to TRUE or FALSE. Thanks for your time.

Avatar
Mar 14, 2008 3:28pm

@Didum, The code you sent me was for another program... If you are having trouble with the camera() prgram, please email the code for camera(). Otherwise, I suggest getting generic TI89 programming help here

Avatar
Mar 14, 2008 5:36pm

The code I sent you is the one I'm having problems with. I have gotten it to work, but not in the same fashion I had it programmed in MATLAB and that is where I'm trying to get to. When you look the code I sent you, is there anyway you can tell me why I'm getting "A test did not resolved to TRUE or FALSE" even though this program is not same as camera()? Will it be the expression I had in the while loop or what could be a possible explanation?
Thanks for your time.

Avatar
Mar 27, 2008 8:53pm

Hi, First off, Great Code. Second, I keep getting a "syntax error" on line 14 at "-1". Any help will be appreciated. Thanks.

Avatar
Apr 12, 2008 9:26am

For other applications with the calculator-camera combination I've built a site. It's Dutch and for many other TI calculators. I link to your site (and will use some info of it, translated to Dutch) for the TI-89 PRGM. Thanks!

Avatar
mee
Jun 9, 2008 5:33am

Doesn't seem to do anything with my SONY R1, does anyone tried it on other than Canon?
I didnt try the whole code
just

Try
Send {1}
Else
ClrErr
EndTry

can anyone help please

Avatar
Jun 9, 2008 3:41pm

If its not working checkTmr() function try to change from approximate to auto mode - then its workingè Thanks for the code! (Tryed on a Voyage 200)

Avatar
Jul 25, 2008 10:25pm

Hi, thanks for this code! I'm very excited to start using it. However, whenever I try to run the program, I get a syntax error. It brings me to Line 15 and puts the cursor between the - and 1. Do you have any suggstions?

Thanks again!

Avatar
Jul 26, 2008 11:26am

Is it possible that the - you entered in is a dash and not a negative sign?

Avatar
Jay
Jul 26, 2008 4:14pm

I feel like an idiot now. I put in a minus sign instead of a dash. Sorry for the confusion and thanks for the response.

Avatar
Jul 31, 2008 10:43am

Avatar
Jul 31, 2008 10:14pm

Avatar
Aug 1, 2008 3:06pm

Avatar
Aug 1, 2008 4:08pm

Avatar
Aug 5, 2008 6:16am

Avatar
Aug 6, 2008 3:34pm

Avatar
Dan
Aug 8, 2008 12:25am

Avatar
Aug 11, 2008 5:19pm

Avatar
Ron
Aug 13, 2008 11:16am

Avatar
Aug 14, 2008 8:08am

Avatar
Aug 15, 2008 10:42pm

I tried this using a TI-92. My camera is currently borked - nothing operates the shutter now, not the button, wireless remote, or the calculator. So don't try it with a TI-92! If anyone has any ideas of how to fix my camera, please let me know.

Avatar
Dan
Aug 16, 2008 9:35pm

Avatar
Aug 22, 2008 6:13am

Avatar
Aug 25, 2008 12:58am

Avatar
Aug 25, 2008 12:09pm

Add A New Comment

Name
Email
Website

Notify me about future comments