- 1 Q: What does the CHDK program do?
- 2 Q. What camera models are supported by the CHDK program?
- 3 Q. My camera isn't ported yet. Is a port planned ? When will it be ready ? How can I help ?
- 4 Q. How can I get the original firmware version number of my camera?
- 5 Q. How can I update the original Canon firmware?
- 6 Q. Does using the CHDK program void your warranty?
- 7 Q. Can CHDK damage your camera ?
- 8 Q. Where can I find a changelog of the CHDK program?
- 9 Q. I'm confused! What do I download? How is CHDK organized?
- 10 Q. What is an "Autobuild"?
- 11 Q. How do I get CHDK onto my camera's SD memory card?
- 12 Q. What is the root directory of my SD card?
- 13 Q. Do I need a PC card reader, or is it sufficient to connect the cam to the PC?
- 14 Q. When I switch my camera off and then on, CHDK no longer works. What's wrong?
- 15 Q. How can I make the CHDK program load automatically at startup?
- 16 Q. I don't need the autoload feature temporarily/anymore. How can I disable it?
- 17 Q. What are the key settings and shortcuts?
- 18 Q. How do I use scripts?
- 19 Q. I've shot some RAW pictures. How do I process them?
- 20 Q. My RAW/DNG files are distorted, what's wrong?
- 21 Q. May I suggest a new feature?
- 22 Q. What can I use exposure/focus bracketing for?
- 23 Q. Why won't my Remote-Capture programs work?
- 24 Q. Does the CHDK program consume additional battery power?
- 25 Q. What is the Histogram/Zebra data based on? JPEG or RAW?
- 26 Q. Can CHDK let me bypass the 4G file size limit for video recording?
- 27 Q. Why don't the extreme override settings work?
- 28 Q. In what ways are the cchdk.cfgs compatible to each other?
- 29 Q. I have a Mac, how do I use CHDK?
- 30 Q. CHDK works, but sometimes my camera crashes. Is it a bug?
- 31 Q : Why does the photo of CRW or CR2 couldn't be readed by Dpp (Digital Photo Professional)? thank you!
- 32 Q. I installed CHDK, and now my camera only starts in playback (picture review) mode, how can I take pictures?
- 33 Q. What is "record mode" or "rec mode"?
- 34 Q. How should I cite CHDK an academic publication?
- 35 Q. I saw a message about "Possible Canon ROM corruption" at CHDK startup, what does it mean?
Q: What does the CHDK program do?
A: CHDK enhances the capabilities of your camera in a non-destructive, non-permanent way. After loading of CHDK program you will get the following functionality:
- A full list of features is available on this page
- Shooting in RAW, with RAW Average, RAW Sum, and RAW Develop features
- Shutter-priority (Tv) exposure - via shutter value override feature
- Aperture-priority (Av) exposure - via aperture value override feature
- Shutter, Aperture, and ISO Overrides
- Ultra-long shutter speeds - up to 64 seconds, and much longer on some cameras
- Ultra-fast shutter speeds - up to 1/10,000" and higher
- Customizable high-speed continuous (burst) Shutter-based (Tv), aperture-based (Av) and ISO-based exposure bracketing (unlimited shots)
- Focus bracketing (unlimited shots)
- High-speed Flash Sync at all speeds up to 1/64,000 second (even faster in some cameras)
- Script execution - including exposure bracketing, focus bracketing, intervalometer and more)
- Motion-detection trigger - automatically fires camera on motion detection. (Fast enough to capture lightning strikes.)
- USB cable remote shutter release
- Custom user-editable visible Grids for framing, cropping, and alignment
- Fully customizable CHDK display, info placement, user-colors, fonts in menus, etc.
- Zebra mode (a live view of over and under-exposed areas of your picture)
- Battery indicator
- Live histogram (RGB, blended, luminance and for each RGB channel)
- RAW and Video space-remaining gauges with custom low-limit alerts
- Custom CHDK user menu (for instant recall of up to 10 favorite functions)
Extra Video Features
- 10 constant bit-rate and 99 constant-quality video compression levels
- Elimination of 1 GB video size-limit
- Zoom during video function (for cameras without this feature)
Apps and extras
- Depth-of-field (DOF) calculator, hyperfocal calculator with instant hyperfocal and infinity focus set, and more
- File browser
- Text reader
- Some fun tools and games ;-)
These features work on all camera models supported by CHDK. The camera does not need to have "related" or "inherent" features already present—CHDK will add the required functionality. New features are accessed through CHDK-specific menus, rather than the default camera menus.
As CHDK is continually evolving, new features are often added. Thus, some of the listed features depend on you using a version of CHDK that has those features. Check out the Downloads page for information on finding the right build for your needs.
Q. What camera models are supported by the CHDK program?
Please note that every camera model, and almost every firmware revision requires its own unique port. There is zero chance a port for one model will work on another.
A. Currently, the CHDK program is available for Canon powershot digital cameras of the following models:
Camera: Firmware Versions
- A410: 100e, 100f
- A420: 100b
- A430: 100b
- A450: 100d
- A460: 100d
- A470: 100e, 101a, 101b, 102c
- A480: 100b
- A490: 100d, 100e, 100f
- A495: 100d, 100e, 100f
- A530: 100a
- A540: 100b
- A550: 100c
- A560: 100a
- A570: 100e, 101a
- A580: 100c, 101b
- A590: 100e, 101b
- A610: 100d, 100e, 100f
- A620: 100f
- A630: 100c
- A640: 100b
- A650: 100d
- A700: 100b
- A710: 100a
- A720: 100c
- A800: 100b, 100c
- A810: 100b, 100d, 100e
- A1000: 100a, 100b
- A1100: 100a, 100b, 100c
- A1200: 100a, 100b, 100c
- A1300: 100b, 100d, 100e
- A1400: 100b
- A2000: 100a, 100b, 100c
- A2100: 100a
- A2200: 100b, 100c, 100d
- A2300: 100c, 100e, 100f
- A2400: 100c, 100d, 100e
- A2500: 100a
- A2600: 100c, 100d
- A3000: 100b, 100c, 100d
- A3100: 100a, 100b, 100d
- A3200: 100a, 100c, 100d
- A3300: 100a, 100c, 100d
- A3400: 100f, 101a, 101b
- A4000: 100c, 101a, 101b, 102a
- D10: 100a, 100b
- D20: 100b
- D30: 100a
- EOS M3: 101a, 120f, 121a
- EOS M10: 110d, 110f, 110g, 111a
- G1X: 100e, 100f, 100g, 101a
- G5X: 100c, 101a, 101b, 101c, 101d
- G7: 100e, 100g, 100i, 100j
- G7X: 100b, 100c, 100d
- G7X Mk 2: 101a, 110b
- G9: 100d, 100f, 100g, 100h, 100i
- G10: 102a, 103b, 104a
- G11: 100f, 100h, 100j, 100k, 100l
- G12: 100c, 100e, 100f, 100g
- G15: 100b, 100e
- G16: 100h, 101a, 101b, 101c
- IXUS30 (SD200): 100k
- IXUS40 (SD300): 100j, 100k
- IXUS50 (SD400): 101a, 101b
- IXUS55 (SD450): 100b, 100c, 100d
- IXUS60 (SD600): 100a, 100d
- IXUS65 (SD630): 100a
- IXUS70 (SD1000): 100c, 101a, 101b, 102a
- IXUS75 (SD750): 100b, 101a, 101b, 102a
- IXUS80 (SD1100): 100c, 101a, 101b
- IXUS85 (SD770): 100a, 100b
- IXUS90 (SD790): 100c, 100d, 100e
- IXUS95 (SD1200): 100b, 100c
- IXUS100 (SD780): 100b, 100c
- IXUS105 (SD1300): 100b, 100c, 100d
- IXUS110 (SD960): 100b, 101d, 101f, 101g
- IXUS115 (ELPH100HS): 100c, 101a, 101b, 101c
- IXUS120 (SD940): 100e, 101a, 102c, 103b, 103c
- IXUS125 (ELPH110HS): 100d, 100e, 101a
- IXUS130 (SD1400): 100a, 100c
- IXUS132 (ELPH115): 100b
- IXUS135 (ELPH120): 100b
- IXUS140 (ELPH130): 100a, 100b
- IXUS145 (ELPH135): 100c
- IXUS150 (ELPH140): 100c
- IXUS155 (ELPH150): 100b
- IXUS160 (ELPH160): 100a, 100b
- IXUS170 (ELPH170): 100a
- IXUS175 (ELPH180): 100a, 100b, 100c
- IXUS185: 100a
- IXUS200 (SD980): 100c, 101c, 101d
- IXUS220 (ELPH300HS): 100c, 101a, 101c, 101d, 101e, 101g
- IXUS230 (ELPH310HS): 100a, 100b, 100e
- IXUS240 (ELPH320HS): 100c, 100d, 101a, 102a
- IXUS255 (ELPH330HS): 100f, 100h
- IXUS265 (ELPH340HS): 100a, 100c
- IXUS275 (ELPH350HS): 100a
- IXUS285 (ELPH360HS): 100b, 100c
- IXUS300 (SD4000): 100d
- IXUS310 (ELPH500HS): 100a, 101a, 101b, 101c
- IXUS700 (SD500): 101a, 101b
- IXUS750 (SD550): 100f, 100g, 100h
- IXUS800 (SD700): 100b, 101a, 101b
- IXUS850 (SD800): 100d, 100e
- IXUS860 (SD870): 100c
- IXUS870 (SD880): 100e, 101a, 102b
- IXUS900 (SD900): 100c
- IXUS950 (SD850): 100c
- IXUS960 (SD950): 100c, 100d
- IXUS970 (SD890): 100b, 100c, 100d, 100f
- IXUS980 (SD990): 100e, 101b
- IXUS990 (SD970): 100a, 100b
- IXUS1000 (SD4500): 100b, 100d, 100f, 101a, 102b, 102c
- IXUSIZOOM (SD30): 100e, 100f, 100g, 100h
- IXUSW (SD430): 110a
- Powershot N: 100a
- Powershot N Facebook: 100a
- S2IS: 100e, 100f, 100g, 100i
- S3IS: 100a
- S5IS: 101a, 101b
- S80: 100g, 101b
- S90: 100c, 101a, 101b, 101c
- S95: 100e, 100h, 100i, 100k
- S100: 100d, 100e, 101a, 101b, 102a
- S110: 101b, 102b, 103a
- SX1: 200h, 201a
- SX10: 100c, 101a, 101b, 102b, 103a
- SX20: 100f, 102b, 102c, 102d
- SX30: 100e, 100h, 100l, 100m, 100n, 100p
- SX40HS: 100d, 100f, 100g, 100i
- SX50HS: 100b, 100c
- SX60HS: 100b, 100c, 100f, 100g, 100h
- SX100IS: 100b, 100c
- SX110IS: 100b
- SX120IS: 100b
- SX130IS: 101c, 101d, 101f
- SX150IS: 100a
- SX160IS: 100a
- SX170IS: 100a, 101a
- SX200IS: 100c, 100d
- SX210IS: 100c
- SX220HS: 100a, 101a, 101b, 101c, 101e
- SX230HS: 100c, 101a, 101b, 101c, 101e
- SX240HS: 100a, 100c, 101a
- SX260HS: 100b, 100c, 101a
- SX270HS: 102b, 102c
- SX275HS: 102b, 102c
- SX280HS: 102b, 102c, 102d
- SX400IS: 100b
- SX410IS: 100b, 100c
- SX420IS: 100a
- SX500IS: 100c, 100d, 100e
- SX510HS: 100a, 100c, 100d, 101a
- SX520HS: 100b, 100c
- SX530HS: 100a, 100c
- SX610HS: 100a
- SX620HS: 100b, 100c
- SX700HS: 100d, 100e
- SX710HS: 100a, 101a
- SX730HS: 100b, 100c, 100d, 100e
- TX1: 100g, 101b
Firmware versions in green are available in stable and/or dev for download
Firmware versions in gray do not have official CHDK releases. Check porting status here
For the development status of not-yet-supported cameras, see For Developers.
It is likely that any Canon Powershot based on the DIGIC II, DIGIC III or DIGIC 4 platforms can be supported, although it is impossible to be sure until someone starts work on a particular model.
- If your camera model is not listed here then there is no CHDK for it at the present time!
- See also Unsupported Cameras, Adding support for a new camera and Q. My camera isn't ported yet. Is a port planned ? When will it be ready ? How can I help ?
For camera models currently in development see For Developers
For technical reasons some cameras will never be supported by CHDK. These include:
- Canon DSLRs. See the DSLR development forum and Magic Lantern for the development of other firmware addons for these cameras.
- Digic I or older Canon P&S, see Unsupported_Cameras
- Digic DV based Canon camcorders. See Category:Camcorders and this thread for some information on these cameras.
- Cameras from other manufacturers (Nikon, Samsung, Panasonic etc...) See the Non-CANON cameras development forum for discussion of reverse engineering other cameras.
Q. My camera isn't ported yet. Is a port planned ? When will it be ready ? How can I help ?
A. CHDK ports don't happen on a schedule. There is no plan, and there is no CHDK organization that specifies which port happens next. If there is work being done on a camera, there will be a development thread in the CHDK forum and maybe something about it on that model's wiki page. If there is no mention of development activity on the wiki or forum, there is no reason to ask about that camera's status: It is not supported, and there is no way for anyone to know if or when it might be supported. Your guess is as good as ours.
A port of a new camera model happens if and only if there is a developer who has the camera and sufficient time, motivation and skill to complete the port. If this describes you, then you may be able to help. Start by reading For Developers. You can also obtain a firmware dump of your camera to submit for future developers, and once a port is started, you may be able to help with testing.
If your camera model is supported, but your particular firmware version isn't, a developer is still needed although they may be able to do it without access to the camera. There still isn't any schedule. In rare cases, you may be able to update your cameras firmware to a supported version. See Q. How can I get the original firmware version number of my camera
Finally, please do not volunteer as a tester hoping that will attract a developer to work on your camera. If you are actually willing to spend hours and hours trying different builds of the CHDK software and live through crashes and reloads and partially working software, and then document in detail what you discover, the developers will welcome your help. But testing does not mean "I want to try a fully working version of CHDK on my camera and let you know that it works."
Note : there are several CHDK camera ports that have not been released due to a lack of testing. You can look at this page to see if your camera is one of them and maybe help out : Test releases not available in autobuilds
Q. How can I get the original firmware version number of my camera?
For Windows, Mac and Linux users there is a tool available to identify the firmware version of your camera and automatically download the right build - ACID. There's also a German and Spanish version.
Windows users can also extract the firmware version number with wim's CameraVersion tool
Most cameras released after 2013 do not support the ver.req / vers.req trick described below. Use the ACID tools linked above to get the firmware version
A. To get the real version number for your camera, you need to have a file called ver.req placed in the root of your SD card. Note that ver.req is just an empty file - it needs to exist but does not need to contain anything. Start your camera in playback mode. Press and hold followed by the button (on some cameras, the second key may not be . For example, D10 uses The cameras wiki page should specify if another key is used.) Advanced firmware information should be displayed, including the real firmware version (something like GM1.XXY).
If this doesn't work, check the following information carefully:
- create a file called ver.req or vers.req in the root directory of your SD card (see below).
- IMPORTANT: Note that it is spelled ver.req or vers.req, as in VERsion REQuest or VERSion REQuest, that Q is NOT a G, Type it correctly!!!
- switch on the camera in playback mode and wait for the main screen (caution: switching on in rec mode and changing to playback later with open lens does not work with all models!)
- press the
You will see Model Name, P-ID, a string like Firmware Ver GM1.00E, Error State and Firmware Date. The 1.00E part is the firmware version.
- when keeping hold and pressing twice, the line "Adj Ver.00X.00X appears.
- when keeping hold and pressing three times, the line "Adj Ver.00X.00X appears together with IS Firmware Version and IS Parameter Version when having a card inserted with ver.req. When having a card with vers.req inserted, the numbers of "Total Shoot", "Open Shutter" and "Close Shutter" appear.
- For certain camera models, make sure that the last file on your card is a still image, not a movie clip. If it is a movie, the directions may not work on all cameras. Just take an image of anything, try again and it should work.
- For the SX200 camera, the A480, the SD1200IS (IXUS95IS), the SD780IS, and the D10, press and hold the button and while holding it press and release the garbage/self timer button (by moving your thumb down a bit). You can press the button to a maximum of 3 times while still holding the button to get different information at each time (the first time you press it, you get the firmware version).
Creating the ver.req or vers.req file
- Windows based systems
- Download Card Tricks and start it. Select card, click Format as FAT: done, ver.req is now on your card. Note: this will only be done if you have memory card up to 4 GB.
- One manual way to create this file is to bring up cmd shell and type:
echo > ver.req <ENTER>
- and copy the ver.req file to your SD card.
- Another way to create this file: make an empty text file with Notepad and rename it to "ver.req".
- Yet another way to create the file is to open the memory card in My Computer, right click inside the window and select New... and then Text Document. An empty text document will be created and you can rename it to "ver.req" (be sure to have windows display the file-extension, otherwise it will become "ver.req.txt").
- GNU/Linux or *nix based systems
- Or on *nix (Linux,Solaris,BSD etc) based systems, from the shell cd to your SD card's mount point and run the following command:
- Mac based systems
- Use the Linux/*nix method above in the Terminal application, or, open a blank document in TextEdit, then choose save, and save as ver.req , then select the root folder on your memory card from the menu provided.
Important: in the Save drop-down menu, change plain text encoding from Western (Mac OS Roman) to Unicode (UTF-16), and uncheck "if no extension is provided, use .txt" (if you don't see these options then you need to select "Make Plain Text" from the Format menu). Then click on Save.
Note: your camera's firmware version is NOT 188.8.131.52 or 184.108.40.206 ! It's a number that looks similar to this example: 1.01e. If you get a number like 220.127.116.11, then you did not do it properly and probably the ver.req or vers.req file in the root directory of the inserted SD-card is missing. Create that file or move/copy it to the card and try again !
Newer cameras also support a "vers.req" file in the same way. Note that it is called "vers.req" and not just "ver.req". That extra S in the filename allows you to even see the total number of shots that have been taken with your camera (taken movies are not counted) with the same keys pressed multiple times. For further info see this forum thread
- In cameras that support vers.req, ver.req may no longer work, and all you'll get when you press [SET]+[DISP] will be the time clock. If this happens, you need to create "vers.req" instead of "ver.req" on your SD card (or create both to be sure). Then pressing [SET]+[DISP] will get you the version information instead of the time clock.
- Most newer cameras (e.g. the G9 and the G10) support both, vers.req and ver.req; having one or another on the SD card will provide you with two independent sets of data after you press [SET]+[DISP]. Having both files on the card at the same time will make camera act as if there is only vers.req file present.
Q. How can I update the original Canon firmware?
A. Changing the firmware version of a camera requires a firmware update file from Canon. A typical Canon camera will usually be manufactured with several different firmware versions over the life of the model. However, Canon very rarely issues firmware update files unless a serious bug is discovered. What you have on your camera is most likely what you are stuck with.
Note: You cannot update your firmware from a CHDK "firmware dump". These PRIMARY.BIN files are only useful for CHDK development purposes - you cannot load them back onto a camera.
Attention: firmware updates will permanently change the firmware of your camera (unlike the CHDK program, which is only temporary). If anything goes wrong during the update process (for example because you tried it when the batteries were low), you may end up with a dead camera.
A620 Firmware : information about an unofficial upgrade of A620 firmware from an early version to version 1.00f can be found at this message. The 1.00f firmware mentioned can be obtained from this link. Please note that using one of these updates may void your warranty. If you do update the firmware in your A620 be sure to delete the file (PSA620.FIR) from your memory card before you run CHDK, otherwise CHDK won't run.
Q. Does using the CHDK program void your warranty?
A. First, please bear in mind that CHDK comes with no warranty for any use; you use it at your own risk. What follows is just a few thoughts, and is not a legal opinion. Many believe that using the CHDK does not harm your warranty, since it is said to be loaded into the memory only temporarily (turn off the cam and it's gone completely) and that it leaves the original camera firmware untouched.
Canon Tech Support says: "Unfortunately, any upgrades to the software of the camera not performed by an authorized Canon Repair Facility, would void the warranty." ... and ... In further discussion with Canon about this specific hack, their response is: "If it is not Canon firmware the warranty would be void."
Is it an "upgrade" of the camera firmware when the firmware remains untouched? It's up to you to decide. Don't use it if you are not willing to take the slightest chance. Many many people have used CHDK on their cameras (including some very experimental versions) and there is no report of any permanent malfunction. Thus, CHDK appears to be quite safe to use as long as you make sure that it's the CHDK and not a real firmware update (A real firmware update which is not an official Canon update could alter or completely screw up the camera and will void the warranty). Addressing their second comment (i.e. "if it is not Canon firmware"): CHDK is NOT firmware. By very definition, FIRMware is software that remains in the memory of the device when it is not using any power-source.
However, this is not a legal opinion and the user accepts all risk of using it. And as a practical matter, if you send your camera in for warranty service, and Canon says your warranty is void because they found evidence of CHDK on your memory card, there is not much you can really do (what are you going to do? Spend thousands of dollars suing them to get your camera repaired?)
However, you can just wipe or remove the card. ;)
NOTE Under some circumstances, a memory card is not be needed to determine that CHDK has been run on the camera. The canon firmware writes a log to internal flash when a crash is detected, and this could contain signs of CHDK.
> This is to report that I had to send in my A710 IS for repairs when the play/capture switch stopped functioning reliably. I had used the CHDK but did remove the SD card before posting it. The letter I received along with the camera indicates that some parts were replaced, i.e. it was a hardware defect. The camera was under full warranty and I did not have to pay for the repairs. This dates back around March 2007.
>One guy asked the warranty question to Canon support through email:
Hello, Will CHDK violate the warranty of my Powershot A720? CHDK is a kind of software program on a SD card and gets loaded into the camera's memory upon bootup. It provides additional functionality beyond that currently provided by the native camera firmware, it provides for example an "always on" full range Battery indicator. So does this CHDK software violate the warranty of my camera? Thank you for answering my question. Sincerely, Cet Senol
And got the reply:
Dear Cet Senol: Thank you for your reply. After researching this software on the internet it appears that CHDK doesn't make any actual changes to your camera. If you delete the CHDK software from your memory card, or if you choose not to activate the CHDK software on the card (or remove and replace the batteries), then the camera will behave absolutely normally - nothing has been (or ever is) changed, so the warranty is not affected. We hope this information is helpful to you. Please let us know if we can be of any further assistance with your A720 IS camera. Thank you for choosing Canon. Sincerely, Joann Technical Support Representative
please note - under most countries' laws, service agents cannot refuse warranty work unless they can prove that your actions outside the warranty contract have caused the malfunction.
Q. Can CHDK damage your camera ?
Short answer: Yes. It is unlikely, but theoretically possible. As stated above CHDK comes with no warranty for any use; you use it at your own risk. CHDK is created by reverse engineering an undocumented system that directly controls hardware. Because of this, it is impossible to be certain that it is completely safe. There have been no confirmed cases of CHDK damaging a camera, but in some cases it would be very difficult to distinguish between coincidental failures and failures caused in part by CHDK.
Long answer: It is unlikely that CHDK will permanently harm your camera. Both the original firmware and the CHDK developers do their best to avoid situations where this could happen. There are at least three ways in which CHDK could theoretically do damage:
- By commanding physical hardware to do something it was not designed to do. For example, it is possible to command the lens hardware to move when the lens is closed. It is also possible to move lens hardware beyond limits allowed by Canons firmware, using scripts or overrides. See UBASIC/Scripts:_Tele-Macro-Mode and Talk:UBASIC/Scripts#Tele-Super-Macro_Mode_Comments. It's worth noting that neither of these cases have resulted in actual damage, and both required direct input from the user. Any extreme override that relates to physical hardware may also fall into this category.
- By overwriting the internal flash ROM where the Canon firmware is kept, rendering the camera un-bootable. Since CHDK does not ever intentionally write to internal flash, it would take an extremely unlikely sequence of events to make this happen.
- By sending invalid information to a Canon function that ultimately causes something to be written to internal flash ROM.
If you are concerned about this, you can minimize your risk by avoiding untested development builds (test builds posted on the forum, early betas, new hardware related features), being careful about what scripts you run, and avoiding extreme overrides. Ports that have been in circulation for a long time are likely to be safer than brand new betas.
The page Camera failures suspected to be caused by CHDK exists to track suspected failures.
Q. Where can I find a changelog of the CHDK program?
A. Go to the ChangeLog Page. Click on the Chgset number of the build you want to know about and read the log message. For CHDK archaeology, go here Older ChangeLog Page or Even older ChangeLog Page ;)
Q. I'm confused! What do I download? How is CHDK organized?
A. As CHDK is a collaborative effort, there is only an informal "structure" and there have been many versions of CHDK released. However, with the passage of time, many of the early versions of CHDK have become obsolete so there are really only five versions now being maintained :
- The "stable" release of CHDK, where changes are limited to serious bug fixes
- The "developement" version of CHDK, where new feature and cameras are added and made available for testing
- The "German" versions of CHDK (called CHDK-DE), which are very similiar to the stable and development versions of CHDK.
- An early offshoot of CHDK called SDM (for Stereo Data Maker) devoted primarily to stereo photography and maintained by microfunguy.
In addition, CHDK really consists of two major portions: the CHDK program itself, and many user-developed "scripts" that run on the CHDK platform.
In the CHDK wiki and forum, you may find references to historical versions, such as GrAnds build (the original CHDK), MX3, Allbest, MoreBest or Juciphox. The features from these have generally been incorporated into the current stable release and they are no longer actively maintained.
Still confused? Start with the CHDK stable build from the Downloads page.
If there is no trunk build for your camera, you may find one in the CHDK-DE autobuilds
Q. What is an "Autobuild"?
A. An "Autobuild" version is a version of CHDK that is still under development. As the developers compile new versions to test, their efforts are "automatically built" and made available on the web for beta testing.
As with most beta software, not all new features have been fully tested. Some features may not work with all camera models. Your feedback and bug-reports concerning these new builds are welcome on the CHDK forum.
Newcomers may find it more comfortable to not use an Autobuild, unless it is necessary to run CHDK on your camera. Although CHDK does not make any changes to the actual firmware on your camera, it may be possible to cause mechanical damage to your camera, but this is extremely unlikely due to the safeguards put in place by Canon - most people prefer to work with software that has been thoroughly debugged.
Q. How do I get CHDK onto my camera's SD memory card?
Current documentation for SD card formatting is here : Bootable_SD_card
Q. What is the root directory of my SD card?
A. The root directory is the first or top-most directory. If your SD card has the drive letter "K", then the root directory is "K:\".
Q. Okay, but what is the root directory of my SD card (when using a Mac)?
A. It's what you see when you double click the SD card icon on your desktop and a window opens.
Q. Do I need a PC card reader, or is it sufficient to connect the cam to the PC?
A. You will need an SD card reader connected to your computer (or installed in the computer) to install CHDK. This is the easiest and most convenient way to install CHDK.
Another option is to use a camera which behaves as a USB Mass Storage device. Even if your camera does not support this feature, you may be able to borrow such a camera from a friend for the installation procedure.
Finally, using the PTP protocal and a program like CHDK_PTP.EXE, it is possible to load CHDK directly onto your camera. However, this typically is not a good way to try and install CHDK if this is your first time.
Note : many cheap readers have no sensor for the write protection switch on the card, and this is great. Otherwise, you have to switch the card to "unlocked" everytime you want to put something on the card.
Q. When I switch my camera off and then on, CHDK no longer works. What's wrong?
A. When you use the firmware update method to load your camera with CHDK, it doesn't actually change the firmware. Because it is just a memory-resident program, it only remains in the camera's memory until the camera is turned off. You need to reload CHDK each time you start your camera. If something goes wrong and camera does not respond, you only need to switch the camera off or remove the battery (and perhaps delete CHDK from the memory card) to return to the original firmware.
Note : CHDK also has the ability to autoload (see the next answer). If you remove the memory card containing CHDK or disable the "SD Card Lock", CHDK will no longer load the next time you start your camera.
Q. How can I make the CHDK program load automatically at startup?
However, if you want to try the old way of doing this, its preserved in the text below :
You have to do the following actions:
- Copy the files PS.fir (or PS.FI2) and DISKBOOT.bin into the root folder of your SD card (if you have not already done so).
- Load the CHDK program as described above.
- Enter <ALT> mode.
- Press CHDK main menu. to enter the
- Go to "Debug Parameters" or "Miscellaneous Stuff" (in more recent builds) in the Menu on the screen.
- Select "Make Card Bootable". (It won't seem like anything happened. don't worry)
- Switch off the camera and take out the SD-card
- Lock your SD-card. This is mandatory. (But you will still be able to record pictures, it's only a software mechanism)
- Reinsert the card back into the camera.
From now on, CHDK will load automatically on startup until you unlock the card again.
You will have to write-protect your SD card everytime you want to use CHDK, but this will still allow you to take pictures. If the camera still reports that the SD-card is locked, something is missing, CHDK is not loaded.
Note: On cameras released prior to 2011 (vxworks or DryOS < r47) autostart only works on FAT16 or FAT12. This means on these cameras, cards up to and including 2 GB will work, cards larger than 2 GB won't (except 4 GB with non-standard FAT16 format, see Note2). If your model has multi-partition support, you may be able to use larger cards through the use of a small boot partition.
Note2: 4 GB cards can support the autoload feature if they are formated in FAT16 manually. To format SD-card in Windows command line just type 'format X: /fs:fat' (where X: - a drive letter of mounted SD-card). But be aware that the formatting of 4 GB cards in FAT16 leads to non-standard 64K cluster size. The correct support of such cluster size is not guaranteed, but no problems have been reported so far. For Windows GUI formatting support, you will not be able to use the standard Windows GUI to format the card as FAT16 because of the cluster size issue. However, CardTricks will format your card as described, formatting with a Windows command prompt (cmd shell) is also possible. Autoload is reported to sometimes also does not work if the camera is switched on directly in record mode. This is very rare.
Q. I don't need the autoload feature temporarily/anymore. How can I disable it?
A1. The simplest way is to just unlock your SD-card.
A2. Delete the file DISKBOOT.bin from your flash card (or rename it).
Q. What are the key settings and shortcuts?
A. Here is a list of important key settings and shortcuts. Have a look at the CHDK User Manual for detailed explanations. Note that you can press and hold down certain keys to simulate pressing this key multiple times, just like your PC keyboard.
note Some cameras may be different from what is described below. Check the wiki page for your model.
camera-specific key settings:
- Enter <ALT> mode:
- - button for A and IXUS/SD-series cams
- - button for S-series * ( by default )
- Toggle RAW on/off:
- - <ALT> + button for A-series
- - <ALT> + button for S-series
- - <ALT> + button for G-series
- - <ALT> + button for IXUS/SD-series
universal keys and shortcuts:
- Start a script: <ALT>+
- Open "scripting parameters" menu: <ALT>+
- Enter the main configuration menu: <ALT>+
- Toggle Zebra mode on/off: +
- Toggle Histogram on/off: + (on recent versions + )
- Toggle OSD on/off: +
- Scroll-By-page in File Browser and File Reader modes: / / (scroll one page forward in File Reader mode)
- (main configuration menu) Go back one menu level:
- (OSD layout editor) Change the amount of pixels the OSD (on-screen display) elements are moved:
- (File Browser) Open context menu:
Q. How do I use scripts?
A. CHDK allows you to automate your camera by running "scripts", small and simple programs written in a short-hand version of BASIC. You can find some pre-made scripts like bracketing, intervalometer etc. here or write your own scripts using the scripting language. To use a script, you have to do this:
- Put the script you want to use into the CHDK/SCRIPTS-folder on your SD card. (The file extension will be .BAS for UBASIC scripts, or .LUA for Lua)
- Load the script (main menu>scripting parameters>load script from file) and adjust script parameters as needed
- To run the script, press the shutter button while in <alt> mode. You can also stop it by pressing the shutter button again.
If your script does not work properly, try to increase the "script shoot delay" parameter, which is a small time-delay after a shot is taken, before the next line of the script is executed. Some scripts also may require certain camera settings. For example the generic bracketing script: go to menu>review and switch it to "off". Use P, Tv, Av or M mode and activate the camera function where you want to have bracketing. For example: Activate the focus slider when you want to have focus bracketing. Activate the exposure compensation slider in P mode when you want to have exposure bracketing, and so on.
Q. I've shot some RAW pictures. How do I process them?
A. CHDK supports two raw formats: DNG and "CHDK Raw".
- DNG is open industry standard, and is compatible with many standard image processing programs. To shoot DNG, you must first use 'create badpixel.bin' in the raw menu. See the CHDK_User_Manual#DNG_format CHDK User manual for more information.
- "CHDK raw" is not in any standard format. Technically it's not a format at all, it's just a dump of the camera sensor. This means that different models raws are in different formats, and programs which support CHDK raw need to be updated for new models. Some programs which do support CHDK raws from many models are listed in Software#RAW_Conversion.
Note It is important to understand that the file extension is not the same as the file format. CHDK raws and DNGs are frequently saved with a .CRW or .CR2 extension, but they are NOT in Canon formats that typically use these extensions. In windows, file extensions may be hidden, and the "file type" display by windows is in fact the extension, not the format of the data inside the file.
Q. My RAW/DNG files are distorted, what's wrong?
A. Nothing is wrong. Many modern cameras correct for various lens issues in software before saving the image in a JPG file. RAW (including DNG) is the original image from the sensor so it doesn't include these corrections. You can use software on your PC to perform similar corrections.
Q. May I suggest a new feature?
A. Yes you certainly can, although not every wish can be fulfilled. Please note that the CHDK is not able to change any standard behaviour of the camera, because it does not modify the original firmware. CHDK can just "extend" current functionality.
Here is a list of "Frequently Suggested Features":
- Support for more camera models
- In theory the CHDK can be ported on every Digic II - Digic IV camera, but this takes time and a firmware or firmware dump (which you might be able to provide if a firmware dumper is available for your model). If the new cam is very different internally/externally from already supported models, it would be very difficult to port the CHDK without actually having the camera, because heavy testing would be required.
- Suggested, but (almost certainly) not possible at all
- SDHC support for cams which don't have it: not possible since this is a hardware limitation of the camera (hardware limitation? or software limitation in main firmware? SDHC just has different fs header, see Rockbox port for Sansa e200, SDHC Support patch)
- 640x480, etc with different frame-rates (A460, A530: only 10fps for 640x480)
- Video resolution larger than available in canon firmware.
- These require the changes in hardware part.
If a feature that you have in mind hasn't already been requested or wouldn't be impossible to do, please feel free to suggest it in the forum .
Q. What can I use exposure/focus bracketing for?
A. You may use exposure bracketing to take several different exposures; you then choose the best one, or, with tripod shots, you may blend them, average them, or whatever you wish.
Also, exposure bracketing essential for making a high dynamic range photo. See these links for tutorials or try one of these tools: Photomatix (demo available), Traumflieger-DRI-Tool (freeware; no installation required; just load your pictures and click "start"), or Enfusion (freeware; minimalist GUI for Enfuse).
You can use focus bracketing to increase the DOF (depth of field) of a photo using a method called "Focus Stacking". This is especially useful for macros, because often the DOF is so shallow that large parts of the picture will be blurred. Just load your pictures into CombineZM (freeware), click "Macro>Do Stack" and they will be combined into one photo with large depth of field. It has been recently updated so you may want to see what's new. There is also "Picolay" another freeware focus-stacking utility that seems much simpler to use. More freeware (and costware) focus-stacking utilities and tutorial links can be found on this page "Focus-Stacking Tools".
See also, "DoF" Stacking using CHDK Focus Bracketing & CombineZM.
For aligning bracketing shots it is best that you use a tripod and don't shoot moving objects, so the different pictures will match perfectly. In the event that you are using hand-held bracketed exposures and each frame is not perfectly aligned, you can often have success with a freeware utility called "HDR Alignment Tool" (download link and discussion). But for best results it's always better to start out with perfect alignment in the beginning by using a tripod. "HDR Alignment Tool" will, however, fix most all of your alignment problems admirably.
Q. Why won't my Remote-Capture programs work?
A. If you are using programs like Remote Capture from Canon, "Cam4you Remote" (the best I've ever found! ~keo~), "PSRemote" (runs for over a year now, included is a dll and sample c code), or "Time-Lapse" (has a nifty geo position function to compensate for changing sunrise/set) they need to do a "hand-shake" with the camera when first connecting to the camera. CHDK's slight delay on boot-up might/will prevent these programs from connecting to the camera properly. Just remove your SD card and UN-lock (write-enable) the card to turn off CHDK's auto-booting feature. Or if not using the auto-booting feature, power-up the camera without CHDK running. These remote-capture programs should then connect just like they always had. Perhaps future versions of these programs might be updated for CHDK capable cameras so they will work in conjunction with it, vastly improving their own software's capabilities too by running complex/beneficial CHDK scripts remotely. Requests to the authors might help.
Q. Does the CHDK program consume additional battery power?
A1. (wise guy answer) Yes, because you will use your camera more often!
A2. The dreaded and mysterious battery-drain issue. You'll find out that not only does your camera get warmer, but that your batteries drain 10x's as fast at first. Fear not, this has nothing to do with CHDK itself. It has to do with how much you are trying to make your camera do things which you've never done before. 10+ shot bracketing sequences, intervalometer tests, checking out all the scripts, taking hours to find your favorite colors for all the features, tweaking your OSD (screen) layout, comparing histogram types, setting/testing Zebra mode sensitivities, loading all the Grid files and trying to decide on a favorite, testing the file reader on a favorite e-book, getting lost in Sokoban or Reversi, etc., etc. Not being able to put the camera down for many hours during your exploring and making it do new things. You may claim that this happened after only for 10 minutes of using CHDK, but I think if you really timed this you'll find out you've been at it for hours. (Time flies when you're having fun.) There is also a psychological effect with having that battery meter. NiMH batteries quickly drop down from their topped-off voltage to a more average base voltage during use. You see this quick drop in the meter after first using fresh batteries and think it is always dropping that fast. This "CHDK is a huge battery drain" effect/perception wears off after about 3 months of playing with and familiarizing yourself with CHDK, You might want to consider 2 more sets of rechargeable batteries (always keeping 2 other sets topped-off, a high-speed charger might help) until this issue has resolved itself. :)
B. Some people measured the battery consumption rate and found that using the CHDK does not affect battery consumption (either not at all, or just minimally). It makes no difference whether the live histogram etc. is activated or not, because the CPU of the camera is always running (looking for keyboard presses in the loop) and the histogram is calculated even if it is not displayed.
CHDK users also tend to half-press the shoot button more often than regular users, as this allows them to see not only the green/yellow rectangle, but also the histogram, zebra, etc. Keeping in mind that this also is constantly engaging auto-focus and other more power-hungry camera functions more often.
If you are interested in the details about which camera mode consumes how much battery power, you can find the details here.
USER OPINION: This is rubbish. After installing CHDK, the battery life on my IXUS 100IS dropped from lasting around a week of casual use to barely lasting a day. The notion that this is just an illusion caused by us users being too stupid to notice that we are using their cameras more is disingenuous and patronising. ANOTHER USER"S OPINION : I run CHDK on four cameras, do lots of script development and some core code development. I don't see the 80% reduction the previous user claims or anything like that. However, I will point out that CHDK disables the Canon autoshutdown feature, so if you don't actually turn your camera off with the switch when not shooting, your battery life will go down.
Q. What is the Histogram/Zebra data based on? JPEG or RAW?
It's based on the image preview or more technically, the liveview imagebuffer containing YUV data.
Q. Can CHDK let me bypass the 4G file size limit for video recording?
The limit on the size of video files to 4G is a result of the FAT file format used on the SD card and not something mandated by Canon. To overcome this, you can use a CHDK script that will periodically restart video recording after a brief pause. See this wiki page : Continuous Video
Q. Why don't the extreme override settings work?
I can't get my camera to take a 2-minute exposure even though I set it to 120 seconds. And why can't I get an ISO of 3200 when I set it for that? Also: Is there a list where I can compare CHDK-capable cameras to select one which will fill my needs based on its new and improved capabilities?
A. See this page and chart about all the new override settings (in the latest builds of CHDK) for each particular camera model: New Camera Capabilities with CHDK
- (A work in progress, please contribute your camera's ratings.)
Q. In what ways are the cchdk.cfgs compatible to each other?
Can i use the same *.cfg file on several sdcards and for several different camera models?
A. Since mid-september 08 you can use any cchdk.cfg on any Versions of CHDK, including upcoming releases * - if not we will make an announcement or probably just rename the config file. You can use the same cfg on several sdcards without a problem - however you should NOT use a cfg from another camera model, i.e. a cfg from a G9 in an ixus - they are probably not compatible to each other. Also note that if you copy the whole content of an SD card to another sdcard in order to use it on another camera (be it another model (i.e. g9 vs. ixus) or the same model) some things might not work so well, for example the badpixel file - it differs from camera to camera. Also the *.edg files will at least differ from different models.
- We are talking about official CHDK versions (Mainly the autobuild). If you use other people's branches or experimental builds we cannot guarantee that it will work - always backup your cfgs when you switch to another (non-official-CHDK-) build! Often the cfgs are NOT compatible to each other! This does not apply to Microfunguy's SDM build - it uses another name for the cfg.
Q. I have a Mac, how do I use CHDK?
Q. I can't seem to get CHDK to run on any SD card I put it on. Or after I have managed to get it working I can't get CHDK to run any scripts written for my camera!
A. If you are using CHDK with a mac, go to the Mac FAQ page. All your questions regarding installation will be answered there.
Q. CHDK works, but sometimes my camera crashes. Is it a bug?
A. It may be a bug, especially if the CHDK port for your camera is new. But often crashes occur due to the lack of RAM, especially if you are using a camera with little available RAM such as A710IS, A630 or A570IS. Neither Canon firmware nor CHDK output errors or warnings about the lack of RAM. There are ways to conserve RAM, please read CHDK/Camera RAM memory usage for more information.
Q : Why does the photo of CRW or CR2 couldn't be readed by Dpp (Digital Photo Professional)? thank you!
Q. I installed CHDK, and now my camera only starts in playback (picture review) mode, how can I take pictures?
A. On many cameras, CHDK always starts in play (picture review) mode when the camera is powered on by clicking the power button. In most cases, holding the power button slightly longer will start the camera in record (picture taking) mode. You can also switch from play to record mode by half pressing the shutter button at any time.
Q. What is "record mode" or "rec mode"?
A. Also known as "shooting mode", it's the camera mode that allows you to shoot (take pictures).
Q. How should I cite CHDK an academic publication?
A. We recommend
- CHDK Development Team (YEAR). Canon Hack Development Kit. URL http://chdk.wikia.com/wiki/CHDK
See http://chdk.setepontos.com/index.php?topic=12508.0 for discussion.
Q. I saw a message about "Possible Canon ROM corruption" at CHDK startup, what does it mean?
A. See Canon Firmware Corruption.