The table below is color coded to show the status of development work on porting CHDK to different cameras. If there is some work being done to port to a particular camera, there should also be a link to a camera-specific development page.
The page also has links to articles which could be useful if you want to participate in the development process.
Cameras overview
- Legend
-
- Black - neither original firmware nor firmware dump is available
- Red - Camera has responded to something on the card, but a firmware dump has not succeeded, current udumper code does not work on these cameras.
- Blue - either original firmware or firmware dump is available; porting is needed
- Magenta - A developer has started the porting process for this camera AND an alpha or early beta build with a limited feature set is available for testing
- Green - A port has been completed on one or more firmware versions for this camera, the sources are in the trunk and the binaries are available from the Autobuild server.
Note: the porting process entails:
- get the camera to somehow respond to something on the card. (cameras in Red)
- using the process that got you step 1, and some electronics, read out a copy of the existing firmware (e.g., dump the firmware). (cameras in Blue)
- analyze the firmware, find out where key routines are.
- modify the source code to add the locations of these key routines
- compile the software and CHDK runs on the camera in some limited state (cameras in Magenta)
- After all minor bugs are fixed the build can be added to the trunk (cameras in Green)
Common articles
- Modifying the Source Code
- Basic information about project structure.
- Documentation of the Sourcecode
- Yes, some documentation is also required.
- Bug tracking and feature requests with Mantis New !
- How to use Mantis to report bugs/issues found in CHDK, request features, submit contributions.
- Compiling the CHDK under GNU/Linux
- Compiling the CHDK under Mac OS X
- Compiling the CHDK under Windows
- How to tune build environment and compile CHDK.
- Signature finder
- Finding signatures automatically with the "Signature finder" (finsig/gensig) tool
- Porting the CHDK
- Various methods of getting of firmware dump.
- CHDK Coding Guidelines New !
- Cautions and best practices for CHDK code.
- Optimizing ARM sourcecode
- How to make your CHDK code run more efficiently.
- Camera RAM memory usage
- How to optimize RAM usage, also some statistics...
- Loading dump to IDA
- Using IDA for a dump analysis.
- IDA Visual Analysis
- Visual graph analysis tools.
- Adding support of a new camera
- The instruction for adapt sources to a new camera.
- Adding support of a new firmware version
- The instruction for adapt sources from an existing port to a new camera firmware version.
- DryOS Porting
- Information about the new OS.
- GPL Tools
- Documentation for using GNU/GPL tools for binary blobs analysis
- Adding Firmware Features
- A guide for finding and adding stuff from the firmware to CHDK and uBASIC.
- Developer Technical Documents
- Useful external documents relating to processor, OS and relevant standards.
Some technical info
- List of PropertyCases
- List with description of special registers which indicate and control DIGIC processor.
- List of Params
- List with description of special registers which indicate and control DIGIC processor.
- Camera IDs
- List of camera product IDs