CHDK Wiki
(français)
Line 76: Line 76:
 
{{Attention|<big>{{tagb|→}}The SX1 CHDK '''DOES NOT''' support the manual loading method through the "firmware update" mechanism !</big>}}
 
{{Attention|<big>{{tagb|→}}The SX1 CHDK '''DOES NOT''' support the manual loading method through the "firmware update" mechanism !</big>}}
 
* With CHDK the camera always starts in playback mode; press (or half press) the {{button|Shutter}} once or just hold {{button|POWER}} for ~2 seconds for record mode
 
* With CHDK the camera always starts in playback mode; press (or half press) the {{button|Shutter}} once or just hold {{button|POWER}} for ~2 seconds for record mode
* As on other newer cameras with 12 bit sensors, the 'Custom curves' feature do not work on the SX1
+
* 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]]
 
* 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
 
* When using MD scripts: mask out the outer area to prevent continuous shooting
 
<!-- must check this * Zebra is not working on this camera -->
 
<!-- must check this * Zebra is not working on this camera -->
 
<!-- must check this * Edge overlay does not work on this camera (also due to the 720 pixel display) -->
 
<!-- must check this * Edge overlay does not work on this camera (also due to the 720 pixel display) -->
  +
   
 
==For developers==
 
==For developers==

Revision as of 06:25, 8 June 2010

Canon Powershot SX1

Notice

CHDK is available for the SX1 with firmware versions 2.00H and 2.01A as BETA version from the Download page
read also SX1 CHDK specialities

Attention

The SX1 CHDK DOES NOT support the manual loading method through the "firmware update" mechanism !

20090217 loRes sx1is 3q

Powershot SX1 Front

20090217 loRes sx1is back

Powershot SX1 Back

Reviews & Specifications

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

Attention

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


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 dump 1.00E by D-an-W: RS download (Forum link: [1]), also @drop1
  • Firmware dump 1.00F by AlexHB is available from the chdkdumps drop (Forum link: [2]), also @drop1
  • Firmware dump 2.00H by fboesch is available from chkdkdumps drop (Forum link: [3]), also @drop1
  • Firmware dump 2.01A by quadraserver: Direct link, also @drop2
Saveas64

Download location for firmware dumps:
P&S firmware dumps mirror

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:

(later two links are correct, but only work after official "login" with SerialNo of an SX1, such as 7010000000)