Read carefully and do not use any of these functions if you do not know what they do. Some could crash the camera, others could even damage it. Use extra caution when your camera isn't listed as (fully) supported in the list near the bottom of this post, undefined behaviour is to be expected and there are little to no safety checks.
As you might expect, I am not responsible for any damage done to your camera. Use this software at your own risk, you have been warned.
Since I completed the S5IS port, I've mainly been busy (whenever I had the time) with finding new features. I ended up with a cluttered heap of junk which would basically allow just one feature to be compiled-in at a time. It also wasn't a very friendly way to share my findings with others so they could comment on them, so I decided to put these changes nicely together in a branch, with an extra menu and everything. It's currently still a bit disorganized but good enough for non-mainstream stuff
Anyway, let's share a few ideas, some of which are already features in the branch:
- Control over the shutter, to quickly make a dark frame or do other cool stuff with it. (barely implemented)
- Control over the display, to conserve battery life and allow more brightness settings (reasonably implemented, needs fixing)
- IS Lens adjustments. On my S5IS, the lens is offset a bit and after quite some research I came up with a way to properly center it. The camera has a built-in 'center IS lens' function, but that centers the IS lens at the IS lens center point, which is not the camera lens center point (or so it seems). It's possible to manually adjust the IS lens (implemented) and to automatically center it (not implemented in this branch yet
- Also in the category IS Lens adjustments: Using the camera as an input device. Two demos are implemented, a simple one which draws a line that's always more or less horizontal (with respect to the horizon, not the camera) and a very simple and basic racing game.
- A sophisticated hex viewer with a lot of features. Barely implemented, though, it'll probably take a lot of time.
- Alternate keymaps (not implemented)
- Dual LCD (not implemented)
- Realtime camera log (displays to screen and to file)
- Simple profiler
- Probably a lot of other features which are not important enough to list here. The document with notes in shorthand is about 6 kB large.
I'll be using this build to test new features and get feedback on them, so I can improve them and see how people like them... they might make it into the main trunk some time
Please feel free to suggest new things but try to keep them slightly on-topic (as far as possible), since there's also a 'feature request' board, which is more suitable for generic feature requests.
Anyway, please keep in mind that I only have a S5IS 1.01b, so that's the only camera on which the majority (if not all) of these functions work (sorry, folks). A 1.01a port should be easily possible, it might be trickier for other cameras. Feel free to submit your changes/proposals and I'll merge them if they're any good.
I might be able to come up with signature files to automatically add support for other cameras, but still a few of these experimental functions might behave quite differently on other cameras, so it's best if a developer actually checks them out and tests them.
No binary version available yet, source is available in SVN:svn co https://tools.assembla.com/svn/chdk/branches/dataghost
Commit log: /branches/dataghost (log) - chdk - Trac
Out-of-the-box supported platforms:
A620 1.00f *
* Compiles, no IS functions, no LED messages, no display on/off controls, no brightness options (these are likely to crash the camera or do other bad things, do not use unless you know what you are doing)
Sample videos:Camera orientation demoCamera default IS lens centering functionMy improved IS lens centering functionAdjusting the display brightnessViewing the camera logSimple racing game, using the same input as the 'camera orientation demo'LED disco
I hope you like it