@projectgus projectgus released this Sep 27, 2018 · 16 commits to master since this release

Assets 2

Bug fixes:

  • Errors during chip detection are now formatted correctly.
  • OSError is handled correctly while scanning for a port (#322)
  • Update link to flashrom repo for SPI flash chip IDs (#338)
  • read_flash command: Error out immediately if an invalid length packet is received (common symptom of bad serial link) (#342)

ESP32 Only:

  • espefuse.py: Disable burning key efuses when 3/4 Coding Scheme is set (support for burning keys with 3/4 Coding Scheme will be added in a future update).

Thanks to @orangecms for contributing to this release.

@projectgus projectgus released this Jul 17, 2018 · 23 commits to master since this release

Assets 2

New features:

  • Set a write timeout in pyserial (prevents hanging in sync process if port is unavailable).
  • (ESP32) New option elf2image --secure-pad to pad the output binary so once signed it will align to an flash cache page boundary (64KB). Prevents unsigned data from being mapped into the instruction space via the flash cache.

Bug fixes:

  • Fix exception if no --port is specified but no serial ports are found in the system.
  • (ESP32) espsecure: Fix bug where digest_secure_bootloader could produce an incorrect digest.

Thanks to @heyinling & @ekiro for contributing to this release.

@projectgus projectgus released this Jun 18, 2018 · 28 commits to master since this release

Assets 2

Bug fixes:

  • --port argument was not correctly handled in v2.4.0
  • Corrected pyserial dependency to require pyserial v3.0 or newer

Thanks to @nopdotcom and @ildar for contributing to this release.

@projectgus projectgus released this Jun 13, 2018 · 33 commits to master since this release

Assets 2

Version 2.4.0:

ESP8266 & ESP32 changes

  • If no serial port is specified, try all serial ports until an Espressif
    device responds.
  • Print device MAC on every command, after connecting.
  • New option --before no_reset_no_sync for use when immediately reusing the
    serial port with an already-running loader.
  • Fix spurious load_ram error when executed code immediately resets the UART
    baud rate..
  • Produce an error if load_ram is going to clobber bootloader stub memory (can use
    --no-stub to work around this).
  • Display a helpful error if the incompatible 'serial' module was installed
    instead of 'pyserial'.
  • Explicitly close the serial port at end of main() function (allows calling
    esptool.main() from another Python program for basic scripting.)
  • Workaround Windows usbser.sys (USB CDC-ACM device) driver bug setting DTR & RTS
  • Flasher stub build updates to work with recent ESP-IDF & ESP8266 SDK headers
  • Flasher stub now sends correct length field in protocol responses (esptool.py
    was ignoring this field, but some other tools were not).

ESP8266 changes

  • Move the loader stub to the very end of IRAM (useful when using load_ram command).
  • elf2image --version=2 is now compatible with recent ESP8266 SDK bootloader
    and produces the same binary output as ESP8266 SDK gen_app.py.
  • Remove unsupported flash size 4MB-c2

ESP32 changes

  • Print chip frequency rating values in Features list, for chips where these are
    set.
  • Working load_ram command.
  • espefuse.py: Support setting the baud rate.
  • New --override-vddsdio option allows setting the VDDSDIO regulator to 1.8V,
    1.9V or "OFF" when connecting (to override the default value read from efuse).
    To avoid hardware damage, forcing VDDSDIO to 3.3V is not supported.

Thanks to @devanlai, @andrewwakeling, @Callahan93, @tim-nordell-nimbelink, @cefn
and @nkolban for contributing to this release.

@projectgus projectgus released this Feb 27, 2018 · 69 commits to master since this release

Assets 2

Latest stable release available from PyPi:
https://pypi.python.org/pypi/esptool/

This release:
https://pypi.python.org/pypi/esptool/2.3.1

New since v2.3

  • Fixes a bug where Features line was mis-formatted for ESP8266 and triggered an exception on ESP8285.

@projectgus projectgus released this Feb 27, 2018 · 70 commits to master since this release

Assets 2

Latest stable release available from PyPi:
https://pypi.python.org/pypi/esptool/

This release:
https://pypi.python.org/pypi/esptool/2.3

New since v2.2.1

  • 'Hard resetting' status message now mentions the RTS pin
  • README additions
  • Fix regression if esptool is used as a module and ESPLoader() is passed a Python 2 unicode string.

ESP32 only

  • When connecting, esptool now prints a summary of chip features based on efuse contents.
  • espefuse.py support for displaying ADC calibration data via VRef stored in efuse and BLK3_PART_RESERVE if set.

@projectgus projectgus released this Jan 24, 2018 · 78 commits to master since this release

Assets 2

Latest stable release available from PyPi:
https://pypi.python.org/pypi/esptool/

This release:
https://pypi.python.org/pypi/esptool/2.2.1

New since v2.2

  • Fix an issue seen on macOS with high baud rates (>230400). pyserial was sending configuration to the serial port (no settings were actually changing) while a response may have been coming from the device, and this caused read data to be lost at or below the OS layer.
  • Fix use of esptool with remote network serial ports (see here in README).
  • write_flash now warns instead of crashing if a file is empty (zero length).

Thanks to @me21 & @igrr for contributing to this release.

@projectgus projectgus released this Nov 28, 2017 · 94 commits to master since this release

Assets 2

Latest stable release available from PyPi:
https://pypi.python.org/pypi/esptool/

This release:
https://pypi.python.org/pypi/esptool/2.2

New since v2.1

  • New esptool.py --trace option provides dump of all serial traffic for easier low-level debugging
  • Timeouts refactored for better consistency, fix some timeouts flashing large binaries (particularly when flashing with a high effective compression ratio)
  • PEP8 style cleanup, removal of deprecated language features (thanks @Cabalist!)
  • Skew between device USB/serial reference clock timing and ESP crystal is now accounted for when switching baud rate. This may help achieve higher baudrates on some development boards.

ESP8266-Specific Changes

  • Full support & identification of ESP8285
  • Support for stub loader when using crystals other than 26MHz (tested with 40MHz)

ESP32-Specific Changes

  • Support for ESP32-PICO-D4 System In Package
  • espefuse.py now verifies the factory MAC address CRC is valid
  • Flasher stub build now supports compiling against ESP-IDF v2.1 codebase (and will support v3.0)
  • Fix error message if --spi-connection arguments were mis-typed (thanks @Cabalist!)
  • Correct espsecure.py usage message (thanks @milan-kupcevic!)

Documentation Changes

  • Structure cleanup, notes about power issues, new links to the wiki

@projectgus projectgus released this Aug 22, 2017 · 125 commits to master since this release

Assets 2

Latest stable release available from PyPi:
https://pypi.python.org/pypi/esptool/

This release:
https://pypi.python.org/pypi/esptool/2.1

New since v2.0.1

ESP32-Specific Changes

  • elf2image: Pad flash-resident sections to 64KB alignment by using parts of RAM-resident sections, rather than zeroes. This reduces the size of a final IDF binary by almost 128KB in some cases.
  • elf2image: Append a SHA-256 hash of the binary image to the .bin file by default. This will be checked by the software bootloader in the IDF V3.0 release. Provides a much stronger consistency check than the previous 8-bit checksum. The image_info command will print & verify this hash if it is present.
  • espefuse.py: timeout now calculated in seconds not number of retries.

Documentation Changes

  • Fix typo in the README

Thanks to @daniel-leonard-robinson for contributing to this release.

@projectgus projectgus released this Jun 26, 2017 · 138 commits to master since this release

Assets 2

Latest stable release available from PyPi:
https://pypi.python.org/pypi/esptool/

This release:
https://pypi.python.org/pypi/esptool/2.0.1

esptool.py version 2.0.1 is a minor bugfix release from v2.0.

New since v2.0:

  • (ESP32) Generating bootloader images for ESP32D2WD, or any ESP32 where the SPI pins are remapped via efuse, no longer accidentally enables GPIO0 as an output.
  • (ESP32) espsecure.py & espefuse.py: Dispay --help argument if run without command line arguments.
  • Update README now stable release supports ESP32.

Thanks to @hroncok & @marcelstoer for contributing to this release.