Currently, there are two choices for where CHDK stores RAW/DNG images. They are saved either in the same folder as their associated JPG or in a seperate folder.
Storing in the same folder suits a lot of people. But the mechanism for storing in a seperate folder is probably not that useful due to the way it's currently coded.
As it stands, when RAW/DNG are stored seperately, they are all put in a single folder called
A/DCIM/100CANON. That seems a little strange. At a minimum a folder name like
A/DCIM/100RAW might have made more sense? Looking at the code, it seem it might originally have been intended that the "100" was to match the JPG folder number (at least on cameras that don't encode the date in the folder number) :
#define RAW_TARGET_DIRECTORY "A/DCIM/%03dCANON"
sprintf(dir, RAW_TARGET_DIRECTORY, 100);
But now it's hard coded as "100".
It seems there might be some options here :
- change 100Canon to 100RAW or 100DNG or 100CHDK or RAW_DNG to make it easier for newbies to find
- start using folders that parrrallel the JPG folder names - something like nnnRAW for cams that don't use date coded folders and dateRAW for those that do.
- store RAW/DNG files in a top directory other than A/DCIM/ (like A/RAWDNG/) and then match the JPG file convention in the subdirectories beneath the new main directory
Coding this looks simple - it's just a question of how the various generations of cameras might react to folder names they are not expecting. But as
100Canon works, I think it should be okay.
Side note : the
sx510hs , ixus140_elph130 , ixus255_elph330hs , ixus132_elph115 all have a bug where RAW/DNG files are each stored in a separate folder (with folder names like A/DCIM/101___09/ETC_0112.TMP/) under their JPG's folder . This has something to do with how _GetImageFolder works on those cameras and I think could be fixed by inserting 0x00 in the 15th character in the returned folder name string.