tytower wrote:It shows GPIO2 floating and I can confirm this definately works .
[...]
Can anyone else define where that pin should be and why please. It appears that both might work and maybe the truth table should be ammended to "x" don't care ?
I prefer trusting a spec sheet than people testimonies. the Boot process table from the above link is proably a copy/paste from Espressif specs. It should NOT be amended to please end-users.
Been in electronic engineering for decades, the four different possible connections for an input : L, H, X and NC. BTW, X doesn't mean floating, it means "irrelevant". Not connecting a X input can still be troublesome, since EMI/RFI can disturb the input, and even destroy it if EMI/RFI is too high. We should never leaving inputs floating, except if specs says NC.
Additionnally, if the table says to put it to HIGH, even if there is currently no mode in the table that use it with LOW, it doesn't mean Espressif can decide in a future to use that for an additionnal mode of boot process, let's says for example thru an I2C bus. So, to respect backward compatibilty, we should follow the specs to the "letter".
EDIT : BTW, and I've just try it out : if GPIO2 had a X instead of H, then that would mean that we can place to LOW, but right now, in such case it does NOT boot any more ! If leaving it floating works, it is simply that, like in the old days of TTL, floating is quite the same as HIGH (except about EMI potential issue). Right now, it is confirmed : Espressif really spec it that a HIGH level is REALLY required on GPIO2 !