When turning on the GPS logger feature in the main camera menu, every so many minutes the camera itself will turn on in playback mode and stay there until I turn it off again - and this repeats.(...)Is this a known limitation of CHDK with that function, or some kind of bug?
Also - hint, hint.. CHDK for G7X! =)
I now mainly use the S100 as a GPS logger for my G7 X. When turning on the GPS logger feature in the main camera menu, every so many minutes the camera itself will turn on in playback mode and stay there until I turn it off again - and this repeats.
For the time being I use a separate card when I want to use it as a GPS logger, which is more often than not these days.
Apparently, the camera uses the main processor (DIGIC) in connection with the GPS logger and this specific condition was not considered by the developer making the port. CHDK only supports 2 operating modes when executing its startup sequence: record (aka shooting) mode and playback mode.
I can take a look at this on my S100. I assume that what is happening here involves the camera's built-in GPS tracking function needing to periodically wake up the DIGIC so that it can dump tracking coordinates to the SD card?
I guess there are three options. detecting that the camera has been started without the playback or on/off button being presseddetecting some other flag that indicates a GPS power upturning the camera off automatically if no buttons are pressed after a fixed delay.In the first two cases, we would also need to figure out how to get through boot.c without going into playback mode.
The first place to look at would behttps://www.assembla.com/code/chdk/subversion/nodes/4153/trunk/platform/s100/sub/100d/boot.c#ln343Try logging the parameters passed to sub_FF024AF4 and see if there's a difference between playback and GPS-log mode
*(int*)(0x26E0+0x4) = (*(int*)0xC022F48C)&4 ? 0x200000 : 0x100000;
Another option might be to look at line 141 :Code: [Select] *(int*)(0x26E0+0x4) = (*(int*)0xC022F48C)&4 ? 0x200000 : 0x100000;where we try to detect a "held" On/Off button. It would make the S100 a special case but requiring either the On/Off button or Playback button be held down might allow the code to be turned back off if it wasn't. It might even be possible that there is another 'interesing' bit related to GPS startup there?
sub_ff022bd8:ff022bd8: e59f0030 ldr r0, [pc, #48] ; ff022c10: (00001bf4) ff022bdc: e5901000 ldr r1, [r0]ff022be0: e3510000 cmp r1, #0ff022be4: 03a00000 moveq r0, #0ff022be8: 012fff1e bxeq lrff022bec: e5900004 ldr r0, [r0, #4]ff022bf0: e3500001 cmp r0, #1ff022bf4: 13a00002 movne r0, #2ff022bf8: e12fff1e bx lrloc_ff022bfc:ff022bfc: ea0000f5 b loc_ff022fd8 ; <Dcdc_Rtc_Set_Timer_Reg_FW>ff022c00: e3a02000 mov r2, #0ff022c04: e1a01002 mov r1, r2ff022c08: e1a00002 mov r0, r2ff022c0c: ea0000f1 b loc_ff022fd8 ; <Dcdc_Rtc_Set_Timer_Reg_FW>
Hopefully the 'GPS start' signal doesn't go away like the button press does...
I stored the value in *0xC022F48C during boot.c and dumped to the screen via spytask.
Quote from: waterwingz on 09 / May / 2015, 12:10:13I stored the value in *0xC022F48C during boot.c and dumped to the screen via spytask.That's the MMIO address of the ON/OFF button's GPIO pin, it's surely not related to the GPS.
If you take a look at sub_FF024AF4 you'll notice that it can set 4 bits of *(0x26e4). We'll need one of the other two bits for signalling 'GPS log' startup mode (this is still only speculation), and we'll likely need to prevent CHDK from starting in that case.
I would read and display the value returned by sub_ff022bd8 (note that I'm using 100d addresses for my posts because that's what I have disassembled).
Started by vine General Discussion and Assistance
Started by ledom Hotwire! Hardware Mods, Accessories and Insights
Started by antiparanoic Feature Requests
Started by Cell General Help and Assistance on using CHDK stable releases
Started by Salimander General Help and Assistance on using CHDK stable releases