|
fe50
- My cameras: Ixus 50 / SD400 fw. 1.01b — Ixus 860is / SD870 fw. 1.00C — SX10 fw. 1.01a
- My contributions
There is always something to learn,
Repetition proves it's worth
Without those moments, we would not remember
Sonata Arctica - Everything Fades To Gray
Links
- Wikia: German/Pixelfehler_entfernen (german)
- Wikia: German/Manuelle_Bootkennung (german)
- Wikia: CHDK/Installing_with_Cardtricks
- Wikia: Motion Detection parameters
- Forum: Enable DNG support guidance (SX10)
- Forum: Dump the fw with CardTricks (NewDryOS)
- Forum: Multi partitioning support & MS Windows --- in-camera --- Swap partitions with SDM installer
- Forum: Fast MD with burst/preview mode by fudgey
- Forum: Fast MD guidance
- Forum: MD+
- Forum: Scriptless Tv bracketing --- SD990 guidance
- Forum: ISO Override feature tested on A570
- Forum: any meaning to sv, tv, bv, or av values?
- Forum: SX10 beta version: ISO3200 mode & flash
- Forum: Intervalometer / creating time lapse videos with VirtualDub, forum dl, linux
- Forum: E18
- Forum: transfer RAW images via USB on the SX10
- Forum: Apple Macintosh installing CHDK Help by an0n
- Forum: about RAW (reyalP)
- Forum: set_tv_* and friends, explained by reyalP
- Forum: Aperture vs. ND filter
- Forum: LCD / display off --- S95
- Forum: DNG tut
- Web: How to NOT hide extensions in Windows
- Web: 78 Photography Rules for Complete Idiots
Dev Links
- Forum: boot logo
- Forum: Mode dials and Playback pushbuttons
- Forum: CHDK PTP interface
- Forum: The difference between malloc() and umalloc()
- Forum: blinking the G11
- Forum: TagMe.Lua by stift (eng), (de)
- Forum: fi2 encoder/decoder
- Forum: Dryos Basic scripting & Canon Basic
- Forum: reyalP's Canon basic udumper
- Forum: badpixel.Lua dissection, by ewavr
- Forum: fl_tbl[ types, by philmoz]
- Forum: new propsets, by philmoz
- Forum: test scripts, by reyalP
- Forum: FAT32 bootable, by philmoz
- Forum: SX220 get_drive_mode prop
- Forum: Arduino& USB
- Forum: DNG4PS-2 by srsa_4c
Mirrors
| File(s) | Version' | Mirror(s) | Note(s) |
|---|---|---|---|
| CardTricks | 1.44 | mirror2 -- mirror3 -- mirror4 | sfx .exe, ~510kB |
| CardTricks | 1.45 DSLR | mirror2 | with CF-card support, sfx .exe, ~510kB |
| CameraVersion | 1.1 | mirror2 | sfx .exe, ~2.6MB |
| CHDK-Shell | 2.80 FULL | mirror1 | with gcc devkits, sfx .exe, ~18.8MB |
CHDK package filenames
s2is-100e-0.9.9-865-full_BETA.zip | | | | | | | | | | | +-- optional: BETA means: port is in beta state, some minor features may not work | | | | +------- optional: package type, full means: complete package incl. lang files, fonts etc. | | | +------------ SVN trunk version, the development build number (automatically set) | | +----------------- CHDK version number (manually set) | +---------------------- firmware version +--------------------------- camera model
NEW CHDK features
long exposures
|
IMPORTANT: The content of this page is outdated. If you have checked or updated this page and found the content to be suitable, please remove this notice. |
- Forum thread: [1]
- The following cameras now has the long exposure possibility, this means: no more limit to 64 seconds, exposure times up to 2000 seconds are available!
a530, a540, a550, a560, a570, a590, a630, a710 g9 ixus70_sd1000, ixus80_sd1100, ixus870_sd880, ixus90_sd790, ixus950_sd850, ixus970_sd890 s3, s5 sx1, sx10, sx200
PTP stuff
- PTP forum thread: [2]
- ewavr's test versions & tools: [3]
- The PTP stuff is available for following cameras:
a480-100b a540-100b (patch by reyalP, [4]) a590-100e, a590-101b a610-100e, a610-100f, a650-100d (patch by lauer, [5]) a710-100a a720-100c sx1-201a sx10-101a, sx10-102b sx200is-100c ixus700_sd500-101a
Scripts
- These scripts or script fragments are samples from my private collection; they are tested for my privat purposes only !
- They may or may not work on other cameras - use them on your own risk !
unleash Canon TL
- only for Digic III cameras with internal time lapse video feature, like the SD870
- With this script you can override the Canon time lapse value...
- The interval value is set to 5 seconds by default, adjustable in the script menu;
this will be active until the value is changed in the Canon menu or until the camera is powered off. - Just load the script, set the time you want & start it with the shutter button;
then leave <Alt> mode and make your time lapse or whatever else you want to do... - tested on: SD870
- last update: 06-Feb-2010/fe50
You can also set other propcases with this script; DO NOT change the first parameter (propid, default value is 165) until you exactly know what you are doing !
rem override Canon interval, Digic III prop165, value in ms
@title set tl propcase
@param a propid
@default a 165
@param b new value in s
@default b 5
@param d propcase factor
@default d 1000
b = b * d
get_prop a c
print "Old value : " , c
set_prop a b
print "Now set to: " , b
sleep 2000
end
double intervalometer
- simple Lua intervalometer with adjustable shot count
- inner loop: takes x shots in the given interval
- outer loop: runs inner loop in the given interval
- works with "old style" shutter button emulation instead of shoot(), should work on all cameras, also on older Ixus models, OS and image processor shouldn't matter
- tested with: SD400, SD870, SX10
- last update: 06-Feb-2010/fe50
--[[
@title double intervalometer
@param a interval inner loop, min
@default a 0
@param b ...sec
@default b 5
@param c shots in inner loop
@default c 3
@param d interval outer loop, min
@default d 0
@param e ...sec
@default e 15
--]]
Interval1 = a*60000 + b*1000
Interval2 = d*60000 + e*1000
InnerShots = 0
OuterShots = 0
-- (dummy) restore() is called when the script is interrupted
function restore()
--print("restore() !")
--sleep(3000)
end
-- take the image; shoot() may be problematic on some ixus cams,
-- so the traditional button emulation is used...
function TakePicture()
press("shoot_half")
press("shoot_full")
release("shoot_full")
repeat
sleep(50)
until get_shooting() == false
end
-- takes c images with interval given as first two parameters
function InnerLoop()
StartTick = get_tick_count()
TakePicture()
InnerShots = InnerShots +1
sleep(Interval1 - (get_tick_count() - StartTick))
end
-- MAIN -------------------------------------------------------------------------------------
sleep(1000)
-- main loop ("outer loop"), calls the inner loop with the interval given in parameter d and e
repeat -- runs endless...
StartTick = get_tick_count()
for z=1, c do
InnerLoop()
end
OuterShots = OuterShots +1
print("o:",OuterShots," total:",InnerShots)
sleep(Interval2 - (get_tick_count() - StartTick))
until false
fast shooter
- simple duration shooter script
- this script simply holds (virtualy, of course) the shutter button down for a while...
- useful for fast & unlimited bracketing in continuous mode:
- set up CHDK bracketing, e.g. [+/-] bracketing with [2/3 Ev] steps
- set the camera to continuous mode (or AF cont. mode), set up the camera for your needs (e.g. camera mode, ISO, focus, flash ...)
- load & run the script (adjust the Duration in the script menu to your needs)
- tested with: SX10
- last update: 17-Apr-2010/fe50
--[[
@title fast shooter
@param a Duration, min
@default a 0
@param b ...sec
@default b 20
--]]
Interval = a*60000 + b*1000 -- we need the time value in ms
StartTick = get_tick_count() -- start time value
press("shoot_half") -- prepare...
repeat sleep(50) until get_shooting() == true -- wait until focus is ok
press("shoot_full") -- start capturing...
sleep(Interval - (get_tick_count() - StartTick))-- wait
release("shoot_full") -- time is over, release the shutter
release("shoot_half")
Tools
ewavr's 12to10.c
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <sys/stat.h>
#define MAX_ROWPIX 10000
#define ROWLEN_12 ((MAX_ROWPIX*12)/8)
#define ROWLEN_10 ((MAX_ROWPIX*10)/8)
#define OUT_FILE_NAME "out.crw"
int main(int argc, char **argv)
{
FILE *rawin=NULL, *rawout=NULL;
unsigned char rawrow12[ROWLEN_12];
unsigned char rawrow10[ROWLEN_10];
unsigned short row[MAX_ROWPIX];
unsigned int rowpix, rows, rowlen_12, rowlen_10;
struct stat info;
unsigned int nrow,i,src;
if (argc==1) {
printf("filename expected");
return 1;
}
rawin=fopen(argv[1],"r+b");
rawout=fopen(OUT_FILE_NAME,"w+b");
if (!rawin || !rawout) {
printf("error 1");
return 1;
}
if (stat(argv[1],&info)!=0) { printf("file not exist\n"); return 2;}
switch (info.st_size){
case (3720*2772*12)/8: rowpix=3720; rows=2772; break; // another 10 MP with 12 bit RAW
case (4480*3348*12)/8: rowpix=4480; rows=3348; break; // 14.7 MP with 12 bit RAW
default: printf("file is unknown\n"); return 3;
}
rowlen_12=(rowpix*12)/8;
rowlen_10=(rowpix*10)/8;
printf("processing %s", argv[1]);
for (nrow=0; nrow<rows; nrow++) {
fread(rawrow12, 1, rowlen_12, rawin);
for (src=0, i=0; i<rowpix; src+=6, i+=4) {
row[i+0]=((0xFF0&(((unsigned short)rawrow12[src+1])<<4)) | (rawrow12[src+0] >> 4)) >>2;
row[i+1]=((0xF00&(((unsigned short)rawrow12[src+0])<<8)) | (rawrow12[src+3] )) >>2;
row[i+2]=((0xFF0&(((unsigned short)rawrow12[src+2])<<4)) | (rawrow12[src+5] >> 4)) >>2;
row[i+3]=((0xF00&(((unsigned short)rawrow12[src+5])<<8)) | (rawrow12[src+4] )) >>2;
}
for (src=0, i=0; i<rowpix; src+=10, i+=8) {
rawrow10[src+0]=(row[i+0]<<6)|(row[i+1]>>4);
rawrow10[src+1]=(row[i+0]>>2);
rawrow10[src+2]=(row[i+2]<<2)|(row[i+3]>>8);
rawrow10[src+3]=(row[i+1]<<4)|(row[i+2]>>6);
rawrow10[src+4]=(row[i+4]>>2);
rawrow10[src+5]=(row[i+3]);
rawrow10[src+6]=(row[i+5]<<4)|(row[i+6]>>6);
rawrow10[src+7]=(row[i+4]<<6)|(row[i+5]>>4);
rawrow10[src+8]=(row[i+7]);
rawrow10[src+9]=(row[i+6]<<2)|(row[i+7]>>8);
}
fwrite(rawrow10, 1, rowlen_10, rawout);
}
fclose(rawin);
fclose(rawout);
return 0;
}
Adding support for new fw...
Scripting commands
|
IMPORTANT: The content of this page is outdated. If you have checked or updated this page and found the content to be suitable, please remove this notice. |
| Command | Lua | uBasic | bla1 | bla2 | bla3 | bla4 | bla5 |
| autostarted | yes | yes | |||||
| binstr | yes | no | |||||
| bitand | yes | no | |||||
| bitnot | yes | no | |||||
| bitor | yes | no | |||||
| bitshl | yes | no | |||||
| bitshri | yes | no | |||||
| bitshru | yes | no | |||||
| bitxor | yes | no | |||||
| call_event_proc | yes | no | |||||
| call_func_ptr | yes | no | |||||
| click | yes | yes | |||||
| cls | yes | yes | |||||
| console_redraw | yes | yes | |||||
| exit_alt | yes | yes | |||||
| get_autostart | yes | yes | |||||
| get_av96 | yes | yes | |||||
| get_buildinfo | yes | no | |||||
| get_bv96 | yes | yes | |||||
| get_day_seconds | yes | yes | |||||
| get_disk_size | yes | yes | |||||
| get_dof | yes | yes | |||||
| get_drive_mode | yes | yes | |||||
| get_ev | yes | yes | |||||
| get_exp_count | yes | yes | |||||
| get_far_limit | yes | yes | |||||
| get_flash_mode | yes | yes | |||||
| get_flash_params_count | yes | no | |||||
| get_flash_ready | yes | yes | |||||
| get_focus | yes | yes | |||||
| get_focus_mode | yes | yes | |||||
| get_free_disk_space | yes | yes | |||||
| get_histo_range | yes | yes | |||||
| get_hyp_dist | yes | yes | |||||
| get_IS_mode | yes | yes | |||||
| get_iso_market | yes | yes | |||||
| get_iso_mode | yes | yes | |||||
| get_iso_real | yes | yes | |||||
| get_jpg_count | yes | yes | |||||
| get_mode | yes | yes | |||||
| get_movie_status | yes | yes | |||||
| get_nd_present | yes | yes | |||||
| get_near_limit | yes | yes | |||||
| get_orientation_sensor | yes | yes | |||||
| get_parameter_data | yes | no | |||||
| get_prop | yes | yes | |||||
| get_prop_str | yes | no | |||||
| get_propset | yes | yes | |||||
| get_raw | yes | yes | |||||
| get_raw_count | yes | yes | |||||
| get_raw_nr | yes | yes | |||||
| get_shooting | yes | yes | |||||
| get_sv96 | yes | yes | |||||
| get_temperature | yes | yes | |||||
| get_tick_count | yes | yes | |||||
| get_time | yes | yes | |||||
| get_tv96 | yes | yes | |||||
| get_usb_power | yes | yes | |||||
| get_user_av_id | yes | yes | |||||
| get_user_av96 | yes | yes | |||||
| get_user_tv_id | yes | yes | |||||
| get_user_tv96 | yes | yes | |||||
| get_vbatt | yes | yes | |||||
| get_zoom | yes | yes | |||||
| get_zoom_steps | yes | yes | |||||
| is_capture_mode_valid | yes | yes | |||||
| is_key | yes | yes | |||||
| is_pressed | yes | yes | |||||
| md_detect_motion | yes | yes | |||||
| md_get_cell_diff | yes | yes | |||||
| peek | yes | no | |||||
| play_sound | yes | no | |||||
| poke | yes | no | |||||
| post_levent_for_npt | yes | no | |||||
| post_levent_to_ui | yes | no | |||||
| press | yes | yes | |||||
| yes | yes | ||||||
| print_screen | yes | yes | |||||
| raw_merge_start | yes | no | |||||
| raw_merge_add | yes | no | |||||
| raw_merge_end | yes | no | |||||
| reboot | yes | yes | |||||
| release | yes | yes | |||||
| set_aflock | yes | yes | |||||
| set_autostart | yes | yes | |||||
| set_av96 | yes | yes | |||||
| set_av96_direct | yes | yes | |||||
| set_backlight | yes | yes | |||||
| set_capture_mode | yes | yes | |||||
| set_capture_mode_canon | yes | yes | |||||
| set_console_autoredraw | yes | yes | |||||
| set_console_layout | yes | yes | |||||
| set_curve_state | yes | no | |||||
| set_ev | yes | yes | |||||
| set_focus | yes | yes | |||||
| set_iso_mode | yes | yes | |||||
| set_iso_real | yes | yes | |||||
| set_led | yes | yes | |||||
| set_levent_active | yes | no | |||||
| set_levent_script_mode | yes | no | |||||
| set_movie_status | yes | yes | |||||
| set_nd_filter | yes | yes | |||||
| set_prop | yes | yes | |||||
| set_prop_str | yes | no | |||||
| set_raw | yes | yes | |||||
| set_raw_develop | yes | no | |||||
| set_raw_nr | yes | yes | |||||
| set_record | yes | yes | |||||
| set_sv96 | yes | yes | |||||
| set_tv96 | yes | yes | |||||
| set_tv96_direct | yes | yes | |||||
| set_user_av_by_id | yes | yes | |||||
| set_user_av_by_id_rel | yes | yes | |||||
| set_user_av96 | yes | yes | |||||
| set_user_tv_by_id | yes | yes | |||||
| set_user_tv_by_id_rel | yes | yes | |||||
| set_user_tv96 | yes | yes | |||||
| set_zoom | yes | yes | |||||
| set_zoom_rel | yes | yes | |||||
| set_zoom_speed | yes | yes | |||||
| shoot | yes | yes | |||||
| shot_histo_enable | yes | yes | |||||
| shut_down | yes | yes | |||||
| sleep | yes | yes | |||||
| switch_mode_usb | yes | no | |||||
| wait_click | yes | yes | |||||
| wheel_left | yes | yes | |||||
| wheel_right | yes | yes | |||||
| get_capture_mode | no | yes | |||||
| get_display_mode | no | yes | |||||
| get_platform_id | no | yes | |||||
| get_quality | no | yes | |||||
| get_resolution | no | yes | |||||
| get_video_button | no | yes | |||||
| playsound | no | yes | |||||
| random | no | yes | |||||
| set_quality | no | yes | |||||
| set_resolution | no | yes |
Test Tables
| Name | Link | License | Platform | Description | Locale | Notes |
|---|---|---|---|---|---|---|
| DNG4PS-2 | Wikia link | Windows, Mac, Linux | Open Source | Converter - converts CHDK RAW files into Digital Negative (DNG) format | en, various | |
| XNView | Web link | Windows, Mac, Linux | Free (nonc) | Powerfull multi-format image viewer & converter | en, de, fr |
