This page lists technical documentation relevant to CHDK 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.
- ARM® Developer Suite Assembler Guide General ARM assembler information. Includes syntax, register names etc. Written for arms own SDK, so not all of it is applicable to GNU tools.
- GNUARM.org home
- GNU arm toolchain, also a lot of useful general docs in the resources section.
Based on strings in the ROM, and reading the system control processor registers most CHDK supported cameras appear to be based on this core. See this thread Getting CPU configuration from CP15 for more information.
- ARM946E-S (Rev1)System-on-Chip DSP enhanced processor Product Overview Revision: r1p1
- ARM946E-S™ Technical Reference Manual
- ARM9E-S Core™ Technical Reference Manual Revision: r2p1
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:http://www.cipa.jp/english/hyoujunka/ 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)
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
- CPIA Homepage: http://www.cipa.jp/english/index.html
- CPIA Standards & Guidelines: http://www.cipa.jp/english/hyoujunka/kikaku.html
Adobe Digital Negative (DNG)
An open, camera neutral RAW format.
- Adobe DNG homepage
- DNG SDK Download - includes DNG specification and dng_validate tool
- DNG specification