Installing SDM and CHDK the really simple way
  • Many here have found the process of installing SDM or CHDK a tricky process - even with my ACID, SDMInst, WICKS and LICKS apps. With a prod from David Sykes, I've written two new apps which make the process much simpler. No options or choices - all you have to do is drop a photo on the app and click a button to go through the entire download and install process.

    Both apps (written in java) are cross-platform and run on OSX, Windows (XP to Windows 8) and Linux (Ubuntu at least).

    ASSIST (Automatic Simple SDM Installation and Setup Tool) installs SDM
    STICK (Simple Tool for Installing CHDK) installs CHDK

    The apps take care of any necessary partitioning or formatting (and do neither if things are already OK). They also know that post-2011 Canon cameras can boot CHDK or SDM from FAT32 cards (and hence don't need two partitions on cards bigger than 4Gb). All this means that once you've dropped the photo the apps know exactly what they have to do.

    I intend to add a customisation step at the end of the install process to make things easier for KAP or PAP (e.g. ensuring the CFG file settings make USB triggering work 'out of the box', making a simple intervalometer script the default etc).
  • Great news Dave. Thank you for your support of the CHDK and SDM communities. Should be a big help.
  • I second Jim's comments. Remembering my past SDM struggles, I look forward to using your newest creations.
    In the deck of cards us Kappers have been dealt, you truly are an ace. And another thanks and tip of the cap to
    David Sykes for his continuing efforts, and for prodding your newest efforts.....
  • Thank you Dave for the wonderful tools. I was about to ask why you created two separate Apps, but after seeing how simple it is, it all made sense.

    Now if you would only read the photo from the SD card, prior to partitioning, you would save me an unnecessary drag-n-drop operation... ok, just kidding!
  • You should thanks the abysmal South Devon weather too - lack of KAP opportunities over the last month meant I had time on my hands to program (I just did a quick check and there are something like 7000 lines of code in the two apps).
  • You are a legend Dave. KAP Hall of Fame
  • Talk about going the extra mile!
    One of the few good things to come out of the absolutely terrible weather of late.
  • Thanks Dave. I'm planning to make the move to SDM soon. This will become handy.
  • Thanks Dave, Great tools, Hope you don't mind, I shared your reserach with the French KAP Forum. I know a few french KAPers were looking for such CHDK and SDM improvements !
  • Bravo once again, Dave. At last I may give SDM a try.
  • Thanks Pierre - I'm hoping to see you at KAPiFrance125 in October.
  • Dave,

    I was just attempting to use this to install SDM on a card for my s95. I was hoping to see if it would work in a non-partitioned environment, as that is always a bit of a chalenge when you go to get the pics off the card in a windows machine.

    But when I dragged the photo over, it identified my firmware for the s95 as 100k, and said there wasn't a released build of SDM. I could of course go no further. I am currently running SDM (from another card) in this camera, so I know it works. If memory serves (and I could probably check my downloads on another computer later) I think I tired whatever the latest build before 100k was and it worked-- that was about a year ago.

    Is there any way, using ASSIST, to force a firmware choice if there isn't a build for your identified one?

    Thanks for spending so much time building this system, I can only imagine the effort required to code all of this.
  • Hi Hoo Dat

    as soon as David Sykes releases SDM 1.86 the s95 will be officially supported by ASSIST. However because it was released in 2010 the s95 does NOT support booting from FAT32 (single partition) large cards, you will still have to use 2 partitions for cards bigger than 4Gb. See the list here - the key is the OS release - #0047 is the first to support FAT32 booting - as you can see, the s95 was the last Canon P&S camera not to do this and the A3300 the first).

    One simple trick way to install SDM for a camera which isn't officially supported but for which you have the necessary DISKBOOT.BIN file (provided unofficially by David Sykes, like the 100k build for the s95) is this:

    1. locate a photo taken by a camera which IS supported now (e.g. the Canon A570) on the web and download it.
    2. use that photo with ASSIST to download a build and install it.
    3. copy the 'unofficial' DISKBOOT.BIN file for your camera into the root directory of the FAT16 partition, overwriting the one for the A570.

    The DISKBOOT.BIN file is the only crucial difference between SDM builds for different cameras.
  • Thanks for all of that Dave. That seems like a great work around.

    I guess since I'm stuck with the partitioned card for an s95, I'll just hold on for now. Maybe I need to just start travelling with a mac instead of a pc.
  • Hello all,

    I am trying to remotely use a Canon S100 with VP-system/CamRemote using the usb of the camera . I have installed CHDK in a SD with the remote control option active and a new script from Camremote, (selected and on the CHDK)
    When I active the switch on the TX i can see some blinking on the green led of the camremote but no action on the S100, no pictures!!!

    has anybody used the S100 remote with CHDK. Maybe S100 is not remote control supported with CHDK?

    Please any ideas will be wellcome


  • Miguel

    Is the camremote.bas script running in the camera? If not, then you must:

    1. get the camera into Alt mode (by pressing the Print button)
    2. select the cam remote script by:
    3. pressing the Menu button to get the CHDK main menu
    4. scroll down to scripting parameters
    5. press Func Set to bring up the script menu
    6. press Func Set to bring up the list of scripts
    7. scroll down to the camremote script
    8. press Func Set to select it
    9. press the shutter button to run it

    Next time you run the camera on, you'll only need to repeat steps 1 and 9 (since CHDK will remember the name of the script you selected).
  • Hi Dave,

    yes I did all the above plus remote control option on. From VP-system they are saying to have a go with the script for S95 and change also the settings on the Camremote configuaration software pannel, I will have a go and see if the camera does something else.

    Thanks for your comments and support

  • Hi Miguel.

    As I ('Microfunguy') mentioned on the CHDK forum, an SDM user runs camremote scripts with his S100.
    It works fine.

    Which firmware version is your S100 ?
  • @mig- I had to "Enable Remote" on my CHDK Canon S90/S95/S100 to get remote USB trigger to work:

    ALT + FUNC. SET -> Remote parameters -> Enable Remote (make sure it's ticked/checked)

    EDIT: Just re-read your message. Try trigger the camera with a computer and a USB cable first. I can confirm remote triggering works on the S100 using CHDK and SDM.
  • In collaboration with David Sykes, I've modified ASSIST so that it now supports a whole set of new cameras, including the s100.

    The cameras now officially supported by ASSIST include:
    a1000 100a
    a3200 100a and 100d
    a490 100f
    a495 100f
    a800 100c
    a810 100b, 100d and 100e
    g12 100c, 100e and 100g
    ixus105 100b and 100c
    ixus70 100c and 102
    ixus750 100f, 100g and 100h
    s100 100d, 100e, 101a and 101b
    s95 100h, 100i and 100k
    sx130is 101c and 101f
    sx20 102b and 102d
    sx210is 100c
    sx230hs 101b

    For the moment, ACID does not know about these new cameras, but will do before long.

    PS As of 14:46 GMT today, ACID does know about these new cameras.

  • Thanks for doing this Dave and David. I was able to use ASSIST successfully with my XP system and am happy to say that I now have an S100 running SDM!!

    FYI ASSIST did not run correctly on my Windows 7 machine. It reported that the SD card was drive A: and that the SD card was locked. I tried it with the SD card write protect tab in both positions but ASSIST always indicated that the SD card was locked. I tried it on two Windows 7 machines with the same results. Not sure if I'm doing something wrong, but thought I'd let you know about this.

    Thanks again,
  • Mike

    a couple of others have reported that problem with Windows 7 (64-bit I think). I'm currently investigating - tricky when I don't have a Windows 7 machine! Could you download the updated version of ASSIST here (which produces more debugging information), make sure the file has the line
    and try again. If you could email me ( the assistlog.txt produced when ASSIST terminates that might help me locate the problem.
  • Dave,
    The email has been sent. FYI, the address listed in your previous post bounced, but I found a different one in the file, let me know if the email made it through to you. :)


  • Got the email Mike, and added the missing 'r' to the address above!
  • Thanks to Mike LeDuc and Dominique Breton I've managed to get to the bottom of the Windows 7 64-bit problem. It turns out that even if you are logged on as an Admin user, you still have to 'elevate' yourself by starting ASSIST using the assistx.cmd script. If you use the simple assist.bat file on a 64-bit Windows system ASSIST will have problems trying to locate cards.

    There's one unfortunate side-effect of this 'elevation' - drag-and-drop gets broken, so you have to use the 'Browse' button to locate a photo. This is a known 'bug' in Windows UAC (User Account Control) apparently - you can't drag a file from a 'normal' application (like Explorer) to an 'elevated' one (like ASSIST) - and there's no way to elevate Explorer.
  • Hi Dave,

    First, thank you for all the hard work with SDM. I've been trying to get SDM to work with a S100 and Mac OSX 10.8.2, but to no avail. I was hoping you could tell me what I'm doing wrong. I've tried all of the provided tools, but only got close to operational once. I was hoping to make a single bootable FAT32 partition, but that does not seem to be supported in SDMInstML (I use the command script to get root access), so I went with a dual partition FAT16 (SDM) and FAT32 (CHDK and DCIM). However, the camera often writes CHDK and DCIM folders to the designated SDM partition. When I try reversing the partitions to solve the issue, I end up with it running, but my DCIM folder gets written into the FAT16 folder with no memory to take pictures. I tried ASSIST, but it won't format or partition my card, which is a fairly standard Lexar 32GB SDHC. I used ACID to download the appropriate version of SDM for my camera, which is running the 101.B firmware.

    I was hoping you might be able to point me in the right direction...
  • Hi Adam

    with the S100 you really should use a FAT32 card since new cameras like the s100 will boot from it. If you format the card in camera it will be made FAT32, then all you need is to copy the files and make the card bootable.

    ASSISTS should do the job, but I think I've made a silly mistake failed to include a Mountain Lion script - that may be why it won't work for you. Can I suggest you edit the assist.command file and change the second line to read:

    sudo java -jar assist.jar

    Let me know if that works.
  • EDIT: I just saw your reply. Thank you for the quick response and please forgive my desire to tinker. Below is what I ended up doing. It sounds like your fix may likely be much easier. The main trouble I ran into was in formatting the SD card to boot, which was resolved with 0xED.

    Hi Dave,

    I figured it out based on the CHDK Mac FAQ and a post by AJMexico on the CHDK forum:

    Yesterday I succeeded in installing CHDK on my S100. It was my first experience with CHDK. It was indeed challenging. Here are some tips. I was doing this on a Macintosh, so some of the windows tools don't apply. The Mac FAQ was helpful. These tips should help you understand which parts of the various FAQs and instructions you can ignore, and which you must pay attention to.

    1. I used ACID to determine which firmware version I had (1.01a).
    2. I also used ACID to download the correct build. If it's your first time, you must download the full build which is not the default.
    3. The S100 is Product ID 0x3236, release 0049 in 2011.
    4. You must (at this time) use the SD-Card-Lock-Auto-Boot Method.
    5. I installed on a 4 GB SD card, with a single partition, formatted as FAT32. It is not necessary to partition your card  or reformat it to FAT16 for the S100.
    6. I used terminal commands and a hex editor to modify the boot sector to make the card bootable. I didn't see a simple-minded Macintosh utility for this like there apparently is for Windows. I used the 0xED editor. For the terminal commands reading and writing the boot sector, I had to logon as administrator. Most Mac users are already administrator, but not everyone.
    7. This was the difficult part for me: For FAT32, the offset from the beginning of the sector of the bytes which need to be modified is 0x1E0. At 0x1E0, I changed eight bytes to read BOOTDISK. I'm attaching a screenshot of this modification.
    8. Beyond that, I followed the usual instructions to copy the build to the card, lock the card, etc.

    The changes I performed in 0xED are shown below:


    Exporting BOOTDISK.bin from the SD card, moving it to a folder to edit, editing it with 0xED, and writing the editing BOOTDISK.bin file back to the SD card:

    Last login: Sun Feb 3 14:14:17
    MacBook:Volumes adam$ cd CANON_DC
    MacBook:Volumes adam$ diskutil unmountDisk force /Volumes/CANON_DC
    Forced unmount of all volumes on disk2 was successful
    MacBook:Volumes adam$ sudo dd if=/dev/disk2s1 of=BootSector.bin bs=512 count=1
    1+0 records in
    1+0 records out
    512 bytes transferred in 0.000635 secs (806415 bytes/sec) ....Writing BOOTDISK worked
    MacBook:Volumes adam$ ls
    BootSector.bin Macintosh HD MobileBackups
    MacBook:Volumes adam$ sudo mv *.bin ~/Documents ....File moved with sudo
    MacBook:Volumes adam$ ls
    CANON_DC Macintosh HD MobileBackups
    MacBook:Volumes adam$ cd ~/Desktop
    MacBook:Desktop adam$ cd CanonS100Mod
    MacBook:CanonS100Mod adam$ diskutil unmountDisk force /Volumes/CANON_DC
    Forced unmount of all volumes on disk2 was successful
    MacBook:CanonS100Mod adam$ sudo dd if=BootSector.bin of=/dev/disk2s1 bs=512 count=1
    1+0 records in
    1+0 records out
    512 bytes transferred in 0.000455 secs (1125516 bytes/sec) ....New boot sector to SD

    Further instructions from the CHDK wiki ( below:

    • Copy the following files, ONE AT A TIME, in the order listed. Do not just drag them from the Mac to the Card drive all at once.
    • Copy the file DISKBOOT.BIN to your SD card. Make sure to use the correct version for your model of Canon camera.
    • If PS.FIR (or PS.FI2) is included in the autobuild, copy it to the card… Not needed with SDM
    • Copy ver.req to the card. (This is optional, but guarantees full CHDK functionality)... Not needed with SDM

    In the step below, you can drag the whole CHDK folder from the Mac to the Card drive...
    • Copy the CHDK folder to the card
    • Eject the SD card
    • Slide the tab to the LOCK position
    It is necessary to LOCK the SD card to load the CHDK software. With the card locked and the camera running CHDK, you are still able to record pictures on the card. You now have a Bootable SD card with CHDK properly installed. The camera will now attempt to load the DISKBOOT.BIN file whenever the camera is started with this SD card (when it is locked).

    I hope this helps out S100 users running Mac OS X. Thanks again Dave for the great ACID program, which was very helpful. It seems I have found a great community in the CHDK/SDM world!


  • Well done, Adam! You can appreciate why I wrote SDMInst and ASSIST - there are a lot of opportunities for errors (some disastrous) if you try to do the whole thing by hand. What you did is pretty much what ASSIST and SDMInst do under the covers.

    I have updated the ASSIST package (now Version 1.04) so it contains a Mountain Lion script. I've also today uploaded all the SDM 1.86 builds from David Sykes, so ASSIST will now install 1.86 for all SDM supported cameras (as long as you use Version 1.04 - version 1.03 will install SDM 1.85 for all the cameras that that version supported).
  • Excellent, thank you Dave! I certainly look forward to the ease of ASSIST when it comes time to update or install on another camera.

  • Dave,

    I recently picked up a cheap Canon Ixus 310, currently using a 1gb card for testing purposes.

    Have tried to download/install CHDK using STICK 1.04, it works great except that it doesn't make the card bootable.

    -- I have made the card bootable using cardtricks and now CHDK works on the camera.

  • Hamish

    could you try again with Stick - first adding the line "debug=yes" to the file (in the same folder as stick.jar). Then email me the resulting sticklog.txt file produced when stick terminates? I'd like to know what's going wrong.
  • Dave: Just a report--I have successfully used ASSIST to update SDM for my three KAP cameras, Canon 570is (my go-to KAP camera), Canon G9 (my just a bit heavy KAP camera), and Canon S95 (bought for KAP on eBay but use it more as a convenient point and shoot camera in hand) . I had only minor challenges which were caused locally. Thanks for this truly "really simple" way to install SDM. I have benefitted in important ways from your contribution to the control side of KAP ventures.

    Robert R. Llewellyn
  • I am delighted by the potential of SDM! Accordingly, I have attempted to install it on a refurbished Canon a2200 (using a photo taken by a Canon S90 with ASSIST to download a build and install it, then replacing the DISKBOOT file with an unofficial one for the a2200).

    Unfortunately, I'm vexed by problems. (At first, I couldn't get ASSIST to locate a memory card, but, thanks to Dave Mitchell's January 31st post--thanks for everything here, Dave!--I'm now using the assistx.cmd.) If the card is formatted for the a2200, then ASSIST won't get past Step 4, where it reports: "Installation failed - see log for details" (but the log says the exact same thing, "...see log for details"); if the card is formatted for my computer (PC, Windows 7), then ASSIST works just fine and installs the S90 build. I switch the DISKBOOT files, and I'm ready to put the card back into my camera.

    That's when things fall apart. The camera won't start if the SDM card in it is locked. It doesn't react at all when I press the on/off button. I've got to pull out the card and the battery, and re-insert the battery with or without a card (unlocked) to get the camera to power up. If I do put in an SDM-installed card, with the card unlocked, well...then I'm unable to access SDM.

    Does anyone have a suggestion for how I might surmount this difficulty? I have managed to get the camera to start with a locked card, but not a card that had SDM (or CHDK) on it. What to do, what to do...
  • I apologize to all those who've had problems with ASSIST. The problems seem localised to Windows 7/8 users with cards > 4Gb and pre-2011 cameras (which requires partitioning the card into a small FAT16 and a large FAT32 partition). I only have Windows XP and cannot reproduce the problem myself. Until the problem is fixed, I advise Windows users with pre-2011 camera to stick to cards 4Gb or less.

    For UK people with the problem I'm happy to offer a card preparation service - send my your card with a photo on it taken with the camera in question and I'll post it back to you with SDM installed. I'll do this for users outside the UK too, but the two postal trips might take some time.
  • There goes Dave again...apologizing ( after all his efforts... for sdm etc... ) , and then offer service above and beyond..
    Thanks Dave,

  • Ah, well. I went out and bought a 4GB card, and the problem is the same: the camera won't start if the SDM card in it is locked. It's frustrating. I know this camera works with SDM 'cos I've seen Michael L use the same model for KAP. What am I doing wrong?

    But no apologies are necessary, Dave--really, like Paul says, you've done "above and beyond."
  • Snaphappy,

    Try this: When powering the S100 with need to hold down the power on button for about 3 seconds to power up the camera. The normal 1-2 second button push will not work. I normally use 16Gb cards but the 4Gb should work just fine.

    Good luck.

    Fly safe.

  • You should be using ASSIST to download the correct A2200 build rather than your unofficial one, which may be the wrong firmware version.

    Use a photo taken with the A2200 to do this..

  • In Stereo menu, if you choose Extend Lens then you only need to press the power button very briefly for the camera to boot and switch to Record mode.
    With the latest ASSIST builds there is a safety feature when booting.
    If Extend Lens is not checked, a brief press of the power button boots the camera into playback mode.
    Half-pressing the shutter button will NOT then extend the lens and switch to Record mode.
    There are instances where that has happened when the camera has been in a bag and the lens extended accidentally, causing expensive damage.

    To unlock the keys, you now have to press your designated ALT mode button.
    You can then extend the lens.
  • Um...when I try ASSIST, using a photo taken with my A2200, it says "No official SDM builds are available for this camera." Should I download a newer version of ASSIST? Is there such a thing?
  • Oops! I forgot to update the tables that ASSIST uses when I uploaded the A2200 builds. Just run ASSIST again and it should find the A2200 build.
  • Dave, thanks for the updated tables , but...

    It didn't work the first time I tried it. So I downloaded ASSIST again, and re-ran it (this is version 1.05). It recognizes the image I'm using as a photo taken with a Canon PowerShot A2200, firmware 100d, but it denies that there are any official SDM builds for the camera.

    Here, I'll try to install it using the S90 photo, and then switch the DISKBOOT file with one for the A2200.

    Yikes! The camera wouldn't power up with the card locked; when I try it without a card (or with the card unlocked), it turns on, extends the lens, then retracts the lens and flashes the message: Change the battery pack. Then it shuts down.

    Guess I'll look around for a Canon help forum, or maybe the users' manual. What does "Change the battery pack" mean, aside from the obvious?
  • Huh. According to the Canon PowerShot Forum, the message "Change the battery pack" means the camera has to be repaired or replaced. I'm not having a lot of luck at this whole KAP thing. Oh, well. The warranty wasn't good on my NEX 5R after I crashed it into the Bay, but maybe Canon will let me have another refurbished A2200.
  • Oops again - missed out a2200-100d from the table. It's there now.
  • Cool - I'll try it when I get the camera back from the Canon Factory Service Center.
  • Surely that does mean the obvious ... change the batteries.

    Have you tried that ?
  • Well, I pulled out the battery and put it back in quite a few times. I did not, it is true, try it with a different battery pack 'cos I don't have one. But over at the Canon PowerShot Forum ( someone experienced the same message "Change the battery pack," and was told by the Canon Product Experts that the camera needed to be repaired or replaced. I bought it ten days ago so I'm still covered by the warranty, and I've mailed it off to the Service Center.
  • My Canon SD870 will sometimes display "Change the battery pack" if I leave it sit for extended periods of time with the battery uninstalled. I found that the message occurs on my camera due to oxidation or residue on the electrical contacts (in the camera and on the battery). As alluded to in the Canon forum, cleaning both the camera and battery electrical contacts with a thin semi-abrasive pencil eraser until they are nice and shiny solves the problem for me. I've also had this happen occasionally on older cell phones.

  • Um...hello. I'm back, with another problem (I feel like the slow kid in class, the one who never answers the teacher's questions and who always finishes the tests last).

    My A2200 was replaced by the Canon Factory Service Center. I have one just like in my hands right now, ready to be adapted for use as a KAP camera. I've slipped the memory card into my computer, and run ASSIST. I browse for image, select a photo taken by the camera; and, yes, "An SDM build for this camera is available for download." I click on the download button, and, wait for it..." failed to download." Hmmm. Click on the Help. The 'Download Failed' Page: This page should not be seen - such errors should not occur!

    ...any idea what I should do? Pack it up, and call it a day?
  • This problem surfaced with the previous version of ASSIST when I uploaded David Sykes latest builds. I fixed it, so if you download ASSIST again (should say version 1.06 on the title bar) things should work OK. My bad, not yours!

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

In this Discussion