Index:
	01 - Introduction & Camera Specific Notes

	02 - Installation

	03 - FAQ

	04 - Links, Urls

	05 - GPL, License

	06 - uBASIC copyright notice


************************************


01 - Introduction

Hi, 

this is the small readme to CHDK. It provides just enough info to get you rolling, for more information use the links in the bottom.


CHDK is a firmware enhancement that operates on a number of Canon Cameras. CHDK gets loaded into your camera's memory upon bootup (either manually or automatically). It provides additional functionality beyond that currently provided by the native camera firmware.

CHDK is not a permanent firmware upgrade: you decide how it is loaded (manually or automatically) and you can always easily remove it. 

Main features:

    * Save images in RAW format
    * Ability to run "Scripts" to automate the camera
    * Live histogram (RGB, blended, luminance and for each RGB channel)
    * Zebra mode (blinking highlights and shadows to show over/under exposed areas)
    * An "always on" full range Battery indicator
    * Ability to turn off automatic dark-frame subtraction
    * a higher compression movie mode, and double the maximum video file size
    * exposure times as long as 65 seconds
    * exposure times as little as 1/10,000 of a second
    * ability to use the USB port for a remote trigger input 

Additional features:

    * a depth-of-field (DOF)-calculator
    * File browser
    * Text reader
    * Calendar
    * Some fun tools and games 

Why would I want to use CHDK?

    * To get Raw file capability on cameras that don't have that ability
    * To get the ability to use scripts
    * to be able to know the battery status at all times (not just when it's about to run out of power)
    * you want or need any of the other enhancement features that CHDK provides 

What are scripts? Scripts are Lua or uBASIC language programs that give you the ability to control the operation of the camera under program control. They have been used to add or extend the native capability of the camera: more flexible intervalometers, extended-range exposure compensation, extended bracketing ability, lightning photography, etc. See the script pages for more details.


*** Build Information ***
CHDK for ixus300_sd4000 fw:100d PID:12791
build:1.7.0-6343 date:Sun, 21 Sep 2025 04:51:38 +0200

*** Camera specific notes ***
--- CHDK Canon IXUS 300 HS / Powershot SD 4000 IS / IXY 30S Port -------------------
Camera:     Canon Powershot SD4000 IS (USA) / IXUS 300HS (Europe) / IXY 30S (Japan)
P-ID:       12791 (0x31F7)
Firmware:   1.00d
Developer:  pixel::doc (http://pixeldoc.kicks-ass.net/)

--- Legal -----------------------------------------------------------
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE,
TITLE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE
BE LIABLE FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Software or Author are not affiliated in any way with Canon INC.
Product and Company names mentioned herein may be the trademarks of their respective owners.

--- Notes -----------------------------------------------------------
Camera does not support ver.req and vers.req .
Thanks to reyalp, asm1989 and some other guys for their support.

Code in capt_seq.c that "fixes overrides behavior at short shutter press" not enabled. Does not seem to be needed.

--- CHDK ALT Mode ---------------------------------------------------
Alt button is the PLAYBACK button, long press for original function

--- Links -----------------------------------------------------------
* http://chdk.wikia.com/
* http://chdk.wikia.com/wiki/SD4000
* http://chdk.setepontos.com/index.php?topic=5574.0 - Int. Forum SD4000 Porting Thread
* http://pixeldoc.kicks-ass.net/projects/chdk/ixus300_sd4000/
* http://www.canon.com.my/p/EN/114-Digital-Cameras/203-IXUS/1556-Digital-IXUS-300-HS/


--- Changelog -------------------------------------------------------
* 18.08.2010 - I've dumped Firmware 1.00d with CBasic Dumper by reyalP
* 21.08.2010 - CHDK / Camera does start not after flashing LED
* 24.08.2010 - CHDK / Camera does start without any Task Hooks but does still crash
* 26.08.2010 - Source is available on http://github.com/pixeldoc2000/chdk/commits/ixus300_sd4000/
* 12.09.2010 - Beta v1 is available
* 20.09.2010 - Beta v2 is available
* 20.09.2010 - Beta v3 is available
* 02.10.2010 - Beta v4 is available
* 06.10.2010 - Beta v5 is available
* 30.10.2010 - Beta v6 is available
* 18.12.2010 - Beta v7 is available
* 30.01.2011 - UART pinout discovered (http://chdk.setepontos.com/index.php?topic=5574.msg60426#msg60426)
* 31.01.2011 - Beta v8 is available
  * Fixed crash with script (hooked mykbd_task() without increased stack size)
  * Added Continous Bracketing fix from chdk2011
* 01.02.2011 - Beta v9 is available
* 15.02.2011 - Beta v10 is available
* 31.05.2011 - Beta v11 is available
* 01.06.2011 - Source added to SVN at Revision #1196
* 13.06.2017 - Keymap issues fixed by reyalp - <ALT> key is only the Playback key
* 07.07.2017 - add custom color palette
             - fixed SD override code 
             - fixed dual partition support
             - rolled in latest sig finder 
             - changes by waterwings
* 07.11.2017 - fixed jog dial code so dial movements in <ALT> mode are cleared prior to exiting <ALT>
             - fixed viewport buffer code so that zebra, histogram, edge overlay, and liveview work correctly
             - fixed set_led code
             - cleaned up definitions in platform_camera.h
             - move all code from ixus300_sd4000/sub/100d/lib.c to ixus300_sd4000/lib.c as none was firmware version specific
* 07.14.2017 - final cleanups of ToDo items for removal of Beta status
             
--- ToDo ------------------------------------------------------------
* (fixed 08.07.2017) Multi Partition Support (Autoboot CHDK with 2 Partitions on SD-Card)
* (fixed 08.07.2017) "Debug Parameters -> Create card with two partitions" does cause shutdown (WriteSDCard address wrong?)
* (fixed 08.07.2017) tweak Color Palette (CAM_BITMAP_PALETTE), CHDK OSD Colors does not fit and are different in playback/record mode
* (fixed 08.07.2017) ND Filter State not working ?
* (fixed 08.07.2017) Override Subj. Dist. Value (MF) not working ?
* (fixed 07.11.2017) Edge Overlay in correct only in Widescreen Setting ("Recording pixels"), else Edge Overleft has left offset
* (fixed 07.11.2017) Histogram works, but Canon Color Palette does not have required colors for correct display
* (fixed 07.11.2017) Zebra does not work (shows some shatterd dark (grey) pixel) - http://chdk.setepontos.com/index.php?topic=3410.msg32043#msg32043
* (fixed 07.11.2017) find PROPCASE_ASPECT_RATIO to fix Zebra & co (and Y-Correction Fix like SX30 suggested by philmoz)
* (checked ok 07.11.2017) Check Propcase, at least one Propcase has changed (maybe it time for propcase4.h)
* (checked ok 07.11.2017) test "shoot_full" & "shoot_half" commands behave like they should
* (checked ok 07.11.2017) Aperture Override aperture not working ?
* (checked ok 07.11.2017) Remote Function does continuous mode only after second "Remote Shutter" (what is correct behavior on other Cameras?)

* os.remove() does delete files but fail to delete directory (like SX210, G11 and other new cameras too), tested with llibtst.lua
* only Video Quality Override does work, Video Bitrate Override does nothing (affects more DryOS Cameras?)
* sometimes Exception (Vector 0x04) on exiting ALT Mode after script execution
* problems with some scripts (probaly fixed since Stack Size commit)

--- Tested CHDK Functions ------------------------------------------
* CHDK PTP with ptpcam
  * Mode Switch (Playback / Record) does work
  * All functions seems to work
  * (fixed 07.11.2017) live view not supported
* create badpixel for DNG without script does work
* Quality Override "super fine" does work (bigger filesize, less JPG artifacts, correct EXIF)
* "Make card bootable" does work


--- Developer Stuff -------------------------------------------------
look at notes2.txt
********************************

02 - Installation

To install CHDK on your Canon P&S camera,  you need to know the model number and firmware version of your cameras in order to get the right version of CHDK for your camera  Details on how to determine this can be found here :

http://chdk.fandom.com/wiki/Downloads


Once you have the correct CHDK installation file for your camera,  you need to prepare and load your camera's SD card with CHDK.  The best method for doing this depends on how you intend to use your camera and the date your particular carmera was released.  Details can be found here :

http://chdk.fandom.com/wiki/Prepare_your_SD_card

Once you have correctly loaded CHDK,  you can refer to the following section for instructions on how to use CHDK.

****************************************

03 - FAQ

1. What is CHDK?

    CHDK is not just one thing! The term CHDK refers to free software currently available for many (but not all) Canon PowerShot compact digital cameras that you can load onto your camera's memory card to give your camera greatly enhanced capabilities. 

2. Am I likely to be interested in CHDK?

    The enhanced capabilities that CHDK provides are most likely to be of interest to experienced photographers - if you believe that your Canon PowerShot camera already has more features than you will ever need, you probably won't be interested in CHDK. 

3. Is CHDK safe to use?

    Yes CHDK is experimental and has risks, but with tens of thousands of happy users it can generally be considered safe. CHDK doesn't make any actual changes to your camera. If you delete the CHDK software from your memory card, or if you choose not to activate the CHDK software on the card (or remove and replace the batteries), then the camera will behave absolutely normally - nothing has been (or ever is) changed, so the warranty is not affected. 

4. How does CHDK work?

    CHDK makes use of the microprocessor that controls the camera (every digital camera contains a microprocessor) to act as a programmable computer that provides the extra capabilities. 

5. What extra capabilities does CHDK provide?

    The current set of extra capabilities fall into six categories:

        a. Enhanced ways of recording images - you can capture still pictures in RAW format (as well as JPEG), and for video images you can have increased recording time and length (1 hour or 2 GB), and a greatly increased range of compression options. 
        b. Additional data displays on the LCD screen - histogram, battery life indicator, depth of field, and many more. 
        c. Additional photographic settings that are not available on the camera by itself - longer exposure times (up to 65 seconds), faster shutter speeds (1/25,000 sec, and faster in some cases), automatic bracketing of exposure, etc. 
        d. The ability for the camera to run programs ('scripts', written in a micro-version of the BASIC language) stored on the memory card - these programs allow you to set the camera to perform a sequence of operations under the control of the program. For example, a camera can be programmed to take multiple pictures for focus bracketing, or take a picture when it detects that something in the field of view moves or changes brightness. 
        e. The ability to take a picture, or start a program on the memory card, by sending a signal into the USB port - you can use the USB cable to take a picture remotely. 
        f. The ability to do a number of other more useful (and fun) things, such as act as a mini file browser for the memory card, let you play games on the LCD screen, etc. 

6. What else should I know?

    Developers around the world are continuing to add new features to CHDK. Because the idea of using the camera's microprocessor is so flexible, various developers have made different versions of CHDK, and new features continue to be developed - for example, one version of CHDK has features assist in taking stereo photographs, and even allows two cameras to be synchronized to take pictures at the same time (with an accuracy of better than 0.1 milliseconds, providing they are the same camera model). 

The best place to find out more about CHDK is to follow the CHDK wiki  ( http://chdk.fandom.com/wiki/CHDK ) and CHDK user forum ( http://chdk.setepontos.com/ ).




********************************

04 - URLs, Links


For more information visit the following links:

CHDK Forum :                    http://chdk.setepontos.com/index.php

CHDK Wiki:                      http://chdk.fandom.com/wiki/CHDK
CHDK Wiki FAQ:                  http://chdk.fandom.com/wiki/FAQ

CHDK Features :                 http://chdk.fandom.com/wiki/CHDK_User_Manual#Introduction
CHDK in Brief :                 http://chdk.fandom.com/wiki/CHDK_in_Brief
CHDK User Quick Start Guide :   http://chdk.fandom.com/wiki/CHDK_User_Quick_Start_Guide.pdf
CHDK User Manual :              http://chdk.fandom.com/wiki/CHDK_User_Manual
CHDK for Dummies :              http://chdk.fandom.com/wiki/CHDK_for_Dummies
CHDK Installation Guide :       http://chdk.fandom.com/wiki/File:CHDK_Installation_Guide.pdf

One Page Users Guide :          http://chdk.fandom.com/wiki/One_Page_Ultra-Quick_Users_Guide

Prepare Your SD Card :          http://chdk.fandom.com/wiki/Prepare_your_SD_card




*********************************

05 - GPL


/*
 * This file is part of CHDK.
 * Copyright (C) 2008 The CHDK Team
 * CHDK - CHDK Wiki
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA,
 * 02110-1301  USA
 */

*********************************

06 - uBASIC copyright notice

CHDK contains a modified version of Adam Dunkels uBASIC. 

The following notice applies to the original uBASIC code:

Copyright (c) 2006, Adam Dunkels
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
   notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
   notice, this list of conditions and the following disclaimer in the
   documentation and/or other materials provided with the distribution.
3. Neither the name of the author nor the names of its contributors
   may be used to endorse or promote products derived from this software
   without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.

