Like many photographers, I tend to use my camera for a lot of differnt scenarios. As a result, it was cumbersome to always have to check the settings to make sure I was ready for the next event. Usually I was in a rush and sometimes wondered if I got everything set back to my "normal" setup.
This script simply reports the current status of most of the "To Do" items on my list before taking the next set of pictures. It's a simple script that has helped me avoid the most common mistakes.
Basically there are two screens of information that will be displayed. After the first screen is displayed the script waits for you to press the "set" button then it displays the final page.
There is only one parameter - to save the info in a log rather than display on the screen. The log is named using the hour and minute of the day as the file name (for a log saved at 12:4:33, the name would be LOG_1204.TXT). Here is a sample of the logged data in file "LOG_1711.TXT":
--------------------------
Date: 29/1/2011
Time: 17:11:58
Av: F2.7
Tv: 1/5
ISO: 50 or 80
IS: Continuous
Display: Do Not Show
IMG Size: Large
IMG Qual: 640x480
Disk Size(MB): 3887
Free Space(MB):3569
--------------------------
Place "Status.bas" in CHDK/Scripts folder.
rem Author SkyWalker9
@title Status Check
@param h Save log (0=No)
@default h 0
if h<>1 then goto "skip_log"
z=get_time 0
y=get_time 1
x=get_time 2
m=get_time 3
n=get_time 4
p=get_time 5
g=x*100+y
if g<1 then g=1
if g>9999 then g=9999
print_screen g
print "Date: "m"/"n"/"p
print "Time: "x":"y":"z
print " "
:skip_log
if h=0 then cls
gosub "first_set"
if h=0 then gosub "wait_loop"
gosub "second_set"
goto "finished"
:first_set
x=get_user_av_id
select x
case 9; print "Av: F2.8"
case 10; print "Av: F3.2"
case 11; print "Av: F3.5"
case 12; print "Av: F4.0"
case 13; print "Av: F4.5"
case 14; print "Av: F5.0"
case 15; print "Av: F5.6"
case 16; print "Av: F6.3"
case 17; print "Av: F7.1"
case 18; print "Av: F8.0"
end_select
x=get_user_tv_id
select x
case -12; print "Tv: 15s"
case -11; print "Tv: 13s"
case -10; print "Tv: 10s"
case -9; print "Tv: 8s"
case -8; print "Tv: 6s"
case -7; print "Tv: 5s"
case -6; print "Tv: 4s"
case -5; print "Tv: 3.2s"
case -4; print "Tv: 2.5s"
case -3; print "Tv: 2s"
case -2; print "Tv: 1.6s"
case -1; print "Tv: 1.3s"
case 0; print "Tv: 1s"
case 1; print "Tv: 0.8s "
case 2; print "Tv: 0.6s"
case 3; print "Tv: 0.5s"
case 4; print "Tv: 0.4s"
case 5; print "Tv: 0.3s"
case 6; print "Tv: 1/4"
case 7; print "Tv: 1/5"
case 8; print "Tv: 1/6"
case 9; print "Tv: 1/8"
case 10; print "Tv: 1/10"
case 11; print "Tv: 1/13"
case 12; print "Tv: 1/15"
case 13; print "Tv: 1/20"
case 14; print "Tv: 1/25"
case 15; print "Tv: 1/30"
case 16; print "Tv: 1/40"
case 17; print "Tv: 1/50"
case 18; print "Tv: 1/60"
case 19; print "Tv: 1/80"
case 20; print "Tv: 1/100"
case 21; print "Tv: 1/125"
case 22; print "Tv: 1/160"
case 23; print "Tv: 1/200"
case 24; print "Tv: 1/250"
case 25; print "Tv: 1/320"
case 26; print "Tv: 1/400"
case 27; print "Tv: 1/500"
case 28; print "Tv: 1/640"
case 29; print "Tv: 1/800"
case 30; print "Tv: 1/1000"
case 31; print "Tv: 1/1250"
case 32; print "Tv: 1/1600"
case 33; print "Tv: 1/2000"
case 34; print "Tv: 1/2500"
case 35; print "Tv: 1/3200"
end_select
x=get_iso
select x
case 0; print "ISO: AutoISO"
case 1; print "ISO: 50 or 80"
case 2; print "ISO: 100"
case 3; print "ISO: 200"
case 4; print "ISO: 400"
case 5; print "ISO: 800"
case -1; print "ISO: HiISO"
end_select
x=get_IS_mode
select x
case 0; print "IS: Continuous"
case 1; print "IS: Shoot Only"
case 2; print "IS: Panning"
case 3; print "IS: OFF"
end_select
x=get_display_mode
select x
case 0; print "Display: Show Icons"
case 1; print "Display: Do Not Show"
case 2; print "Display: LCD off"
case 3; print "Display: EVF"
end_select
return
:second_set
x=get_resolution
select x
case 0; print "IMG Size: Large"
case 1; print "IMG Size: Medium 1"
case 2; print "IMG Size: Medium 2"
case 4; print "IMG Size: Send"
case 8; print "IMG Size: Wide"
end_select
x=get_quality
select x
case 0; print "IMG Qual: 1280x720"
case 1; print "IMG Qual: 640x480"
case 2; print "IMG Qual: 320x240"
end_select
x=get_disk_size
x=x/1000
print "Disk Size(MB): "x
x=get_free_disk_space
x=x/1000
print "Free Space(MB):"x
return
:wait_loop
wait_click 10000
is_key k "set"
if k=1 then goto "exit_loop"
goto "wait_loop"
:exit_loop
cls
return
:finished
if h=1 then print_screen 0
end
Update 4-19-11: When using the wait_click statements, some cameras require the timeout be specified; recommend starting with "wait_click 10000" (10secs). The script has been updated to reflect the change.