| |
![]() >> TRAIL Magazin Yeah! | |
|



Added by Fe50


Added by Fe50


Added by Fe50


Added by Fe50


Added by Fe50fe50
Edit
- 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
Edit
- 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
Edit
- 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
Edit
| 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
Edit
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
Edit
long exposures
Edit
- 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
Edit
- 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
Edit
- 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
Edit
- 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
Edit
- 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
Edit
- 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
Edit
ewavr's 12to10.c
Edit
#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...
Edit
Allbest #51 Menu Views
Edit
- Screenshots of Allbest #51 - 425 from SD400:
File:Allbest51-425 SD400 ExtraPhotoOperations.jpg?






Scripting commands
Edit
- This is work in process...
| 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
Edit
| 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 |





























