From the About Magic Lantern page
Magic Lantern is a software enhancement that offers increased functionality to the excellent Canon DSLR cameras. We have created an open framework, licensed under GPL, for developing extensions to the official firmware.
Magic Lantern is not a "hack", or a modified firmware, it is an independent program that runs alongside Canon's own software. Each time you start your camera, Magic Lantern is loaded from your memory card. Our only modification was to enable the ability to run software from the memory card.
Originally created by Trammell Hudson, Magic Lantern played a role in turning consumer digital cameras into tools suitable for high quality digital filmmaking and is now being developed by photo and video enthusiasts, adding functionality such as: HDR images and video, timelapse, motion detection, focus assist tools, manual audio controls much more.
For information about CHDK and what it can do with compact cameras I'd recommend checking out the FAQ. The about section says
CHDK enhances the capabilities of your camera in a non-destructive, non-permanent way.
but goes on to link to the feature list
- RAW - CHDK can record raw files, giving you access to every bit of data the sensor saw, without compression or processing. Raw files can be manipulated on the camera, or processed on your PC. CHDK supports the open DNG raw standard. Override Camera parameters - Exposures from 2048s to 1/60,000s with flash sync. Full manual or priority control over exposure, aperture, ISO and focus.
- Bracketing - Bracketing is supported for exposure, aperture, ISO, and even focus.
- Video Overrides - Control the quality or bitrate of video, or change it on the fly. Extended video clip length - 1 hour or 2GB.
- Scripting - Control CHDK and camera features using uBASIC and Lua scripts. Enables time lapse, motion detection, advanced bracketing, and much more. Many user-written scripts are available on the forum and wiki.
- Motion detection - Trigger exposure in response to motion, fast enough to catch lightning. Edge overlay - Detect the edges in a scene, and display them later. Ideal for timelapses, stop-motion, stereography and much more.
- Live Histogram - CHDK includes a customizable, live histogram display, like those typically found on more expensive cameras. (RGB, blended, luminance and for each RGB channel)
- Zebra-Mode - Displays under and overexposure areas live on the screen.
- GRIDS - Create custom grids and display whichever one suits your shooting conditions.
- Multi-Lingual Interface - CHDK supports about 22 languages, and adding more languages is simple.
- DOF Calculator - Display detailed DOF information on the screen.
- Customizable OSD - Improved display of battery status, free space, camera parameters, and much more. Fully customizable with an on-screen editor.
- Filebrowser - Manage files without a PC.
- Textreader - Display text files on your camera.
- Games - Play Reversi, Sokoban, Mastermind, 4-in-a-Row, Tetris, * Snake or Sudoku on your camera.
- Calendar
- USB Remote - Simple DIY remote allows you to trigger exposures or scripts.
- PTP Extension - Remote control and display from a PC
- Benchmark - Compare the performance of your SD cards.
- User Menu - Edit your own customizable User-Menu for fast access to often used features.
- Battery Indicator - Always on
- Ability to control dark frame subtraction
Older Canon DSLRs may be able to use 350D hack and the 400plus project.
I still have the PowerShot S5 in a drawer. With CHDK of course. Amazing combination, in terms of features it approached what mirrorless would become only decades later.
Props to Canon too for making it so easy to mod. You just place the files on the SD card and it boots from it, it's super easy.