- Mon Nov 11, 2019 8:54 pm
If it won't program in DIO mode, that's due to the flash chip on the board. You're pretty much stuck at that point, unless you want to desolder the RF can and replace the flash chip.
Even if you DO replace the chip, you'll need to find an appropriate flash that reliably works in DIO mode, and then lift pin 3 (/WP - IO2) and wire it to VCC (pin 8). GPIO10 is wired to the /WP pin, and lifting it when you replace the flash is safer than cutting the trace to the flash chip.
That *might* make GPIO10 available, no guarantees. The Winbond datasheet isn't really clear on how you tie off the 'unused' 2 pins in DIO mode. I haven't tried it myself; I'd use a port expander if I needed more pins. I don't think this trick will work to recover GPIO9, sorry. If I were doing it, I'd attempt tying the /HOLD - /RST - IO3 pin on the flash over to the ESP's nRST line, but that might not work. Here's a snapshot of the schematic of the AI-Thinker ESP12F module schematic, so you can see some of what's under the RF can:
Their schematic is incomplete, as it doesn't show any of the OTHER connections to the flash chip.