You are previewing The Canon Camera Hackers Manual.
O'Reilly logo
The Canon Camera Hackers Manual

Book Description

The book addresses "geeky" owners of Canon consumer cameras who would like to explore the possibilities of their cameras, and eventually tweak them to do things way beyond their original specifications, such as

  • RAW file (or DNG) support in addition to the camera's JPEG output

  • Manual control for aperture, shutter speed, and ISO

  • Expand shutter speeds way beyond the specification limits

  • Enable bracketing

The hacks are based on the Canon Hack Development Kit (CHDK), a free software maintained by a group of enthusiasts. Many scripts are already published on the web. The book teaches how to use existing scripts and how to write new ones.

Canon cameras, especially their consumer lines of PowerShot/IXUS cameras, allow the user to temporarily upload so called add-ons into the camera through the memory card. The next time the camara is switched on, the add-on is active, when the camera is switched off, the camera returns to its original state, so there is no risk of loosing the manufacturers warranty.

Table of Contents

  1. The Canon Camera Hackers Manual: Teach Your Camera New Tricks
    1. 1. Introduction
      1. How this book is organized
      2. Acknowledgments
    2. 2. Cameras and Operating Systems
      1. Camera hardware
      2. Processors and operating systems
      3. The CHDK: What it is and how it works
        1. History
        2. How it works
        3. What the CHDK can do for you
          1. RAW images
          2. Scripting and motion detection
          3. More control
          4. Better information
          5. Remote control
          6. Utilities and games
    3. 3. Installing the CHDK
      1. Requirements
      2. Does a CHDK exist for my camera?
      3. Downloading the CHDK
      4. Manual installation
      5. The warranty question
    4. 4. Teach Your Camera New Tricks
      1. Using menus
      2. Customizing the user interface
        1. OSD Codepage
        2. Fonts
        3. Colors
        4. Organizing the screen
        5. User menus
        6. Grids
        7. Miscellaneous Values
        8. Customizing the DOF calculator
        9. Other user interface options
      3. Exposure
        1. Overrides
        2. Custom Auto ISO
        3. Histogram
        4. Zebra
        5. High-speed photography
        6. Night photography
        7. Flash
        8. Using curves
      4. Focus
      5. Shooting RAW
        1. Basics
        2. DNG
        3. Other RAW parameters
          1. Prefixes and Suffixes
        4. Processing RAW images
        5. In-camera RAW processing
        6. More RAW processing
      6. Bracketing
        1. General bracketing notes
        2. HDR and tone mapping
        3. Focus stacking
      7. Edge overlay
      8. More video options
      9. Remote control
        1. CHDK remote control functions
        2. Building a simple remote control
        3. SDM functions
        4. Extra hardware
        5. Tethered shooting?
      10. Utilities
        1. File browser
        2. Text file reader
        3. Getting information about the camera
      11. Novelty
        1. Games
        2. Flashlight
      12. The CHDK configuration file
    5. 5. Scripting
      1. Launching and configuring scripts
      2. uBasic
      3. uBasic primer
        1. Variables
        2. Assignments
        3. Output
        4. Conditional clauses
        5. Case structures
        6. Loops
        7. Labels and GOTOs
        8. Subroutines
        9. Comments
        10. Script structure
      4. Lua primer
        1. Variables
        2. Strings
        3. Tables
        4. Assignments
        5. Output
        6. Blocks
        7. Conditional clauses
        8. Loops
        9. Functions
        10. Error handling
        11. Comments
        12. Script structure
        13. Standard Libraries
          1. Lua core functions
          2. IO functions
          3. Operating system functions
          4. String manipulation functions
          5. Table manipulation functions
          6. Mathematical functions
      5. CHDK commands
        1. Button-related commands:
        2. Exposure-related commands
          1. Exposure time (Tv)
          2. Aperture (Av)
          3. Sensor speed (Sv)
          4. Light values (Bv, Ev)
        3. Focus-related commands
        4. Zoom-related commands
        5. Flash-related commands
        6. Image-related commands
        7. Time-related commands
        8. Display-related commands
        9. Image management commands
        10. Camera state
        11. Low-level commands (Lua only)
        12. The library capmode.lua (Lua only)
      6. Property Cases
      7. Example scripts
        1. Time machines
          1. Accurate time lapse
          2. Time-lapse movies
          3. Renaming files
          4. Scheduled operation
        2. Bracketing
        3. Motion detection
          1. Basics
          2. The script
          3. Lightning
          4. Fast movements
          5. Small objects
          6. Macro
          7. Hat
          8. Benchmark
        4. Exposure control
        5. Remote control
        6. Configuration switching
      8. Script development
    6. 6. Advanced Techniques
      1. Panoramas
      2. HDR Panoramas
        1. Example project
      3. HDR videos
    7. 7. The Stereo Data Maker (SDM)
      1. Installing the SDM
      2. Restrictions
      3. Additional functions
      4. Operation
      5. Remote control
      6. Communications
        1. USB upload
        2. Serial communications
      7. Stereo photography
        1. Stereo photography with a single camera
        2. Producing and viewing composite stereo images
        3. Stereo focus stacking
        4. Synchronized cameras
          1. Triggering
          2. Calibration
          3. Mounting
          4. Registering
        5. Synchronized flash
      8. Digiscoping
      9. Scripting
        1. Button-related commands
        2. Exposure-related commands
        3. Focus-related commands
        4. Zoom-related commands
        5. Bracketing-related commands
        6. Time-related commands
        7. Data transmission-related commands
        8. LED and sound-related commands
        9. Camera state-related commands
    8. 8. Kites, Balloons, and Multikopters
      1. Kite Aerial Photography
      2. Balloon-based photography
      3. Motorized flying platforms
      4. Other unattended operations
    9. 9. A Look across the Fence
      1. Canon EOS CHDK
      2. Canon 5D as a professional movie camera
      3. Pentax hacks
    10. Appendix
      1. Using cards with more than 4 GB capacity
      2. Troubleshooting
      3. Web links
      4. Contributing to the CHDK
      5. Bibliography
        1. Bibliography
    11. Index
    12. About the Author