Installing SDM and CHDK the really simple way

edited January 2013 in Control Systems
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.....
  • edited January 2013
    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.
  • edited January 2013

    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 ?
  • edited January 2013
    @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.
  • edited January 2013
    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.

  • edited January 2013
    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,
  • edited January 2013

    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.
  • edited February 2013
    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.

Sign In or Register to comment.

Howdy, Stranger!

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

In this Discussion