Canon Powershot SX1[]
CHDK is available for the SX1 with firmware versions 2.00H and 2.01A as BETA version from the Download page |
The SX1 CHDK DOES NOT support the manual loading method through the "firmware update" mechanism ! |
Reviews & Specifications[]
- DPReview - Full Indepth Review
- DPReview Press Release Launch info
- dkamera (german)
- PhotographyBLOG
- Canon specs (german): Canon.de - SX1
- Canon specs (spanish): Canon.es - SX1)
Technical data[]
- Digic IV image processor
- DryOS operating system
- Sensor: 10 million effective pixels, 1/2.3” new Canon CMOS
- Lens: 28-560mm, 20x optical zoom, F2.8 - F5.7, IS (shift type)
- LCD: 2.8 inch TFT, 230,000 pixels, vari-angle, electronic viewfinder
- Movie clips: 1920 x 1080p (HD) @30fps, stereo sound
- HDMI output
- Approx. 4.0 fps continuous shooting
- Power: 4x AA batteries, optional power supply CA-PS700
- Dimensions: 127,5 x 88,3 x 87,7 mm; Weight: 585g (without batteries)
- RAW support with firmware 2.0.0.0 released 18/3-09. Canon Firmwares
- Released with the firmware 2.0.1.0 in Europe (As of 2009/12) dpreview.com
Firmware info[]
As in other Canon PS case, the ver.req file works as well in this model.
Press FUNCSET and DISP simultaneously: It shows the following:
Canon PowerShot SX1 IS P-ID:3195 PAL D Firmware Ver GM2.00H NoError Feb 4 2009 10:41:18
Subsequent press of DISP (while still holding FUNCSET) reveals:
Adj Ver.021.000
Subsequent press of DISP (while still holding FUNCSET) reveals:
SubCPU Ver. 1.01 IS Firm Ver. 3.03 IS Param Ver. 3.00 VcmCPU Ver 0.42
If you use vers.req instead of ver.req at the last screen you can see more info:
SubCPU Ver. 1.01 Total Shoot: 1020 <=- variating Zoom Retry Count: 0 Mecha Condition: 0x00000000
If you power on in PLAY mode without ver.req on the SD card and press the FUNCSET and DISP buttons simultaneously, the screen shows:
Firmware Ver. 2.0.0.0 [ OK ]
CHDK specialities[]
→The SX1 CHDK DOES NOT support the manual loading method through the "firmware update" mechanism ! |
- With CHDK the camera always starts in playback mode; press (or half press) the Shutter once or just hold POWER for ~2 seconds for record mode
- As on other newer cameras with 12 bit sensors, the 'Custom curves' feature does not work on the SX1
- Due to the special display width (the standard grids are just made for a 320 pixel display), this camera needs modified Grids
- When using MD scripts: mask out the outer area to prevent continuous shooting
DNG4PS-2 Settings[]
(by philmoz, [1])
- Run DNG4PS-2, click in the settings button, go to the camera options tab
- Select the G7 profile and click the copy button
- Change the settings as:
Camera Name = Canon PowerShot SX1 IS Short Name = PowerShot SX1 IS Sensor Size = 4152 x 2772 Jpeg size = 3648 x 2736 Active zone x1,y1 = 200, 16 Active zone x2,y2 = 4152, 2772 Black-white levels = 127, 4095 Mosaic type = Red,Green,Green,Blue Bits per unit = 12 Color Matrix #1 Illuminant = Daylight Matrix = 827547.000000 -290458.000000 -126086.000000 -12829.000000 530507.000000 50537.000000 5181.000000 48183.000000 245014.000000 Multiplicator = 1.0 1.0 1.0 Color Matrix #2 - leave blank
- Click Ok, and you should be able to browse to the directory with the raw and jpeg files and run the convert
- If have both the raw and jpeg together you will get additional EXIF data copied to the DNG file from the JPEG.
For developers[]
General info[]
- Parts of the SX1 code are similar to the SX10, so the SX10 (and partly S5 base) should be the base for a port.
- Loading dump in IDA:
ROM start: 0xFF810000 ROM Size: 0x003FFFFF Loading adress: 0xFF810000 Loading size: 0x003FFFFF
- GrAnd's DryOS signatures ('CanonFW_DryOS_A-Series, "DryOS Canon Firmware; A720-based") also works on the SX10
- The IDC files are also working
- Since the original CHDK.idc script does not run all sub scripts correctly, i use modified versions of the IDC scripts: ida-chdk-idc-dryos-singlerun.7z. The main script CHDK.idc runs all other scripts automatically, manual definition of the ROM_START address is not required anymore (MinEA() used instead).
loader\sx1\sub\200h[]
entry.S[]
(according to ROM:FF85EC9C same as SX10 )
...
// Turn OFF SD Card power
// to support autostart
LDR R3, =0xC0220018
MOV R2, #0x44
STR R2, [R3]
...
- The resetcode for SX1 is here:
ROM:FF8298F0 sub_FF8298F0
platform\sx1\sub\200h[]
stubs_entry_2.c[]
#include "stubs_asm.h" NHSTUB(AllocateUncacheableMemory, 0xFF82806C) NHSTUB(GetDrive_ClusterSize, 0xFF85E284) NHSTUB(GetDrive_TotalClusters, 0xFF85E2B8) NHSTUB(GetDrive_FreeClusters, 0xFF85E2EC) NHSTUB(SetPropertyCase, 0xFF87DAC4) NHSTUB(kbd_read_keys, 0xFF821AF4) NHSTUB(platformsub_kbd_fetch_data, 0xFF84D880) NHSTUB(kbd_read_keys_r2, 0xFF84D130) NHSTUB(qsort, 0xFFAE3D50) NHSTUB(strchr, 0xFF8A0820) NHSTUB(strrchr, 0xFF9FCED8) NHSTUB(TurnOffBackLight, 0xFF893FC8) NHSTUB(vsprintf, 0xFF81CAE8) NHSTUB(VbattGet, 0xFF82046C) NHSTUB(GetZoomLensCurrentPoint, 0xFF9548A8) NHSTUB(GetZoomLensCurrentPosition, 0xFFA820F8) NHSTUB(RefreshPhysicalScreen, 0xFF9FA6FC) NHSTUB(EnterToCompensationEVF, 0xFF825B44) NHSTUB(ExitFromCompensationEVF, 0xFF825BAC) NHSTUB(PT_PlaySound, 0xFF869110) NHSTUB(DoAFLock, 0xFF825898) NHSTUB(UnlockAF, 0xFF8258D0) NHSTUB(LEDDrive, 0xFF84CC34) NHSTUB(WriteSDCard, 0xFF93DD0C) NHSTUB(PostLogicalEventForNotPowerType, 0xFF88328C) // null sub NHSTUB(kbd_pwr_off, 0xFFC00958) NHSTUB(kbd_pwr_on, 0xFFC00958) NHSTUB(Mount_FileSystem, 0xFFC00958) NHSTUB(Unmount_FileSystem, 0xFFC00958) NHSTUB(SetZoomActuatorSpeedPercent, 0xFFC00958) NHSTUB(rewinddir, 0xFFC00958)
stubs_min.c[]
#include "stubs_asm.h" // Found in sub_FF821764 DEF(physw_run, 0x1C24 + 0x0C) // Found @ ROM:FF821824 DEF(physw_status, 0x12DA4) // Found in sub_FFA3014 DEF(FlashParamsTable,0xFFBBB2A4) // Found in sub_FF84C9D0 DEF(led_table, 0x2644 + 0x04) // Found in sub_FF954098 DEF(zoom_busy, 0x9ACC + 0x1C) // Found in sub_FF94CD34 DEF(focus_busy, 0x996C + 0x08) // Found in sub_FF98FEE4 DEF(recreview_hold, 0xB31C + 0xE4) // Found in sub_FF9A661C DEF(canon_shoot_menu_active, 0xB818 + 1) // Found in sub_FF87E5E0 DEF(canon_menu_active, 0x5A58 + 4) // Found in sub_FF866ECC DEF(movie_status, 0x5570 + 0x38) // Found in sub_FF8716D4 DEF(playrec_mode, 0x57C0+0x4) // Found in sub_FF9FA6A8 DEF(enabled_refresh_physical_screen, 0xCABC+0x34) // Found @ several entries in "Zoom/Lens Section" ROM:FFAA4CEC DEF(zoom_status, 0xF2A0)
platform/sub[]
makefile.inc[]
#PLATFORMID=0x3195 PLATFORMID=12693 PLATFORMOS=dryos MEMBASEADDR=0x1900 RESTARTSTART=0x50000 MEMISOSTART=0xC2D08 ROMBASEADDR=0xFF810000 PLFLAGS=-DMEMBASEADDR=$(MEMBASEADDR) -DMEMISOSTART=$(MEMISOSTART) -DMEMISOSIZE=$(MEMISOSIZE) PLFLAGS+=-DRESTARTSTART=$(RESTARTSTART) NEED_ENCODED_DISKBOOT=very_yes KEYSYS=d4 ifdef OPT_FI2 include $(topdir)platform/fi2.inc endif
LED addresses[]
0xC0220060 Shortcut/Print button (blue) (?? --> not yet found in fw, assumably same as SX10) 0xC02200B4 AF lamp (green) --> entry found 0xC02200B8 Power lamp/button (orange) (?? --> not yet found in fw, assumably same as SX10)
AF lamp adress found on @sub_FF905E5C (FW 2.00h)...assumably same values for the Shortcut/Pwr lamp
Firmware dumps[]
- Firmware 1.00E by D-an-W
- Firmware 1.00F by AlexHB
- Firmware 2.00H by fboesch
- Firmware 2.01A by quadraserver, Direct link
Download location for firmware dumps: |
Porting[]
Porting Thread (for developers!) of SX1 IS with FW 2.00h is here: http://chdk.setepontos.com/index.php/topic,3410.0.html (Initial thread and for further development of Beta-Code)
To try/use the current Beta, please use the latest Build from the "Downloads" section.
Official Canon Firmware Update[]
Canon has released an official firmware update on March 18, 2009 for the SX1 camera (Canon Version 2.0.0.0) which adds RAW capture support.
The firmware update and support information can be found in the links below:
- http://web.canon.jp/imaging/dcp/firm-e/pssx1is/index.html
- http://aux1.jp.canon.com/dc/download/firmware/pssx1is/pssx1is2000-e.exe (Windows)
- http://aux1.jp.canon.com/dc/download/firmware/pssx1is/pssx1is2000-e.dmg (Mac)
(later two links are correct, but only work after official "login" with SerialNo of an SX1, such as 7010000000)