CHDK Wiki
Register
No edit summary
(available in autobuild)
 
(17 intermediate revisions by 6 users not shown)
Line 1: Line 1:
  +
==Powershot A430==
Following the example of the [[A530]] page, everything that might be useful for a port of CHDK to A430 should be posted here.
 
  +
{{Notice|CHDK for the '''A430''' with firmware revision '''1.00b''' is available in a Beta version from the [[Downloads|Download page]]}}
   
  +
{|align="right" style="border-collapse:collapse; font-size: x-small;"
== Firmware info ==
 
  +
|__TOC__
 
|}
   
 
== Firmware info ==
 
=== Version ===
 
=== Version ===
The trick with the '''ver.req''' file works on the A430 as well, but we don't know the result. It should look something like this:
+
The trick with the '''ver.req''' file works on the A430 as well, with the following result:
   
 
Canon PowerShot A430
 
Canon PowerShot A430
Line 10: Line 14:
 
 
 
Firmware Ver GM1.00B
 
Firmware Ver GM1.00B
  +
E18
  +
Dec 6 2005 09:17:55
   
 
Pressing {{button|SET}}+{{button|DISP}} buttons again results in:
  +
Canon PowerShot A430
  +
P-ID:30F8 PAL
  +
  +
Adj Ver.005.001
  +
ZoomLensError
  +
2007.08.31 18:54:46
   
  +
Further {{button|SET}}+{{button|DISP}} pressing does not change anything if the file was '''ver.req'''. However, if the file is called '''vers.req''', a third screen is shown:
Pressing {{button|DISP}} button again results in:
 
 
Canon PowerShot A430
 
Canon PowerShot A430
 
P-ID:30F8 PAL
 
P-ID:30F8 PAL
 
 
 
Adj Ver.005.001
 
Adj Ver.005.001
  +
Total Shoot :6707
  +
Open Shutter :0
  +
Close Shutter:0
   
  +
Normally it should show "No Error". It looks like my camera got a ZoomLensError on August 31, 2007. On that date the lens was hit hard, but the camera is still okay.
   
 
The number P-ID:XXXX is a hexadecimal code for the platform version id.
 
The number P-ID:XXXX is a hexadecimal code for the platform version id.
Line 23: Line 40:
 
Platform codes for other models can be looked up under [[P-ID]].
 
Platform codes for other models can be looked up under [[P-ID]].
   
== Hardware info ==
+
==For Developers==
 
Following the example of the [[A530]] page, everything that might be useful for a port of CHDK to A430 should be posted here.
  +
 
=== Memory map ===
 
=== Memory map ===
 
Following information is probably generic to other models (A5xx, A6xx, A7xx series)
 
Following information is probably generic to other models (A5xx, A6xx, A7xx series)
   
==== Firmware flash ====
+
=== Firmware flash ===
0xff800000: firmware flash data (probably)<br>
+
0xff800000: firmware flash data (probably)<br />
0xffc00000: mirror copy of firmware flash? (to be determined)<br>
+
0xffc00000: mirror copy of firmware flash? (to be determined)<br />
   
==== LED ====
+
=== LED addresses ===
0xc0220080: 0x46 enables orange focus assist LED, 0x44 disables it<br>
+
0xc0220080: 0x46 enables orange focus assist LED, 0x44 disables it<br />
0xc0220084: 0x46 enables blue print LED, 0x44 disables it<br>
+
0xc0220084: 0x46 enables blue print LED, 0x44 disables it<br />
   
== Blinker Firmware ==
+
=== Blinker Firmware ===
 
The blinker method was used to dump the firmware.
 
The blinker method was used to dump the firmware.
   
=== Blinker Firmware compilation ===
+
==== Blinker Firmware compilation ====
 
A blinker firmware was compiled using yagarto. In the XXXX.c file, the firmware ID must be replaced by the one given obtained via ver.req (XXX). If cygwin is installed on your computer, in make.bat, replace
 
A blinker firmware was compiled using yagarto. In the XXXX.c file, the firmware ID must be replaced by the one given obtained via ver.req (XXX). If cygwin is installed on your computer, in make.bat, replace
 
zero | dd bs=1k count=100 >> main
 
zero | dd bs=1k count=100 >> main
   
 
by the following two lines:
 
by the following two lines:
c:\cygwin\bin\dd.exe bs=1k count=100 if=/dev/zero of=main.zero<br>
+
c:\cygwin\bin\dd.exe bs=1k count=100 if=/dev/zero of=main.zero
  +
c:\cygwin\bin\cat.exe main.zero >> main
+
c:\cygwin\bin\cat.exe main.zero >> main
   
=== Firmware dump ===
+
=== Phototransistor active circuit ===
 
The PC's microphone input has a 2.34V rail available on one of the channels, so I tried a few powered circuit (both photodiode and phototransistor). They give a much larger signal, but the shape of the signal still differs from the ones given as example.
[[Image:audacity_photodiode_passive.png|right|thumb|150px|Audacity - Hamamatsu S1226-8BQ Photodiode passive circuit]]
 
It seems that the fastest speed (AF assist LED) is not an option for dumping the firmware. At that speed, the waveform is distorted and may not be decoded (see screenshot). Instead, the blue LED at the back of the camera was used to output the firmware, and an active circuit based around the YY66W phototransistor was used to read the firmware out.
 
 
==== Phototransistor active circuit ====
 
The PC's microphone input has a 2.34V rail available on one of the channels, so I tried a few powered circuit (both photodiode and phototransistor). They gives a much larger signal, but the shape of the signal still differs from the ones given as example.
 
   
 
The test circuit uses a small piece of breadboard. Bottom side has two rows of 3 tulip sockets. This is where I plug-in my phototransistors and filter cap. Top side has three rows of 3 tulip sockets. The one away from the cable, I plug my 1k trim in. The other two are used for bridging the circuit with the computer. These can be removed and replaced by filtering caps if needed.
 
The test circuit uses a small piece of breadboard. Bottom side has two rows of 3 tulip sockets. This is where I plug-in my phototransistors and filter cap. Top side has three rows of 3 tulip sockets. The one away from the cable, I plug my 1k trim in. The other two are used for bridging the circuit with the computer. These can be removed and replaced by filtering caps if needed.
Line 57: Line 73:
 
{| border="0"
 
{| border="0"
 
|+'''Active circuit'''
 
|+'''Active circuit'''
|-
 
 
| valign="top"|
 
| valign="top"|
 
[[Image:circuit_under.jpg|thumb|100px|Test circuit - under]]
 
[[Image:circuit_under.jpg|thumb|100px|Test circuit - under]]
Line 68: Line 83:
 
{| border="0"
 
{| border="0"
 
|+'''Phototransistor Active circuit'''
 
|+'''Phototransistor Active circuit'''
|-
 
 
| valign="top"|
 
| valign="top"|
 
[[Image:phototrans_active.png|Phototransistor, active circuit]]
 
[[Image:phototrans_active.png|Phototransistor, active circuit]]
Line 80: Line 94:
 
The trimmer (blue on the photo above) has one of its legs bent so that it doesn't make contact. The two legs making contact with the circuit are the one under the screw and the middle one. The red component is a 1μF ceramic cap used to filter the output (see screenshots below).
 
The trimmer (blue on the photo above) has one of its legs bent so that it doesn't make contact. The two legs making contact with the circuit are the one under the screw and the middle one. The red component is a 1μF ceramic cap used to filter the output (see screenshots below).
   
==== Firmware recording using audacity ====
+
=== Firmware recording using audacity ===
   
 
[[Image:audacity_phototrans_YY66W_blue.png|thumb|150px|Audacity - YY66W phototransistor - Blue LED]]
 
[[Image:audacity_phototrans_YY66W_blue.png|thumb|150px|Audacity - YY66W phototransistor - Blue LED]]
Line 90: Line 104:
 
All in all, it now looks like I ''should'' be able to get a firmware dump.
 
All in all, it now looks like I ''should'' be able to get a firmware dump.
   
  +
=== Firmware dumps ===
 
[[Image:audacity_photodiode_passive.png|right|thumb|150px|Audacity - Hamamatsu S1226-8BQ Photodiode passive circuit]]
 
It seems that the fastest speed (AF assist LED) is not an option for dumping the firmware. At that speed, the waveform is distorted and may not be decoded (see screenshot). Instead, the blue LED at the back of the camera was used to output the firmware, and an active circuit based around the YY66W phototransistor was used to read the firmware out.
  +
  +
* Firmware dump A430 FW 1.00B: [http://www.megaupload.com/?d=P16GWT5M dl site] (Forum link: http://chdk.setepontos.com/index.php/topic,288.msg33967.html#msg33967)
  +
  +
{{DL_dumps}}
  +
  +
=== Porting ===
  +
*22-Aug-2010: A430 1.00B beta port is in the CHDK trunk now.
  +
  +
:{{tagb|→}} The latest CHDK beta version for the '''A430 1.00B''' is available from here: [http://chdk.setepontos.com/index.php/topic,3785.msg53891.html#msg53891 '''forum link''']
  +
  +
*21-Jun-2009: Porting the A430 with fw 1.00b has started: [http://chdk.setepontos.com/index.php?topic=3785.msg35570#msg35570 Forum link] (by shentey)
 
[[Category:Development]]
 
[[Category:Development]]
  +
[[Category:Cameras]]

Latest revision as of 23:06, 31 January 2012

Powershot A430

Notice

CHDK for the A430 with firmware revision 1.00b is available in a Beta version from the Download page


Firmware info

Version

The trick with the ver.req file works on the A430 as well, with the following result:

Canon PowerShot A430
P-ID:30F8  PAL

Firmware Ver GM1.00B
E18
Dec  6 2005   09:17:55

Pressing SET+DISP buttons again results in:

Canon PowerShot A430
P-ID:30F8  PAL

Adj Ver.005.001
ZoomLensError
2007.08.31 18:54:46

Further SET+DISP pressing does not change anything if the file was ver.req. However, if the file is called vers.req, a third screen is shown:

Canon PowerShot A430
P-ID:30F8  PAL

Adj Ver.005.001
Total Shoot  :6707
Open Shutter :0
Close Shutter:0

Normally it should show "No Error". It looks like my camera got a ZoomLensError on August 31, 2007. On that date the lens was hit hard, but the camera is still okay.

The number P-ID:XXXX is a hexadecimal code for the platform version id.

Platform codes for other models can be looked up under P-ID.

For Developers

Following the example of the A530 page, everything that might be useful for a port of CHDK to A430 should be posted here.

Memory map

Following information is probably generic to other models (A5xx, A6xx, A7xx series)

Firmware flash

0xff800000: firmware flash data (probably)
0xffc00000: mirror copy of firmware flash? (to be determined)

LED addresses

0xc0220080: 0x46 enables orange focus assist LED, 0x44 disables it
0xc0220084: 0x46 enables blue print LED, 0x44 disables it

Blinker Firmware

The blinker method was used to dump the firmware.

Blinker Firmware compilation

A blinker firmware was compiled using yagarto. In the XXXX.c file, the firmware ID must be replaced by the one given obtained via ver.req (XXX). If cygwin is installed on your computer, in make.bat, replace

zero | dd bs=1k count=100 >> main

by the following two lines:

c:\cygwin\bin\dd.exe bs=1k count=100 if=/dev/zero of=main.zero

c:\cygwin\bin\cat.exe main.zero >> main

Phototransistor active circuit

The PC's microphone input has a 2.34V rail available on one of the channels, so I tried a few powered circuit (both photodiode and phototransistor). They give a much larger signal, but the shape of the signal still differs from the ones given as example.

The test circuit uses a small piece of breadboard. Bottom side has two rows of 3 tulip sockets. This is where I plug-in my phototransistors and filter cap. Top side has three rows of 3 tulip sockets. The one away from the cable, I plug my 1k trim in. The other two are used for bridging the circuit with the computer. These can be removed and replaced by filtering caps if needed.

Active circuit
Circuit under

Test circuit - under

Circuit top

Test circuit - top side

Circuit small

Test circuit and audio cable

Phototransistor Active circuit

Phototransistor, active circuit

Phototransistor under

Phototransistor active test circuit (bottom)

Phototransistor top

Phototransistor active test circuit (top)


The trimmer (blue on the photo above) has one of its legs bent so that it doesn't make contact. The two legs making contact with the circuit are the one under the screw and the middle one. The red component is a 1μF ceramic cap used to filter the output (see screenshots below).

Firmware recording using audacity

Audacity phototrans YY66W blue

Audacity - YY66W phototransistor - Blue LED

Audacity phototrans YY66W blue filtered

YY66W - Blue LED - Filtered

I am now trying for the blue LED with slower transfer speed. I used my amplified circuit and tried both the S1226-8BQ photodiode, YY66W (IR) and SFH300-3 phototransistors. Surprisingly enough, the IR phototransistor is the one that gives the largest signal (see screenshots). With a lower transfer speed, I now get the waveform I was expecting.

The effect of the 1μF cap is shown in screenshot 2 (screenshot 1 is without). The signal amplitude is more constant and will (probably) result in fewer decoding errors.

All in all, it now looks like I should be able to get a firmware dump.

Firmware dumps

Audacity photodiode passive

Audacity - Hamamatsu S1226-8BQ Photodiode passive circuit

It seems that the fastest speed (AF assist LED) is not an option for dumping the firmware. At that speed, the waveform is distorted and may not be decoded (see screenshot). Instead, the blue LED at the back of the camera was used to output the firmware, and an active circuit based around the YY66W phototransistor was used to read the firmware out.

Saveas64

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

Porting

  • 22-Aug-2010: A430 1.00B beta port is in the CHDK trunk now.
The latest CHDK beta version for the A430 1.00B is available from here: forum link
  • 21-Jun-2009: Porting the A430 with fw 1.00b has started: Forum link (by shentey)