BrewPi Remix – What’s Old is New Again

Homebrew Talk - Beer, Wine, Mead, & Cider Brewing Discussion Forum

Help Support Homebrew Talk - Beer, Wine, Mead, & Cider Brewing Discussion Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.
Can I use 0.2.12 version and upload the hex file via the web interface?
 
Issue the command: sudo /home/brewpi/utils/doFlash.sh --shield

Pick the appropriate one for your setup.
I currently have a Arduino Uno with a revC shield on port. What firmware version do you recommend?
 
Hi, I have an original BrewPi Spark and I am trying to get BrewPi remix up and running. I have gone through the installation and have the web interface up and running but am stuck with "Script starting up."

the controller reads all my temperature sensors fine, but am just hung up with the script.

Screenshot 2023-08-19 085352.png


Any help would be appreciated! cheers!
 
I have gone through the installation and have the web interface up and running but am stuck with "Script starting up."

the controller reads all my temperature sensors fine, but am just hung up with the script.
Have a look at the logs: /home/brewpi/logs/stdout.txt & /home/brewpi/logs/stderr.txt

I currently have a Arduino Uno with a revC shield on port. What firmware version do you recommend?
That one is appropriate if you are not using Glycol, or an I2C LED.
 
Have a look at the logs: /home/brewpi/logs/stdout.txt & /home/brewpi/logs/stderr.txt


That one is appropriate if you are not using Glycol, or an I2C LED.
2023-08-19 08:47:45 [N] Starting 'My BrewPi Remix Run.'
2023-08-19 08:47:45 [N] Opening serial port.
2023-08-19 08:47:45 [N] Waiting 10 seconds for board to restart.
2023-08-19 08:47:55 [N] Checking software version on controller.
2023-08-19 08:47:55 [N] Found BrewPi v0.5.2 build 0.5.2-0-g72e633171, running on a Particle Core with a V1 shield on port /dev/ttyACM0.
2023-08-19 08:47:57 [N] New JSON received from controller.
2023-08-19 08:49:58 [N] New JSON received from controller.
..
2023-08-19 10:12:36 [N] New JSON received from controller.
2023-08-19 10:14:37 [N] New JSON received from controller.


---

2023-08-18 22:13:28 [E] Starting BrewPi.
2023-08-18 22:09:13 [E] Starting BrewPi.
2023-08-19 08:47:45 [E] Starting BrewPi.
 
ya, chec
Uhhhhhh.... shift-refresh?

Also, check to make sure the script is actually running: sudo systemctl status brewpi
ya, checked that as well as running in incognito. Here is the result of checking the script

brewpi.service - BrewPi Remix daemon for: brewpi
Loaded: loaded (/etc/systemd/system/brewpi.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2023-08-18 22:09:08 CDT; 13h ago
Docs: User Documentation — BrewPi Remix 0.8.0 documentation
Main PID: 820 (bash)
Tasks: 4 (limit: 1595)
CPU: 3min 53.609s
CGroup: /system.slice/brewpi.service
├─ 820 /bin/bash /home/brewpi/utils/doBrewPi.sh -d
├─8806 /home/brewpi/venv/bin/python3 -u /home/brewpi/brewpi.py --log --datetime
└─8810 git cat-file --batch-check

Aug 19 11:17:16 brewpi brewpi[8806]: 2023-08-19 11:17:16 [N] Using default configuration.
Aug 19 11:17:16 brewpi brewpi[8806]: 2023-08-19 11:17:16 [N] No user config file found:
Aug 19 11:17:16 brewpi brewpi[8806]: 2023-08-19 11:17:16 [N] /home/brewpi/settings/config.cfg
Aug 19 11:17:16 brewpi brewpi[8806]: 2023-08-19 11:17:16 [N] Using default configuration.
Aug 19 11:17:16 brewpi brewpi[8806]: 2023-08-19 11:17:16 [N] No user config file found:
Aug 19 11:17:16 brewpi brewpi[8806]: 2023-08-19 11:17:16 [N] /home/brewpi/settings/config.cfg
Aug 19 11:17:16 brewpi brewpi[8806]: 2023-08-19 11:17:16 [N] Using default configuration.
Aug 19 11:17:16 brewpi brewpi[8806]: Logging to /home/brewpi/logs/.
Aug 19 11:17:16 brewpi brewpi[8806]: Output will not be shown in console.
Aug 19 11:17:16 brewpi brewpi[8806]: Starting BrewPi.
 
Well, the "universal first aid" would be:

Bash:
sudo systemctl stop brewpi
sudo /home/brewpi/utils/doPerms.sh
sudo systemctl start brewpi
Optionally, and maybe even recommended, reboot after that.
 
Well, the "universal first aid" would be:

Bash:
sudo systemctl stop brewpi
sudo /home/brewpi/utils/doPerms.sh
sudo systemctl start brewpi
Optionally, and maybe even recommended, reboot after that.
Still stuck with "Script Starting Up" Ill try tinkering and doing a fresh install with another Pi. Thanks for your help!
 
Alright, I am back. I did a clean install using this (detected dubious ownership in repository · Issue #65 · brewpi-remix/brewpi-tools-rmx) on an older Raspberry Pi, one that i used to use for the original BrewPi. I ran into the same problem with getting stuck on "Script Starting Up" and did the same suggestions listed above to see if anything would work and I am still in the same spot.

Here are the most recent logs for the clean install using a Raspberry Pi 2014 B+ V1.2

2023-08-23 19:08:48 [E] Starting BrewPi.
2023-08-23 19:10:25 [E] Starting BrewPi.
2023-08-23 20:09:04 [E] Starting BrewPi.
Terminating due to fatal serial error //Reboot
2023-08-23 20:10:31 [E] Starting BrewPi.
2023-08-23 20:11:55 [E] Starting BrewPi.
2023-08-23 20:14:53 [E] Starting BrewPi.

----

2023-08-23 20:14:53 [N] 0.8.1 (main) [c16adae]
2023-08-23 20:14:53 [N] Starting 'My BrewPi Remix Run.'
2023-08-23 20:14:53 [N] Opening serial port.
2023-08-23 20:14:53 [N] Waiting 10 seconds for board to restart.
2023-08-23 20:15:03 [N] Checking software version on controller.
2023-08-23 20:15:03 [N] Found BrewPi v0.5.2 build 0.5.2-0-g72e633171, running on a Particle Core with a V1 shield on port /dev/ttyACM0.
2023-08-23 20:15:07 [N] New JSON received from controller.
2023-08-23 20:15:08 [N] JSON decode error: Expecting ':' delimiter: line 1 column 199 (char 198)
2023-08-23 20:15:08 [N] Line received was: C:{"tempFormat":"F","heater1_kp":10.00,"heater1_ti":600,"heater1_td":60,"heater1_infilt":1,"heater1_dfilt":4,"heater2_kp":10.00,"heater2_ti":600,"heater2_td":60,"heater2_infilt":1,"heater2_dfiltnull,"minimum":-10.0000,"maximum":10.0000},"inputError":null,"Kp":2.0000,"Ti":7200,"Td":1200,"p":0.0000,"i":0.0000,"d":0.0000,"actuatorIsNegative":false}]}
2023-08-23 20:17:08 [N] New JSON received from controller.


That's very weird ... it looks like the query is not working. A clean install may just fix it all. If not, let me know and we can figure it out.
 
C:{"tempFormat":"F","heater1_kp":10.00,"heater1_ti":600,"heater1_td":60,"heater1_infilt":1,"heater1_dfilt":4,"heater2_kp":10.00,"heater2_ti":600,"heater2_td":60,"heater2_infilt":1,"heater2_dfiltnull,"minimum":-10.0000,"maximum":10.0000},"inputError":null,"Kp":2.0000,"Ti":7200,"Td":1200,"p":0.0000,"i":0.0000,"d":0.0000,"actuatorIsNegative":false}]}
I see two issues here:
  1. BrewPi Remix does not support two heaters. I never had a Spark so testing with one was never in the cards. I assumed that the Legacy BrewPi would support the spark but that does not seem to be the case. This issue is overshadowed by:
  2. This is not valid JSON. The part where it transitions to heater2_dfilt is improper. "heater2_dfiltnull, should be "heater2_dfilt":null,.
Has this hardware ever worked? If that firmware is not working right, I can't address it. I never took on Spark development.
 
Have a look at the logs: /home/brewpi/logs/stdout.txt & /home/brewpi/logs/stderr.txt


That one is appropriate if you are not using Glycol, or an I2C LED.
I see revc is the correct type for me what about the release to match the revc?

1692898590858.png
 
0.2.13 would be it. There are very few material changes, but using the latest/stable version always makes sense.
Hi,
Still have something wrong. Example brewed a lager last night fill wort in fermenter at 70 degrees set beer temp at 50 expecting it to be 50 the next day to pitch was only 57. I can see the target temp for the chamber is 33.8 yet it never keeps the cooling on long enough to hit the target temp it just short cycles the cooling. I tried flashing to older firmware's to see if I would notice any change. No luck there.
Thanks for the help!
 
My best guess without seeing the graph (and that would help) is that your temp sensor is right next to the cooling plate/fins. Do you have a small fan in there? If not, you might try adding one.
 
My best guess without seeing the graph (and that would help) is that your temp sensor is right next to the cooling plate/fins. Do you have a small fan in there? If not, you might try adding one.
Its a pepsi fridge the cooling fins are in the top with a fan to direct the cool air down into the chamber. The sensor is on the back all in the middle.
1693223976170.png
 
May be a long shot: check the setting: Maintenance Panel - Advanced Settings - Control Constants - Temperature setting minimum
The default 33.8°F value may be too high...

Cheers!
 
Last edited:
Would you please zoom into the chart (you can click-drag on the chart to do so) to a smaller area like this?

1693226099660.png


.... be sure to include the bottom part.
 
I think part of what is happening here is that the logging interval (120 seconds) fails to catch the actual temperature drop. I do believe you are probably dropping to the fridge set point, but that the thermal mass in there is causing the temp to raise by quite a bit before it reaches the end of the cooling min-off time.

One thing that might help is to drop your fridge probe in a glass of water to give it a thermal buffer.
 
So far the cooling is still short cycling with the fridge sensor in water. It turns on for a few seconds then waiting for peak until the next short cooling cycle.
 
So far the cooling is still short cycling with the fridge sensor in water. It turns on for a few seconds then waiting for peak until the next short cooling cycle.
It seems like either the PID is wound up, or the script may be crashing/restarting (most likely.) Have you looked through the logs to see if there's anything there?
 
It seems like either the PID is wound up, or the script may be crashing/restarting (most likely.) Have you looked through the logs to see if there's anything there?
In the stdout and stderr logs no errors. I switched back to the fridge sensor where it was in the fridge and changed the setting to fridge consistent It holds that set temp with no issues.
 
In the stdout and stderr logs no errors.
It might not be an error - do you see the script restarting?

I switched back to the fridge sensor where it was in the fridge and changed the setting to fridge consistent It holds that set temp with no issues.
Can you swap the fridge and vessel sensors maybe and see if that does anything?

I'm leaning away from a logical issue simply because there's a long track record of this "just working."

If you stop BrewPi (sudo systemctl stop brewpi) and let it run "headless" for a bit, what happens? This assumes you either have an LCD or some other way of checking temps without the UI of course.
 
It might not be an error - do you see the script restarting?


Can you swap the fridge and vessel sensors maybe and see if that does anything?

I'm leaning away from a logical issue simply because there's a long track record of this "just working."

If you stop BrewPi (sudo systemctl stop brewpi) and let it run "headless" for a bit, what happens? This assumes you either have an LCD or some other way of checking temps without the UI of course.
Is this restarting? See pic.

1693327419649.png
 
No, that's the updates from the controller to the script. It's set at 120 seconds by default, which is generally fine.
I currently run headless only. I can hook up a monitor how do I check temps with out the UI?
 
I just had a turd drop at work, I was going to give you more information. If you are fearless:

sudo systemctl stop brewpi <- Stops the script/UI
sudo screen /dev/ttyUSB0 57600 <- Connects you to the serial port for the Arduino (change port accordingly)

At this point, 'l' (lower-case L) will return the "LCD contents." Further commands here: BrewPi Remix API — BrewPi Remix 0.8.0 documentation

Ctrl + A, Ctrl + \ - Exit screen and terminate all programs in this screen
 
Okay so more background.

The BrewPi application doesn't actually control temperatures. It receives Jason packets from the Arduino, and forwards them to the web UI. The controller will happily manage temperatures without the application, you just have no visibility without an LCD screen.

The above instructions will allow you to view the periodic JSON coming from the controller, or the LCD contents. Both will be in JSON, however, you should be able to pick up which field is which in short order.
 
Okay so more background.

The BrewPi application doesn't actually control temperatures. It receives Jason packets from the Arduino, and forwards them to the web UI. The controller will happily manage temperatures without the application, you just have no visibility without an LCD screen.

The above instructions will allow you to view the periodic JSON coming from the controller, or the LCD contents. Both will be in JSON, however, you should be able to pick up which field is which in short order.
When you say LCD screen is that via hdmi port?
 
Sorry, I should have been more clear:

BrewPi has an "LCD screen" that is actually several separate concepts:
  1. A physical 20x4 LCD, either connected to the Arduino in parallel or in later firmware, serial
  2. The "LCD" visible in the web UI. A dated look, but we all seem to like it
  3. The JSON report, which is sent over the serial connection from the Arduino to the host that provides the information for #2 above
The controller will do everything on its own; the only "control" that happens from the script/UI is setting changes and a temp profile if you use one. Otherwise, you can use an Arduino without a Pi. If you have an LCD (as in #1 above) and a rotary encoder, you can even skip needing the UI for temp setting changes.

What I am suggesting is you remove the BrewPi script from the equation and see if it behaves the same. If the problem goes away, then we will suspect something in the script. If it does not go away, we either have a hardware or firmware issue to diagnose.

The instructions above will allow you to power the Arduino from your Pi (or any handy laptop), connect via the serial connection established over USB, and have rudimentary visibility to the system's state.
 
Sorry, I should have been more clear:

BrewPi has an "LCD screen" that is actually several separate concepts:
  1. A physical 20x4 LCD, either connected to the Arduino in parallel or in later firmware, serial
  2. The "LCD" visible in the web UI. A dated look, but we all seem to like it
  3. The JSON report, which is sent over the serial connection from the Arduino to the host that provides the information for #2 above
The controller will do everything on its own; the only "control" that happens from the script/UI is setting changes and a temp profile if you use one. Otherwise, you can use an Arduino without a Pi. If you have an LCD (as in #1 above) and a rotary encoder, you can even skip needing the UI for temp setting changes.

What I am suggesting is you remove the BrewPi script from the equation and see if it behaves the same. If the problem goes away, then we will suspect something in the script. If it does not go away, we either have a hardware or firmware issue to diagnose.

The instructions above will allow you to power the Arduino from your Pi (or any handy laptop), connect via the serial connection established over USB, and have rudimentary visibility to the system's state.
Would it be easer to wipe the OS and reinstall?
 
Would it be easer to wipe the OS and reinstall?
It's easy, but it's work that may not get you anywhere. I'd be pretty frustrated if I did that and it didn't help. Unless you made some changes to the Pythion scripts, there's no reason to believe those are at fault. This will allow us to find out right away.
 
Back
Top