No Console Access After Flashing ESP8266EX

Posted on
  • I'm able to flash my ESP8266 without errors, but connecting to the interactive console over serial does not work. Instead of getting a prompt, I see only garbled text, and then no ability to type anything.

    Exact product link: https://www.sparkfun.com/products/13678
    Here's my chip info:

    $ ~/.arduino15/packages/esp8266/hardware/esp8266/2.6.3/tools/esptool/esptool.py --port /dev/ttyUSB0 --baud 115200 flash_id
    esptool.py v2.8
    Serial port /dev/ttyUSB0
    Connecting....
    Detecting chip type... ESP8266
    Chip is ESP8266EX
    Features: WiFi
    Crystal is 26MHz
    MAC: 5c:cf:7f:49:d7:83
    Uploading stub...
    Running stub...
    Stub running...
    Manufacturer: 5e
    Device: 4014
    Detected flash size: 1MB
    Hard resetting via RTS pin...
    

    I've reset the flash entirely:

    $ ~/.arduino15/packages/esp8266/hardware/esp8266/2.6.3/tools/esptool/esptool.py --port /dev/ttyUSB0 --baud 115200 erase_flash
    esptool.py v2.8
    Serial port /dev/ttyUSB0
    Connecting........_____.
    Detecting chip type... ESP8266
    Chip is ESP8266EX
    Features: WiFi
    Crystal is 26MHz
    MAC: 5c:cf:7f:49:d7:83
    Uploading stub...
    Running stub...
    Stub running...
    Erasing flash (this may take a while)...
    Chip erase completed successfully in 2.8s
    Hard resetting via RTS pin...
    

    And flashed like so:

    $ ~/.arduino15/packages/esp8266/hardware/esp8266/2.6.3/tools/esptool/esptool.py --port /dev/ttyUSB0 --baud 115200 write_flash --flash_freq 80m --flash_mode dio --flash_size 1MB 0x0000 boot_v1.6.bin 0x1000 espruino_esp8266_user1.bin 0x7C000 esp_init_data_default.bin 0x7E000 blank.bin 
    esptool.py v2.8
    Serial port /dev/ttyUSB0
    Connecting........_____.
    Detecting chip type... ESP8266
    Chip is ESP8266EX
    Features: WiFi
    Crystal is 26MHz
    MAC: 5c:cf:7f:49:d7:83
    Uploading stub...
    Running stub...
    Stub running...
    Configuring flash size...
    Flash params set to 0x022f
    Compressed 3856 bytes to 2763...
    Wrote 3856 bytes (2763 compressed) at 0x00000000 in 0.2 seconds (effective 124.4 kbit/s)...
    Hash of data verified.
    Compressed 468260 bytes to 325921...
    Wrote 468260 bytes (325921 compressed) at 0x00001000 in 28.8 seconds (effective 130.2 kbit/s)...
    Hash of data verified.
    Compressed 128 bytes to 75...
    Wrote 128 bytes (75 compressed) at 0x0007c000 in 0.0 seconds (effective 82.2 kbit/s)...
    Hash of data verified.
    Compressed 4096 bytes to 26...
    Wrote 4096 bytes (26 compressed) at 0x0007e000 in 0.0 seconds (effective 4154.0 kbit/s)...
    Hash of data verified.
    
    Leaving...
    Hard resetting via RTS pin...
    

    I'm not sure I got the exact addresses for my chip (1MB flash), because the instructions only have addresses for 512KB and 4MB.

    http://www.espruino.com/ESP8266_Flashing#initial-flashing

    But I'm using the 512KB version, hoping that works. I was recommended on Gitter to use dio flashing mode instead of qio as the instructions indicate, but neither of those options change the behavior.

    After flashing, I connect with screen.

    $ screen /dev/ttyUSB0 115200
    

    And this is what shows up on my screen

    s$d��|�l�|�l�c|����{�#�c��n'�$go���#8��l;ds$x�g��$#'�<��c��o'�$��$ �o'$ ';�ۛg��`x�g�#o�|#��'o�$ �nl`n;���'�� 8�'�#o�|c��go�d`�o'$ ';�ۛ'�� ;��n��`rۛg$�<�� �{�'�#�'cx
    

    Using different baud rates will change how long this garbed output is. The specific wiring I'm using matches the "Definitive Wiring Guide" instructable.

    https://www.instructables.com/id/FTDI-ESP8266-Definitive-Wiring/

    Any ideas what's wrong here?

  • Yay, I found the source of the problem. I found a README in the Espruino repo with more specific instructions for my 1MB device.

    https://github.com/espruino/Espruino/blob/master/targets/esp8266/README_flash.txt

    Here's the exact command that worked for me:

    $ ~/.local/bin/esptool.py --port /dev/ttyUSB0 --baud 115200 write_flash --flash_freq 40m --flash_mode dout --flash_size 1MB 0x0000 "boot_v1.6.bin" 0x1000 espruino_esp8266_user1.bin 0xFC000 esp_init_data_default.bin 0xFE000 blank.bin
    

    Note that this did not work with flash modes qio or dio. Only dout worked.

  • Great to hear you solved it and shared the solution!

    This is the crazy part of such a cheap device, lot's of companies sell them and just change a tiny bit and then they behave different ...

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

No Console Access After Flashing ESP8266EX

Posted by Avatar for Jonah @Jonah

Actions