Matt Coneybeare

MC

Make a Time-Lapse Movie Using a TI89 Calculator

| 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*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.

Comments

My name is Matt Coneybeare, I design and develop for iOS (iPhone, iPad and iPod Touch), Mac OS X and the Web out of New York. In 2008 I started a software company called Urban Apps that has made some pretty popular apps such as Ambiance and Hourly News. My current Stack Overflow reputation is about 27k.

I was a Rockstar a decade ago, but then went back to school and collected a Bachelor's Degree in Computer Science from U.C. Berkeley. Now I am settled down with my beautiful wife Di and our two doggies Hamachi and Foxy. While coding, I walk several miles/day on my Treadmill Desk. When not at my desk, I love exploring New York City as a Yelp Elite, or training for marathons.

Contact information

Name
Matt Coneybeare
Email
Website
Twitter
Instagram
GitHub
Google+
LinkedIn