Thanks for the ideas and links I will look at. I can work around the internal memory limitation with my external controller by rebooting the camera from a timer every so often.
Note that you should make sure the camera is shutdown gracefully, either using the power switch or form script. For script, I sugggest using post_levent_to_ui("PressPowerButton")
To power on after power is removed, you also need to trigger the power switch. A common approach to this is to hold it down continuously. This mostly does not interfere with normal operation of the camera.
Alternatively, you could hack out the switch and control it from a microcontroller or something like that.
Switching from shoot mode to file preview in order to delete the oldest files will be a problem as the camera is considered remote fit and forget.
Old cameras like the ones you are using probably suffer from the crash when files are deleted in record mode. Try it and see...
In any case, script can switch between modes using set_record()
I've got CHDK installed on a Canon A650IS and on 2 A560s. The power on button for the A650IS works as normal opening the lens, running the CHDK script and starting in shoot mode, but power on on the A560s puts the camera into preview and a second button press is need for shooting. This is what the wiki says and I'm puzzled as to why the A650IS goes straight into shoot mode?
Old cameras like A650IS with separate physical switch for playback/record start in whatever state it's set too.
For my remote camera trap I would rather have the A560s go into power on ready to shoot since I will be using an external power supply which might suffer a power outage. I suppose I can't win everything!
Again, you can use an autostart script to switch.