Hi all - CHDK is great; I'm trying to use it to setup a VERY long-term timelapse (10 years).
I'm controlling an A640 (I fully expect it to need replacing before the 10 years are up) with CHDKPTP on a Raspberry Pi and running a640-100b-1.5.1-5694-full in the camera.
The actual scripting happens on the Pi in Python - the Python script sends LUA commands to the camera; for example:
command(rf'./chdkptp.sh -c -e"luar return set_zoom({int(zoom * MAX_ZOOM + 0.5)})")
(my Python 'command' function uses subprocess.run to pass the command to Linux).
This works great, except that I've been pulling my hair out trying to figure out why the camera suddenly started crashing as soon as I issue 'remoteshoot' to CHDKPTP.
Eventually I found out about ROMLOG.LOG - I found this:
ASSERT!! FocusLensController.c Line 203
Occured Time 2021:01:13 00:14:43
TCB: 00272E38
Task: tCaptSeqTa
SP: 0x00272CE4
StackDump:
0x00000000
0x31323032
0x3A31303A
0x30203331
0x34313A30
0x0033343A
0xFFEA4528
0xFFEB2E00
0x00000001
0x00272D50
0x00001026
0x00000000
0x00000000
0x00000000
0xFFC03D1C
0x00000001
0xFFEA47B4
0xFFC11E18
0x002E55BC
0x00001026
0x00000000
0x00272D50
0x0000A468
0x00000000
0x00000000
0xFFEB3264
0x00272D50
0x00000C80
0x00000000
0x00001026
0x0000A45C
0x00007FFF
ShootConDump:
01 02 ff ff ff ff ff ff ff ff
CameraConDump:
08 0b 02 0e 0a 01 ff ff ff ff
00008560: DSIC:0xc,0
00008560: Window:EffectiveLockPhysicalScreen
00008560: Window:IneffectiveLockPhysicalScreen
00008570: LogicalEvent:0x3135:adr:0x0,Para:0
00008570: _ManagePTMProperty
00008570: DSID:0x20
00008580: DSID:0x2a
00008580: DSID:0x2b
00008580: DSID:0x25
00008580: DSIC:0xb4,0
00008580: DSIC:0xb1,0
00008590: DSID:0x20
00008590: DSID:0x2a
00008590: DSID:0x2b
00008590: SS:CaptureModeChange
00008590: SS:EvfMode = 0
00008590: SS:CaptMode = 0x8004
00008600: SS:CaptModeCustom = 0x8004
00008600: SS:CompleteCaptureModeChange
00008600: _DecideCaptureMode
00008600: _StartStill
00008610: SS:UsingRaw[0]
00008610: DSID:0x27
00008610: DSID:0x24
00008610: DSID:0x25
00008620: DSID:0x86
00008620: DSID:0xa5
00008620: DSIC:0xb4,0
00008620: DSIC:0xb1,0
00008620: DSID:0xa4
00008620: DSID:0x24
00008620: DSID:0x25
00008630: DSID:0x24
00008630: DSID:0x25
00008640: DSID:0x25
00008640: DSIC:0xb4,0
00008640: DSIC:0xb1,0
00008640: DSIC:0xb2,0
00008640: DSIC:0x41,6
00008690: Window:IneffectiveLockPhysicalScreen
00008690: _MuteOffStitch
00008690: TerminateDeliverToZoomController
00008690: DSID:0x20
00008700: DSID:0x2a
00008700: DSID:0x2b
00008700: OPTICAL_ZOOM_MIN_POS
00008700: UnpressZoomLever
00008700: SS:StartFinder
00008700: SS:EvfMode = 0
00008700: SS:StartFinder
00008750: DispSwCon_TurnOnDisplayDevice
00008750: DispSwCon_TurnOnDisplayDevice
00008750: LogicalEvent:0x313d:adr:0x0,Para:0
00008760: _EntryStartRecMode
00008760: CaptModeChanger_CheckRTCRrepared
00008760: DispSwCon_MuteOffPhysicalScreen
00008760: MuteOffPhysicalScreen
00008760: DSID:0x11
00008760: _DecideModeDial
00008760: LogiEvnt_NotPowerType:0x0984:adr:0x0,Para:0
00008760: LogiEvnt_NotPowerType:0x0982:adr:0x0,Para:0
00008820: Window:IneffectiveLockPhysicalScreen
00011470: Window:IneffectiveLockPhysicalScreen
00012810: Window:IneffectiveLockPhysicalScreen
00012900: Window:IneffectiveLockPhysicalScreen
00014040: Window:IneffectiveLockPhysicalScreen
00015360: Window:IneffectiveLockPhysicalScreen
00015650: Window:IneffectiveLockPhysicalScreen
00018720: PressSwOne
00018720: SS:UsingRaw[0]
00018720: DSID:0x27
00018720: ShtCon_Activate
00018730: ShtCon_PrepareCapture
00018730: LockChangeFinder
00018730: DSIC:0x61,0
00018730: DSIC:0xe,0
00018730: Window:EffectiveLockPhysicalScreen
00018730: Window:IneffectiveLockPhysicalScreen
00018730: LogicalEvent:0x3135:adr:0x0,Para:0
00018740: DSIC:0xe,0
00018740: SS:PrepareCapture
00018760: ClearEventComp
00018780: Window:IneffectiveLockPhysicalScreen
00018880: Window:IneffectiveLockPhysicalScreen
00019850: PressSwTwo
I tried to look at FocusLensController.c line 203, hoping to get a clue re what's going wrong, but I've downloaded
release-1_5.zip, and I can't find any such file FocusLensController.c in there. (Am I looking in the wrong place?)
It turns out that the last thing I do before 'remoteshoot' is to set focus to infinity, by doing this (my Python script generates these commands):
./chdkptp.sh -c -e"luar return set_prop(12, 1)
./chdkptp.sh -c -e"luar return set_focus(65535)
Something about that crashes the camera.
Advice??
(Oh, FWIW, this is not related to the gphoto2 volume monitor conflict with CHDKPTP; I do a "killall" in my shell script to turn that off.)