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