Simple GUI tool to flash ESPs over USB
Go to file
Marcel Stör 2eeb9893db Major upgrade of all components
- wxPython 4.0.1, finally...
- Python 3
- esptool.py 2.2.1
2018-02-10 00:05:03 +01:00
images Add flash mode 'dout' 2017-09-26 08:26:28 +02:00
.gitignore Allow .spec files in repo again 2017-01-07 22:46:27 +01:00
About.py Major upgrade of all components 2018-02-10 00:05:03 +01:00
HtmlPopupTransientWindow.py Major upgrade of all components 2018-02-10 00:05:03 +01:00
LICENSE Initial commit 2016-12-28 23:30:26 +01:00
Main.py Major upgrade of all components 2018-02-10 00:05:03 +01:00
README.md Add more instructions to README 2017-08-12 22:00:53 +02:00
build-on-mac.spec Major upgrade of all components 2018-02-10 00:05:03 +01:00
build-on-win.spec Major upgrade of all components 2018-02-10 00:05:03 +01:00
build.bat Add support for self-contained bundle build for macOS and Windows 2017-01-07 22:49:32 +01:00
build.sh Add support for self-contained bundle build for macOS and Windows 2017-01-07 22:49:32 +01:00
encode-bitmaps.py Add flash mode 'dout' 2017-09-26 08:26:28 +02:00
esptool-py-why-here.txt Change PyInstaller setup 2016-12-31 00:17:59 +01:00
esptool.py Major upgrade of all components 2018-02-10 00:05:03 +01:00
images.py Add flash mode 'dout' 2017-09-26 08:26:28 +02:00
nodemcu-pyflasher.py Inception 2016-12-28 23:52:35 +01:00

README.md

NodeMCU PyFlasher

License Github Releases PayPal Donation Twitter URL Facebook URL

Self-contained NodeMCU flasher with GUI based on esptool.py and wxPython.

Image of NodeMCU PyFlasher GUI

Installation

NodeMCU PyFlasher doesn't have to be installed, just double-click it and it'll start. Check the releases section for downloads for your platform. For every release there's at least a .exe file for Windows.

Status

Scan the list of open issues for bugs and pending features.

  • Due to pyinstaller/pyinstaller#2355 I can't provide an app bundle for macOS yet. The PyInstaller .spec file and the build script are ready, though. Of course you can still run the application on macOS. Clone this repo and then do python nodemcu-pyflasher.py (see "Build it yourself" for pre-requisits).

Note

This is my first Python project. If you have constructive feedback as for how to improve the code please do reach out to me.

Getting help

In the unlikely event that you're stuck with this simple tool the best way to get help is to turn to the "Tools and IDE" subforum on esp8266.com.

Donationware

All open-source development by the author is donationware. Show your love and support for open-source development by donating to the good cause through PayPal.

PayPal Donations

Build it yourself

If you want to build this application yourself you need to:

  • Install Python
  • Install wxPython 3.x (not 4.0 betas!)
  • Install esptool.py which brings pySerial or install pySerial standalone

Why this project exists

Motivation

This addresses an issue the NodeMCU community touched on several times in the past, most recently at #1500 (comment).

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.

To conclude: 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 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.

License

MIT © Marcel Stör