RaduP
Regarding the sensor exposure, it may be that the sensor has a 16b internal counter, in 1ms increments, so 65 seconds is the most it can get until the timer overflows. I don't see any other reason why it would stop at this magic number.
Of course, this is software-only limitation.
For example, picture taken with 150s exposure (without dark frame subtraction) -
http://ewavr.nm.ru/chdk/for_test/IMG_0260.JPG (4 Mb).
Image quality is really horrible.
How? This is my secret 😀.
Well, we call modified SetShutterSpeedWithMecha() (more precisely, modified sub_FFCA400😎 in capt_seq_hook_set_nr():
void capt_seq_hook_set_nr(){
.....
sub_FFCA4008_my(-694); // = 150s
.....
}
sub_FFCA4008_my is exact copy of sub_FFCA4008, except:
ROM:FFCA4060 MOV R0, R4
ROM:FFCA4064 BL sub_FFCA5104 ; convert Tv in APEX units to microseconds; limitation is here!
ROM:FFCA4068 MOV R4, R0
replaced with
"MOV R0, R4\n"
// "BL sub_FFCA5104\n"
"LDR R0, =150*1000000\n" // exposure time in microseconds
"MOV R4, R0\n"
Of course, this is quick working example only, not complete solution.
edit:
Finally I did it for
A710 private build (
http://trac.assembla.com/a710/changeset/42).
Here is 160s exposure time with dark frame subtraction :
http://ewavr.nm.ru/chdk/for_test/IMG_0271.JPG
Image quality is still very bad.