SX1
Talk2this wiki
Canon Powershot SX1
Edit
|
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 ! |
|

Added by LukeS
Added by LukeS Reviews & Specifications
Edit
- 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
Edit
- 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
Edit
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
Edit
|
→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
Edit
(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
Edit
General info
Edit
- 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
Edit
entry.S
Edit
(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
Edit
stubs_entry_2.c
Edit
#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
Edit
#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
Edit
makefile.inc
Edit
#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
Edit
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
Edit
- 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
Edit
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
Edit
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)
