SD 4000 IS / IXUS 300 HS / IXY 30S porting thread

  • 302 Replies
  • 64010 Views
*

Offline pixeldoc2000

  • ****
  • 355
  • IXUS900Ti 1.00C, IXUS300HS 1.00D
    • pixel::doc homebase
  • Publish
    Re: SD 4000 IS / IXUS 300 HS / IXY 30S porting thread
    « Reply #220 on: 18 / February / 2011, 17:59:58 »
    Advertisements
    Here is my discussion about correct CAM_ACTIVE_AREA for SD4000: http://chdk.setepontos.com/index.php?topic=6122.0

    *

    Offline pixeldoc2000

    • ****
    • 355
    • IXUS900Ti 1.00C, IXUS300HS 1.00D
      • pixel::doc homebase
  • Publish
    Re: SD 4000 IS / IXUS 300 HS / IXY 30S porting thread
    « Reply #221 on: 18 / February / 2011, 18:53:55 »
    What I found was that 'init_file_modules_task' was not getting hooked at startup unless I added a delay when the keyboard task was being hooked (have at look at what I implemented in boot.c for these cameras). I still haven't figured out why this is needed; but it seems to work for me.
    I read it a while ago, but didn't really manage to fully understand the hole task hooking stuff.

    I've already tested some different values for:
    Code: [Select]
    (int*)0x1938=(int)taskHookAFAIK 0x1938 is software irq?

    But did not test your delay for SX30 to wait for mykbd_task hook yet...

    Maybe your problem can be fixed using different software irq to start task_hook later?

    Have a look at my code if you like: https://github.com/pixeldoc2000/chdk/blob/ixus300_sd4000/platform/ixus300_sd4000/sub/100d/boot.c

    Thanks for your suggestion!
    « Last Edit: 18 / February / 2011, 19:24:12 by pixeldoc2000 »

    *

    Offline philmoz

    • *****
    • 2936
      • Photos
  • Publish
    Re: SD 4000 IS / IXUS 300 HS / IXY 30S porting thread
    « Reply #222 on: 18 / February / 2011, 19:39:39 »
    I've already tested some different values for:
    Code: [Select]
    (int*)0x1938=(int)taskHookAFAIK 0x1938 is software irq?

    I'm sure I tried different hook addresses; but after looking at your code & comments I tried playing around with it again.

    What I've found is that having two addresses pointing to taskHook as shown below fixes my problem without the need for the startup delay - so ignore my previous post (thanks for the hint  :)).
    Code: [Select]
    (int*)0x1938=(int)taskHook
    (int*)0x193C=(int)taskHook

    Regards,
    Phil.
    CHDK ports:
      sx30is (1.00c, 1.00h, 1.00l, 1.00n & 1.00p)
      g12 (1.00c, 1.00e, 1.00f & 1.00g)
      sx130is (1.01d & 1.01f)
      ixus310hs (1.00a & 1.01a)
      sx40hs (1.00d, 1.00g & 1.00i)
      g1x (1.00e, 1.00f & 1.00g)

    *

    Offline pixeldoc2000

    • ****
    • 355
    • IXUS900Ti 1.00C, IXUS300HS 1.00D
      • pixel::doc homebase
  • Publish
    Re: SD 4000 IS / IXUS 300 HS / IXY 30S porting thread
    « Reply #223 on: 18 / February / 2011, 20:15:31 »
    What I've found is that having two addresses pointing to taskHook as shown below fixes my problem without the need for the startup delay - so ignore my previous post (thanks for the hint  :)).
    Code: [Select]
    (int*)0x1938=(int)taskHook
    (int*)0x193C=(int)taskHook
    I can't remember if i tested it like this on SD4000. Maybe this work on SD4000 too...


    *

    Offline pixeldoc2000

    • ****
    • 355
    • IXUS900Ti 1.00C, IXUS300HS 1.00D
      • pixel::doc homebase
  • Publish
    Re: SD 4000 IS / IXUS 300 HS / IXY 30S porting thread
    « Reply #224 on: 18 / February / 2011, 20:32:08 »
    Code: [Select]
    (int*)0x1938=(int)taskHook
    (int*)0x193C=(int)taskHook
    does not work on SD4000.

    It cause ASSERT in SpyTask on CHDK autostart every second or third camera start:
    Code: [Select]
    ASSERT!! FsIoNotify.c Line 457
    Occured Time  2011:02:19 02:26:01
    Task ID: 1441797
    Task name: SpyTask
    SP: 0x0037D000
    StackDump:
    0x00000000
    0xFF86EA84
    0x000001C9
    0x00000000
    0x00000003
    0x00020000
    0x0018DCF4
    0x19980218
    0x19980218
    0x19980218
    0x19980218
    0xFF86EBA8
    0x00020000
    0x0018DCF4
    0x00000003
    0x00000000
    0x19980218
    0xFF86F184
    0x0018DCF4
    0x000000AF
    0x0017B4E4
    0x19980218
    0x19980218
    0x00162270
    0x00168AD5
    0x00000003
    0x00000004
    0x00000005
    0x00000006
    0x0018DCF4
    0x000000AF
    0x0017B4E4
    0x19980218
    0x00152F6B
    0x0017C290
    0x001532D7
    0x0018A29C
    0x00000016
    0x00000191
    0x00153399
    0x00000044
    0x0000D273
    0x0018A29C
    0x00000016
    0x00000191
    0x19980218
    0x19980218
    0x19980218
    0x0018A29C
    0x00000016
    0x00000191
    0x19980218
    0x0014B511
    0x00372708
    0x19980218
    0x19980218
    0x19980218
    0xFF816AEC
    0x19980218
    0x19980218
    0x00000208
    ShootConDump:
    0f 0f 0f 0f 0f 0f 0f 0f 0f 0f
    CameraConDump:
    07 0f 0f 0f 0f 0f 0f 0f 0f 0f
    00000160: *** Camera Log Start ***

    00000200: UI:LogicalEvent:0x5001:adr:0,Para:0

    00000260: SS:S-Imag

    00000260: UI:ScreenLock

    00000260: UI:ScreenUnLock

    00000270: UI:LogicalEvent:0x300a:adr:0,Para:0

    00000270: UI:HDMIConnectCnt

    00000270: UI:PB.Create

    00000270: UI:DispSwCon_TurnOnBackLight

    00000270: UI:TurnOnBackLight

    00000300: UI:LogicalEvent:0x5006:adr:0,Para:0

    00000430: UI:DispSwCon_MuteOffPhysicalScreen

    00000430: UI:MuteOffPhysicalScreen

    00000430: UI:LogicalEvent:0x3138:adr:0,Para:0

    00000440: UI:LogicalEvent:0x112c:adr:0,Para:0

    00000460: UI:ScreenLock

    00000460: UI:ScreenUnLock

    00000480: UI:PB.CreateE

    00000480: UI:AC:StartPB

    00000480: UI:DispSwCon_TurnOnDisplayDevice

    00000480: UI:AC:EBtn

    00000480: UI:PB.Start

    00000480: UI:DSIC:47,0

    00000480: UI:CC_CompFlhJpg

    00000480: UI:_CompFlhJpg

    00000480: UI:PB.Flash

    00000480: UI:ScreenLock

    00000490: UI:DSIC:47,0

    00000490: UI:ScreenUnLock

    00000520: UI:Button:0x00001004:UnpressPBButton

    *

    Offline valldez

    • *
    • 3
    • IXUS 300 HS
  • Publish
    Re: SD 4000 IS / IXUS 300 HS / IXY 30S porting thread
    « Reply #225 on: 19 / February / 2011, 13:25:00 »
    Hello, I would ask why the beta version chdk 6 to 10 do not work properly as a script
    "Motion Detection.bas, mini.lua? If chdk Beta v10 replace the file "DISKBOOT.BIN" from chdk v5 beta,
    so these scripts work, but not working ult_intrvl.bas, sunset, etc.
    How can I do to work all these scripts on one card? ???
    Thanks for any help.

    Please excuse my English, I write with translator from the Czech Republic.

  • Publish
    Re: SD 4000 IS / IXUS 300 HS / IXY 30S porting thread
    « Reply #226 on: 20 / February / 2011, 03:52:37 »
    We have to check if override cause any change:
    1. image processing
    2. exif data
    3. nothing
    AFAIK it common override image processing does work, but exif doesn't reflect changes.

    Best to go with big differents in settings, so its easier to spot any changes to image.

    Here there is a sample of my results
    TV mode, on the left I choosed iso 16, on the right iso 125. Both are from TV mode 10''  
    http://img695.imageshack.us/i/iso125iso13.jpg/

    I tried some more times and it seems that the image quality is better both in raw and in jpg using iso 16 (that I obtained requiring ISO 20).


    i find how can get ISO overwrite better working.in platform/generic/shooting.c

    i change shooting_set_iso_real.
    but this of course does not work with older Kamera.i try to move the function to platform code, but not work

    PROPCASE_ISO_MODE

    on new camera contain a real iso value.but you can not set any iso value.
    values that work is
    125
    160
    200
    320
    400
    640
    800
    1000
    1250
    1600
    2000

    If you choose a value that is not in the table exif and ISO view of Canon firmware round to near value of this.exposure is always correct.

    when you have not press the shutter half and not set in iso overwrite any of this values i list, and stay in shooting mode, the preview is green channel only .when you press shutter half, then preview have correct colors and record image look ok.

    below ISO 125 is not possible.

    when you search for hex values of ISO, for example 800, and look that near hex values of the instruction are too in the table, you can find code in Canon Firmware.

    but i do not understand this, it look that it set another control register depend on this values.
    I only do in debug view a compare of props, but i do not find a new value that is not in propcase 4.
    other ISO values need not set.



    void shooting_set_iso_real(short iso, short is_now)
    {
        long iso2=iso;
    if ((mode_get()&MODE_MASK) != MODE_PLAY){
       if (iso>0){ _SetPropertyCase(PROPCASE_ISO_MODE, &iso2, sizeof(iso2));
       //_SetPropertyCase(PROPCASE_SV_MARKET, &iso2, sizeof(iso2));
        }
    }
    }

    because our camera have no KEY_DISPLAY to get alt +/- debug action work(to change prog page easy with that key or compare progs with previous), i hack the code to get usable.

    Must be do in core/gui.c

    #if !CAM_HAS_ERASE_BUTTON
    //Alt mode
    - #define SHORTCUT_TOGGLE_RAW          KEY_DISPLAY
    + #define SHORTCUT_TOGGLE_RAW          KEY_SET
     #define SHORTCUT_MF_TOGGLE           KEY_UP

    but of course for normal use its usable in that way, every set button change raw save on or off.Its only usefull to watch for prop values.

    but maybe somebody have a better idea.I use set, because this key is not need important, key right can do same, and i use this to enter in menu.

    I see that key left always in chdk do not work to go to previous menu, i find that good too.

    EDIT:

    to get the ISO value show correct you need also call the function   "BL      shooting_expo_param_override\n"  // +     earlier

    I add this in Ixus1000 capt_seq.c

    "loc_FF883700:\n"
    +        "BL      shooting_expo_param_override\n"  // +      
            "BL      sub_FF883D88\n"
            "BL      shooting_expo_param_override\n"  // +
                     "BL      sub_FF880F24\n"

     as far i understand chdk it doesnt matter to call this function twice, because bracketing depend on file numbers.
    what i think is  not good in chdk, is that bracketing in series mode, do not reset values after some shoots.

    for example when i shoot in series mode and press and hold shoot key, the values are always change.i think better is, when can choose that after 1 or 2 or 3 or 4 or 5 or 6 or 7 the values are reset to default.
    « Last Edit: 20 / February / 2011, 04:08:22 by Bernd R »
    Ixus 1000 HS

  • Publish
    Re: SD 4000 IS / IXUS 300 HS / IXY 30S porting thread
    « Reply #227 on: 21 / February / 2011, 00:03:15 »
    Hi, quick question I'm hoping one of you experts can answer easily.  Is it possible to enable manual focus in video mode or disable the continuous auto focus?  I tried the Misc Stuff > Use zoom buttons for MF, but it didn't seem to work.  I know it possible to lock the focus by a half press and then press left, but that is annoying and difficult to do quickly.

    I find it frustrating that this camera touts about low light abilities but the video capture in low light is horrible since it can't seem to maintain a constant focus and keeps focusing in and out.


    *

    Offline na01

    • *
    • 17
  • Publish
    Re: SD 4000 IS / IXUS 300 HS / IXY 30S porting thread
    « Reply #228 on: 21 / February / 2011, 08:53:51 »
    as far as I know manual focus does not work yet for still images, I suppose that a similar problem exists with video mode

    *

    Offline Yury

    • *
    • 15
    • IXUS 300HS 1.00D, IXUS 980IS 1.01B
  • Publish
    Re: SD 4000 IS / IXUS 300 HS / IXY 30S porting thread
    « Reply #229 on: 21 / February / 2011, 20:19:05 »
    na01, yes, you are right. For example "Override Subj. Dist. Value (MF)" don't work. Camera's screen become black and camera not respond, only power button return it to work.

     

    Related Topics