BruControl: Brewery control & automation software

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

Help Support Homebrew Talk:

RiverCityBrewer

Well-Known Member
Joined
Dec 20, 2009
Messages
1,103
Reaction score
138
Location
Cincinnati
A couple basic questions about scripts:
  • Is it possible to have BC start up with no scripts running, then use a device element (i.e. a button on the workspace) to start a brewing script?
  • Can BC be configured to open with the script window always closed by default and the workspace locked by default? Right now BC opens unlocked and in the same configuration that it was last closed (i.e. if I leave the script window open when I close the app, the next time it starts up, the script window is open).
For your first question, probably not, as buttons are pretty much used via script alone. Getting around it is pretty easy though, just have a "button control" script launch on startup, and have it call the appropriate scripts when the button is pressed.

Second question, I'm not really sure (I leave BC running 24/7), but I don't see any options to do so in the UI or options in the settings file.
 

aeviaanah

Well-Known Member
Joined
Jul 1, 2012
Messages
1,421
Reaction score
148
No, the baud rate should be 192k. Not sure it will matter but try that.
I tried connecting on my laptop (different PC to eliminate this as a variable).I used 192k baud rate (this was by default) in termite and it didn't help. I've since left the brewery, maybe I need to change baud rate in device manager as well. I'll double check, modify and report back. Anything else I can look into?
 
OP
BrunDog
Joined
Dec 19, 2014
Messages
5,030
Reaction score
1,392
Location
West Palm Beach
For your first question, probably not, as buttons are pretty much used via script alone. Getting around it is pretty easy though, just have a "button control" script launch on startup, and have it call the appropriate scripts when the button is pressed.

Second question, I'm not really sure (I leave BC running 24/7), but I don't see any options to do so in the UI or options in the settings file.
This is correct. We will fix the lock and script window to be persistent across restarts.
 
OP
BrunDog
Joined
Dec 19, 2014
Messages
5,030
Reaction score
1,392
Location
West Palm Beach
I tried connecting on my laptop (different PC to eliminate this as a variable).I used 192k baud rate (this was by default) in termite and it didn't help. I've since left the brewery, maybe I need to change baud rate in device manager as well. I'll double check, modify and report back. Anything else I can look into?
Did the firmware install correctly? Did you try the serial only one first?
 
OP
BrunDog
Joined
Dec 19, 2014
Messages
5,030
Reaction score
1,392
Location
West Palm Beach
You don't connect with termite to install the firmware. You just install it from the tool. Does it install correctly? If not, you have a problem with the computer/USB/drivers. When you open Device Manager, do you see the MEGA there?

1596084581657.png
 

RiverCityBrewer

Well-Known Member
Joined
Dec 20, 2009
Messages
1,103
Reaction score
138
Location
Cincinnati
Not sure what you are trying to do, but if you want a message to display in the output, you need to do a print command.

So:
a = " message"
print a
 

Piggles22

Supporting Member
HBT Supporter
Joined
Jun 21, 2020
Messages
38
Reaction score
4
Location
Bothell, WA
Not sure what you are trying to do, but if you want a message to display in the output, you need to do a print command.

So:
a = " message"
print a
Sorry, it was a little out of context. I was trying to get a "message" to blink on and off in the workspace by looping and I mistakenly tried to assign a value to a sleep command (sleep = 1000). The script stalled and did not give an error message as to why, but it also shows that the script is still running. Not sure if this should generate an error message or if BC was trying to assign a value to the sleep command.
 

RiverCityBrewer

Well-Known Member
Joined
Dec 20, 2009
Messages
1,103
Reaction score
138
Location
Cincinnati
Ah, I see now... sorry, I didn't look that closely.

I am able to recreate that, looks like an interpreter bug. I tried it with = and == as well as a script variable in place of a value and all result in the same stalled script without an error. Good catch.
 

Piggles22

Supporting Member
HBT Supporter
Joined
Jun 21, 2020
Messages
38
Reaction score
4
Location
Bothell, WA
Ah, I see now... sorry, I didn't look that closely.

I am able to recreate that, looks like an interpreter bug. I tried it with = and == as well as a script variable in place of a value and all result in the same stalled script without an error. Good catch.
Thanks for confirming; another one for the "fix it" list.....
 
OP
BrunDog
Joined
Dec 19, 2014
Messages
5,030
Reaction score
1,392
Location
West Palm Beach
I’m not sure it’s a bug... the interpreter is sleeping indefinitely on that line which is sees as ‘= 1000’. It definitely doesn’t know what to do with it, and should issue an error, but It won’t always catch all syntax issues, and aggressive checking will slow it down a little.

We’ll put it on the list tho!
 

BlueZooBrewing

Well-Known Member
Joined
Jan 9, 2011
Messages
130
Reaction score
22
Location
Cleveland
Been reading through the many pages and having some trouble finding an answer to a question I’m working through. Did anyone figure out how to control an RC servo motor to BC with the Mega PWM ports? I see some discussion and hypothesis in Sept ‘19 but not a final “this worked” resolution.
 

oakbarn

Well-Known Member
Lifetime Supporter
Joined
Jun 23, 2011
Messages
1,310
Reaction score
140
Location
Argyle
I see it goes all the way to 45L. The Wiring Diagram is 45E. I am starting to get some interfaces and add an ESP32. I put on 45L. I am only using for a Tilt so all the upgrades will hardly effect me, at least that is my thinking. I did discover that Y and y are different in Termite. Y=N!
 
OP
BrunDog
Joined
Dec 19, 2014
Messages
5,030
Reaction score
1,392
Location
West Palm Beach
Been reading through the many pages and having some trouble finding an answer to a question I’m working through. Did anyone figure out how to control an RC servo motor to BC with the Mega PWM ports? I see some discussion and hypothesis in Sept ‘19 but not a final “this worked” resolution.
No, this isn’t implemented. What is your application? Maybe we can find a solution and if not add it into the FW.
 

BlueZooBrewing

Well-Known Member
Joined
Jan 9, 2011
Messages
130
Reaction score
22
Location
Cleveland
No, this isn’t implemented. What is your application? Maybe we can find a solution and if not add it into the FW.
Application is for a hop dispenser. I’ve got the servo motor sitting in a 3d printed turntable with hole and ramp. Hooked up via an xlr cable to the mega assembly with wifi board from the BC site. The power is on a seperate power supply, signal line is currently on pin 9. The motor is a digital sunfounder rc motor, operating on a 20mSec/50Hz frequency with pulse range of 1-2 mSec, and dead band of 5 microSec. I see a lot of resources that the arduinos can be hooked up direct to a servo, but operating from BC, it seems this is stuck between the frequencies of the PWM function and the duty cycle max speed.
B306AA9F-2F62-40FA-A76C-EF2FFF562432.jpeg
 
OP
BrunDog
Joined
Dec 19, 2014
Messages
5,030
Reaction score
1,392
Location
West Palm Beach
Immediate option if you are good with Arduino: use one to handle the servo, then either communicate with another BC based interface via digital signals (one signal to do one thing, another for another thing, etc.) or use the communication back-channel sketch @crane created to communicate directly with BruControl.

Otherwise, please wait for a bit while we look at what it would take to integrate servo control as a discreet element.
 

oakbarn

Well-Known Member
Lifetime Supporter
Joined
Jun 23, 2011
Messages
1,310
Reaction score
140
Location
Argyle
Immediate option if you are good with Arduino: use one to handle the servo, then either communicate with another BC based interface via digital signals (one signal to do one thing, another for another thing, etc.) or use the communication back-channel sketch @crane created to communicate directly with BruControl.

Otherwise, please wait for a bit while we look at what it would take to integrate servo control as a discreet element.
Could you just not drive a Linear DC Actuator with a Digital Out and Relay (or UM-1) to drop hops? It would seem On/Off could accomplish this. Years ago I played with a soap door from a Dishwasher but never finished it as there were not enough Outs an a BCS to use one for this. A small DC Linear Actuator could open a door or push the hops off a ledge.
 

smort

Well-Known Member
Joined
Jan 29, 2013
Messages
64
Reaction score
27
Location
Norway
I forgot how cool this little banger is! ESP32 based, built-in battery, built-in screen, built-in buttons, I/O breakout pins... Cool!

Just included the firmware for it in the package.View attachment 692017
Cool! Is the speaker enabled? Imagining this one would be great for alarm presentation and acknowledging
 

BlueZooBrewing

Well-Known Member
Joined
Jan 9, 2011
Messages
130
Reaction score
22
Location
Cleveland
Immediate option if you are good with Arduino: use one to handle the servo, then either communicate with another BC based interface via digital signals (one signal to do one thing, another for another thing, etc.) or use the communication back-channel sketch @crane created to communicate directly with BruControl.

Otherwise, please wait for a bit while we look at what it would take to integrate servo control as a discreet element.
Makes sense, thank you! New to arduino with this project but I think I get the gist. Local program on the secondary board that a signal to pin X, go to position A, pin Y go to position B, etc. then hook up X, Y, and Z to digital out pins on the BC?
 

aeviaanah

Well-Known Member
Joined
Jul 1, 2012
Messages
1,421
Reaction score
148
POST.png


I have three RP-3 modules with (4) Adafruit 3328 in each for a total of (12) consumed by ports 38 thru 49. All ports have been tested and the thermometer works (Tho Port 46 and 48 are about -5 degrees off from the others). Cant figure out why Pin 46 and 48 are giving 1720 readings in the disconnected state instead of -412. I have an initial reading of 31681 with these two ports and zero with all others.

Edit: the 1720 (31682 initial) intermittently jumps around amongst the (4) ports but only on this one rp3 board, the other two are stable.
 
Last edited:
OP
BrunDog
Joined
Dec 19, 2014
Messages
5,030
Reaction score
1,392
Location
West Palm Beach
Hmmm... First, make sure your wiring is sound, short (inches), and all grounded properly to the same point.

1. When you disable any or all of the -412's, do the 1720's change?
2. Try moving some of the amplifiers around and see what happens (do this with power off of course). Since they are addressed by physical position (CS pin), the application is none the wiser about which amplifier is where.

Report back and we will go from there.
 
OP
BrunDog
Joined
Dec 19, 2014
Messages
5,030
Reaction score
1,392
Location
West Palm Beach
OP
BrunDog
Joined
Dec 19, 2014
Messages
5,030
Reaction score
1,392
Location
West Palm Beach
Hey question for Tilt users... I know we have had an issue for a while with "mis-reads" causing ugly fermentation graphs. What we think is happening is the Bluetooth polling happens asynchronously and causes a conflict with Wi-Fi. We are working on fixing this in the firmware... but I am wondering if anyone has a recent graph pic they can post, and more importantly, if they have a log file they can send us (email info at brucontrol dot com). Note that v1.1 Build 9 users will not have diagnostic logs on by default. Thanks!
 

RiverCityBrewer

Well-Known Member
Joined
Dec 20, 2009
Messages
1,103
Reaction score
138
Location
Cincinnati
Pulled a graph of the raw readings from the past 18 hours...
Screenshot from 2020-08-02 12-25-20.png
The 6:50am drop was logged in my wireless controller as an AP move so it can be disregarded, but the 9pm drop I had no reference in the controller that the connection dropped. BC controller logs show a disconnect with a reconnect 1 second later.
 

RiverCityBrewer

Well-Known Member
Joined
Dec 20, 2009
Messages
1,103
Reaction score
138
Location
Cincinnati
I have a floor set in the calibrations, so I imagine that is what is throwing that off.

Here is what the DB log looks like:
Screenshot from 2020-08-02 12-52-20.png
 
OP
BrunDog
Joined
Dec 19, 2014
Messages
5,030
Reaction score
1,392
Location
West Palm Beach
OK, ESP32 firmware 45N is now included in the package on the website. What we saw in testing is that default values (-0.001 SG and -1 temp) are being sent by the interface on startup AND after sometimes after an interface disconnect. The FW will now send non-values instead, which will not be graphed. Not sure this is the right long term solution, but it's worth evaluating. Anyone fermenting with Tilt willing to update their FW... please let me know how this works for you.
 

helibrewer

Well-Known Member
Joined
Nov 11, 2011
Messages
4,141
Reaction score
479
Location
Wilmington
Is there a way for a script to monitor the interface connection and have an alarm send a notification if it disconnects after a specified length of time?
 
Top