UPDATE
Here's what we have at present. IRIS only needs the 555 unstow dummy to work on its own. It turns out that by adding the FOCUS 555 unstow dummy, all works on initial PUP. However we now know that on REC->PLAY a new error is generated (causes shutdown) and it is not overridden on the next PUP by same code that works for IRIS. The result is the camera exercises a very different revival timing which locks out both the IRIS 555 and the FOCUS 555 solutions, because now the dummies don't match the new revivial timings. In fact, when this more serious error happens, the IRIS gets jiggled on unstow. Hence *all* the lens components have to be reinstalled to revive the camera.
It does not make much sense to track down and suppress the new FOCUS error in FW, as more will be expected especially with complicated ZOOM. Chipping away at ol' block in FW can lead to more difficulties that in may solve initially, especially with the new evidence on hand.
So ideally we'd like to go back to the first issue "try" CHDK FW that only suppresses the IS error, and generate clean uniformly-repeatable unstow/stow dummies for all lens components. For that endeavor which is about to begin, all the new microcontroller hardware is now in.
https://www.sparkfun.com/products/11098?I have zero experience with these Arduino type devices. Nonetheless, it appears there are enough I/O lines to do the entire job with one chip. The minimum is:
> 2 interrupts PI power
> 2 interrupts ZOOM motor activity & direction
> 5 outputs: (1 @ FOCUS & IRIS, 3 ZOOM)
A question about interrupts for anyone who might know ...
Q1) Although the chip has at least 5 interrupt vectors available, does the Arduino environment support them all?
Q2) According to the spec sheet, nested interrupts are possible. Does the Arduino environment support programming nested interrupts ?
ref Atmel
http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Dev/Arduino/Boards/ATMega32U4.pdf@srsa_4c
I did some tests and found this: With IRIS and FOCUS 555-dummied and working in REC mode, if I unplug AC adapter, the camera has to be component-revived, just as it did when REC->PLAY (and immediate error and shutdown). That means there must be a general "bad flag" that is SET in the RTC register on normal unstow so if there is a power failure, then the revival that happens is incompatible with the dummy timing (ie also incompatible with a good stow on all components), as above. All this begs for a strong HW uC solution.