Flash NodeMCU with NodeMCU PyFlasher

I herewith announce a new GUI tool to flash NodeMCU based on esptool.py targeting Windows users primarily. Self-contained executables are available on GitHub.

NodeMCU-PyFlasher

Motivation

This addresses an issue the NodeMCU community touched on several times in the past, most recently in fall 2016.

I stated that based on my experience doing NodeMCU user support it should be a lot simpler to flash NodeMCU for Windows users.

  • A number of flashing tools are available but only two are actively maintained: esptool-ck and esptool.py. Only one is endorsed by Espressif: esptool.py (they hired the developer(s)).
  • 70% of the users of my nodemcu-build.com service are on Windows.
  • BUT Windows doesn’t come with Python installed – which is required for esptool.py.
  • BUT Windows users in general are more reluctant to use the CLI than Linux/Mac users – which is required for esptool.py.

Conclusion: this is not a comfortable situation for NodeMCU’s largest user group.

The plan

For quite a while I planned to write a self-contained GUI tool which would use esptool.py in the background. It should primarily target Windows users but since I’m on Mac it should be cross-platform. Even though I had never used Python before I felt confident to pull this off.

Implementation

  • Uses the cross-platform wxPython GUI framework. I also tried PyForms/PyQt4 but settled for wxPython.
  • Requires absolutely minimal user input.
  • The esptool.py “console” output is redirected to a text control on the GUI.
  • Uses PyInstaller to create self-contained executable for Windows and Mac. The packaged app can run standalone i.e. without installing itself, a Python interpreter or any modules.

4 thoughts on “Flash NodeMCU with NodeMCU PyFlasher

  1. can nodemcu-pyinstaller flash at specific start addresses. I am trying to flash different code and data to different start ddresses. I don’t see a method to store at non zero addresses

    1. If you go through my motivation paragraph above once again you’ll understand that yours is a use case I didn’t have in mind. NodeMCU PyFlasher is not intended to be a general GUI for esptool.py, sorry.

      1. i am interesting on IOT things. i use NodeMCU PyFlasher and docker image. thank you. its happy see you through your motivation paragraph.

Leave a Reply