CHDK Wiki
(Added porting details (mainly todos))
 
(34 intermediate revisions by 7 users not shown)
Line 1: Line 1:
 
<big>The Canon Digital '''IXUS 870 IS''' is known as '''PowerShot SD880''' in America and as '''IXY DIGITAL 920 IS''' in Japan.</big>
 
<big>The Canon Digital '''IXUS 870 IS''' is known as '''PowerShot SD880''' in America and as '''IXY DIGITAL 920 IS''' in Japan.</big>
   
  +
{{Notice|'''CHDK for IXUS 870 IS firmwares 100e, 101a and 101b is available for [http://chdk.wikia.com/wiki/Downloads download].'''}}
{{Attention|'''The IXUS870 / Powershot SD880 is NOT ported yet, there is NO CHDK available'''}}
 
 
{| align="right" style="border-collapse:collapse; font-size: x-small;"
 
{| align="right" style="border-collapse:collapse; font-size: x-small;"
 
| __TOC__
 
| __TOC__
Line 13: Line 13:
 
==Technical data==
 
==Technical data==
 
*'''DryOS''' operating system
 
*'''DryOS''' operating system
*'''Digic IV''' image processor.<small>
+
*'''Digic IV''' image processor
* 10.0 effective Megapixel CCD
+
* <small>10.0 effective Megapixel sensor, 1/2.3 inch CCD type </small>
* 4X optical zoom lens, equivalent to 28-112 mm, F2.8-5.8
+
* <small>4X optical zoom lens, equivalent to 28-112 mm, F2.8-5.8 </small>
* Optical image stabilization
+
* <small>Optical image stabilization, lens shift type </small>
* 3-inch LCD display, 230,000 pixels, no optical viewfinder
+
* <small>3-inch LCD display, 230,000 pixels, no optical viewfinder </small>
  +
* <small>Video: 640x480@30fps / 320x240@30fps / 160x120@15fps </small>
* NB-5L lithium-ion battery, 310 shots per charge (CIPA standard)</small>
 
  +
* <small>Video Format: MOV (H.264 + Linear PCM) </small>
 
* <small>NB-5L lithium-ion battery, 310 shots per charge (CIPA standard) </small>
  +
* <small>Dimensions: 94 x 57 x 24 mm, Weight: 155g without batteries </small>
   
 
== Firmware info ==
 
== Firmware info ==
  +
As in other Canon PS case, the '''[http://chdk.wikia.com/wiki/Ver.req#Q._How_can_I_get_the_original_firmware_version_number_of_my_camera.3F ver.req]''' file works as well in this model. Press {{button|FUNCSET}} and {{button|DISP}} simultaneously:
+
The information below by putting a '''[http://chdk.wikia.com/wiki/Ver.req#Q._How_can_I_get_the_original_firmware_version_number_of_my_camera.3F ver.req]''' file in the root of your SD card. Press {{button|FUNCSET}} and {{button|DISP}} simultaneously to display the information. Repeated presses of {{button|DISP}} give additional information.
It shows the following:
 
  +
  +
The number after "CV:" is the (Canon) version the firmware itself reports when doing the above without ver.req (or when doing a firmware update).
  +
  +
===Version 1.02b===
  +
  +
Canon PowerShot SD880 IS
 
P-ID: 3196 NT D
  +
 
Firmware Ver GM1.02B
 
NoError
  +
Jan 9 2009 14:55:54
  +
  +
Adj Ver.008.002
  +
  +
IS Firm Ver. 2.09
  +
IS Param Ver. 2.07
  +
  +
===Version 1.01a (CV: 1.0.1.0) ===
   
 
Canon DIGITAL IXUS 870 IS
 
Canon DIGITAL IXUS 870 IS
 
P-ID:3196 PAL D
 
P-ID:3196 PAL D
  +
 
Firmware Ver GM1.01A
 
Firmware Ver GM1.01A
 
NoError
 
NoError
 
Oct 15 2008 18:36:07
 
Oct 15 2008 18:36:07
   
subsequent press of {{button|DISP}} (while still holding {{button|FUNCSET}}) reveals:
 
 
Adj. Ver.008.001
 
Adj. Ver.008.001
   
 
and another press of {{button|DISP}} (while still holding {{button|FUNCSET}}) brings up this:
 
 
Adj. Ver.008.001
 
Adj. Ver.008.001
 
IS Firm Ver. 2.09
 
IS Firm Ver. 2.09
 
IS Param Ver. 2.07
 
IS Param Ver. 2.07
   
=== Older Version information===
+
===Version 1.00e===
<pre>
 
Canon DIGITAL IXUS 870 IS
 
P-ID:3196 PAL D
 
   
 
Canon DIGITAL IXUS 870 IS
Firmware Ver GM1.00E
 
  +
P-ID:3196 PAL D
NoError
 
  +
Aug 22 2008 10:57:30</pre>
 
  +
Firmware Ver GM1.00E
  +
NoError
 
Aug 22 2008 10:57:30
  +
  +
  +
==Known Issues==
  +
  +
The latest version (revision 829) of this port has the following known issues. Note that some items may indicate that a problem is solved; this means that the fix will likely be in the next version.
  +
  +
* Colours in DNG files are slightly off. (See comment in [http://chdk.setepontos.com/index.php/topic,3309.msg32886.html#msg32886 this post].)
  +
  +
Issues that seem to be general CHDK issues (i.e. not specific to this port):
  +
  +
* Shortly pressing the ON/OFF button to turn on camera gives review/playback mode (which is not the case without CHDK loaded). Pressing the button a second or two avoids this.
  +
* Optical+digital zoom in video mode: when going from digital to optical zoom while zooming out you have to release the zoom lever in order to be able to zoom out optically.
   
 
==For developers==
 
==For developers==
Line 53: Line 84:
 
Porting thread: http://chdk.setepontos.com/index.php/topic,3309.0.html
 
Porting thread: http://chdk.setepontos.com/index.php/topic,3309.0.html
   
The port for the IXUS870IS is based on the one for [[SX10]] (1.01a).
+
The port for the IXUS 870 IS is based on the one for [[SX10]] (1.01a).
  +
  +
Offset of firmware dump is 0xFF810000. The "DryOS singlerun" scripts for IDA can be used but they leave a few function tables untouched and related strings are often not recognised correctly. This is correctable by selecting the relevant lines, right-clicking and selecting "Analyze selected area".
   
 
Below are some lists of what still needs to be done.
 
Below are some lists of what still needs to be done.
Line 59: Line 92:
 
Important:
 
Important:
   
* core/kbd.c:
 
** Check that used nTxtbl is right
 
 
* include/camera.h:
 
* include/camera.h:
 
** Check all defines that have a XXX behind them
 
** Check all defines that have a XXX behind them
* platform/ixus870_sd880/lib.c
 
** Check ubasic_set_led
 
** Check JogDial_CW and JogDial_CCW
 
* platform/ixus870_sd880/main.c
 
** Check modemap
 
** Check mode_set
 
** Check fl_tbl
 
** Check CF_EFL
 
** Check zoom_points
 
** Find correct values for get_vbatt_min and get_vbatt_max
 
* platform/ixus870_sd880/shooting.c
 
** Check PARAM_FILE_COUNTER
 
** Check PARAM_EXPOSURE_COUNTER
 
** Check aperture_sizes_table
 
** Check shutter_speeds_tables
 
** Check iso_table
 
** Check circle_of_confusion
 
* platform/ixus870_sd880/wrappers.c
 
** Check to see if we have a better solution for lens_get_focus_pos_from_lense
 
* platform/ixus870_sd880/sub/1.01a/lib.c
 
** Check values used in:
 
*** vid_get_bitmap_screen_width
 
*** vid_get_bitmap_screen_height
 
*** vid_get_viewport_height
 
*** vid_get_bitmap_buffer_width
 
*** vid_get_bitmap_buffer_height
 
** Check to see if we have a better implementation for vid_get_viewport_width than the generic one
 
* platform/ixus870_sd880/sub/1.01a/movie_rec.c
 
** Check change_video_tables
 
** Check set_quality
 
* platform/ixus870_sd880/sub/1.01a/stubs_min.S
 
** Check recreview_hold
 
* platform/ixus870_sd880/sub/1.01a/stubs_entry_2.S
 
** Check that entries with null sub behind them really should be this way and whether actual address is good for null subs
 
** Check GetZoomLensCurrentPoint
 
** Check MoveLensWithPoint
 
** Check kbd_pwd_off
 
   
   
Line 108: Line 102:
 
* platform/ixus870_sd880/kbd.c
 
* platform/ixus870_sd880/kbd.c
 
** Check that DELAY_TIMEOUT is ok
 
** Check that DELAY_TIMEOUT is ok
 
* platform/ixus870_sd880/main.c
 
** Find correct values for get_vbatt_min and get_vbatt_max (observed so far: min 3205, max 4065)
 
* platform/ixus870_sd880/shooting.c
 
** Check shutter_speeds_tables
 
** Check circle_of_confusion
 
* platform/ixus870_sd880/sub/1.01a/movie_rec.c
  +
** Check implementation; ours is based on SX10 (and IXUS980), but IXUS860 has different implementation
  +
***The Ixus 870 comes with the new MOV (H.264 + Linear PCM) video format as the SX10/Ixus980, the older Ixus 860 has the "old" AVI MJPEG format with WAVE monaural innstead. <small><sub>''[[User:Fe50|Fe50]] 19:30, 24 April 2009 (UTC)''</sub></small>
 
* platform/ixus870_sd880/sub/1.01a/stubs_min.S
 
** Check recreview_hold
 
* Check all entries in stubs_entry.S that are not preceded by "Best match". They should be ok, but you never know.
 
* Check all entries in stubs_entry.S that are not preceded by "Best match". They should be ok, but you never know.
 
   
 
===Special addresses===
 
===Special addresses===
Line 121: Line 124:
 
N.B.: Turning both LED_IO_G and LED_IO_R on gives orange.
 
N.B.: Turning both LED_IO_G and LED_IO_R on gives orange.
   
 
===Firmware Dumps===
   
  +
*Firmware 1.02B: [http://chdk.setepontos.com/index.php/topic,288.msg32723.html#msg32723 Forum], [http://eyesee.no/download/canon-powershot-sd880is-firmware-dump-1.02B.rar direct DL link]
===Firmware Dump===
 
   
 
*Firmware 1.01A: [http://chdk.setepontos.com/index.php/topic,288.msg25946.html#msg25946 Forum], [http://www.zshare.net/download/5266486943f57f47/ direct DL link]
 
*Firmware 1.01A: [http://chdk.setepontos.com/index.php/topic,288.msg25946.html#msg25946 Forum], [http://www.zshare.net/download/5266486943f57f47/ direct DL link]
   
*Firmware 1.00E: [http://chdk.setepontos.com/index.php/topic,288.msg21897.html#msg21897 Forum], [http://www.thickey.com/chdk/canon-ixus-870-is-firmware-dump.zip direct DL link], also available at [http://drop.io/chdkdumps2 drop.io]
+
*Firmware 1.00E: [http://chdk.setepontos.com/index.php/topic,288.msg21897.html#msg21897 Forum], [http://www.thickey.com/chdk/canon-ixus-870-is-firmware-dump.zip direct DL link]
   
 
{{DL_dumps}}
 
{{DL_dumps}}

Latest revision as of 23:53, 16 October 2011

The Canon Digital IXUS 870 IS is known as PowerShot SD880 in America and as IXY DIGITAL 920 IS in Japan.

Notice

CHDK for IXUS 870 IS firmwares 100e, 101a and 101b is available for download.

Sd880is all

Powershot SD880 Color Options

20080917 loRes sd880is silver front

Powershot SD880 IS Front

20080917 loRes sd880is silver back

Powershot SD880 IS Back

Reviews: DPReview review, Steve's DigiCams, DCRP, Photographyblog Review

Technical data

  • DryOS operating system
  • Digic IV image processor
  • 10.0 effective Megapixel sensor, 1/2.3 inch CCD type
  • 4X optical zoom lens, equivalent to 28-112 mm, F2.8-5.8
  • Optical image stabilization, lens shift type
  • 3-inch LCD display, 230,000 pixels, no optical viewfinder
  • Video: 640x480@30fps / 320x240@30fps / 160x120@15fps
  • Video Format: MOV (H.264 + Linear PCM)
  • NB-5L lithium-ion battery, 310 shots per charge (CIPA standard)
  • Dimensions: 94 x 57 x 24 mm, Weight: 155g without batteries

Firmware info

The information below by putting a ver.req file in the root of your SD card. Press FUNCSET and DISP simultaneously to display the information. Repeated presses of DISP give additional information.

The number after "CV:" is the (Canon) version the firmware itself reports when doing the above without ver.req (or when doing a firmware update).

Version 1.02b

Canon PowerShot SD880 IS
P-ID: 3196 NT D

Firmware Ver GM1.02B
NoError
Jan 9 2009 14:55:54
Adj Ver.008.002
IS Firm Ver. 2.09
IS Param Ver. 2.07

Version 1.01a (CV: 1.0.1.0)

Canon DIGITAL IXUS 870 IS
P-ID:3196  PAL D

Firmware Ver GM1.01A
NoError
Oct 15 2008   18:36:07
Adj. Ver.008.001
Adj. Ver.008.001
IS Firm Ver.   2.09
IS Param Ver.  2.07

Version 1.00e

Canon DIGITAL IXUS 870 IS
P-ID:3196     PAL D

Firmware Ver GM1.00E
NoError
Aug 22 2008 10:57:30


Known Issues

The latest version (revision 829) of this port has the following known issues. Note that some items may indicate that a problem is solved; this means that the fix will likely be in the next version.

  • Colours in DNG files are slightly off. (See comment in this post.)

Issues that seem to be general CHDK issues (i.e. not specific to this port):

  • Shortly pressing the ON/OFF button to turn on camera gives review/playback mode (which is not the case without CHDK loaded). Pressing the button a second or two avoids this.
  • Optical+digital zoom in video mode: when going from digital to optical zoom while zooming out you have to release the zoom lever in order to be able to zoom out optically.

For developers

Porting

Porting thread: http://chdk.setepontos.com/index.php/topic,3309.0.html

The port for the IXUS 870 IS is based on the one for SX10 (1.01a).

Offset of firmware dump is 0xFF810000. The "DryOS singlerun" scripts for IDA can be used but they leave a few function tables untouched and related strings are often not recognised correctly. This is correctable by selecting the relevant lines, right-clicking and selecting "Analyze selected area".

Below are some lists of what still needs to be done.

Important:

  • include/camera.h:
    • Check all defines that have a XXX behind them


Other:

  • loader/ixus870_sd880/entry.S
    • Find out what SD-Card power trick is for and if it is really needed (seems to work without)
  • platform/ixus870_sd880/kbd.c
    • Check that DELAY_TIMEOUT is ok
  • platform/ixus870_sd880/main.c
    • Find correct values for get_vbatt_min and get_vbatt_max (observed so far: min 3205, max 4065)
  • platform/ixus870_sd880/shooting.c
    • Check shutter_speeds_tables
    • Check circle_of_confusion
  • platform/ixus870_sd880/sub/1.01a/movie_rec.c
    • Check implementation; ours is based on SX10 (and IXUS980), but IXUS860 has different implementation
      • The Ixus 870 comes with the new MOV (H.264 + Linear PCM) video format as the SX10/Ixus980, the older Ixus 860 has the "old" AVI MJPEG format with WAVE monaural innstead. Fe50 19:30, 24 April 2009 (UTC)
  • platform/ixus870_sd880/sub/1.01a/stubs_min.S
    • Check recreview_hold
  • Check all entries in stubs_entry.S that are not preceded by "Best match". They should be ok, but you never know.

Special addresses

#define LED_DP   0xC02200D4    // direct-print (blue)
#define LED_IO_G 0xC0220136    // IO indicator LED (green state)
#define LED_IO_R 0xC0220133    // IO indicator LED (red state)
#define LED_AF   0xC0223030    // Auto-focus LED (very bright...)
#define POWER    0xC022001C    // use to turn off power

N.B.: Turning both LED_IO_G and LED_IO_R on gives orange.

Firmware Dumps

Saveas64

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

Official Canon Firmware Update

Canon has released a official firmware update on February 5, 2009 for the SD880 camera (Canon Version 1.0.1.0).

The firmware update and support information can be found in the links below: