• Please visit and share your knowledge at our sister communities:
  • If you have not, please join our official Homebrewing Facebook Group!

    Homebrewing Facebook Group

BruControl: Brewery control & automation software

Homebrew Talk

Help Support Homebrew Talk:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.
I made a mistake with my OneDrive and inadvertently deleted a my data file and some other things. I copied the files back from a backup I had and now Brucontrol is crashing and closing at least once per day. It didn't use to crash at all. So, a couple of questions:

1. If I decide to uninstall and do a fresh install of Brucontrol -- what is absolutely essential to ensure I keep all my scripts and other programming details? I do not want to lose any of this.
2. Are there other things I should check as to why it might be crashing? Long shot here, but thought I'd ask anyway
3. I noticed my data files is >5GB. Are there obvious things to reduce this file size?

Thanks so much.
First and foremost is keep your brucfg file. Normally, that is default.brucfg, but if you have other profiles set up, then save those. Keep the Config Backup folder in case you need to revert to a saved config when BC last acted right.
 
First and foremost is keep your brucfg file. Normally, that is default.brucfg, but if you have other profiles set up, then save those. Keep the Config Backup folder in case you need to revert to a saved config when BC last acted right.
Thanks. Does that keep the scripts? Didn't look like it when i opened the file. Are the scripts only kept in the .mdf file?
 
Scripts should be in it. Open the file and search for a piece of your code (perhaps a endif statement). If it isn't in default.bruconfg, check other brucfg files. Depends what profile you have set in BC settings.

Can always copy and paste the scripts into a file, but that can be a pain, hah
 
I made a mistake with my OneDrive and inadvertently deleted a my data file and some other things. I copied the files back from a backup I had and now Brucontrol is crashing and closing at least once per day. It didn't use to crash at all. So, a couple of questions:

1. If I decide to uninstall and do a fresh install of Brucontrol -- what is absolutely essential to ensure I keep all my scripts and other programming details? I do not want to lose any of this.
2. Are there other things I should check as to why it might be crashing? Long shot here, but thought I'd ask anyway
3. I noticed my data files is >5GB. Are there obvious things to reduce this file size?

Thanks so much.
I simply do not use the local data as the data base gets too big in a hurry and does cause issues with BruControl. The file you need for your Devices and scripts is normally in your C:/Documents/BruControl folder. It has a name that ends in .brucfg.

You may have more than one file in the folder than ends in .brucfg, but you only use one.

The name of the file you are using can be found in BruControl.

1. Open BruControl
2. Unlock the Workspace (it may be so already).
3. Go to Settings
4. Go to Configuration
5. The file name is in the Active slot.

You should make a copy of this file. I make several. I put one on a thumb drive and another in my dropbox. I do this monthly.

That is the file that has all your Scripts, Timers, Elements and Workspaces.
 
If you are using default.brucfg, rename it to something meaningful to you. When you install BruControl, it will try to create a default.brucfg. I do not think it would overwrite yours, but better safe than sorry.

If you renamed it to WesternBrewery.brucfg, then you would select that in the Active slot of the configuration.
 
Here is graphic of the process to find youractive file:
configuration.png
 
Thanks. Does that keep the scripts? Didn't look like it when i opened the file. Are the scripts only kept in the .mdf file?
An .mdf file is a standard Microsoft Database file that holds data FROM your globals. It has nothing else in it except instances of those global values transferred from BruControl to the .mdf file. It is a one way steet. Data from a BruControl Global to the mdf file.

As an example. if you have a Global Element that copies a Mash Temperature Element ( you can do that with a Script), the value of that Global (and all your Global Elements) to the mdf file. Again. it only goes one way, from BruControl to the mdf file, If you delete an .mdf file, it has zero effect on the BruControl file (.brucfg)

I do not know how often a Global is "wrote" to the .mdf file, but it could be every clock cycle. Over a peroid of time, the .mdf file can get huge (and that does cause issues with BruControl). Promised in a new update, the ability to block a specific Global, and the ability to set how often a global is "read" was in the works.

I personally wish there was a new Element for the Data. Generally, I only might want to keep track of a Mash Temperature that was "read" every minute. I would like to keep track of a Fermentation temperature, but only once an hour (or even longer). If there was a Data Element, I might want to track the SG of a Tilt. Other users may want to keep track of other things, but generally, the items you want to track are very limited.

I have set up (with great help from @RiverCityBrewer ) a lot of Globals to import a BeerSmith3 recipe. I have not counted how many globals are associated with this process, but certainly around a hundred. I have no need to track them. Once I import them, they are static. But they are constantly "read" to the mdf file. Because I have so many globals (maybe over 200), the Database functionality of BruControl is useless to me.

I think I could write a node-red flow to keep track of the items I wanted and may do that. I would output to a csv file where it could be opened in Excel or a Google Sheet. I do not install the local db files associated with the .mdf so I do not have any .mdf files.
 
Last edited:
First, I want to acknowlege @RiverCityBrewer who greatly helped me getting Node Red up and running.

A Node-red flow to create a .csv file of a mash temp with time every minute.

The global element I used was named DX_gblV_Mash_Temp_DE

In addition, I have a folder
C:\BruControl\NodeRedData

To run this, you must have professional License, the Data Exchange enabled under settings, Node-Red installed and Running, and the flow in the local host on the same computer as BruControl.

This will create a simple .csv file which needs to be renamed after each Mash to a different name as this flow will create the file if it does not exist, but will simply append to the file if it does.

This flow could likely be improved as it is my first shot, but I think it would suit my needs.

The Flow:

[
{
"id": "c68aff04e20ee551",
"type": "tab",
"label": "Mash Temperature",
"disabled": false,
"info": "",
"env": []
},
{
"id": "17b429a9678c0b7c",
"type": "inject",
"z": "c68aff04e20ee551",
"name": "Start Mash Temperture",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "60",
"crontab": "",
"once": true,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "date",
"x": 190,
"y": 80,
"wires": [
[
"3c74d78c0e3b11dc"
]
]
},
{
"id": "3c74d78c0e3b11dc",
"type": "http request",
"z": "c68aff04e20ee551",
"name": "Connect to BruControl",
"method": "GET",
"ret": "txt",
"paytoqs": "ignore",
"url": "http://127.0.0.1:8000/globals",
"tls": "",
"persist": false,
"proxy": "",
"insecureHTTPParser": false,
"authType": "",
"senderr": false,
"headers": [],
"x": 420,
"y": 140,
"wires": [
[
"1e10d705ed8387aa"
]
]
},
{
"id": "034ac9778088f6fa",
"type": "function",
"z": "c68aff04e20ee551",
"name": "Get and Pass Mash Temp",
"func": "var arr = msg.payload; //arr for array\nvar Mash_Temp;\nvar Mash_Data;\nvar bcGlobals;\n\n//The following lines rearranges the array into a standard JSON key/value pair via a string and then makes it an object.\nbcGlobals = '{' + arr.map(function (elem) {\n return '\"' + elem.Name + '\":\"' + elem.Value + '\"';\n}).join(\",\");\nbcGlobals = bcGlobals + '}';\nbcGlobals = JSON.parse(bcGlobals);\n\n\nMash_Temp = bcGlobals['DX_gblV_Mash_Temp_DE']; //Sets Mash_Temp to the value of the BC global based on the global name. Change the name accordingly.\nnode.warn(new Date() +Mash_Temp); //Shows the value in the debug pane.\n\nmsg.payload = (new Date() + Mash_Temp); //Sets msg.payload to the DX_gblV_Mash_Temp_DE value so it can carry forward.\n\n\nreturn msg;\n\nreturn msg; //Returns the message, meaning msg.payload moves forward with the new value.",
"outputs": 1,
"timeout": "",
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 830,
"y": 280,
"wires": [
[
"bd321ddfc458903d",
"63caa0e376233921"
]
]
},
{
"id": "1e10d705ed8387aa",
"type": "json",
"z": "c68aff04e20ee551",
"name": "Convert JSON String to Object",
"property": "payload",
"action": "",
"pretty": false,
"x": 710,
"y": 140,
"wires": [
[
"034ac9778088f6fa"
]
]
},
{
"id": "bd321ddfc458903d",
"type": "debug",
"z": "c68aff04e20ee551",
"name": "Show Mash Temps",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "payload",
"targetType": "msg",
"statusVal": "",
"statusType": "auto",
"x": 1250,
"y": 280,
"wires": []
},
{
"id": "63caa0e376233921",
"type": "csv",
"z": "c68aff04e20ee551",
"name": "",
"sep": ",",
"hdrin": "",
"hdrout": "none",
"multi": "one",
"ret": "\\r\\n",
"temp": "Mash Temperture",
"skip": "0",
"strings": true,
"include_empty_strings": "",
"include_null_values": "",
"x": 1030,
"y": 440,
"wires": [
[
"aa477984d42a05fa"
]
]
},
{
"id": "aa477984d42a05fa",
"type": "file",
"z": "c68aff04e20ee551",
"name": "Write CSV File",
"filename": "C:\\BruControl\\NodeRedData\\MashTemperature.csv",
"filenameType": "str",
"appendNewline": true,
"createDir": false,
"overwriteFile": "false",
"encoding": "none",
"x": 1180,
"y": 440,
"wires": [
[]
]
}
]
 
First, I want to acknowlege @RiverCityBrewer who greatly helped me getting Node Red up and running.

A Node-red flow to create a .csv file of a mash temp with time every minute.

The global element I used was named DX_gblV_Mash_Temp_DE

In addition, I have a folder
C:\BruControl\NodeRedData

To run this, you must have professional License, the Data Exchange enabled under settings, Node-Red installed and Running, and the flow in the local host on the same computer as BruControl.

This will create a simple .csv file which needs to be renamed after each Mash to a different name as this flow will create the file if it does not exist, but will simply append to the file if it does.

This flow could likely be improved as it is my first shot, but I think it would suit my needs.

The Flow:

[
{
"id": "c68aff04e20ee551",
"type": "tab",
"label": "Mash Temperature",
"disabled": false,
"info": "",
"env": []
},
{
"id": "17b429a9678c0b7c",
"type": "inject",
"z": "c68aff04e20ee551",
"name": "Start Mash Temperture",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "60",
"crontab": "",
"once": true,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "date",
"x": 190,
"y": 80,
"wires": [
[
"3c74d78c0e3b11dc"
]
]
},
{
"id": "3c74d78c0e3b11dc",
"type": "http request",
"z": "c68aff04e20ee551",
"name": "Connect to BruControl",
"method": "GET",
"ret": "txt",
"paytoqs": "ignore",
"url": "http://127.0.0.1:8000/globals",
"tls": "",
"persist": false,
"proxy": "",
"insecureHTTPParser": false,
"authType": "",
"senderr": false,
"headers": [],
"x": 420,
"y": 140,
"wires": [
[
"1e10d705ed8387aa"
]
]
},
{
"id": "034ac9778088f6fa",
"type": "function",
"z": "c68aff04e20ee551",
"name": "Get and Pass Mash Temp",
"func": "var arr = msg.payload; //arr for array\nvar Mash_Temp;\nvar Mash_Data;\nvar bcGlobals;\n\n//The following lines rearranges the array into a standard JSON key/value pair via a string and then makes it an object.\nbcGlobals = '{' + arr.map(function (elem) {\n return '\"' + elem.Name + '\":\"' + elem.Value + '\"';\n}).join(\",\");\nbcGlobals = bcGlobals + '}';\nbcGlobals = JSON.parse(bcGlobals);\n\n\nMash_Temp = bcGlobals['DX_gblV_Mash_Temp_DE']; //Sets Mash_Temp to the value of the BC global based on the global name. Change the name accordingly.\nnode.warn(new Date() +Mash_Temp); //Shows the value in the debug pane.\n\nmsg.payload = (new Date() + Mash_Temp); //Sets msg.payload to the DX_gblV_Mash_Temp_DE value so it can carry forward.\n\n\nreturn msg;\n\nreturn msg; //Returns the message, meaning msg.payload moves forward with the new value.",
"outputs": 1,
"timeout": "",
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 830,
"y": 280,
"wires": [
[
"bd321ddfc458903d",
"63caa0e376233921"
]
]
},
{
"id": "1e10d705ed8387aa",
"type": "json",
"z": "c68aff04e20ee551",
"name": "Convert JSON String to Object",
"property": "payload",
"action": "",
"pretty": false,
"x": 710,
"y": 140,
"wires": [
[
"034ac9778088f6fa"
]
]
},
{
"id": "bd321ddfc458903d",
"type": "debug",
"z": "c68aff04e20ee551",
"name": "Show Mash Temps",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "payload",
"targetType": "msg",
"statusVal": "",
"statusType": "auto",
"x": 1250,
"y": 280,
"wires": []
},
{
"id": "63caa0e376233921",
"type": "csv",
"z": "c68aff04e20ee551",
"name": "",
"sep": ",",
"hdrin": "",
"hdrout": "none",
"multi": "one",
"ret": "\\r\\n",
"temp": "Mash Temperture",
"skip": "0",
"strings": true,
"include_empty_strings": "",
"include_null_values": "",
"x": 1030,
"y": 440,
"wires": [
[
"aa477984d42a05fa"
]
]
},
{
"id": "aa477984d42a05fa",
"type": "file",
"z": "c68aff04e20ee551",
"name": "Write CSV File",
"filename": "C:\\BruControl\\NodeRedData\\MashTemperature.csv",
"filenameType": "str",
"appendNewline": true,
"createDir": false,
"overwriteFile": "false",
"encoding": "none",
"x": 1180,
"y": 440,
"wires": [
[]
]
}
]
Same here, thanks to @RiverCityBrewer . Really good to have you in the group. You helped me more than once – like with magnetic flowmeters, Node-RED, and more. 👍👍👍 Kudos
 
I was playing with BruControl on a WIN 11 machine and am having problems with the API Data Exchange.

It seems that in WIN 11, BruControl and node-red cannot share the same port.

If node-red is not running, I can reserve the 1880 port normally if BruControl is running. When I try to run node red, I get this:

2 May 19:54:19 - [error] Unable to listen on http://127.0.0.1:1880/
2 May 19:54:19 - [error] Error: port in use

If BruControl is not running, I can run node red normally:
2 May 19:47:34 - [info] Server now running at http://127.0.0.1:1880/
2 May 19:47:34 - [info] Starting flows
2 May 19:47:34 - [info] Started flows

But now in the Data Exchange under Settings:

1880 service fail.png






If I have reserved the port 1880 and then run node-red,
i get the
2 May 19:54:19 - [error] Unable to listen on http://127.0.0.1:1880/
2 May 19:54:19 - [error] Error: port in use
 
I was playing with BruControl on a WIN 11 machine and am having problems with the API Data Exchange.

It seems that in WIN 11, BruControl and node-red cannot share the same port.

If node-red is not running, I can reserve the 1880 port normally if BruControl is running. When I try to run node red, I get this:

2 May 19:54:19 - [error] Unable to listen on http://127.0.0.1:1880/
2 May 19:54:19 - [error] Error: port in use

If BruControl is not running, I can run node red normally:
2 May 19:47:34 - [info] Server now running at http://127.0.0.1:1880/
2 May 19:47:34 - [info] Starting flows
2 May 19:47:34 - [info] Started flows

But now in the Data Exchange under Settings:

View attachment 874596





If I have reserved the port 1880 and then run node-red,
i get the
2 May 19:54:19 - [error] Unable to listen on http://127.0.0.1:1880/
2 May 19:54:19 - [error] Error: port in use
Node-RED is 1880 by default. I think BC should be 8000 or anything other than 1880
 
I was playing with BruControl on a WIN 11 machine and am having problems with the API Data Exchange.

It seems that in WIN 11, BruControl and node-red cannot share the same port.

If node-red is not running, I can reserve the 1880 port normally if BruControl is running. When I try to run node red, I get this:

2 May 19:54:19 - [error] Unable to listen on http://127.0.0.1:1880/
2 May 19:54:19 - [error] Error: port in use

If BruControl is not running, I can run node red normally:
2 May 19:47:34 - [info] Server now running at http://127.0.0.1:1880/
2 May 19:47:34 - [info] Starting flows
2 May 19:47:34 - [info] Started flows

But now in the Data Exchange under Settings:

View attachment 874596





If I have reserved the port 1880 and then run node-red,
i get the
2 May 19:54:19 - [error] Unable to listen on http://127.0.0.1:1880/
2 May 19:54:19 - [error] Error: port in use
Coming back to this more, you can't have two apps share the same port on any OS. So NR should be 1880 be default, and I believe BC is 8000 by default. Your NR flow should communicate with BC's dedicated port
 
Coming back to this more, you can't have two apps share the same port on any OS. So NR should be 1880 be default, and I believe BC is 8000 by default. Your NR flow should communicate with BC's dedicated port
If I read all my notes to the end, I have a note just about that. I was too smart and assumed it had to be the same. So simple.
 
Can I use the 5 v (+) tied to AREF for one wire in addition to power a TF-4?

Also use it for Digital Input (Momentary once in a while)

The TF-4 and the One Wire would be continious use.

I know I can use a different 5 v (+) as long as there is a common ground between the Interface and the 5 v PS for the Digital Input and One Wire circuit.
 
The 5v current available depends on how the MEGA is powered, what board you are using the connect to the network, and how many ds18b20 sensors you have on the one-wire network. 250ma is a good power budget number to keep in mind.

Thermistors don't really draw any significant power, so you should be fine with the TF-4 board as it is largely passive. For the DI, as long as you wire it as a sinking type (Arduino input to one side of button/switch, ground on the other - set as Active Low in BC), it should keep the current draw low enough to not overdraw the 5v regulator.

If you notice the network drops out or the MEGA resets, particularly during button presses, you are likely overdrawing the 5v regulator. Also keep in mind that as you increase the 5v current, you could create a condition that causes the voltage to sag a bit, and since that is tied to AREF it would make all your sensor readings fluctuate. For that reason, I tie the MEGA 5v to AREF only, and handle all other power needs with an external 5v PSU.
 
First, I want to acknowlege @RiverCityBrewer who greatly helped me getting Node Red up and running.

A Node-red flow to create a .csv file of a mash temp with time every minute.

The global element I used was named DX_gblV_Mash_Temp_DE

In addition, I have a folder
C:\BruControl\NodeRedData

To run this, you must have professional License, the Data Exchange enabled under settings, Node-Red installed and Running, and the flow in the local host on the same computer as BruControl.

This will create a simple .csv file which needs to be renamed after each Mash to a different name as this flow will create the file if it does not exist, but will simply append to the file if it does.

This flow could likely be improved as it is my first shot, but I think it would suit my needs.

The Flow:

[
{
"id": "c68aff04e20ee551",
"type": "tab",
"label": "Mash Temperature",
"disabled": false,
"info": "",
"env": []
},
{
"id": "17b429a9678c0b7c",
"type": "inject",
"z": "c68aff04e20ee551",
"name": "Start Mash Temperture",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "60",
"crontab": "",
"once": true,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "date",
"x": 190,
"y": 80,
"wires": [
[
"3c74d78c0e3b11dc"
]
]
},
{
"id": "3c74d78c0e3b11dc",
"type": "http request",
"z": "c68aff04e20ee551",
"name": "Connect to BruControl",
"method": "GET",
"ret": "txt",
"paytoqs": "ignore",
"url": "http://127.0.0.1:8000/globals",
"tls": "",
"persist": false,
"proxy": "",
"insecureHTTPParser": false,
"authType": "",
"senderr": false,
"headers": [],
"x": 420,
"y": 140,
"wires": [
[
"1e10d705ed8387aa"
]
]
},
{
"id": "034ac9778088f6fa",
"type": "function",
"z": "c68aff04e20ee551",
"name": "Get and Pass Mash Temp",
"func": "var arr = msg.payload; //arr for array\nvar Mash_Temp;\nvar Mash_Data;\nvar bcGlobals;\n\n//The following lines rearranges the array into a standard JSON key/value pair via a string and then makes it an object.\nbcGlobals = '{' + arr.map(function (elem) {\n return '\"' + elem.Name + '\":\"' + elem.Value + '\"';\n}).join(\",\");\nbcGlobals = bcGlobals + '}';\nbcGlobals = JSON.parse(bcGlobals);\n\n\nMash_Temp = bcGlobals['DX_gblV_Mash_Temp_DE']; //Sets Mash_Temp to the value of the BC global based on the global name. Change the name accordingly.\nnode.warn(new Date() +Mash_Temp); //Shows the value in the debug pane.\n\nmsg.payload = (new Date() + Mash_Temp); //Sets msg.payload to the DX_gblV_Mash_Temp_DE value so it can carry forward.\n\n\nreturn msg;\n\nreturn msg; //Returns the message, meaning msg.payload moves forward with the new value.",
"outputs": 1,
"timeout": "",
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 830,
"y": 280,
"wires": [
[
"bd321ddfc458903d",
"63caa0e376233921"
]
]
},
{
"id": "1e10d705ed8387aa",
"type": "json",
"z": "c68aff04e20ee551",
"name": "Convert JSON String to Object",
"property": "payload",
"action": "",
"pretty": false,
"x": 710,
"y": 140,
"wires": [
[
"034ac9778088f6fa"
]
]
},
{
"id": "bd321ddfc458903d",
"type": "debug",
"z": "c68aff04e20ee551",
"name": "Show Mash Temps",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "payload",
"targetType": "msg",
"statusVal": "",
"statusType": "auto",
"x": 1250,
"y": 280,
"wires": []
},
{
"id": "63caa0e376233921",
"type": "csv",
"z": "c68aff04e20ee551",
"name": "",
"sep": ",",
"hdrin": "",
"hdrout": "none",
"multi": "one",
"ret": "\\r\\n",
"temp": "Mash Temperture",
"skip": "0",
"strings": true,
"include_empty_strings": "",
"include_null_values": "",
"x": 1030,
"y": 440,
"wires": [
[
"aa477984d42a05fa"
]
]
},
{
"id": "aa477984d42a05fa",
"type": "file",
"z": "c68aff04e20ee551",
"name": "Write CSV File",
"filename": "C:\\BruControl\\NodeRedData\\MashTemperature.csv",
"filenameType": "str",
"appendNewline": true,
"createDir": false,
"overwriteFile": "false",
"encoding": "none",
"x": 1180,
"y": 440,
"wires": [
[]
]
}
]
This is great. Thanks to both of you! You have each helped me greatly and this is a great next step! Stability has greatly improved for me since wiping out my old data file.
 
Curious if anyone else has experienced this issue and has an idea on what to explore:

- I have 3 RTDs wired to a MEGA2560 through Max31865 boards
- Each reads pretty accurately and with stability other than a momentary voltage drop/spike when I cycle my pump relays on/off (Haven't wired in snubbers yet)
- All are in the same cabinet and physically in the same area in the cabinet.
- During a brew session (sometimes) one of them will start to drift infinitely high. It will just keep ticking up in temp once per second or so and continue to drift high. I can plug in, unplug, etc and it just continues where it left off.
- I haven't tried shutting down the whole system in the middle of a brew yet (probably the next step to see if it resets), but I can say after I shut things down, it all works when I restart the system the next day or later.

Any thoughts? Is it heat in the cabinet causing drift? Some other voltage disregulation?
 
Curious if anyone else has experienced this issue and has an idea on what to explore:

- I have 3 RTDs wired to a MEGA2560 through Max31865 boards
- Each reads pretty accurately and with stability other than a momentary voltage drop/spike when I cycle my pump relays on/off (Haven't wired in snubbers yet)
- All are in the same cabinet and physically in the same area in the cabinet.
- During a brew session (sometimes) one of them will start to drift infinitely high. It will just keep ticking up in temp once per second or so and continue to drift high. I can plug in, unplug, etc and it just continues where it left off.
- I haven't tried shutting down the whole system in the middle of a brew yet (probably the next step to see if it resets), but I can say after I shut things down, it all works when I restart the system the next day or later.

Any thoughts? Is it heat in the cabinet causing drift? Some other voltage disregulation?
I'm currently using BC for a non-brewing application and run 32 RTD's across a couple MEGAs. If it is just one RTD, odds are it is not the cabinet. I'd think that it is maybe the sensor going bad since rising temp means rising resistance between the wires. The issues I have had are typically the temp going down because there's a short between sensor wires or a sensor wire and shielding.
When you notice it happening, I would first switch two of the sensors to see whether it is a sensor or something further upstream. If it stays with a particular sensor, you can double check with a multimeter. Check the resistance across the different wires (if 2 wire, or if 3 wire across different color wires). The resistance should be a little above 100 for a pt100, a little over a1000 for a PT1000. If it's the sensor, I would just replace.
Also pull the sensor out of the thermowell...if that fixes it, it's probably some sort of grounding/shielding issue. But I would expect the problem to temporarily resolve when you have unplugged them if it was a grounding issue.
If it's not the sensor, I would check internal wiring connections for continuity and good connections into the MAX board and then into the arduino. But my experience is that connection issues with the MAX or arduino messing with the SPI connectivity, not the temperature itself. So my guess is a sensor going bad.
Good luck and let us know what you find.
 
I am using a screw shield with a Mega 2560. I am wiring the 5v and AREF together and a wire to the GND,

Powered by just the USB.

I get a flashing 8.8.8 as the voltage on a voltmeter.

I have tried this with a seperate screwshield and Mega with that being the only wiring and I get the same results.

Same result when powered by wall wart.

I also disconnected the AREF but that changes nothing.

Am I just being OCD as this is normal?
1750792715922.png
 
I am using a screw shield with a Mega 2560. I am wiring the 5v and AREF together and a wire to the GND,

Powered by just the USB.

I get a flashing 8.8.8 as the voltage on a voltmeter.

I have tried this with a seperate screwshield and Mega with that being the only wiring and I get the same results.

Same result when powered by wall wart.

I also disconnected the AREF but that changes nothing.

Am I just being OCD as this is normal?
View attachment 878487
I would think that is some sort of error code on your voltmeter. Can you look up and see what that means? Or do you have what voltmeter you are using?
 
OK Test make sense but why go into this mode? It works fine on several 12v and a 24 v circuit. It is just the 5 v out of several MEGAs.

I have an Analog 5v voltmeter I will try. It seems to just be an issue at 5 v, Maybe out of range of the Voltmeter?

I just order a Voltmeter that is 5 to 100 v DC Voltmeter. I suspect that is the issue as there is another 5 v one that does read 5 v! ( I have all my transformers hooked up to panel mounted Voltmeters and that one reads 5v.)

The volt meter is for testing only and I think I did myself in!
 
Last edited:
Not sure as I have a lot of them. I bought them on Amazon or EBay. Likely it is a 12-24 v type and is under voltage at 5 v. I have a different voltmeter in a panel in the same 5 v circuit that does read 5v. I order a new one for my test circuit that is 4-100 v voltmeter
 
There's a plethora of [cheap] panel mount voltmeters out there and some of them will display their "all on" test pattern before then showing an actual voltage reading. But I don't know enough about the gamut of meters sold to know what condition(s) might make some of them stick in the test pattern state, but "under-voltage" seems plausible (though as an EE I consider a meter that can handle 12-24 but not 5V to be rather pathetic in 2025)...

Cheers!
 
Not sure as I have a lot of them. I bought them on Amazon or EBay. Likely it is a 12-24 v type and is under voltage at 5 v. I have a different voltmeter in a panel in the same 5 v circuit that does read 5v. I order a new one for my test circuit that is 4-100 v voltmeter
My opinion is it would be best to go get a multimeter for testing things like this. This one has done me well and is relatively cheap: https://www.homedepot.com/p/Klein-Tools-600-Volt-Digital-Multi-Meter-Manual-Ranging-MM325/320822947
 
It was an undervoltage signal (Flashing 8.8.8). I got my new 4-100v voltmeter and it opens with 8.8.8 then displays the voltage, in this case 5.1.

When I hooked up the old voltmeter it just flashed the 8.8.8. So there are cheap voltmeters that may not read 5 v! Lesson learned.
 
Ok, I haven't, on the forum for a while, but I have been looking into having BruControl running on the raspberrypi 5. I have been communicating with Pete with an overview of the project. Not sure why he is not on the forum, but Pete, if your reading the forum, please come back! A few years ago I did a tutorial on running BruControl on the Pi 4 with a Mega, and the software ran well. once loaded up with node-red used for recipe import. I now found a way to have the Pi 5 running in a virtual machine, with an adafruit winc1500 witeless shield, and switched out the mega for an adafruit Grand Central M4. would to show how to run that also. The problem: I can get on my network using arduino sketches, but when on the network BruControl doesn't connect to the ip address. I don't know how to specify a port to use. If I use the BruControl firmware, it writes the the Grand Central, but termite locks up, whether in the virtual machine or on a windows machine. If I can get some help on this, then the virtual machine is a fast, wireless and viable way to run BruControl. Thanks in advance.
 
I guess I should clarify myself... it is a raspberrypi 5 8G running a win 11 virtual machine inside raspberrypi OS bookworm.
 
Hello everyone, I have a problem that I can't handle. I built a keg washer based on an Arduino Mega, which is connected via USB. During the full washing cycle, the interface sometimes disconnects for a moment and goes offline. This causes huge issues because the script continues to run, and when the connection is restored after 4-5 seconds, the valves are not properly closed or opened. Detergent remains in the keg ,same with disinfectant, and sometimes the detergent returns to the disinfectant, etc.
Is there any way to stop the script when there is no connection (e.g., any device is offline) and continue when the connection is restored?
Please
 
Hello everyone, I have a problem that I can't handle. I built a keg washer based on an Arduino Mega, which is connected via USB. During the full washing cycle, the interface sometimes disconnects for a moment and goes offline. This causes huge issues because the script continues to run, and when the connection is restored after 4-5 seconds, the valves are not properly closed or opened. Detergent remains in the keg ,same with disinfectant, and sometimes the detergent returns to the disinfectant, etc.
Is there any way to stop the script when there is no connection (e.g., any device is offline) and continue when the connection is restored?
Please
All device elements have a "connected" property. I use that to see if an ESP32 drops on WiFi. So select an element to watch and use connect, e.g.,

if "Keg Washer 1 Valve" connected == false
//Whatever you want done if it drops
endif
 
Thank you. So is this going to be correct:?
script name i want to pause is Washcycle

If "tempsensor" connected == false
pause "washcycle"
endif
wait "tempsensor" connected == true
resume "washcycle"

Cant trial and error much because i dont have access to machine, will have to do it remotely. hope it helps .
Thank you
Edit: how to recognize if mega is just disconnecting or restarting, if its restarting this wont help much i guess.
 
Last edited:
Depending on how you manage the loop, this would always keep resuming and cycling until the false is hit (inefficient use of system resources). I'd say use wait for both, that way the loop holds until the drop happens. So:

Code:
[Loop]
wait "tempsensor" connected == false
  pause "washcycle"

wait "tempsensor" connected == true
  resume "washcycle"

goto "Loop"
 
Did a major rewire and other stuff to my Brewery but having issues with my 10KNTC probes. All of them continuely "hunt" going Down then Up in unison (All 8 go up and down exactly at the same time.) when they hit the bottom (As an example One: around 8.2 then go up to about 29.8 then back down.) All the probes do not all read the same but do change at the same time. The number generally go up then down but ocassionally they will have a one "down" in the Up ladder.
 
Back
Top