From time to time there are reports of the G12 internal flash absolutely refusing to work in spite of (almost) every possible corrective action – including resetting – that could be imagined. Frequently the problem is related to a small micro switch located in the hot shoe, see the above image. The purpose of the micro switch is to inform the G12 that an external flash has been attached but if the micro switch has become stuck or unintentionally depressed then the G12 is misinformed. Result: no flash.
The problem is not confined to the G12; the micro switch is used on all the G series Powershots. The photos in this post are of the Powershot G9. The image above shows the G9 hot shoe with a cover designed by Richard Franiec. Notice that Richard cleverly engraved his design with “G” for “Gordon” (although some believe there were other reasons).
Knowing that the G series hot shoe has a micro switch, the Franiec cover is relieved along one side so that the micro switch is not activated when the cover is in place. There are other hot shoe covers available but all are not compatible with the Powershot micro switch. The G series internal flash will not work if an incompatible hot shoe cover is placed in the hot shoe.
I bought my G9 hot shoe cover directly from Richard and the G12 hot shoe cover from Lensmate. The same cover is used for G7 through G12. My G3 and G6 also have the micro switch but the Franiec cover is just a bit too wide to fit.
There have also been reports of a stuck micro switch but more often the “flash doesn’t work” problem seems to be an incompatible hot shoe cover.