Загрузка с помощью esptool завершается с ошибкой: «espcomm_send_command: не может получать данные полезной нагрузки slip»

Загрузка эскиза на плату ESP8266 завершается неудачей:

error: failed reading byte
warning: espcomm_send_command: can't receive slip payload data
warning: espcomm_send_command(FLASH_DOWNLOAD_BEGIN) failed

... или:

espcomm cmd: receiving 2 bytes of data
warning: espcomm cmd: no final C0
warning: espcomm_send_command(FLASH_DOWNLOAD_BEGIN) failed

Это на OS X с кабелем USB-to-Serial с PL2303HXD, используя последний официальный Prolific, подписанный OS X El Capitan-совместимые драйверы .

2 голоса | спросил Arjan 2 FebruaryEurope/MoscowbTue, 02 Feb 2016 00:49:41 +0300000000amTue, 02 Feb 2016 00:49:41 +030016 2016, 00:49:41

1 ответ


3

Это известная проблема с включенный esptool , а для Arduino IDE есть довольно много сообщений в блоге, которые можно найти по этой проблеме. Но большинство из них устарело и не применимо при использовании PlatformIO с некоторыми другими IDE. Итак, февраль 2016 года:

Установите esptool.py

  • git clone https://github.com/themadinventor/esptool/ (или загрузить ZIP-файл)
  • cd esptool литий> sudo python setup.py install литий>

При использовании Arduino IDE

  • Откройте ~/Library/Arduino15/packages/esp8266/hardware/esp8266/2.0.0/platform.txt.
  • Найдите строку tools.esptool.upload.pattern и отключите ее, предварительно добавив хэш. Убедитесь, что ваша версия упоминает -ca 0x00000, а не -ca 0x10000 (как в большинстве устаревших сообщений в блоге):

    # tools.esptool.upload.pattern="{path}/{cmd}" {upload.verbose} -cd {upload.resetmethod} -cb {upload.speed} -cp "{serial.port}" -ca 0x00000 -cf "{build.path}/{build.project_name}.bin"
    
  • Добавьте следующее, ссылаясь на установленный выше esptool.py, а также используя разные параметры командной строки:

    # Fix for espcomm_send_command: cant receive slip payload data
    tools.esptool.upload.pattern="/path/to/new/esptool.py" --port "{serial.port}" --baud {upload.speed} write_flash 0x00000 "{build.path}/{build.project_name}.bin"
    
  • Перезапустите среду IDE.

(Может возникнуть соблазн просто изменить tools.esptool.path и tools.esptool.cmd, но будьте осторожны, чтобы параметры командной строки также нуждались в изменении.)

При использовании PlatformIO

Вы найдете тот же файл platform.txt где-нибудь в ~/.platformio/packages/framework-arduinoespressif/platform.txt, но этот файл не используется для загрузки. Вместо :

  • В platformio.ini добавить:

    # ...or whatever your port is named
    upload_port = /dev/cu.usbserial
    extra_script = /path/to/platformio_extra_script.py
    
  • Создайте новый файл /path/to/platformio_extra_script.py:

    # Custom settings, as referred to as "extra_script" in platformio.ini
    #
    # See http://docs.platformio.org/en/latest/projectconf.html#extra-script
    # See https://github.com/platformio/platformio/issues/426
    
    from SCons.Script import DefaultEnvironment
    
    env = DefaultEnvironment()
    
    # Must be full path, or use
    # https://docs.python.org/2/library/os.path.html#os.path.expanduser
    
    env.Replace(
        LOCAL_UPLOADER="/Users/arjan/path/to/new/esptool.py",
        LOCAL_UPLOADERFLAGS=[
            "--port", "$UPLOAD_PORT",
            "--baud", "$UPLOAD_SPEED",
            "write_flash", "0x00000",
        ],
        UPLOADCMD='$LOCAL_UPLOADER $LOCAL_UPLOADERFLAGS $SOURCE'
    )
    
ответил Arjan 2 FebruaryEurope/MoscowbTue, 02 Feb 2016 00:49:41 +0300000000amTue, 02 Feb 2016 00:49:41 +030016 2016, 00:49:41

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132