Canon PowerShot A1200 - DryOS Development - CHDK Forum  

Canon PowerShot A1200

  • 137 Replies
  • 69640 Views
*

Offline dvip

  • ****
  • 451
Canon PowerShot A1200
« on: 19 / April / 2011, 23:06:18 »
Advertisements
Any work on the Canon PowerShot A1200? It looks like a good one with OVF  :). No IS  :(
No manual control but chdk could help.


Re: Canon PowerShot A1200
« Reply #1 on: 13 / June / 2011, 12:11:03 »
are there any plans to work on the A1200? I have one if I can be of assistance.

*

Offline dvip

  • ****
  • 451
Re: Canon PowerShot A1200
« Reply #2 on: 17 / June / 2011, 00:55:52 »
Perhaps you can post a firmware dump and someone can help?
 

Re: Canon PowerShot A1200
« Reply #3 on: 20 / June / 2011, 05:18:01 »
Waiting CHDK release for Canon A1200 ///


Re: Canon PowerShot A1200
« Reply #4 on: 20 / June / 2011, 18:55:21 »
« Last Edit: 20 / June / 2011, 18:58:52 by waterwingz »
Ported :   A1200    SD940   G10    Powershot N    G16

Re: Canon PowerShot A1200
« Reply #5 on: 20 / July / 2011, 08:33:24 »
Well, I tried to contribute to the porting but didn't get far. New to CHDK development and to be honest, also new to command prompt building (I'm spoiled with IDE usage)

I managed to dump the firmware via cbdumper.
Set up an environment under windows with CHDK-Shell.
Found blinker sources to try and find LED addresses, managed to build the blinker sources for this camera (P-ID 322B).
I then created a bootable SD card (with CardTricks) but wasn't sure what to put on the SD card next to the reated diskboot.bin
Building the blinker code I get two output files (main and PS.FIR)
The building was done from a console window started from the CHDK-Shell. I changed the Make.bat in order to put the P-ID from the A1200 instead of the original one.

First I put these two files on the SD card, leaving the original diskboot.bin from CardTricks (removing all other files). But since this diskboot.bin is supposed to perform a firmware dump I tried something different.
Renamed main into diskboot.bin still no success.
Renamed PS.FIR into diskboot.bin still no success.

There is no manual "Firmware upload" feature in the menu, unless a PS.FI2 file is available on the SD card. However, I haven't yet found out how to encode FI2 files (tried to read the forum thread related to this, but could understand where to get the necessary Key and IV things out of the firmware dump)

As an alternative I also tried to use a script to make the LEDs flash (seen that being used in the A2200 port thread if I remember correctly).
However, both methods doesn't make any LED blink.

As a last step I tried to get both the built code and the script (in separate trials) to work on an already ported camera (just to check). So I used my older A590IS, but there again no LEDs blinking.

So I must be really missing the point with all I do.

*

Offline reyalp

  • ******
  • 14082
Re: Canon PowerShot A1200
« Reply #6 on: 22 / July / 2011, 02:33:41 »
Rather than blinking, I would really suggest using the canon basic dumper to dump: http://chdk.wikia.com/wiki/Canon_Basic/Scripts/Dumper
Don't forget what the H stands for.

Re: Canon PowerShot A1200
« Reply #7 on: 23 / July / 2011, 10:20:32 »
Rather than blinking, I would really suggest using the canon basic dumper to dump: http://chdk.wikia.com/wiki/Canon_Basic/Scripts/Dumper

I guess you misread my message. I do have a dump done via cbdumper, but am now trying to find the LED addresses as per explanation from one of the wiki pages:
   1. Duplicate the blinker/fw directory from the blinker sources.
   2. Replace the contents of main.c with the LED Cycling Code.
   3. Build LED Cycling Code.
   4. Time how long it takes for the LED's to start lighting.
   5. Estimate a new interval based on how long it took for all the LED's to light.
   6. Modify the range in the Cycling code.
   7. Go back to 3 and repeat until you have an address for each LED.

Building the updated code i get:
D:\CHDK\src\led addresses\fw>
arm-elf-gcc -fno-builtin -O2 -Ilib -nostdlib -Wl,-N
,-Ttext,1900,-Map,main.map -o main.exec entry.o main.o crc16.o -lc -lgcc
d:/chdk/gcc451/bin/../lib/gcc/arm-elf/4.5.1/../../../../arm-elf/lib\libc.a: file
 not recognized: File truncated
collect2: ld returned 1 exit status

Since crc16 isn't needed (I think) I removed reference to it in the make file, as well as removing the -lc compiler option. This gets rid of the above error and all seems to build OK. I couldn't find any information related to this -lc option.

But since my built PS.FIR file (or renamed as diskboot.bin) doesn't result in the camera to make the LEDs flash, I guess something is off with my built


*

Offline reyalp

  • ******
  • 14082
Re: Canon PowerShot A1200
« Reply #8 on: 23 / July / 2011, 17:40:17 »
I don't understand why you are doing this, or what instructions from the wiki made you think you should. You don't need a blinker, you already have a firmware dump. All this business about timing loops and CRCs are only if you were trying to dump the firmware via an LED.

It would be useful to find an LED address (if you haven't already) for debugging,  but you can do that from disassembly if needed. Chances are high that the addresses will be the same as, or similar to an existing camera, so you could just guess as well.

Just start with the CHDK sources and follow http://chdk.wikia.com/wiki/Adding_support_for_a_new_camera

If your diskboot.bins don't do anything, chances are you have the wrong diskboot encoding. Since you have the firmware dump, you can easily obtain the correct dancibingbits.

edit:
All recent cameras use PS.FI2, and it must be encoded with the correct keys. PS.FIR will not be recognized, that was only used on vxworks cameras. You cannot just rename a diskboot to an FIR/FI2 they are different formats. Diskboots for recent cameras must also be encoded, using dancingbits in the tools directory of the chdk source.
« Last Edit: 23 / July / 2011, 17:41:55 by reyalp »
Don't forget what the H stands for.

Re: Canon PowerShot A1200
« Reply #9 on: 25 / July / 2011, 14:45:01 »
I don't understand why you are doing this, or what instructions from the wiki made you think you should. You don't need a blinker, you already have a firmware dump. All this business about timing loops and CRCs are only if you were trying to dump the firmware via an LED.

...

Just start with the CHDK sources and follow http://chdk.wikia.com/wiki/Adding_support_for_a_new_camera

The link you mention has a section "Requirements", with one of them being LED addresses. When I follow that link, it mentions how to modify the blinker source to try and get the LED addresses. This is what I was trying to do.

But nevermind. As I didn't get anywere this way, I have just started reading the firmware dump and can report that this camera is DryOS version 2.3 #0047.
Also I found something at offset 7E3524 which looks like the dancing bits (0 4 2 7 3 6 5 1), or is that just pure coincidence? If not then it's identical to the spicy wasabi sx220 (dryos r47).

The fi2key ends just above, so 16 bytes starting at offset 7E3514
« Last Edit: 25 / July / 2011, 15:12:16 by kakkernak »

 

Related Topics