SX210 IS no intervalometer... - page 2 - General Help and Assistance on using CHDK stable releases - CHDK Forum supplierdeeply

SX210 IS no intervalometer...

  • 21 Replies
  • 6103 Views
Re: SX210 IS no intervalometer...
« Reply #10 on: 29 / November / 2013, 15:36:05 »
Advertisements
Seems unlikely the port is so broken that something as simple as interval.bas will not run.
Not at all... It's marked as alpha for a reason. See the last pages of the porting thread.
Ummm ... should this really be available from the autobuild then?
Ported :   A1200    SD940   G10    Powershot N    G16

*

Offline BZjoe

  • *
  • 12
Re: SX210 IS no intervalometer...
« Reply #11 on: 29 / November / 2013, 15:51:26 »
Everything seems to work fine - I can set it to continuous shooting mode and it takes pictures as long as I hold the button down. Have not received any errors while shooting normally. I've used the zoom while shooting and in movie mode with no errors.

*

Offline srsa_4c

  • ******
  • 4426
Re: SX210 IS no intervalometer...
« Reply #12 on: 29 / November / 2013, 16:14:39 »
@BZjoe

Try running the "ubtest.bas" script, it's in the CHDK/SCRIPTS/TEST directory. Can it finish without errors?

Ummm ... should this really be available from the autobuild then?
It's not dangerous, and none of the testers in that thread reported serious issues - this particular feature somehow wasn't tested.


Looks like a test build will be needed...

- keymap has some issues: KEY_SHOOT_FULL is incorrect, KEY_SHOOT_FULL_ONLY missing
- stubs_entry.S shows two bad fw variable addresses
« Last Edit: 29 / November / 2013, 16:22:53 by srsa_4c »

*

Offline srsa_4c

  • ******
  • 4426
Re: SX210 IS no intervalometer...
« Reply #13 on: 29 / November / 2013, 16:36:32 »
Test build with these changes:
Code: [Select]
Index: platform/sx210is/kbd.c
===================================================================
--- platform/sx210is/kbd.c (revision 3251)
+++ platform/sx210is/kbd.c (working copy)
@@ -287,7 +287,8 @@
 
  //door open a19b -> 219b
  //power b -> 3
- { 0, KEY_SHOOT_FULL , 0x00000002 },  //   b ->    9
+ { 0, KEY_SHOOT_FULL , 0x00002002 },  //   b ->    9
+ { 0, KEY_SHOOT_FULL_ONLY , 0x00000002 },  //   b ->    9
  { 0, KEY_SHOOT_HALF , 0x00002000 },  //a19b -> 819b
  { 0, KEY_UP     , 0x00000080 },  // 9b -> 1b
  { 0, KEY_DOWN , 0x00000100 },  // 19b -> 09b
Index: platform/sx210is/sub/100c/stubs_entry.S
===================================================================
--- platform/sx210is/sub/100c/stubs_entry.S (revision 3251)
+++ platform/sx210is/sub/100c/stubs_entry.S (working copy)
@@ -36,7 +36,7 @@
 DEF(canon_menu_active                       ,0x0000368c) // Found @0xff891c4c
 DEF(canon_shoot_menu_active                 ,0x00008511) // Found @0xff9b5a6c
 DEF(playrec_mode                            ,0x000033bc) // Found @0xff883e64
-//DEF(zoom_status                             ,0x0000d544) // Found @0xffad4e40, ** != ** stubs_min = 0x0000d524 (0xD524)
+DEF(zoom_status                             ,0x0000d544) // Found @0xffad4e40
 DEF(some_flag_for_af_scan                   ,0x000075d8) // Found @0xff970d5c
 // focus_len_table contains zoom focus lengths for use in 'get_focal_length' (main.c).
 // each entry contains 3 int value(s), the first is the zoom focus length.
@@ -44,7 +44,7 @@
 DEF(focus_len_table                         ,0xfffea1cc) // Found @0xfffea1cc
 DEF(zoom_busy                               ,0x00007140) // Found @0xff969464
 DEF(focus_busy                              ,0x00006fc8) // Found @0xff9639d0
-//DEF(recreview_hold                          ,0x00004140) // Found @0xff8a3648, ** != ** stubs_min = 0x00008144 (0x804C+0xF8)
+DEF(recreview_hold                          ,0x00004140) // Found @0xff8a3648
 DEF(viewport_buffers                        ,0xffb64808) // Found @0xff84fd4c
 DEF(active_viewport_buffer                  ,0x00002058) // Found @0xff84fae8
 // Camera appears to have only 1 RAW buffer @ 0x41db3b80 (Found @0xffb2fb2c)
Index: platform/sx210is/sub/100c/stubs_min.S
===================================================================
--- platform/sx210is/sub/100c/stubs_min.S (revision 3251)
+++ platform/sx210is/sub/100c/stubs_min.S (working copy)
@@ -1,6 +1,6 @@
 #include "stubs_asm.h"
 
-DEF(zoom_status,                        0xD524)         // ASM1989  09.19.10 -> FFAD4E40  Like in sx20 at FFAAF3EC search for "TerminateDeliverToZoomController"
-DEF(recreview_hold,                     0x804C + 0xF8)  // ASM1989 08.30.2010 looks like FF9A0B38 0x804C  but not sure about 0x0C -> Not Ok 09.19.10 FF9A1684 like in sx20  was F8
+// DEF(zoom_status,                        0xD524)         // ASM1989  09.19.10 -> FFAD4E40  Like in sx20 at FFAAF3EC search for "TerminateDeliverToZoomController"
+// DEF(recreview_hold,                     0x804C + 0xF8)  // ASM1989 08.30.2010 looks like FF9A0B38 0x804C  but not sure about 0x0C -> Not Ok 09.19.10 FF9A1684 like in sx20  was F8
 DEF(enabled_refresh_physical_screen,    0x9D48+0x20)    // found at FFA1EE18 and FFA1EFB4 and FFA1EE5C -> ASM1989 08.21.2010 ?guesswork, FFA1EDDC  ->0x20  , but maybe 24???
 DEF(led_table,                          0x24A0 + 0x04)  // found at FF860EF0 & FF860EEC  -> ASM1989 08.21.2010 double checked
Diskboot only, do NOT start with the "firm update" method.

edit:
test build removed
« Last Edit: 04 / April / 2015, 12:46:46 by srsa_4c »


*

Offline BZjoe

  • *
  • 12
Re: SX210 IS no intervalometer...
« Reply #14 on: 29 / November / 2013, 16:44:29 »
Ran the "ubtest.bas" command - it stops after two pictures. Here is the LOG FILE:

test plat 12790 pset 3
sleep/tick test
start 6420 end 6930 dif 510
key test - set to end
down
left
up
right
set
key press test
already in rec
current mode  2
exp_count 3825
Av 322 Sv 507 Tv 128
shot - default 3826
exp_count 3826
shoot Tv+2 3827

I then either interrupt it or shut it down...

*

Offline srsa_4c

  • ******
  • 4426
Re: SX210 IS no intervalometer...
« Reply #15 on: 29 / November / 2013, 17:02:29 »
Ran the "ubtest.bas" command - it stops after two pictures.
Thanks. The first shot is done with keypresses, the second uses the shoot command - and that gets stuck. Is it better with the test build?


Further key problems:

- The cam has a video button that has a secondary "print" function. CHDK thinks it is a print button, doesn't know about its other function, scripts that try to record video will not work.
- The playback button is not handled.

@BZjoe
Would you like to test some other keyboard related changes?

*

Offline BZjoe

  • *
  • 12
Re: SX210 IS no intervalometer...
« Reply #16 on: 29 / November / 2013, 17:18:13 »
The test build seems to work - formatted card and copied over all the files including the default scrips. Ran  "ubtest.bas" and "interval.bas". BOTH WORK GREAT :D

Sure!!! I will help out all I can... Joe

*

Offline srsa_4c

  • ******
  • 4426
Re: SX210 IS no intervalometer...
« Reply #17 on: 29 / November / 2013, 17:30:41 »
The test build seems to work - formatted card and copied over all the files including the default scrips. Ran  "ubtest.bas" and "interval.bas". BOTH WORK GREAT :D
8)

Next test build, you should get a new menu entry in "CHDK settings" that lets you specify the ALT button (choices are: video button, playback button).
Code: [Select]
Index: platform/sx210is/kbd.c
===================================================================
--- platform/sx210is/kbd.c (revision 3251)
+++ platform/sx210is/kbd.c (working copy)
@@ -17,7 +17,7 @@
 
 #define DELAY_TIMEOUT 10000
 
-#define KEYS_MASK0 (0x00002182)     // physw_status[0]
+#define KEYS_MASK0 (0x00802182)     // physw_status[0]
 //#define KEYS_MASK1 (0x000FC005)
 
 //#define KEYS_MASK1 (0x000FCF05)
@@ -280,6 +280,10 @@
     }
 }
 
+// NOP
+void kbd_set_alt_mode_key_mask(long key)
+{
+}
 
 static KeyMap keymap[] = {
 
@@ -287,12 +291,13 @@
 
  //door open a19b -> 219b
  //power b -> 3
- { 0, KEY_SHOOT_FULL , 0x00000002 },  //   b ->    9
+ { 0, KEY_SHOOT_FULL , 0x00002002 },  //   b ->    9
+ { 0, KEY_SHOOT_FULL_ONLY , 0x00000002 },  //   b ->    9
  { 0, KEY_SHOOT_HALF , 0x00002000 },  //a19b -> 819b
  { 0, KEY_UP     , 0x00000080 },  // 9b -> 1b
  { 0, KEY_DOWN , 0x00000100 },  // 19b -> 09b
+    { 0, KEY_PLAYBACK        ,0x00800000 }, // Found @0xffb6586c, levent 0x601
 
-
 //                             0x000FC005   #1 Mask
 // { 1, KEY_UP          , 0x00000400 },  // fff -> bff
 // { 1, KEY_DOWN      , 0x00000800 },  // fff -> 7ff
@@ -310,6 +315,7 @@
  { 1, KEY_MENU      , 0x00040000 },  // ASM1989 tested (JH) - fffff -> bffff
  { 1, KEY_DISPLAY         , 0x00020000 },  // ASM1989 tested (JH) - fffff -> dffff
  { 1, KEY_PRINT      , 0x00080000 },  // ASM1989 tested (JH) - fffff -> 7ffff
+ { 1, KEY_VIDEO      , 0x00080000 },
      { 0, 0, 0 }
 };
 /*
Index: platform/sx210is/platform_camera.h
===================================================================
--- platform/sx210is/platform_camera.h (revision 3251)
+++ platform/sx210is/platform_camera.h (working copy)
@@ -35,6 +35,9 @@
 
     #undef  CAM_CAN_SD_OVER_NOT_IN_MF
     #undef  CAM_CAN_UNLOCK_OPTICAL_ZOOM_IN_VIDEO
+    #define CAM_ADJUSTABLE_ALT_BUTTON           1
+    #define CAM_ALT_BUTTON_NAMES                { "Video", "Playback" }
+    #define CAM_ALT_BUTTON_OPTIONS              { KEY_VIDEO, KEY_PLAYBACK }
 
     #define CAM_HAS_VIDEO_BUTTON 1
     #define CAM_VIDEO_QUALITY_ONLY          1
Index: platform/sx210is/sub/100c/stubs_entry.S
===================================================================
--- platform/sx210is/sub/100c/stubs_entry.S (revision 3251)
+++ platform/sx210is/sub/100c/stubs_entry.S (working copy)
@@ -36,7 +36,7 @@
 DEF(canon_menu_active                       ,0x0000368c) // Found @0xff891c4c
 DEF(canon_shoot_menu_active                 ,0x00008511) // Found @0xff9b5a6c
 DEF(playrec_mode                            ,0x000033bc) // Found @0xff883e64
-//DEF(zoom_status                             ,0x0000d544) // Found @0xffad4e40, ** != ** stubs_min = 0x0000d524 (0xD524)
+DEF(zoom_status                             ,0x0000d544) // Found @0xffad4e40
 DEF(some_flag_for_af_scan                   ,0x000075d8) // Found @0xff970d5c
 // focus_len_table contains zoom focus lengths for use in 'get_focal_length' (main.c).
 // each entry contains 3 int value(s), the first is the zoom focus length.
@@ -44,7 +44,7 @@
 DEF(focus_len_table                         ,0xfffea1cc) // Found @0xfffea1cc
 DEF(zoom_busy                               ,0x00007140) // Found @0xff969464
 DEF(focus_busy                              ,0x00006fc8) // Found @0xff9639d0
-//DEF(recreview_hold                          ,0x00004140) // Found @0xff8a3648, ** != ** stubs_min = 0x00008144 (0x804C+0xF8)
+DEF(recreview_hold                          ,0x00004140) // Found @0xff8a3648
 DEF(viewport_buffers                        ,0xffb64808) // Found @0xff84fd4c
 DEF(active_viewport_buffer                  ,0x00002058) // Found @0xff84fae8
 // Camera appears to have only 1 RAW buffer @ 0x41db3b80 (Found @0xffb2fb2c)
Index: platform/sx210is/sub/100c/stubs_min.S
===================================================================
--- platform/sx210is/sub/100c/stubs_min.S (revision 3251)
+++ platform/sx210is/sub/100c/stubs_min.S (working copy)
@@ -1,6 +1,6 @@
 #include "stubs_asm.h"
 
-DEF(zoom_status,                        0xD524)         // ASM1989  09.19.10 -> FFAD4E40  Like in sx20 at FFAAF3EC search for "TerminateDeliverToZoomController"
-DEF(recreview_hold,                     0x804C + 0xF8)  // ASM1989 08.30.2010 looks like FF9A0B38 0x804C  but not sure about 0x0C -> Not Ok 09.19.10 FF9A1684 like in sx20  was F8
+// DEF(zoom_status,                        0xD524)         // ASM1989  09.19.10 -> FFAD4E40  Like in sx20 at FFAAF3EC search for "TerminateDeliverToZoomController"
+// DEF(recreview_hold,                     0x804C + 0xF8)  // ASM1989 08.30.2010 looks like FF9A0B38 0x804C  but not sure about 0x0C -> Not Ok 09.19.10 FF9A1684 like in sx20  was F8
 DEF(enabled_refresh_physical_screen,    0x9D48+0x20)    // found at FFA1EE18 and FFA1EFB4 and FFA1EE5C -> ASM1989 08.21.2010 ?guesswork, FFA1EDDC  ->0x20  , but maybe 24???
 DEF(led_table,                          0x24A0 + 0x04)  // found at FF860EF0 & FF860EEC  -> ASM1989 08.21.2010 double checked
Since I rarely do this, I may have missed something...

edit: included the missing mask change in the diff above
« Last Edit: 29 / November / 2013, 18:06:54 by srsa_4c »


*

Offline srsa_4c

  • ******
  • 4426
Re: SX210 IS no intervalometer...
« Reply #18 on: 29 / November / 2013, 18:05:07 »
I may have missed something...
Indeed, I forgot to include KEY_PLAYBACK in the keymask...


edit:
test build removed
« Last Edit: 04 / April / 2015, 12:45:54 by srsa_4c »

*

Offline BZjoe

  • *
  • 12
Re: SX210 IS no intervalometer...
« Reply #19 on: 29 / November / 2013, 18:35:39 »
It does switch the keys and the interval script work in both key settings. Not sure how the buttons are suppose to work after the switch. The video button works while the new setting is set to "video" - a push switches to ALT mode and a long press does a movie. However, when the new setting is set to playback a long press doesn't do the movie.

Not sure I understand that buttons function except recording a movie quickly while taking pictures. I may need a script that does movies to test it properly?

 

Related Topics