CHDK

From Noisebridge
Jump to: navigation, search

This is the Canon Hack Development Kit. It could be used to overwrite firmware which limits the functionality of Canon PowerShot models of cameras.

It can also brick a camera. The distinction seems difficult to determine.

[edit] Installation

The wiki says you are supposed to run ACID to determine the version of the firmware on any of the Canon PowerShot cameras that belong to Noisebridge.

ACID says the camera works but it can't download what I want  :(

Acid-chdk-powershot2500.png

From there, download the full release and unzip it into an SD card as poorly documented.

It is also possible to enable the camera to boot into CHDK each time it is powered on. This, like most activities with this software suite, is complicated and error prone. For the powershot A2500 which belongs to Noisebridge, here's the procedure.

  • Install the STICK utility, read lots of words, click lots of buttons
  • Run it according to instructions (remember to be root on macOS or OS X)
  • Flip the hardware lock switch on the card

Despite locking the SD card, the camera continues to be able to write photos to the card.

[edit] Operation

Remote Control requires a special PTP extension. From there it appears there are some helpful utilities. There is some low quality information regarding building the computer PTP interface on OS X 10.8. It will not build on macOS Sierra.

Windows

The info about PtpCamGui will result in a program that will connect to a camera. It's good for timelapse and other computer controlled features though it will not work for liveview. It seems to have limited features.

Linux

Download the binary.

For Gnome, disable gvfsd-gphoto2 with the venerable kill utility. To enter an interactive shell, do this

./chdkptp.sh -c

To take a picture and save it to the computer, give the script some arguments

./chdkptp.sh -c -e"rec" -e"rs selfie"

Follow the instructions to download, copy and link the IUP (Portable User Interface) and CD (Canvas Display) Lua libraries. Enable IUP and CD in config.mk then build the source. The binary doesn't have any GUI bindingscitation needed.

building chdkptp

macOS:

brew install lua libusb
brew install --force readline
svn co http://subversion.assembla.com/svn/chdkptp/trunk/ chdkptp
cd chdkptp
cp config-sample-linux.mk config.mk

edit config.mk

replace LUA_INCLUDE_DIR and LUA_LIB with the following values

LUA_INCLUDE_DIR=/usr/local/opt/lua/
LUA_LIB=lua

edit Makefile so that the line around 111 with the main LDFLAGS definition reads

LDFLAGS+=$(LIB_PATHS) -L/usr/local/opt/readline/lib $(patsubst %,-l%,$(LINK_LIBS) $(SYS_LIBS))

continue to build

make

Edit chdkptp-sample.sh

run chdkptp-sample.sh

./chdkptp-sample.sh

[edit] Scripting

Once installed, it is possible to write scripts in the Lua language which run directly on the camera. There is a Lua reference in the Noisebridge Library.

Personal tools