SD 4000 IS / IXUS 300 HS / IXY 30S porting thread - page 23 - DryOS Development - CHDK Forum

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

  • 322 Replies
  • 193588 Views
*

Offline pixeldoc2000

  • ****
  • 356
  • IXUS900Ti 1.00C, IXUS300HS 1.00D
    • pixel::doc homebase
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

  • ****
  • 356
  • IXUS900Ti 1.00C, IXUS300HS 1.00D
    • pixel::doc homebase
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

  • *****
  • 3450
    • Photos
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)
  g5x (1.00c, 1.01a, 1.01b)
  g7x2 (1.01a, 1.01b, 1.10b)

*

Offline pixeldoc2000

  • ****
  • 356
  • IXUS900Ti 1.00C, IXUS300HS 1.00D
    • pixel::doc homebase
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

  • ****
  • 356
  • IXUS900Ti 1.00C, IXUS300HS 1.00D
    • pixel::doc homebase
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
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.

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

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
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
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


SimplePortal © 2008-2014, SimplePortal