Canon's firmware update files for the Powershot series cameras are encoded by the manufacturer, the camera rejects unencoded files or files with a wrong encoding. To start the CHDK binary with Canon's firmware update mechanism, the file must be encoded with the correct keys. The automated build process of the Autobuild Server knows the required settings and keys and delivers correct encoded CHDK binaries (ps.fi2 files).

  • To create your own CHDK ps.fi2 files (e.g. with the CHDK-Shell), the OPT_FI2 option in / must be turned on and the file /platform/ must hold the keys.

About the keys[]

The keys can be extracted from a full firmware dump file when the starting offset is known.

To get the keys for a camera, the following things are needed:

  1. the fi2 encoding key set (d3, d3enc, d4, d4a, d4b)
  2. a full, clean reference firmware dump file
  3. the offset where the key starts in the reference firmware dump
  • The keys are always 16 bytes long, starting from the offset listed below, written without any delimiter like this sample section:
ifeq ($(KEYSYS), d3)
FI2IV =112233445566778899AABBCCDDEEFFGG

Offset table[]

Developers - pls. fill in the information here...

Camera Encoding Reference FW Dump Offset FI2KEY Offset FI2IV
g12 d4b G12-100G 0x7E36AC 0x495FE8
G9 d3 G9-100F 0x7E31F0 0x3154D0
S100 d4c S100-101A 0xFF3B28 0x63AF20
S110 d4c S110-101B 0xFF3CD0 0x934D88
S110 d4c S110-102B 0xFF3CD0 0x934610
S110 d4c S110-103A 0xFF3CD0 0x9345F8
SD4000 d4a SD4000-100D 0x7E366C 0x405130
SX210 d4a SX210-100C 0x7E3570 0x41522C
SX30 d4b SX30-100H 0x7E3680


SX40 d4c SX40-100F 0xFF3B48 0x61A4FC
SX50 d4c SX50-100C 0xFF3C7C 0x71CA90
SX220 d4c SX220-100A 0xFF3610


SX230 d4c SX230-100C 0xFF3610


SX510HS d4e SX510HS-101A 0xFF39BC


IXUS500 / ELPH520 d4c ELPH520-101a 0xFF3CE0


ELPH140 d4f IXUS150_ELPH140-100c 0x2744 0x492B74
IXUS160 d4g IXUS160_ELPH160-100a 0x296C


SX530HS d4h SX530-100c 0x44A4


G5 X d5 G5X-101d 0x4010 0xc8fdcd
m100 d4k m100-100a 0x19ec0
m5, m6 d7 m6-100f 0x19900
G7X II d4i G7X2-101a 0x18b20 0xe74828
M6 II, G5x II FIR v4 fir4
G7X III FIR v5 fir5