CHDK: Difference between revisions

From Noisebridge
Jump to navigation Jump to search
 
(11 intermediate revisions by 3 users not shown)
Line 5: Line 5:
== Installation ==
== Installation ==


The wiki says you are supposed to run [http://chdk.wikia.com/wiki/ACID ACID] to determine the version of the firmware on the PowerShot A2500 that belongs to Noisebridge.
The wiki says you are supposed to run [http://chdk.wikia.com/wiki/ACID 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 says the camera works but it can't download what I want  :(


[[File:Acid-chdk-powershot2500.png| 720px]]
[[File:Acid-chdk-powershot2500.png| 720px]]
From there, download the full release and unzip it into an SD card as [http://chdk.wikia.com/wiki/Bootable_SD_card 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 [http://www.zenoshrdlu.com/stick/stick.html 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.


== Operation ==
== Operation ==


Remote Control requires a special [https://app.assembla.com/wiki/show/chdkptp PTP extension]. From there it appears there are some helpful utilities. There is some [https://app.assembla.com/spaces/chdkptp/subversion/source/HEAD/trunk/README-OSX.TXT low quality information] regarding building the computer PTP interface on OS X. Not sure about macOS.
Remote Control requires a special [https://app.assembla.com/wiki/show/chdkptp PTP extension]. From there it appears there are some helpful utilities. There is some [https://app.assembla.com/spaces/chdkptp/subversion/source/HEAD/trunk/README-OSX.TXT low quality information] regarding building the computer PTP interface on OS X 10.8. It will not build on macOS Sierra.


Canon PowerShot A2500 operation in CHDK PTP Extension mode
'''Windows'''
 
The info about [http://chdk.wikia.com/wiki/PtpCamGui 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


<pre>
<pre>
$ gphoto2 --auto-detect
./chdkptp.sh -c
Model                          Port                                           
----------------------------------------------------------
Canon PowerShot A2500          usb:036,001
</pre>
</pre>


Despite showing up as a valid camera, no remote control is avaliable.
To take a picture and save it to the computer, give the script some arguments
 
<pre>
./chdkptp.sh -c -e"rec" -e"rs selfie"
</pre>
 
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 bindings[[citation needed]].
 
'''building chdkptp'''
 
macOS:
 
<pre>
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
</pre>
 
edit config.mk
 
replace LUA_INCLUDE_DIR and LUA_LIB with the following values
 
<pre>
LUA_INCLUDE_DIR=/usr/local/opt/lua/
LUA_LIB=lua
</pre>
 
edit Makefile so that the line around 111 with the main LDFLAGS definition reads
 
<pre>
LDFLAGS+=$(LIB_PATHS) -L/usr/local/opt/readline/lib $(patsubst %,-l%,$(LINK_LIBS) $(SYS_LIBS))
</pre>
 
continue to build
 
<pre>
make
</pre>
 
Edit [https://app.assembla.com/spaces/chdkptp/subversion/source/HEAD/trunk/README-OSX.TXT#ln26 chdkptp-sample.sh]
 
run chdkptp-sample.sh
 
<pre>./chdkptp-sample.sh</pre>


== Scripting ==
== Scripting ==


Once installed, it is possible to write scripts in the Lua language which run directly on the camera. There is a [https://library.noisebridge.net/detail/1303/ Lua reference] in the Noisebridge [[Library]].
Once installed, it is possible to write scripts in the Lua language which run directly on the camera. There is a [https://library.noisebridge.net/detail/1303/ Lua reference] in the Noisebridge [[Library]].

Latest revision as of 14:12, 12 March 2017

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.

Installation[edit]

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.

Operation[edit]

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

Scripting[edit]

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.