Developer Technical Documents

This page lists technical documentation relevant to CHDK development.

ARM Development

General ARM documentation

Covers register usage, addressing modes, detailed description of each instruction, including encoding.
Covers procedure call standards, mixing ARM/Thumb, mixing C/ASM, exceptions, and some useful stuff about ROM. Written for users of the arm SDK, but still relevant.
GNU arm toolchain, also a lot of useful general docs in the resources section.

ARM946ES documentation

Digic 5 and below an ARM946E-S processor. See this thread Getting CPU configuration from CP15 for more information.

Cortex R4 documentation

Digic 6 uses a Cortex-R4 processor. See

Design rule for Camera File system (DCF)

This standard specifies the layout of the DCIM directory.

note: This is version 1.0, which is outdated. The latest version is available for purchase from JETA.

It is technical identical with CIPA DC-009 Design rule for Camera File system. The current Versions are co-writen bei JETA and CIPA and can be found with "site: pdf dc009"

Picture Transfer Protocol (PTP)

This is the protocol used for camera USB transfer.

Canon PowerShot Series Transfer Protocol Description (first updated in 2000, last updated 2005)

USB Protocol


Most non-DryOS cameras appear to use some variant of VxWorks 5.x

Includes VxWorks 5 developer documentation and API reference.
Mostly fluff, requires login for technical documentation.

Canon Digital Camera Software Developers Kit

Current Canon SDK Versions as of July 8, 2008 (requires proper access).

  • PS-ReC SDK 1.1.0e / CD-SDK 7.3 for PowerShot digital cameras
  • EDSDK 2.4/RC-SDK 8.4 for EOS digital cameras
  • EDSDK - support remote control, raw image conversion and downloading from select EOS Digital SLRs with DIGIC III or DIGIC II processors, starting with the EOS-1D Mark II and continuing through to the EOS Rebel XSi and XS.
  • RC-SDK - supports remote control, raw image conversion and downloading from most EOS Digital SLRs introduced before the EOS 30D.
  • PS-ReC SDK - supports remote control including video out with the PowerShot G10, G9, G7, S5 IS, S3 IS, S80, SX110 IS, SX100 IS, A640 and A620 models exclusively.
  • CD-SDK - supports downloading with all USB PowerShots released before 6/30/2005. Remote control and video out are supported with some of these models.
  • RD-SDK - supports raw image conversion with select USB PowerShots.

Note: The obtaining the canon SDK may require you to agree to an NDA which would limit your ability to contribute to CHDK.

CIPA Specs, Whitepapers & Guidelines

CIPA - Camera & Imaging Products Association

Adobe Digital Negative (DNG)

An open, camera neutral RAW format.

Exchangeable Image File Format (EXIF)

Community content is available under CC-BY-SA unless otherwise noted.