Answering my own questions, in case it helps someone else. Beware... I am a total NOOB.
Is there a FAQ somewhere ?
This FAQ answers some general questions, from a users point of view.
http://chdk.wikia.com/wiki/FAQIf I understand correctly, these cameras will run scripts that are put on the memory card.
I'm a bit foggy on this after reading everything, but it looks like there are uBasic scripts and then there is the firmware itself. And it looks like the "scripts" can be permanently loaded into the camera, or at least to the point where they auto load everytime the camera is turned on. I guess that doesn't make them "in" the camera in the sense of residing in the camera ROM though, just on the memory card.
The FAQ says this:
================================================================
Q. How do I use scripts?
A. CHDK allows you to automate your camera by running "scripts", small and simple programs written in a short-hand version of BASIC. You can find some pre-made scripts like bracketing, intervalometer etc. here or write your own scripts using the scripting language. To use a script, you have to do this...
================================================================
So back to my original question... why do we need the firmware again ? And is there actually a BASIC interpreter in these cameras that will run a uBASIC script ?
How was this discovered ?
Guessing here, I bet that someone got something from Canon that ran on a memory card. Maybe a firmware update ?
How were the memory locations discovered ?
I am guessing someone did a lot of disassembling, as is discussed in the DryOS discussion.
Why does one need a copy of the firmware ?
I am guessing that the new functionality gets linked in with the current camera image and a complete new bin file is made. But then what is the talk about the uBasic Scripts ? BASIC is interpretted. Are the files on the memory cards interpetted Basic text files or executable bin files ? :confused:
What are the limits of what can be done ?
I don't know the answer to this. There are some broad hints in "Q. May I suggest a new feature?" in the FAQ. What does uBASIC have access to ? Everything ? How low level ?
Who wrote VxWorks ?
Wind River.
http://www.windriver.com/ How do we know the camera isn't running Linux ?
What is this DryOS ?
An OS that Canon wrote and used in other camera like devices.
http://www.canon.com/technology/canon_tech/explanation/dryos.htmlWhere did the names come from ?
I have no idea. Disclaimer: I haven't read the Wind River website yet.
Why hasn't more code for the 10D/20D/30D been written ? Those are severely limited cameras for what they might be capable of !
I have no idea.
Other things I have gleaned... These cameras use an ARM processor. I can't find where I saw that in the Wiki now...
Please add to this. If it becomes useful, I'll make it into a document.