Simple installer

I was facing the problem that the audience of my Blockly/µP/LVGL based project were total beginners but the tooling to get the setup running was by no means usable by these beginners. This is especially tricky with the µP setup on the ESP32 as this requires to install the firmware in the correct way using the esptool and additionally a tool like ampy to upload additional python files. Both are python command line tools and nothing the typical windows user easily deals with.

Installer screenshot

So i wrote a simple “ftduino32 installer” which takes a prepackaged ZIP file and runs esptool and ampy to install everything automatically. The tool has been compiled for windows into a (huge) windows exe. The accompanying ZIp file contains a json file which tells the installer what to put where using which methods.

Esptool and ampy are also compiled into the binary, so the user inititially doesn’t have to install python at all. As ampy is rather slow and some of the files to be installed are big the installer only uploads new or modified files during an update.

The source code is here:
https://github.com/harbaum/ftDuino32/tree/main/installer

And the exe and a zip file for my ftduino32 setup can be found at:
https://github.com/harbaum/ftDuino32/releases/tag/v0.1

The installer is not limited to my project and should be usable with any esp32 micropython setup.

2 Likes

Now with a simplified user interface:

installer_win

The user can still open the text view and have a look at the installation details e.g. if something fails.

On the technical side the installer now also verifies the firmware itself before flashing and skips the flash if the installed firmware is identical.

This now means that the installer really only updates parts that need updating and if you try to install the same package twice nothing will be written during the second run. This is especially useful when doing partial updates.