supplierdeeply

any sd600 / ixus60 porting efforts?

  • 16 Replies
  • 6342 Views
Re: any sd600 / ixus60 porting efforts?
« Reply #10 on: 21 / April / 2008, 23:10:57 »
Advertisements
Well, I don't have plans to buy any new cam right now (except for the XSi when I have the money eventually), but I was just trying to see if cytom (or anyone) was making any progress with this and no one was answering even my earlier posts yet there were tons of views. Just asking because there's no where else to see what the progress is....

Re: any sd600 / ixus60 porting efforts?
« Reply #11 on: 23 / April / 2008, 02:37:28 »
I'm interested in porting CHDK to the SD600.  I have some basic object oriented programming skills, but nothing related to reverse engineering or porting software.  I am young, however, and have many hours of sleep just waiting to be replaced by a fun project!

From what I understand, CHDK sits on top of the camera's standard firmware, but the CHDK source code must be adapted for each camera for practically every input/output device.  One would find the addresses for the I/O devices using a reverse engineering tool such as IDA Pro, and then put those addresses in the source code for each appropriate device.  I'm assuming I/O devices are buttons, the LCD, LEDs, the motor that zooms the lens, the SD card reader/writer and probably a few more that I'm forgetting.

I'm not sure, but it looks like Cytom tried using CHDK compiled for the SD630 in a hopeful attempt that the hardware would be similar enough, but it wasn't.


The firmware for the SD600 is already dumped.  Here's what's left according to the CHDK in Brief Page:
# analyze the firmware, find out where key routines are.
# modify the source code to add the locations of these key routines
# compile the software, debug it, and dance like ninja

What exactly is a 'key routine' mentioned above?

I'm still perusing the website, so I'll probably answer my own questions.  Just wanted to give a shout and see who responds.

Cheers,
Goose
« Last Edit: 23 / April / 2008, 02:51:15 by Goose »

*

Offline Novex

  • *
  • 17
Re: any sd600 / ixus60 porting efforts?
« Reply #12 on: 27 / April / 2008, 02:10:58 »
I've been poking around. Two of my housemates have ixus 60's (100d and 100a) and my mother has one too! (havent been home to check her firmware though). In fact, I can't find anyone with a compatible camera so I can have a play with chdk! Conveniently the firmware was just dumped for the two models I have lying around my house 8)

Anyway, I've been working away a little - I made a copy of the sd630 (100a) and have been working off that as a base with the sd600 100d firmware dump. So far so good (I think?). I've generated stubs_entry.S, stubs_entry_ida.S and stubs_auto.S and have edited boot.c and stubs_entry_2.S to reflect proper values from sd600. I also made a copy of the sd630 camera.h definition, but didn't change any of the values.

I'm stuck now though at stubs_min.S and lib.c, I have no idea where to find those values aside from wild guesses between where the values are stored in the sd630 against the sd600 firmware. I also haven't even looked at capt_seq.c, movie_rec.c or anything that isn't in the 'sub' directory.

I've stuck what I've done so far on pastebin, if anyone wants to take a look and have a play. It builds, but doesnt do much more past that (no surprises there). If anyone can give me a hint on where to go next it'd be appreciated. Everyone else, feel free to have a crack - two heads are better than one!

sd600 100d primary.bin
boot.c (updated, see here)
makefile.inc
stubs_auto.S
stubs_entry.S - I haven't checked any of these at all
stubs_entry_2.S
stubs_entry_ida.S
« Last Edit: 30 / April / 2008, 00:31:14 by Novex »

*

Offline Novex

  • *
  • 17
Re: any sd600 / ixus60 porting efforts?
« Reply #13 on: 28 / April / 2008, 13:28:12 »
I've been doing some more poking and I think I've pretty much hit the end of my blind walk - I'm gonna need some help from here in on. I have a (fairly important) question.

  • What does CHDK actually do when it works? I've seen mentions of a splash screen and have been aiming towards that as a starting point. Anything else? (eg. power led flicking on/off, etc). At the moment the orange AF lamp flicks on and then off, the screen remains completely blank.
  • I took this to be a good thing, since my earlier efforts just crashed with the AF lamp on until I took the battery out. As it currently stands, I can't do anything, but at least use the power button to turn it off and back on again - is this actually a good thing, or have I still not got addresses right and something is triggering that particular light that shouldnt be?

Anyway, stubs_min.S and lib.c are attached - most of the values are wild guesses in the dark. Have I missed anything? I have the feeling the assumption that I don't have to change anything in the 'ixus60_sd600' directory is wrong, but I'm not too sure where to start there.

Also, in an attempt to avoid breaking things with stuff I haven't changed yet, I took the advice of this thread and commented out some hooks.

stubs_min.S
lib.c


Re: any sd600 / ixus60 porting efforts?
« Reply #14 on: 29 / April / 2008, 10:53:47 »
Wow! Clever guys do something for IXUS 60! My small IXUS will take RAW and have Auto-Bracketing feature. Cannot wait! And cannot believe!

*

Offline Novex

  • *
  • 17
Re: any sd600 / ixus60 porting efforts?
« Reply #15 on: 30 / April / 2008, 00:29:54 »
Success!!!

I found my problem! I'd accidently replaced one of the key functions in h_usrRoot() with nullsub_1! Now I get a very happy splash screen flicking up giving me my model, build etc before getting kicked back to the original firmware - which is a vast improvement over a black screen and a flicking light!

New boot.c here - now it's time to uncomment those hooks and see what else happens.

So happy to get a screen!
« Last Edit: 30 / April / 2008, 00:31:30 by Novex »

*

Offline Novex

  • *
  • 17
Re: any sd600 / ixus60 porting efforts?
« Reply #16 on: 30 / April / 2008, 02:18:57 »
More Success!!!

I filled in capt_seq.c (it took the better part of my afternoon) and now CHDK boots fine and brings up a whole bunch of stuff! What does it do? I dunno, I ran out of battery :'(

In the meantime, capt_seq.c

A lot of things seem to work happily :O I think?

Right, new post here, I think this thread has outlived it's usefulness - can the next mod who comes along lock it?
« Last Edit: 30 / April / 2008, 12:00:56 by Novex »

 

Related Topics