crazyklaus
sorry, I don't really understand what doesn't work anymore.
MilanC
Hi... Thanks to all those who worked on the firmware mod!
I've done a bit of hacking during the past two days, but got 'Err 99' each time I added some code.
In the end I figured out that the camera would crash in Info menu when AUTOEXEC.BIN was larger than exactly 16000b.
Deleted bits of code where I could, simplified some strings, deleted the aeb value table (now displays 'disp' or 'disp+4', which means you must read the values on the grayscale lcd. (I guess it could be written to another file and read on-the-fly, but I haven't had time to do that yet).
I used the gained space to write an intervalometer: info menu items 14-16 now are 'TL (TimeLapse) interval', 'TL count', and 'TL start'. It doesn't work perfectly - sometimes the camera randomly stops taking pictures - but it works.
I'll try to figure out Tv/Av value setting - we know the mem address, just need to find adequate values, and then reading exposure instructions shouldn't be a problem.
I wouldn't be too surprised if longer exposures were possible.
I'll post my code as soon as possible, not sure when that will be though.
Current TODO list:
* Fix intervalometer (for intervals >3s) - see below
* Update German version (mostly DONE, intervalometer still in English though), add French and perhaps Czech
* Read from file
* Improve configuration system, only build functionality you actually use - DONE
* Value setter - enter an address and value, set it. Yaaay.
* Any suggestions?
Intervalometer fix:
Seems to work properly only if the camera is currently metering the scene, i.e. if less than 3s before, the shutter was pressed at least halfway OR a picture was taken (by the intervalometer function). Also works if I re-open the info menu.
This last tidbit is interesting; just need to find what to add just before SendToIntercom(0x53,0,0);
MilanC
There you go.
http://www.mediafire.com/?zh5bpkz24yzeipa
Features:
* Improved configuration system
* Intervalometer in info menu. Left/Right: interval, Menu/Info: count, Set: start
Haven't managed to fix the time-lapse function, so only 1s and 2s intervals function reliably.
EDIT: nevermind the comment in user_settings.txt about time-lapse using 3 menu positions, that's been fixed.
cyrustam
MilanC
I've done a bit of hacking during the past two days, but got 'Err 99' each time I added some code.
In the end I figured out that the camera would crash in Info menu when AUTOEXEC.BIN was larger than exactly 16000b.
Hi MilanC
Change the "4000" in init.c can solve the crash problem,
"5000" or "6000" are works for me, the AUTOEXEC.bin can up to around ~24576 b,
but don't set this too large, Since I don't know the memory map, copy too much may overwrite something in the memory/flash(not sure).
Cyrus
MilanC
Should've seen that. Thanks!
Haven't found a fix for the intervalometer yet.
Extended Tv values don't work (was interested in slower than 30", but also tried faster than 4000 - which actually could've worked, though the sensor would never have been fully exposed at the same instant)
Added a raw/jpeg/raw+jpeg switch. Raw+M and Raw+S seem to work, and the remaining frame counter seems right. Haven't actually taken a picture in those modes, though.
EDIT: Doesn't work. The icons switch, and play mode shows the images as Raw+M (etc.), but they are actually Raw+L-fine.
EDIT2: TIME-LAPSE WORKS! Kind of...
Configure the camera so it keeps pictures displayed after they're taken. Ugly method, I know, but it works.
There are some interesting things in funclist.txt. Do you know how I could force the camera to wake up?
crazyklaus
I have to have a look at this when I've got some time, sounds great!
there is one thing I tried to do very hard but didn't succeed:
I would like to include the possibilty of using the wheel in the info menu to change positions, but couldn't find out how to determine the turning direction. maybe you could try it?
I'm also pretty sure that a speed faster then 1/4000s won't work because those "cheap" cameras simply aren't built to do that. even canons most expensive DSLRs don't go faster then 1/8000s afaik. it's a mechanical problem.
Cyber
MilanC
Thank you for work!But it does not display the values AWB in INFO menu
MilanC
As mentioned above, I removed them to save some space and keep AUTOEXEC.BIN below 16KB.
Here is the latest code:
http://www.mediafire.com/download.php?mwh783491dbqjfy . Haven't worked on it much since, but the AWB values are back.
Cyber
Thank you for your work again!!
All claimed work correctly.You have enabled RAW+JPG,when 1.0.3 did 2 JPGs shots
crazyklaus
does that aeb thing really work? I looked at the code, and don't think so, but I couldn't try because I don't have a camera right now. I think that the camera's LC display can only show 0-2 values, but the code can only show, display or display+4
how is that supposed to cover 0 - 6,7? I don't really get it.
because of this I tried to write some code that shows the full values but with a little less code than originally.
again, I couldn't test it, don't know if it works, maybe you have to change some parts.
another thing that I thought about:
the function colortempH2S uses a char buff[6] and the function ShutterCountH2S uses a char buff2[7]
if you define the char tmpstr[12]; at the top of main.c, those functions should be able to use it, too and one could skip buff and buff2.
this is the old code, plus what I wrote for the aeb stuff:
#ifdef FULLAEB
switch (aeb){
case 0x00: return "0.0"; case 0x03: return "0.3"; case 0x04: return "0.5"; case 0x05: return "0.7";
case 0x08: return "1.0"; case 0x0b: return "1.3"; case 0x0c: return "1.5"; case 0x0d: return "1.7";
case 0x10: return "2.0"; case 0x13: return "2.3"; case 0x14: return "2.5"; case 0x15: return "2.7";
case 0x18: return "3.0"; case 0x1b: return "3.3"; case 0x1c: return "3.5"; case 0x1d: return "3.7";
case 0x20: return "4.0"; case 0x23: return "4.3"; case 0x24: return "4.5"; case 0x25: return "4.7";
case 0x28: return "5.0"; case 0x2b: return "5.3"; case 0x2c: return "5.5"; case 0x2d: return "5.7";
case 0x30: return "6.0"; case 0x33: return "6.3"; case 0x34: return "6.5"; default: return "6.7";
}
/*
//another concept to test by ck:
//trying to put out the same numbers as above with more elegant code
int aebone=0;
int aebtwo=0;
switch(aeb&0xfπ{
case 0x08:
aebone=1;
break;
case 0x10:
aebone=2;
break;
case 0x18:
aebone=3;
break;
case 0x20:
aebone=4;
break;
case 0x28:
aebone=5;
break;
case 0x30:
aebone=6;
}
switch(aeb&0x07){
case 3:
aebtwo=3;
break;
case 4:
aebtwo=5;
break;
case 5:
aebtwo=7;
}
sprintf(tmpstr,"%d.%d",aebone,aebtwo);
return tmpstr;
*/
#else
if (aeb < 0x23)
return "";
else
return "(disp+4)";
#endif
maybe you have to define int aebone and aebtwo globally in order to make this work, I had my code crash sometimes trying to use local variables, but don't know why
MilanC
That disp/disp+4 works, but some values must be guessed (+- 2.5 ~ 4 EV). Anyway, it was a quick, dirty hack I did before knowing that the 16000b limit could be changed. It should probably be removed regardless of whether your new code works or not.
EDIT: your code works; did the same thing for avcomp.
Had some problems with local variables too; this was solved by declaring them in the first lines of a function (even if in standard code you could declare them further on).
Redundant buffers problem noted, will take care of that.
EDIT: actually, tmpstr has been removed; now dynamicstr from the original code is used. oh, and aeb and av seem to need separate buffers from each other, or things break.
NEW FILE: http://www.mediafire.com/download.php?4dmc7t7mifqyx7z
No new features, but cleaner and smaller.
Cyber
Latest version of CHDK working correctly:AEB and 10s intervals work good
bacakozak
hi, i'm interested in timelapse function.. could you give me a hint about buttons sequence to press? i tried "set" on info screen but i get no output on screen, tried to press shutter but also no effect, only one photo...
i'm using 350d 1.0.3 with last MilanC autoexec.bin on cf
greetings and thanks guys for good job π
MilanC
Keypresses don't register properly, try pressing 'Set' two times. Same problem with 'Menu' and 'Info' (used when adjusting the number of pictures in the sequence).
bacakozak
I'm pressing it several times, but it doesn't change anything π - (menu/info/play/left/right change values)
btw. on 15 raw+jpeg screen i've got the same situation, left/right works... but set doesn't π
photongraph
Thank you maiohwmai, cyrustam, crazyklaus, and MilanC. Guys like you make the world a better place π.
surge
bacakozak
I'm pressing it several times, but it doesn't change anything π - (menu/info/play/left/right change values)
btw. on 15 raw+jpeg screen i've got the same situation, left/right works... but set doesn't π
I'm having the same issue. Can anyone confirm what needs to be pressed? is it SET or some other button?
MilanC
I'm sorry but I've no idea what the problem with 'Set' could be.
By the way, I can't remember exactly which key does what in 15., but left, right and set each change a different setting (fine/medium, raw/jpeg/raw+jpeg, L/M/S).
bacakozak
can i ask you for compile with another button instead of "set" - maybe change set and play in timelapse switch - set would increase ++ and play will shot...
arm.βindiana