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)[]