Stuck in heating mode

I’ve been having a few issues where the brewpi is not accessible through the browser -presuming this is Wi-Fi related - but it’s gets stuck in whatever temp it’s on. A quick restart and it gets back to business.

I went away last weekend and when I got back it had got stuck in a heating cycle that never stopped and brought my lager up to 23c from 10c. It stopped logging and when I walked into look at it the brewpi had it’s black boot screen and I heard the beep just as the shed door opened.

I muddled through the set up initially and it’s been working fairly well up until now.

I don’t know where to start looking to solve this issue. All help appreciated.


Hi Ron,

On which version of the firmware is this?
Losing network connection should never block temperature control, but there was a bug in the Particle system layer that could cause a system-wide lockup.


Sorry to be asking the stupid questions but how do I check that?

Brewpi 0.5.2

Sound right?

Yes, that’s likely. I have just merged the latest changes from Particle that include many fixes for WiFi instability. I’ll try to put a new release out tomorrow that will address your issue.


I was meet with a black screen today and the beer which had been chilling near 1c was back up to 18c.

Do I need to go from 0.5.2 to 0.5.3 and then to the latest release?

You should be able to update directly from 0.5.2 if you use DFU.

The instructions are included in the release note:

Please check that it says ‘BrewPi 0.5.5’ under the logo when it starts up after you have upated.

I pulled the latest firmware and redeployed the brewpi container, no issues. Did see one warning in the log after starting up
May 03 2018 17:44:16 Warning: version number of local copy of logMessages.h does not match log version number received from controller.controller version = 4, local copy version = 3

Great. Thanks for the reminder. I need to update the warnings interpreter in the script.

Sorry to be the idiot in the room but could you walk me through this…

log into portainer.
click on the brewpi container
click on console
on the command prompt type in docker pull brewpi/brewpi-raspbian

is that right?

Command not found anyway.

I’m not even a novice at this I’m afraid.

A bit of reading later and I went with

cd ~/brewpi-tools

this is working away…

I followed all the prompts until this popped up -

File flashed successfully
May 08 2018 22:25:16 Opening serial port
May 08 2018 22:25:41 Errors while opening serial port:
Could not open port socket:// [Errno 111] Connection refused

May 08 2018 22:25:42 Opening serial port
May 08 2018 22:25:52 Errors while opening serial port:
Could not open port socket:// [Errno 111] Connection refused

May 08 2018 22:25:53 Opening serial port
May 08 2018 22:26:15 Errors while opening serial port:
Could not open port socket:// [Errno 111] Connection refused

May 08 2018 22:26:16 Opening serial port
May 08 2018 22:26:26 Errors while opening serial port:
Could not open port socket:// [Errno 111] Connection refused

May 08 2018 22:26:27 Opening serial port
^CTraceback (most recent call last):
File “”, line 433, in
Traceback (most recent call last):
File “/home/brewpi/utils/”, line 268, in
File “/usr/lib/python2.7/”, line 1384, in wait
result = updateFromGitHub(userInput=userInput, beta=beta, useDfu=useDfu)
File “/home/brewpi/utils/”, line 239, in updateFromGitHub
{‘settings’: restoreSettings, ‘devices’: restoreDevices})
File “/home/brewpi/utils/…/”, line 157, in programController
return programmer.program(hexFile, system1File, system2File, useDfu, restoreWhat)
File “/home/brewpi/utils/…/”, line 260, in program
pid, sts = _eintr_retry_call(os.waitpid,, 0)
File “/usr/lib/python2.7/”, line 476, in _eintr_retry_call
if not self.open_serial_with_retry(self.config, 57600, 0.2):
File “/home/brewpi/utils/…/”, line 343, in open_serial_with_retry
return func(*args)
if self.open_serial(config, baud, timeout):
File “/home/brewpi/utils/…/”, line 332, in open_serial
self.ser = util.setupSerial(config, baud, timeout)
File “/home/brewpi/utils/…/”, line 144, in setupSerial

the brewpi has a pulsing turquoise light. That’s where I am…not sure what I’m at to be honest.

The easier option is to recreate the container from the latest image, for which you have a button in portainer. If you don’t, you should remove and recreate the portainer container from the command line.

Then update the firmware and check the display that the IP address didn’t change. You can set the IP from the web interface now.

I went back into portainer and recreated the container then entered the commands through putty. It seemed to work. I can see the web interface and the script is running again…

On reboot of the brewpi I have 0.5.5 and my ip address is the same.

This was the last bit - ended with an error - does that look right?

HypriotOS/armv6: pirate@black-pearl in ~
$ docker run -it --name brewpi-dfu --privileged -v ~/brewpi-data:/data --rm brewpi/brewpi-ubuntu python utils/ --noreset
Unable to find image ‘brewpi/brewpi-ubuntu:latest’ locally
latest: Pulling from brewpi/brewpi-ubuntu
297061f60c36: Pull complete
e9ccef17b516: Pull complete
dbc33716854d: Pull complete
8fe36b178d25: Pull complete
686596545a94: Pull complete
34cf10cb3a9f: Pull complete
5f8f5327589a: Pull complete
622d7d5af9a7: Pull complete
2a92a82956a9: Pull complete
35faffeaa00b: Pull complete
d513a0984cfb: Pull complete
c113e6f9c86f: Pull complete
d783cebd9f5e: Pull complete
77d6fd257527: Pull complete
c83a767b7cd5: Pull complete
5de27e0dcbc9: Pull complete
e276725dd76d: Pull complete
4ca9dd3b44f3: Pull complete
cd34bbe58112: Pull complete
14e7b143cdf7: Pull complete
Digest: sha256:c15de94de6c3b1e2d6d865d3c4b3a64001393150c3b39abdff39ab67862ea764
Status: Downloaded newer image for brewpi/brewpi-ubuntu:latest
standard_init_linux.go:178: exec user process caused “exec format error”
HypriotOS/armv6: pirate@black-pearl in ~

No idea to be honest. I see you’re still running on hypriot. It’s recommended to just install docker on the regular Raspbian image now. It’s better supported and maintained.

Thanks for getting back to me.

I thought I followed the instructions on the new release - recreate the container and ssh in through putty to execute the docker commands.

Excuse my ignorance but what should I have done instead?
Or should I say how should I do it.

Thanks again.

Ah! Sorry, now I spotted the problem.
You picked the ubuntu image, while running on a raspberry pi.

My original comment was because I thought the docker host was not running properly, so I suggested reinstalling on regular raspbian instead of hypriot.

You need to run the commands for the pi, not for x86:

docker pull brewpi/brewpi-raspbian
docker run -it --name brewpi-dfu --privileged -v ~/brewpi-data:/data --rm brewpi/brewpi-raspbian python utils/ --trigger
docker run -it --name brewpi-dfu --privileged -v ~/brewpi-data:/data --rm brewpi/brewpi-raspbian python utils/ --noreset

Ah - i see. I copied the wrong code across. I’ll give it a go once this beer is fermented.

So just to confirm -
Do I need to recreate the container again? Then ssh into the pi and enter the commands?


The effect of this command is that the host has the latest image:

docker pull brewpi/brewpi-raspbian

Then there are 2 separate things to do:

  • Update your running brewpi container (that runs the script and the web interface, which is easiest by clicking the ‘recreate’ button in the portainer web interface.
  • Update the firmware by starting a new container (from the latest image) that is destroyed after use (--rm in command) to run the update commands:
docker run -it --name brewpi-dfu --privileged -v ~/brewpi-data:/data --rm brewpi/brewpi-raspbian python utils/ --trigger
docker run -it --name brewpi-dfu --privileged -v ~/brewpi-data:/data --rm brewpi/brewpi-raspbian python utils/ --noreset