Install a CHDK Intervalometer on Your PowerShot


In a previous post, I talked about installing the free CHDK software onto your PowerShot in order to access a bevy of new features. This follow-up post completes the installation process by showing how to download a small script that will allow you to begin making time lapse videos.

The script was written by Keoeeit for the PowerShot S3 IS but has worked on other models of PowerShot.  All instructions are for PC users.

Insert Your Memory Card

If you followed the directions from the CHDK post, your camera’s memory card should now have the CHDK software installed and running.

Insert your memory card into your computer’s card slot and open it in “My Computer.”

UBASIC Ultra Intervalometer Script

Ultra website

Next, you’ll need to visit the CHDK website to copy the Ultra Intervalometer script.  If you’ve never seen raw programming language, this might be intimidating, but most of the work has been done for you.  All you have to do is copy the script from the box at the bottom of the page.

Paste the Script Into Notepad

Open Notepad by clicking on the “Start” button, selecting “All Programs,” “Accesories,” and then “Notepad.”  Paste the script from the Ultra Intervalometer website into Wordpad.  Make the file name “ult_intrvl.bas”.  Make sure to change the file type to “All files”.  Save the file to your memory card’s scripts folder under CHDK>Scripts.

Saving script to folder

The file should now appear on your memory card in the “Scripts” folder.

script in folder

Adjust Setting in Your Camera

Remove the memory card from your computer and put it back in your camera.  Run CHDK and go to “Scripting Parameters.”

Select “Load Script From File,” and then select “ult_intrvl.bas”.


Now you should see “—-Ultra Intervalometer—-” at the bottom of the “Scripting Parameters” screen. (Please ignore the settings–they haven’t been set correctly)

All that’s left is to adjust the settings to your liking.  I’d suggest using a three second delay, in order to prevent movement in the first frame, and then changing the number of shots to more than you can possibly need.  Alternatively, choose no delay and then set the intervalometer to endless. After experimenting with this script, I’ve decided that the endless cycle is too fickle to use.  An endless loop with a delay will cause a delay during every cycle.  An endless loop without a delay will skip the set intervals between the last and first shot every time it cycles.  The only way to use endless effectively is to set the delay to the same time as the interval time.  If I just lost you, don’t worry.  Just change the number of shots and you’ll be ok.

Close the CHDK menu and set up your camera.  You’re ready to begin taking photos for a time lapse video.

There are several programs designed to turn a series of photos into a video and I’ll discuss a few of them over the coming months.  The most popular is probably QuickTime Pro ($30), but the free Windows Movie Maker 2 works pretty well and comes pre-installed with Windows Vista.

Related posts:

46 thoughts on “Install a CHDK Intervalometer on Your PowerShot

  1. I’m glad my tutorial helped. This is one of my most popular posts, so I’m always glad to get feedback.
    Have fun!

    1. Good luck with your new camera. The SX200IS seems pretty nice for the size. Come back and post a link if you end up making a time lapse.

  2. I have a Canon SX200IS with the latest CHDK and Ultra Intervalometer script. I have tried, but can’t get the shutter to go off more than once every 2-3 seconds. Ideally, i’d like to take a shot a couple times a second to get a smoother time lapse. Am i doing something wrong, or is it a physical limitation of the camera software/hardware?


    1. It’s not a physical limitation of the software. You should be able to put the interval down to microseconds. My best guesses are you either have a setting off in CHDK or your camera and memory card can’t handle the fast write times. There are other possibilities, so it’s hard to say without more information. I don’t know the SX200 specifically, but it seems it should be able to take faster pictures. If you want a more thorough answer, contact me with through the contact form and I’ll try to help.

      1. this possible to take photos after every 20 or 40 milli seconds. 1 second = 1000 milli second. what i want is to take 24 photos with my 550d in a calculation is trigger after every 40 ms and exposure time of 1/600 this way i will be able to make a 24fps motion movie.may be its the wrong concept.need ur help.mail me on vishal2241 at …………also if not possible with chdk or magic lantern then what are the chances of doing the same with some pulse generator or arduino based circuit

        1. This is a good idea in theory and the basis of all movies shot on film. However, the 550D isn’t designed to fire 24 times a second. The shutter can’t operate that fast, the memory card can’t read that fast, and even if these two things weren’t a problem, your camera’s shutter is probably rated for around 100k clicks. This means a brand new camera would wear out after just over an hour of recording.

          The good news is the 550D shoots full 1080p HD video. Is there something you want to do that won’t work with the video mode? The only cameras I know that can record video in such a large format as your camera’s photos are those used for Imax.

  3. Can someone help a newbie out? I’ve been playing with this for hours, and getting nowhere. How exactly do I set the interval before the first shot, and how do I set the time between shots? I see nothing in the menu that allows me to set these values. What is autostart, and why would I use it or not use it? Is there somewhere I can go that has answers to these basic questions so I don’t have to be bugging people with them? I’ve looked everywhere, but this knowledge seems to just be assumed. Thanks for any help!

    1. I just added another photo at the bottom of this post that I hope clears it up for you. The intervalometer settings should be at the bottom of the “Scripting Parameters” screen after you install Ultra Intervalometer. If you don’t see these settings, try re-installing the intervalometer script.

      I played around with autostart but I don’t use it. I think it runs the intervalometer script as soon as you turn on your camera. Not positive, though. The only setting you need to adjust above “—-Ultra Intervalometer—-” is “Save params” if you don’t want to reprogram your settings every time.

  4. hello, i can’t get this thing to work.
    i followed every instructions but i don’t know what i missed.
    i have a canon sx30is with a firmware 1.00n, everything from CHDK is working fine aside from intervalometer. i copied and run the latest update of ultra intervalometer from the website you’ve mentioned but nothing, im able to shot the first picture but that’s all, the interval passed but no shots and the funny thing is when i move the mode dial lets say from Av to Tv it will take a picture then will stop again.

    is it because according to the website, the supported firmware is 1.0.1m? or i missed some settings?

    1. I’m not sure why that’s happening. Could you list your intervalometer settings and we’ll try to trouble-shoot from there? The 1.0.1m might be a problem, but there’s nothing you can do about that except wait for an update. It doesn’t look like CHDK works with 1.0.1m yet.

      1. Thanks man for the quick reply:

        here’s my parameters:
        take note that this script came from the latest version of ultra intervalometer

        script shoot delay [0]
        autostart [off]
        paramaters set [0]
        save params [•]

        ultra intervalometer:
        delay first shot (secs) [2]
        number of shots [0] *inf
        interval (secs) [5]

        i also tried the interval.bas/interval.lua included in the CHDK pack but no success, same result

        also tried this one:

        same result.

        the CHDK works fine like the RAW capabilities, i can ever play the games etc… i think the problem only exist in the script execution.

        is there any settings outside CHDK that may cause this problem?

        finally, if the problem is my firmware version (1.00n) i think, we can’t do anything but wait..

        thanks a lot!!

        1. My only suggestion would be to adjust the number of shots. Try it at ten just to see if that helps. I don’t like the infinite setting because it causes other issues. I also saw there was a problem with delay+infinite in an early version of this script for your camera.

          I don’t know of any settings outside the scripting parameters that could cause that problem. It might be a matter of waiting for an update. Sorry.

          1. Hello again, thanks for your help

            i adjusted the number of shots, still no good…

            anyway, i think ill just have to wait :)

            thanks again and good day!

  5. Hello Owen,
    I am trying to do a project where I have 5 A550 cameras each doing a time lapse for 1 month taking 1 pic every 10 minutes. I would prefer to access the cameras as little as possible. I would like conserve battery as much as possible. I will use a 16GB card so it should last me about 5 days worth of images. I will try to attach a large battery( this I haven’t figured out yet) I would like try to have the display off, and manual focus and as much as I can for power saving. Can I combine your script with a sleep script between shots. Any suggestions as to the best script for something like this? Thanks in advance.


    1. Hi Cany,

      That’s a huge question. I’ll try to help by pointing you to some resources.

      – The first question is if you have access to electricity. You can buy AC adapters for the cameras that should keep them running for a month if you have an outlet. This would also let you use a laptop to store photos instead of memory cards. PSRemote Multi-Camera lets you shoot with multiple PowerShots, but it’s pretty darn expensive. See if you can find something cheaper.

      – If you’re shooting outside, expect a monster budget because you’ll have to build housing. For power, a deep cycle marine battery might work for a while, but I’ve never tried this. Look up remote power options on Time Scapes’ forum.

      – For a cheaper outdoor setup, maybe even consider something like the Plant Cam:

      – A 16GB card could work but you’ll probably need to partition it if you want to install CHDK.

      – Just to clarify, it’s not *my* script, I just show how to install it. And no, I don’t think CHDK works unless the camera is fully on. This is different than PowerShot’s own intervalometer, which lets the camera sleep between shots.

      I hope this helps. Good luck and let me know how it goes.


  6. Just found this blog and the great time lapse feature – really useful, thanks.
    One (hopefully not dumb) question.
    How do I turn the time lapse feature off, so I can do other stuff in CHDK mode? When my Canon Powershot S95 is in CHDK mode, it keeps saying ‘Ultra Intervalometer’ in bottom left corner.
    I am running

    Any help appreciated

    1. Hmm. Good question. I spent twenty minutes playing with it and couldn’t figure it out. I don’t think I had that problem with my previous intervalometer script. Anyone else able to help?

  7. I already downloaded CHDK and it works fine. Then I tried to download the intervalometer script from…… for my SX30IS.

    But for the last 3 days the site gives me a Server Not Found” message. Is there any alternate site for downloading the script for intervalometer?

    1. The CHDK wikia page seems to be working:
      You shouldn’t have to download anything. Here’s the most recent Ultra Intervalometer script that you can cut and paste into a text file in case the site goes down again:

      rem Author – Keoeeit
      rem Upgraded by Mika Tanninen
      rem Time accuracy and shutdown for a710is by Viktoras Stanaitis
      rem h-accuracy for delay, j-accuracy for interval
      rem Zoom by Frollino
      @title Ultra Intervalometer Zoom
      @param a Delay 1st Shot (Mins)
      @default a 0
      @param b Delay 1st Shot (Secs)
      @default b 0
      @param c Number of Shots (0 inf)
      @default c 0
      @param d Interval (Minutes)
      @default d 0
      @param e Interval (Seconds)
      @default e 10
      @param f Interval (10th Seconds)
      @default f 0
      @param g Zoom (0-8)
      @default g 2
      rem JPEG best quality
      set_prop 23 0
      rem Zoom 0-8 for A Serie and 0-14 for S Serie etc…
      set_zoom 0
      set_zoom_rel g
      if c<1 then let c=0
      if t<100 then let t=100
      if g<=0 then goto "interval" for m=1 to g print "Intvl Begins:", (g-m)/60; "min", (g-m)%60; "sec" sleep 930 next m :interval n=n+1 if c=0 then print "Shot", n else print "Shot", n, "of", c shoot if n=c then shut_down sleep t goto "interval"

  8. OMGosh, this is awesome. I think I’m in love, LOL. This is fantastic, who would have thought that I could use my little Canon for timelapse photography and to have it this simple. Thank you so much to the developer(s) – I’ve installed it and just tried it out, it’s really straight forward to install and set up, it must be, if I can do it, anyone can.

  9. Thanks for your excellent instruction. When I turn on my G10 in the normal way, the camera keeps on telling me the card is locked. So is it correct that very time when I want to use the intervalometer, I have to update the firmware once? Or is there anything I missed?Thanks.

    1. It sounds like there might have been a problem installing the script or CHDK. I’ve gotten that message before and just reinstalled everything. Does CHDK work by itself or are you having problems with that too? Have you tried using the card without locking it? You shouldn’t have to update the firmware every time.

      1. OK, I’ve done it.
        I run through your instruction again, this time word by word, and I found I have missed to ‘Make bootable’. I go over the whole process and I don’t have to update the firmware every time when I want to use the intervalometer or other scipts in the CHDK.
        I still have 2 queries, do I have to keep the card in ‘locked’ position? I can’t access the CHDK if I used another card?
        Thanks again for your excellent instruction!!!

        1. I’m glad it finally worked out for you. I think you only have to keep the card locked it you want to have CHDK autorun every time you turn on the camera. CHDK lives on your memory card, so it won’t be available if you use another card. However, you can just copy the files directly onto another card without going through the process again and it should work the same. I’d suggest keeping a copy of the files on your computer so you can reinstall it if needed and put it on new cards.

  10. Thanks for the reply. I have used another card, reinstalled without the card locked. The same happened. BTW I am using ‘’, does that matters?

  11. Many thanks for the help..

    i installed CHDK on the memory card ,can you pls support how can i run it without opening the camera display as it is not working :)

    1. Running CHDK is going to be a little tough if you can’t see the display. It’s kind of like using your computer without the monitor. Have you looked into replacement screens? Good luck and let me know how it goes.

  12. Can anyone tell me which current Powershot cameras are optimal for time-lapse and high quality? and can use this hack? thanks!

  13. Hi,first of all great stuff!!!i\’ve been looking around to be able to prepare a time lapse movie and almost bought some equipment before i stumble into this.i\’ve installed it and it seems working very well. but one question – how do i cancel it?let\’s say i set up 100 pictures, but i had a problem and i want to stop and restart. i couldn\’t do it. even when i shutoff the camera during the operation, once i restart it the CHDK just restart the 100 pictures all over… is there a way to cancel the operation in the middle?thx

  14. and just an addition – i\’m using the Powershot SX260SH.might it be related to the autostart?i can see in between the display on/off something regarding the autostart.thx

Leave a Reply

Your email address will not be published. Required fields are marked *

Please type the characters of this captcha image in the input box

Please type the characters of this captcha image in the input box