A800 Porting Thread - DryOS Development - CHDK Forum

A800 Porting Thread

  • 277 Replies
  • 48164 Views
A800 Porting Thread
« on: 12 / January / 2012, 10:07:03 »
Advertisements
Hey everyone, I'm back!  I helped get the A1000IS 100a ported (and tweaked both the 100a and 100b for CHDK and SDM) about 6 months ago in June and July of 2011.  I've been meaning to try another camera and I finally got some bonus Amazon credit so I decided to use it to buy a camera.

I chose the A800 because it seems to be the cheapest Canon camera I can buy new from Amazon right now.  Amazon link to the model I bought is here.

CHDK Wiki Page for the A800

For now, this is just a placeholder - to let people know that I'm back and to give the mods time to direct me to another thread if someone has already started work on the A800.  As far as I can tell, the only thing on the forums (at least the English ones) for the A800 is a 100b firmware dump found in this thread.  Direct link to the box.com file here.

I will be posting more here over the weekend.
« Last Edit: 12 / January / 2012, 11:54:14 by Qanthelas »

Re: A800 Porting Thread
« Reply #1 on: 12 / January / 2012, 11:32:03 »
I've been looking at that model myself for R/C airplane use.  Might pick one up soon.
Ported :   A1200    SD940   G10    Powershot N    G16

Re: A800 Porting Thread
« Reply #2 on: 12 / January / 2012, 11:40:43 »
I've been looking at that model myself for R/C airplane use.  Might pick one up soon.

Nice :) Great minds think alike ;)  Considering that I'll probably need your help (and help from a few other people, too!) I'm glad to hear that you might be getting one of these cameras, too.  Mine should come in the mail tomorrow.  In the meantime, mind posting a link to the tools needed?  I'm guessing there are new versions of the dumpers and parsers available now?

EDIT: It looks like CHDK-PT has its own page, is this up to date?  I also saw you link instructions in this post, are those up to date, too?  Also, are there some other tools floating around that I should know about?  (I realize that CHDK-PT is more for porting from one firmware version to another on the same camera rather than to a whole new camera as apparently will be the case with the A800 - are there tools for totally new ports?)
« Last Edit: 12 / January / 2012, 15:02:10 by Qanthelas »

Re: A800 Porting Thread
« Reply #3 on: 12 / January / 2012, 11:48:09 »
In the meantime, mind posting a link to the tools needed?  I'm guessing there are new versions of the dumpers and parsers available now?
Its all part of the build - nothing else to download.  But you probably want to start out using the stable 1.0 branch rather than the main development trunk (which is AKA unstable for obvious reasons).
Ported :   A1200    SD940   G10    Powershot N    G16


Re: A800 Porting Thread
« Reply #4 on: 12 / January / 2012, 12:05:58 »
Alright, I got chdk-shell 3.42 up and running with the (English) 1531 trunk, now I just have to wait until my camera comes in the mail tomorrow :)

Re: A800 Porting Thread
« Reply #5 on: 12 / January / 2012, 12:41:37 »
Alright, I got chdk-shell 3.42 up and running with the (English) 1531 trunk, now I just have to wait until my camera comes in the mail tomorrow :)
The latest stable branch svn version is 1544.   Look for the release-1_0 branch up at the top of the CHDK-Shell window where it lets you select a branch rather than the main trunk.  You may have to sit through a whole bunch of other branch downloads that you don't need though.
Ported :   A1200    SD940   G10    Powershot N    G16

Re: A800 Porting Thread
« Reply #6 on: 13 / January / 2012, 14:49:29 »
Ah, OK waterwingz, I got the release-1_0 branch loaded up as my trunk in chdk-shell.

My camera came today (even though it is snowing outside :P)  Here's the basics so far.

Model: A800
Color: Black
Version: 100c (note that the firmware dump available at the box.com folder is 100b, so perhaps we can tackle 100c then try to port to 100b :D )

Here is what ACID (Automatic Camera Identifier and Downloader) 1.06A gave me:
IMG_0002.JPG dropped
(my path...)\IMG_0002.JPG is being processed
CHDK - no build found for Canon PowerShot A800 100c
CHDK-DE - no build found for Canon PowerShot A800 100c
SDM - no build found for Canon PowerShot A800 100c
Processing completed

I formatted up a 64MB SD card, tweaked it with HxD as described under the HxD section here, made myself a script.req and extend.m file based on the long version here and put them on the SD card.  With the card left unlocked, put the card in the camera, started playback mode, hit the FUNC./SET button, it I think tried to display the text in tiny letters in the upper left, I waited a bit, put the card in my computer, and I've got PRIMARY.BIN and CBDUMPER.LOG for this firmware (A800 100c) :D

Just for those following along, I've attached my extend.m and script.req files to this post.

CBDUMPER.LOG only contains this:
Started
FFC00000 dry
done

How should I go about submitting this new firmware dump to the box.com P&S (Point and Shoot) Firmware Dump folder?  (Or should I hold off on that for now?)

I guess the two next main questions are
1) Anyone know of a camera that might provide a good basis or starting point for the A800?
2) Since it looks like IDE is the way to go but yet it is pretty expensive, does anyone have it who would be willing to work with me on this camera? (Or, barring that, does someone have a good decompiler set up who would be willing to work with me on this camera?)
« Last Edit: 13 / January / 2012, 15:13:57 by Qanthelas »

Re: A800 Porting Thread
« Reply #7 on: 13 / January / 2012, 20:09:00 »
How should I go about submitting this new firmware dump to the box.com P&S (Point and Shoot) Firmware Dump folder?
Upload it to your favorite file sharing site (box.com suggested) and post the link here : http://chdk.setepontos.com/index.php?topic=288.msg79514#new

Quote
1) Anyone know of a camera that might provide a good basis or starting point for the A800?
Cameras released the same date as the A800 are the A1200, A2200, A3200, A3300.

Here's a link to the A2200 porting process - you can probably use the code there as a starting point
http://chdk.setepontos.com/index.php?topic=6254.msg79538#msg79538


Quote
2) Since it looks like IDE is the way to go but yet it is pretty expensive, does anyone have it who would be willing to work with me on this camera?
You can get by with this these days : CHDK-PT  The price is right.
Ported :   A1200    SD940   G10    Powershot N    G16


Re: A800 Porting Thread
« Reply #8 on: 14 / January / 2012, 00:39:49 »
Thanks waterwingz!  I got a box.com basic/free account, uploaded my PRIMARY.BIN (which can be found at this link, by the way) and I've made my post in that thread.

I'm glad there's at least a place to start :)  I will start looking through the A2200 thread.

Yay for free tools! :)  You've got CHDK-PT working quite well these days!  Congrats and thanks for that :D  I'll start poking around at it again.

For now, I really should go to bed, but I'll be posting over this weekend.

Re: A800 Porting Thread
« Reply #9 on: 14 / January / 2012, 14:44:52 »
Basically, after talking with waterwingz and reyalp on the forums, we got it sorted out (come to find out I had the wrong Rom Base Address and that was causing sigfinder to crash.  Eventually I got it to at least compile enough to give me a stubs_entry.S file so that sets me off on the next stage - tweaking the various \a800\sub\100c files (like makefile.inc, lib.c, etc.) to use the stuff for this camera rather than my reference port (which is the A2200 100b).

I've been reading and re-reading the instructions I've been getting for CHDK-PT and the porting process in general.  Here's a summary of the stuff I'm looking over.

First, the 3 links about the address.txt file (that CHDK-PT needs to help automate this process of tweaking all the \a800\sub\100c files): Post 1, Post 2, Post 3 (as linked in this post.)

Also of note are some relevant pages from the Wiki like the "Adding support for a new camera" and CHDK-PT pages.

Here's some additional wisdom from IRC (#chdk on freenode)
Quote from: waterwingz
start with the stuff in stub_entry.S that tells you what values to use in the other files
then try using CHDK-PT to generate the code for boot.c, movie_rec.c and capt_seq.c from the code in the A2200
you'll need to generate an address.txt file to do that

(Apparently the forums don't support having 2 quote blocks from two different people, not sure what is up, anyways...)

From reyalp:

you need to go through every file in the platform directory and make sure it's correct for your camera
all of the inline asm comes from your firmware dump, if you copied from some other camera, you need to replace it
anything that refers to an address (like the stuff in lib.c) or physical characteristics of the camera (like fl_tbl in main.c) needs to be checked
if you just want to get something booting, you can disable some of the stuff that's not done yet
this is the normal approach
you should keep notes of what you've done and haven't done
also, you should not leave copy /pasted comments from other ports, because this makes reyalp very angry
e.g. if you copy paste some code and it has a commment that says  "found at 0xFFFFABCD", the 0xFFFFABCD better refer to your camera
if you see something and you don't know whether it's right, put in a comment to that effect

Hope this helps some of you on your way for your own projects :)
« Last Edit: 15 / January / 2012, 14:13:27 by Qanthelas »

 

Related Topics