• 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....

  • 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.

    https://github.com/espressif/esptool#rea­d-spi-flash-id

    Manufacturer: e0
    Device: 4016
    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 :)

  • Post a reply
    • Bold
    • Italics
    • Link
    • Image
    • List
    • Quote
    • code
    • Preview
About

DIO vs QIO - FYI, there is a significant difference in execution speed!

Posted by Avatar for DrAzzy @DrAzzy

Actions