Don't miss this page for more details on SPI-Flash-Modes
This suggests that we can automate the flashing scripts to work out if dio mode is required, as the default it qio.
Detected flash size: 4MB
It would need to have a database of device ids, however this would stop a lot of headaches (specially for first timers) on setting the flash size and flash mode.
W25Q40BV ( 4 Mega Bits / 512K Byte ) = ID 4013h
W25Q80BV ( 8 Mega Bits / 1 Mega Byte ) = ID 4014h
W25Q16BV ( 16 Mega Bits / 2 Mega Bytes ) = ID 4015h
W25Q32BV ( 32 Mega Bits / 4 Mega Bytes ) = ID 4016h
W25Q64CV ( 64 Mega bits / 8 Mega Bytes ) = ID 4017h
W25Q128FV ( 128 Mega bits / 16 Mega Bytes ) = ID 4018h
@Wilberforce, also see Build Content on ESP8266 page
So is there a way of working out qio vs dio? It sounds like chip type might not be enough as it depends on wiring?
Yes, it definitely depends on wiring, so check circuit diagram if available or try and error :)
I just thought I'd let people know about an issue I'd run into:
With DIO, code executes somewhere in the neighborhood of 30-50% slower (I haven't timed it precisely) vs QIO. And you can't really tell if the board you bought has it wired as QIO or DIO until you try to flash it (the QIO capable ESP12 modules have "QIO" printed on the underside, but you can't see that if they're soldered in).
For my pingpong light controllers, I realized this after I had a bunch made with DIO modules (they have to all run at the same speed, and I'd like the QIO ones to run faster), so I've been taking the DIO modules off of my WeMos D1 Mini's with a torch and soldering a QIO one in it's place....