BrewFlasher - Windows/MacOS app for flashing ESP8266/ESP32 Brewing Projects

HomeBrewTalk.com - Beer, Wine, Mead, & Cider Brewing Discussion Community.

Help Support Homebrew Talk:

Thorrak

Supporting Member
HBT Supporter
Joined
Feb 7, 2016
Messages
2,879
Reaction score
1,799
Location
New York, NY


BrewFlasher

BrewFlasher is a stand-alone desktop application for Windows and MacOS designed to simplify flashing brewing-related firmware to your ESP8266 or ESP32 controller.

It handles everything - locating the correct firmware, downloading it, setting the correct flash options/offsets, and flashing the firmware. No fumbling with the command line or worrying about esptool options. Select the project you want to flash, click a button, and you’re done.




What operating systems are supported?

BrewFlasher should work on all modern (64 bit) versions of MacOS X and Windows.


What firmware/projects are supported?

The list of projects BrewFlasher supports is ever changing as new ones are added to the firmware database. Currently, this includes BrewPi-ESP8266, TiltBridge, BrewBubbles, and more.


Are Arduino-based projects supported?

No. This project uses esptool.py which only works with ESP-based chips.


How can I download BrewFlasher?

BrewFlasher can be downloaded from its GitHub release page or BrewFlasher.com.


Special thanks on this project go out to @LBussy and @gromitdj for assistance in design and testing, as well as to the authors of the NodeMCU-PyFlasher project which BrewFlasher is largely based on.
 
Last edited:

alxman2021

Member
Joined
Sep 27, 2019
Messages
12
Reaction score
4
Location
Orlando
Ha, if I had just waited until this evening to set up my new Tilt I wouldn't have had to stumble my way through figuring out how to flash manually...

Thanks, this will help alot of folks :)
 

garzlok

Well-Known Member
Joined
Aug 19, 2012
Messages
398
Reaction score
264
Location
Dacula
I appreciate any and all efforts that can remove as much of my idiocy out of any process.

Question...currently in Fermentrack when flashing multiple devices. I have to connect Device 1, let Fermentrack Find it, Flash, leave attached to USB. Connect Device 2, Find it, flash, leave attached to USB. Connect Device 3....etc.

This eliminates that procedure yes? Now I can plug in, flash, unplug, move on to the next one?

Should I assume the TiltBridge flash is the original release firmware?
 
OP
T

Thorrak

Supporting Member
HBT Supporter
Joined
Feb 7, 2016
Messages
2,879
Reaction score
1,799
Location
New York, NY
I appreciate any and all efforts that can remove as much of my idiocy out of any process.

Question...currently in Fermentrack when flashing multiple devices. I have to connect Device 1, let Fermentrack Find it, Flash, leave attached to USB. Connect Device 2, Find it, flash, leave attached to USB. Connect Device 3....etc.

This eliminates that procedure yes? Now I can plug in, flash, unplug, move on to the next one?

Should I assume the TiltBridge flash is the original release firmware?
Yes, pretty much. The Fermentrack flash process assumes that you will have a bunch of unidentifiable devices connected (for most users) and uses the act of plugging the device in to detect which device you want flashed. This also helps prevent a scenario where you might be looking - say - to flash a new controller, but have an existing controller already connected via serial. BrewFlasher assumes that you either want to flash the first available eligible device (presumably the only one connected) or explicitly know the device you want to flash. It’s a slightly different procedure, but it fits with the model where you would be flashing from a computer that isn’t otherwise involved in your brewing landscape (like a Pi running Fermentrack would presumably be).

As a side note, the list of firmware available to flash in BrewFlasher is actually a slightly filtered version coming from Fermentrack.com, so updates to the Fermentrack firmware options will also expand the options in BrewFlasher.

There are three firmware options for TiltBridge at the moment - the TFT one is the “beta” firmware I sent across to you awhile back. No changes yet. ;)
 

garzlok

Well-Known Member
Joined
Aug 19, 2012
Messages
398
Reaction score
264
Location
Dacula
There are three firmware options for TiltBridge at the moment - the TFT one is the “beta” firmware I sent across to you awhile back. No changes yet. ;)
Well...when you’re given a new toy it would be disrespectful not to play with it.

Just used BrewFlasher on a Windows laptop. Flashed the beta TB onto the D32 Pro with no issues. :D

For nubs like me, what would be the most common scenario to use the Erase Flash option?
 
OP
T

Thorrak

Supporting Member
HBT Supporter
Joined
Feb 7, 2016
Messages
2,879
Reaction score
1,799
Location
New York, NY
Well...when you’re given a new toy it would be disrespectful not to play with it.

Just used BrewFlasher on a Windows laptop. Flashed the beta TB onto the D32 Pro with no issues. :D

For nubs like me, what would be the most common scenario to use the Erase Flash option?
The short answer is: when things don’t work the first time. The erase flash option shouldn’t ever need to be used - yet none of the bugs people sometimes report with some of these projects should ever occur either.

“When in doubt, zero it out.”

Don’t have me do your taxes.
 

day_trippr

Covid-19 Vaccine Effectivity Test Subject
Joined
May 31, 2011
Messages
35,572
Reaction score
17,783
Location
Stow, MA
Maybe it means "erase eeprom"?

There's really never a good reason to "erase" flash with the exception of serial eeproms that are not part of the code-resident domain - which gets erased when it's reprogrammed anyway. As flash has a limited lifespan erase cycles are to be avoided except when necessary...

Cheers!
 
OP
T

Thorrak

Supporting Member
HBT Supporter
Joined
Feb 7, 2016
Messages
2,879
Reaction score
1,799
Location
New York, NY
Maybe it means "erase eeprom"?

There's really never a good reason to "erase" flash with the exception of serial eeproms that are not part of the code-resident domain - which gets erased when it's reprogrammed anyway. As flash has a limited lifespan erase cycles are to be avoided except when necessary...

Cheers!
It doesn’t in this case, but I believe it does cover the EEPROM. It toggles this option: https://github.com/espressif/esptool/blob/master/README.md#erase-flash-erase_flash--erase-region
 

day_trippr

Covid-19 Vaccine Effectivity Test Subject
Joined
May 31, 2011
Messages
35,572
Reaction score
17,783
Location
Stow, MA
btw, not trying to be critical here, just technical. Given I actually spent almost 15 years doing nothing but designing flash-based storage devices for everything from GoPros through iMacs through Bing servers to Los Alamos-scale systems there's some experience involved :)

A feature to do a selective erase of any eeprom used to store settings is always a good thing as seen repeatedly in this forum.
Wiping a code store, not so much.
Programs like avrdude will always do an erase before write, so no need to front that with another erase...

Cheers!
 
OP
T

Thorrak

Supporting Member
HBT Supporter
Joined
Feb 7, 2016
Messages
2,879
Reaction score
1,799
Location
New York, NY
btw, not trying to be critical here, just technical. Given I actually spent almost 15 years doing nothing but designing flash-based storage devices for everything from GoPros through iMacs through Bing servers to Los Alamos-scale systems there's some experience involved :)

A feature to do a selective erase of any eeprom used to store settings is always a good thing as seen repeatedly in this forum.
Wiping a code store, not so much.
Programs like avrdude will always do an erase before write, so no need to front that with another erase...

Cheers!
Oh, I 100% agree on both counts.

BrewFlasher is a wrapper around esptool.py, so the options it presents are the options esptool.py exposes. In this case, the --erase-flash option wipes everything. Now - the argument can be made that the exception proves the rule, and that esptool.py clearly isn't doing an erase before write if it makes you explicitly set a flag to do so, but I would still expect it to do enough to ensure that whatever firmware gets flashed runs well.

The main thing I think about in terms of how the option could be useful is the fact that some users of TiltBridge have found the need to flash an unrelated firmware before they are able to get TiltBridge to properly flash SPIFFS. This makes absolutely no sense to me. The only thing I can think that means is that there is some inconsistency that is resolved by flashing the other firmware first, which is where I think that the --erase-flash option could prove helpful. Still though - my recommendation would be to not use it unless required, which is why it is not enabled by default.
 

verboten

With Low Expectations, you're rarely disappointed
Joined
Jul 21, 2011
Messages
442
Reaction score
249
Location
Monroe, MI
Just used BrewFlasher on a Windows laptop. Flashed the beta TB onto the D32 Pro with no issues. :D
you did better than me, I still can't make it work! :no: I'm apparently no good at this non-windows stuff!
[emoji2369]
 

verboten

With Low Expectations, you're rarely disappointed
Joined
Jul 21, 2011
Messages
442
Reaction score
249
Location
Monroe, MI
I don't get any errors that I can tell.
I just have the blank screen and no tiltbridge SSID.
IMG_20200128_163912.jpg
IMG_20200203_134852.jpg
IMG_20200204_133938.jpg
 

Bigdaddyale

Well-Known Member
Joined
Aug 29, 2011
Messages
1,403
Reaction score
313
Location
Rowland Heights
I need a step by step walkthrough. I download and expand the Github zip file to a folder on my win 10 laptop desktop but not sure where to go from there.
 

darynsd

Active Member
Joined
Jan 16, 2011
Messages
34
Reaction score
15
Location
San Diego
Flashing the TFT version did get my display to work and it sees the Tilt. Unfortunately, now I can't access the device through the browser. Using http://tiltbridge.local/ or the IP address results in a blank tab. My router says it's connected, but I can't access it to finish setting it up. The files linked from the TiltBridge documents did allow me to connect with the browser -just no TFT display. Using the erase flash function basically breaks everything and I have to load something else via Arduino and then re-run BrewFlasher to get back to the working TFT display & blank browser.
 
OP
T

Thorrak

Supporting Member
HBT Supporter
Joined
Feb 7, 2016
Messages
2,879
Reaction score
1,799
Location
New York, NY
Update - I just released a new version of BrewFlasher which includes support for flashing the bootloader & otadata partitions to ESP32s. This should fix the issues that some users have reported with TiltBridge. This support has to be enabled firmware-by-firmware, and is currently only enabled for the TiltBridge BETA firmware - not the original (non-beta) TiltBridge firmware.

As always, let me know if you have any issues. The release can be downloaded here.
 
OP
T

Thorrak

Supporting Member
HBT Supporter
Joined
Feb 7, 2016
Messages
2,879
Reaction score
1,799
Location
New York, NY
Flashing the TFT version did get my display to work and it sees the Tilt. Unfortunately, now I can't access the device through the browser. Using http://tiltbridge.local/ or the IP address results in a blank tab. My router says it's connected, but I can't access it to finish setting it up. The files linked from the TiltBridge documents did allow me to connect with the browser -just no TFT display. Using the erase flash function basically breaks everything and I have to load something else via Arduino and then re-run BrewFlasher to get back to the working TFT display & blank browser.
Reflash with the new version of BrewFlasher and the Beta firmware and let me know if that fixes it. If it doesn’t, post over in the TiltBridge thread and I’l see what I can do to help.
 

asthenia548

New Member
Joined
Jan 4, 2021
Messages
2
Reaction score
3
I am attempting to use BrewFlasher to flash my new boards using Windows. My Windows can see the boards when I connect them, they show up in Device Manager as "USB SERIAL CH340 (COM3)".

But when I try to run BrewFlasher, and select "COM3" as the serial port, the flasher just hangs. It gets to the third line "Command: esptool.py..." as shown in the photo above and just sits there. I've left it for about an hour hoping to give it time, but it doesn't seem to help. Using the Auto-select (instead of "COM3") doesn't seem to work either. I've also tried changing the baud rate, no difference.

Am I missing something? Are these boards not compatible, or is there something missing that BrewFlasher is expecting?

EDIT: this only happens when I select "BrewBubbles v2 rev2 -1" as the firmware. "Rev1-1" flashes fine.

Thanks!
 
Last edited:

asthenia548

New Member
Joined
Jan 4, 2021
Messages
2
Reaction score
3
Lee,

Thank you so much for the quick reply! And yes, it works fine now! V2 flashed without issue.

I'm excited to get my BrewBubbles up and running!

-Jake
 
Last edited:

jangevaa

Well-Known Member
Joined
Nov 22, 2010
Messages
251
Reaction score
74
Location
Guelph
Just flashed 7 brewbubbles devices. Really easy to use tool, well done. Took me a second to understand how versioning is represented. Does this connect with a remote firmware database? Or does it check github repos directly?
 

LBussy

A Cunning Linguist
HBT Supporter
Joined
Jan 19, 2013
Messages
3,183
Reaction score
1,216
Location
Kansas City
There is a firmware database that maintains the metadata I enter, it calculates a checksum, and compares that against the firmware it downloads directly from GitHub (or wherever I point it.)
 

100amps

100 Amp (Home) Brewing
Joined
Jun 20, 2014
Messages
155
Reaction score
27
Location
Vancouver
After messing with the NodeMCU flasher and the Espressif one and the python ones, which are all really the same and probably all worked fine, assuming I had the right settings for flashing the iSpindel, but I was always a bit uncertain about the outcome because documentation and tools' feedback was always kind of sketchy. Yeah, I saw all the forum discussions, but they seemed to always be a matter of the blind leading the blind with a few anecdotal successes using what I considered to be odd settings. No details at all from the iSpindel folks's docs, at least not in English. And just as my expectations were starting to suck yeasty muck through the beer-out tube, I discovered that BrewFlasher supports flashing iSpindel.

And it just... worked. And it told me so. Not too much to ask really.

Thanks guys! :)
 
Last edited:

UncleD

Supporting Member
HBT Supporter
Joined
Dec 1, 2018
Messages
157
Reaction score
166
I've gotta say this software is a great idea and really easy to use. It's perfect for anyone who want's to build some of the popular IoT projects but doesn't want to code or compile. It's also nice that the software always pulls the most recent versions for each project, so you don't have to go and find it...
 
OP
T

Thorrak

Supporting Member
HBT Supporter
Joined
Feb 7, 2016
Messages
2,879
Reaction score
1,799
Location
New York, NY
After messing with the NodeMCU flasher and the Espressif one and the python ones, which are all really the same and probably all worked fine, assuming I had the right settings for flashing the iSpindel, but I was always a bit uncertain about the outcome because documentation and tools' feedback was always kind of sketchy. Yeah, I saw all the forum discussions, but they seemed to always be a matter of the blind leading the blind with a few anecdotal successes using what I considered to be odd settings. No details at all from the iSpindel folks's docs, at least not in English. And just as my expectations were starting to suck yeasty muck through the beer-out tube, I discovered that BrewFlasher supports flashing iSpindel.

And it just... worked. And it told me so. Not too much to ask really.

Thanks guys! :)
Glad that everything worked! The iSpindel version that BrewFlasher flashes can fall out of date, but it's not that hard to update. I just need poking. :)
 
Top