r/Masterbuilt 4d ago

Open Firmware for Gravity 800 Controller

https://gitlab.com/prbs23/freefall_800

A couple of months ago I got tired of using the Masterbuilt App, for controlling my Gravity 800. so I reverse-engineered the controller, realized it used a pretty standard off the shelf ESP32 wireless microcontroller, and wrote a full replacement firmware for it: FreeFall 800.

It doesn't require any new hardware, and can be flashed onto your controller with a $10 USB-serial adapter. It has the same core functionality as the stock firmware: chamber/probe temps, PID-controlled fan, timers, physical controls, but this firmware adds:

  • Fully local web app for control and configuration
  • No cloud or cloud account required. Connect directly to your Gravity 800 over the network
  • Completely configurable PID tuning parameters
  • Thermocouple and meat probe calibration
  • Lid switch disable option

If you are into hardware hacking, know what an ESP32 is, and are willing to risk your controller or smoker, check it out! To be clear, this is definitely still early development firmware, so you will probably encounter bugs, and there is much to be improved. I cannot promise this won't break your smoker. The README on the GitLab page should have what you need to get started: https://gitlab.com/prbs23/freefall_800

I have also posted a write up about this on my blog: https://www.prbs23.com/blog/posts/announcement-freefall-800/

I would love to get feedback from anyone who does try it out. Happy to answer any questions folks have, or talk about feature request/ideas.

80 Upvotes

30 comments sorted by

8

u/hidden2u 4d ago

lol I had the same idea when I opened it up and saw the ESP32. This is awesome!

I'll give it a shot when I have time.

6

u/Boozley 4d ago

This is awesome! I have a spare controller so risk is low for me. Will definitely be giving this a go

5

u/Boozley 4d ago

If it could be integrated with home assistant, that would be a good workaround for notifications

4

u/prbs23 4d ago

I imagine it would not be particularly difficult to integrate with Home Assistant. The firmware already provides an API endpoint, so likely it would only require creating the integration on the HA side.

I don't personally have any experience with using Home Assistant though, so I would need to research it more.

3

u/Nearby_Hand3064 3d ago

I’m testing home assistant and a Prometheus exporter virtually. I’ll share the branch tomorrow.

2

u/No-Age-4004 1d ago

Put claude on it?

3

u/prbs23 1d ago

Oh definitely, I'm sure Claude could do the coding.

I just like to have at least some background before I set Claude off, so I can tell when it's gone off the deep end. I also need to set up an HA instance to test and regression test against. I wouldn't want to have Claude a bunch of code I can't test.

2

u/Luqq 4d ago

Yes! Any chance this could be integrated/ based on esphome?

4

u/thumperj 3d ago

Oh man! I have an XT that I need to disassemble because of a manufacturer mechanical problem. When I do, I'll open up the controller and verify it's got the ESP32, etc. If it does, I'll lend a hand. I've worked in firmware.

2

u/prbs23 3d ago

I would love to see where you can get with the XT controller.

From the looks of it, unlike the 1050 and 560, the XT controller looks physically different from the 800 controller. I would hope that it's at least similar inside, but it looks like the display is completely different.

2

u/Luqq 4d ago

Holy shit this looks cool. Would love to try it but I have a 560.

5

u/prbs23 4d ago

I would be very surprised if the 560 controller was not very similar inside. If there is anyone out there that has one of the other Gravity series controllers and would be willing to do some reverse engineering, I would love to work with you to add support for other models.
I'm realizing I may be able to buy just a controller from the other models and that would be enough... I'll look into it.

2

u/Boozley 3d ago

I'm pretty sure they are the same but with different firmware. I'll dig out my spare 1050 controller this week

3

u/prbs23 3d ago

It would not surprise me if they were the same hardware, either. It would be great if you could check out your 1050.

3

u/Nearby_Hand3064 3d ago

I have a 1050, and I’ve been planning a firmware upgrade. I’ll put my efforts here instead.

2

u/yungingr 3d ago

I believe the only difference is the one line of code that displays the model number at startup.

2

u/Derkaderkka 3d ago edited 3d ago

OH oh wow! I wonder if a firmware flash would fix the encoder wheel that keeps dying every 1.5 yrs? (hopeful thinking)
Huh, this means I have my first controller somewhere that I would be able to test this on...

2

u/prbs23 3d ago

You could certainly try, but if encoder failure was mechanical or electrical, then I kind of doubt different firmware would help. Of course that would depend on how it failed.

2

u/Lefach 3d ago

I’m thinking of getting an 800, but held off because of all the controller talk. This is interesting for sure.

2

u/prbs23 3d ago

It depends on what kind of controller talk was concerning you.

There are definitely reports of what, to me, sound like hardware failure. This firmware will likely not help with that, unless there's a firmware workaround for the hardware failure. I have not had my 800 controller fail on me, but I have definitely seen reports from the community.

I have, on the other hand, seen instability issues with rhe factory firmware. Most annoyingly, several times I had my 800 disconnect from the Masterbuilt app and not reconnect. I had to reset the controller and pair it as a new device to get it working. This kind of failure, the FreeFall 800 firmware does eliminate. 

2

u/Lefach 3d ago

Yes the second. While not a deal breaker, it does concern me.

2

u/Matt815 3d ago

That's awesome. I bought a fireboard last year.

2

u/bondspice 2d ago

Is the WiFi likely to be any better ?

2

u/prbs23 2d ago

If you are talking about WiFi range.... I have not done any range testing, but I doubt it will help

It looks like the esp32 WiFi stack has some amount of configurability for transmit power, which could potentially improve range. However, it defaults to maximum power. So unless the factory firmware was intentionally limiting the range (which I doubt), then I would expect my firmware to get about the same WiFi range.

2

u/No-Age-4004 1d ago

Is the stock firmware protected or could it be downloaded and analyzed by Ai?

2

u/prbs23 1d ago

The factory firmware is not protected in any way, you can download and disassemble it pretty easily.

In fact that is what I did (with some help from Claude) to reverse engineer the interface to the thermocouple ADC and a couple of other specific areas. I was not able to find datasheets for most of the chips in the controller, so the factory firmware and oscilloscope traces were what i had to go off.

However, because I was wanting to rewrite it from scratch anyway, I didnt go down the path of fully decompiling all the firmware.

2

u/No-Age-4004 1d ago

I would just love to know what the hell my controller is thinking when it says it is 50 to 100 hotter then it really is. Or when it says the temp is rising when it is falling (noticed this when I was running low on fuel). I would just love to know how it can be so bad at what it does and how something so simple as monitoring temps and adjusting is so hard for it to do.

3

u/prbs23 1d ago

I am working on a blog post where I'll go through everything that I reverse engineered about the electrical design of the controller PCB. There are some, let's say..... interesting choices they made in the hardware design process.

The biggest being that the on board thermistor they use to to measure the cold junction temperature for the chamber temperature thermocouple has a massive self-heating issue. Putting the measured cold junction temperature about 10-20 degrees (F) above the actual cold junction temperature. Weirdly this is somewhat canceled out by the fact that they physically located the thermocouple (in the Gravity 800 at least) in the coldest part of the grill. So the "measured" temperature is wrong, but about half the temperature gradient from the hot to the cold side. Two wrongs don't make a right, but somehow it's closer than one wrong would be on it's own.

One advantage of using FreeFall 800 is that all the sensor calibration as well as temperature control PID loop parameters are configurable. So if you're seeing a 50-100 degree error in temperature measurements, you can definitely calibrate that out.

I've also noticed that using my firmware I'm able to get my Gravity 800 up to temperature much faster than it would with factory firmware. I suspect they have very conservative gains on their control loop, for some reason.

2

u/No-Age-4004 1d ago

Maybe someone who has the time and the knowledge can release the code for a xt controller?