Skip to main content

Canon SD1000 (IXUS 70) CHDK installation

Ingredients:
Canon SD1000
SD card > 4GB (in our case, we have an 8GB microSD)
A Linux computer

First, figure out the firmware. I created a file, ver.req and put it in the root of the SD card. Turn on the camera and press FUNCSET and DISP simultaneously.

In our case, we have 1.02A firmware, so get that version of CHDK.

Unpack CHDK.

Now, to set up the SD card. Refer to: http://chdk.wikia.com/wiki/Prepare_your_SD_card.

The SD1000 was released before 2011, it seems, so it needs a FAT16 bootable partition. Since we have an 8GB card, we thus need to configure it to have 2 partitions.

I tried to set up the card with the STICK utility, but failed. So I used Linux to set up the card manually.

Refer to: http://chdk.wikia.com/wiki/CHDK_and_SD_cards_greater_than_4GB_%288GB,_16GB,_32GB,_64GB%29

I'm just going down the line of instructions and adding notes where necessary.

1. Find where the SD card is mounted (on my system, it was /dev/mmcblk0)

 sudo fdisk -l

2. Modify the filesystems/partitions in fdisk

 sudo fdisk /dev/mmcblk0

 o (create empty dos partition table)

I did 'w' to write the partition table and then reluaunched fdisk

3. Create the 2 partitions

FAT16 partition that will be made bootable (2048 was the start block; I couldn't set it to 1 like in the wiki article because it wasn't available):

 n,p,1,2048,+10M

then the FAT32 partition:

 n,p,2,[enter],[enter]

4. Set first partition to FAT16, second partition to FAT32

 t,1,6
 t,2,b

5. Write changes

 w

6. Write filesystem to partition 1

 sudo mkdosfs /dev/mmcblk0p1

7. Write filesystem to partition 2

 sudo mkdosfs -F32 /dev/mmcblk0p2

8. Make partition 1 bootable

 echo -n BOOTDISK | dd bs=1 count=8 seek=64 of=/dev/mmcblk0p1

9. Clone partition 1

 sudo sfdisk -uS -N3 -f /dev/mmcblk0

10. Partition 1's start, size, and id are:

 2048 20480 6

11. Change the partition 1 id to 5

 sudo sfdisk --id /dev/mmcblk0 1 5

Now if I do 

 sudo fdisk -l

I see:

Disk /dev/mmcblk0: 7964 MB, 7964983296 bytes
4 heads, 16 sectors/track, 243072 cylinders, total 15556608 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x5ea82522

        Device Boot      Start         End      Blocks   Id  System
/dev/mmcblk0p1            2048       22527       10240    5  Extended
/dev/mmcblk0p2           22528    15556607     7767040    b  W95 FAT32
/dev/mmcblk0p3            2048       22527       10240    6  FAT16

12. Now mount partition 3 (mmcblk0p3) somewhere. I chose /mnt/usb.

 sudo mount /dev/mmcblk03 /mnt/usb -o uid=1000,gid=1000,flush

13. Copy BOOTDISK.BIN, PS.FIR (there was no PS.F12), vers.req to /mnt/usb

14. umount /mnt/usb

15. Mount partition 2 (mmcblk0p2) to /mnt/usb.

 sudo mount /dev/mmcblk03 /mnt/usb -o uid=1000,gid=1000,flush

16. Copy the CHDK directory to /mnt/usb.

17. Eject the card and lock it. (Since we are using a microUSB, I set the lock on the SD adapter.) Put card in the camera and turn it on.

18. Success! CHDK boots automatically.

Comments

Popular posts from this blog

Compiling pgmodeler on Yosemite (with Homebrew)

Refer to  pgmodeler installation . Steps: Clone the pgmodeler git repo. Use Homebrew to install qt5 (5.4.2, see here ), libxml2, and postgresql. Edit the pgmodeler.pri (not .pro) file and change these variables: PGSQL_LIB = /usr/local/opt/postgresql/lib/libpq.dylib PGSQL_INC = /usr/local/opt/postgresql/include XML_INC = /usr/local/opt/libxml2/include/libxml2 XML_LIB = /usr/local/opt/libxml2/lib/libxml2.dylib Follow instructions to compile pgmodeler (you might need to put Qt's binaries in your PATH. I was lazy and didn't). $ /usr/local/opt/qt5/bin/qmake pgmodeler.pro $ make $ make install $ cd /Applications $ /usr/local/opt/qt5/bin/macdeployqt pgmodeler.app -executable=pgmodeler.app/Contents/MacOS/pgmodeler-ch -executable=pgmodeler.app/Contents/MacOS/pgmodeler-cli Then I was able to do $ open pgmodeler.app

pgmodeler build in Debian Jessie

This is my qmake version: $ qmake -v QMake version 3.0 Using Qt version 5.3.2 in /usr/lib/x86_64-linux-gnu I had to edit linuxdeploy.sh: 1. Add "-makefile" to the QMAKE_ARGS variable: $ qmake -h Usage: /usr/lib/x86_64-linux-gnu/qt5/bin/qmake [mode] [options] [files] where mode is either "-makefile" (default) or "-project" QMAKE_ARGS="-makefile -r -spec linux-clang" 2. Right before "Running qmake...", I added another line to include pgmodeler.pro in the qmake invocation: QMAKE_ARGS="$QMAKE_ARGS pgmodeler.pro" Then I ran ./linuxdeploy.sh -no-qt-libs (https://github.com/pgmodeler/pgmodeler/issues/674)

Building and installing CAN bus bundle on Kura/Eurotech Software Framework

The documentation is incomplete as of 11/25/2015:  http://esf.eurotech.com/docs/how-to-use-can-bus . It shows you how to setup the can0/can1 interfaces. I think I finally figured out the real steps to getting the CAN bus service working in Kura. I found this website somewhat useful:  https://tobiddev.wordpress.com/2015/03/23/one-bundle-project-modbus-and-eclipse-kura/ . It didn't tell me how to build a bundle, but I took a chance with the following and now I'm able to see my module loading the CanConnectionService in the Kura logs. First, build Kura from source following this guide:  https://wiki.eclipse.org/Kura/Getting_Started . You'll probably want to build it in Linux (I am using Debian Jessie) or possibly OS X (I didn't test it). For sure, it fails in Windows 8 at the create_installer.sh part, so I decided not to waste any more time on it. You basically need Kura built just enough so that you can load everything into Eclipse. I was able to do this using Eclipse...