SX100 IS - page 28 - Firmware Dumping - CHDK Forum  

SX100 IS

  • 276 Replies
Re: SX100 IS
« Reply #270 on: 15 / July / 2009, 20:27:47 »
Focus Bracketing fails due to Set_Focus not working.

My SX100IS with 1.00B DryOS, running CHDK 0.9.8-770 released on Jun 4, 2009, cannot set_focus correctly.
I've tried various values for the set_focus parameter, but the call to set_focus X seems to cause the next get_focus to return either 74, apparently if 3000 < X < 20000, or else 65535, but range boundaries are not nailed down yet.

Before call to set_focus, the value from get_focus can be seen to vary by exiting the script and changing the focus manually or via AF. (Not confirmed that returned value reflects actual focus setting; I've seen 4454, 655, 621 and a few others

Can I buy a clue, please? Or does focus bracketing work fine for everyone else?

If there's a better place to post this request, please advise.

get_focus seems to be returning a number related to the Telephoto position.

« Last Edit: 15 / July / 2009, 21:58:28 by yogaman »

Re: SX100 IS
« Reply #271 on: 15 / July / 2009, 22:00:57 »
Interesting anomalous behavior:

This seems likely to be related to my just previous difficulty with set_focus.

In Manual mode, Manual Focus with Telephoto in a middle position, focus approx 5-10 feet,
1. Enter ALT mode.
2. Move Telephoto lever toward minimum (0.3 inches).
3. Exit ALT mode.
4. Re-engage Manual Focus by pressing <- button, then FUNC SET button. (It seems to lose track that it was in MF; the display icon seems correct, but the focus wheel either adjusts exposure or does nothing. Perhaps this is the correct state; I haven't seen the state machine.)
5. Notice that Focus position is near minimum.

Similarly moving Telephoto lever to the right during ALT mode causes Focus to be set at/near Infinity upon exit from ALT mode.

I haven't looked at the code (or downloaded tools, etc), but I wonder if some kind programmer has possibly confused the Telephoto functions with the Focus functions.

Is the focus wheel on the SX100 different from other Canon cameras?

Again, if there's a better place to report such, please advise.
« Last Edit: 15 / July / 2009, 22:04:17 by yogaman »

Re: SX100 IS
« Reply #272 on: 15 / July / 2009, 22:38:44 »
OK, I peeked at the source code. In trunk\platform\sx100is\100b\, stubs_entry_2.S, line 69 says:

NHSTUB(MoveFocusLensToDistance, 0xFFDC0C60)   // In SX100 MoveIrisToAvWithoutBacklash_2

Unlike many of the lines in that file, the first two characters are not //.

My guess is that this comment is somehow closely related to my previous posts.

I hope this information helps someone who is knowledgeable resolve this issue.

Re: SX100 IS
« Reply #273 on: 26 / July / 2009, 15:08:23 »
I've confirmed that the set_focus and get_focus functions do not work on the sx100is 1.00b as described in the uBASIC documentation.

For set_focus x, x<1326, get_focus returns 65,535
For set_focus x, x>1726, get_focus returns 74
For set_focus x, 1327<x<1726, get_focus returns a value between 4008 and 75, with bigger set_focus values returning smaller get_focus values, with very gradual increments near 1725 and very rapid increments near 1327.

It appears that 74 represents the closest focus position.

Re: SX100 IS
« Reply #274 on: 06 / August / 2009, 08:17:14 »
Hello ALL,
I have also SX 100 IS 1.00b, with the same problem - small green arrows are in the wrong place. This problem exists from the very beginning (when I started CHDK), I tested with 0.9.6-710 and 0.9.8-788 also, same results.

My results:
- The camera shows the green arrows WHERE THE PREVIOUS mode wanted to.
- I switch on cam in Av mode, I cannot change F value, nor eV.
(CONCLUSION: Cannot change anything, because previous was "off" mode)
- Now I change to Tv mode. Now I can change eV and an empty value between shutter speed and eV (position of F but no number and and does not change anything if I turn lower or higher) BUT I cannot change the shutter speed.
(CONCLUSION: Can change eV and position of F because previous mode was Av).
- If I change to P mode, I can change eV and an empty value in the position of shutter speed.
(CONCLUSION: Can change eV and position of shutter speed because the previous mode was Tv.

The same situation with all modes.

My workaround was:
Change mode and immediately back to my desired mode.
(CONCLUSION: Can change values which is approptiate for the desired mode, because the previous mode was the same...)

BUT the below quoted workaround is better (tried and worked - until next switch on - naturally).

Probably this logic could help who has programming ability and willing to change this issue...

SX100IS 1.00b workaround.    In summary it seems that some with SX100 firmware 1.00b are having issues and some are not.        I am in the category of those who are experiencing some problems, however, I am able to get everything working with a little workaround.

This is the startup process I have to use:  (When I press the on/off button it takes me to view picture mode instead of take a photograph mode)  I then press the shutter release which takes me to take a picture mode.  Next I have to make sure to switch the rotary selector on top to M full manual mode.  Then I press the view photo button twice, the first time takes me to view the last picture, and the second time returns me to take a photo in full manual mode.  Now the rotary selector on the back functions as it should.


« Last Edit: 01 / October / 2009, 16:45:50 by VMark »

Re: SX100 IS
« Reply #275 on: 06 / November / 2009, 17:56:54 »
Is there any SX100IS developers who can create "extra long exposure"  function ( ) for this camera?

Thanks :)


Offline srsa_4c

  • ******
  • 4450
Re: SX100 IS
« Reply #276 on: 24 / August / 2011, 16:36:31 »
Extra long exposure support for the 1.00c revision.

If somebody with a greater knowledge of DryOS could review the way exp_drv_task is started, that would be great. I simply copied the method from the ixus80 port (which runs the same DryOS revision), but used only one taskCreateHook() function, twice*. Before this change, there was no taskCreateHook() here, all other tasks are started by modified original code, I think.

/platform/sx100is/sub/100c/boot.c excerpt
Code: [Select]
void taskCreateHook(int *p) { //function taken from the ixus80 port, adapted of course
 if (p[0]==0xffc98f18)  p[0]=(int)exp_drv_task;

//#define DEBUG_LED 0xC02200C4
void boot() { //#fs
    long *canon_data_src = (void*)0xFFEBE450;
    long *canon_data_dst = (void*)0x1900;
    long canon_data_len = 0xf6c4 - 0x1900; // data_end - data_start
    long *canon_bss_start = (void*)0xf6c4; // just after data
    long canon_bss_len = 0x9F498 - 0xf6c4;

    long i;

// Code taken from VxWorks CHDK. Changes CPU speed?
    asm volatile (
"MRC     p15, 0, R0,c1,c0\n"
"ORR     R0, R0, #0x1000\n"
"ORR     R0, R0, #4\n"
"ORR     R0, R0, #1\n"
"MCR     p15, 0, R0,c1,c0\n"



    *(int*)0x1930=(int)taskCreateHook; //from ixus80 port
    *(int*)0x1934=(int)taskCreateHook; //from ixus80 port (was taskCreateHook2...)

The camera seems to work ok, extra long expos are available.

Attached is a source patch for chdk trunk rev. 1304.


Just noticed, this is in the "Firmware dumping" section. I decided to post here, because this was/is this model's porting thread.

Edit 2:

I have found at least the sx220 port doing the same (*) with its taskHook() function, so my version should be ok too.
« Last Edit: 25 / August / 2011, 11:06:56 by srsa_4c »


Related Topics