
6 CHAPTER 2 Cameras and Operating Systems
The first build of the CHDK enabled the camera (an A610) to deliver
RAW 10-bit sensor data in combination with JPEG images, allowing true
RAW processing for a consumer camera. Apart from the RAW format, this
first version supported live histograms, scripting, and three- exposure
bracketing. Scripting was made possible through the inclusion of the
uBasic interpreter, created earlier by Swedish programmer Adam Dunkel.
The program proved so useful that versions for other cameras soon
followed. This was first done for cameras with the VxWorks operating sys-
tem; cameras with the DryOS operating system should follow later. For
each camera (in fact, for each firmware version), it is necessary to read out
the firmware from the camera and analyze it in order to link the additional
functions to the original firmware (section A.4).
In 2007, another programmer, GrAnd, joined the CHDK community and
added numerous features such as the on-screen display ( OSD) of focal dis-
tance, zoom step and factor, hyperfocal distance, DOF calculator, shadow
and highlight clipping warnings, battery meter, and much more. An article
in DP Review about the new features brought public attention to the CHDK.
More developers joined the CHDK community. This initially resulted in
different branches of the CHDK, each with its own set of special functions.
Particularly notable are MX3’s build with motion detection, Fingalo’s build
with much-improved uBasic scripting functionality and USB support, and
Juciphox’s build with support for Lua scripting. Today, the official CHDK—
the MoreBest build—integrates many of these additional functions.
2.3.2 How it works
Canon cameras perform several steps when switched on:
f
First, the camera’s firmware checks the memory card. If the card is
write-protected, and if it contains a file named DISKBOOT.BIN in its root
directory, then this file is loaded and executed. This allows almost any
program in the camera to be infiltrated.
f
If such a file is not found, the normal start-up process continues. This
includes the launch of four different native tasks that run in parallel and
manage the different units of the camera:
g
The Logging task takes care of the camera’s display unit. It is re-
sponsible for presenting information to the user.
g
The Keyboard task monitors the camera’s buttons for key presses.
g
The Image-capturing task is responsible for exposure and focus
control and for reading the data from the sensor.
g
The File-system task is responsible for writing images to the mem-
ory card and managing the card’s file system.
Comentarios a estos manuales