<?xml version="1.0" encoding="UTF-8"?>        <rss version="2.0"
             xmlns:atom="http://www.w3.org/2005/Atom"
             xmlns:dc="http://purl.org/dc/elements/1.1/"
             xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
             xmlns:admin="http://webns.net/mvcb/"
             xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
             xmlns:content="http://purl.org/rss/1.0/modules/content/">
        <channel>
            <title>
									BruControl Forum - Recent Topics				            </title>
            <link>https://brucontrol.com/community/</link>
            <description>BruControl Discussion Board</description>
            <language>en</language>
            <lastBuildDate>Sat, 04 Apr 2026 19:53:54 +0000</lastBuildDate>
            <generator>wpForo</generator>
            <ttl>60</ttl>
							                    <item>
                        <title>Reset Arduino from Brucontrol</title>
                        <link>https://brucontrol.com/community/software/reset-arduino-from-brucontrol/</link>
                        <pubDate>Mon, 16 Mar 2026 06:12:18 +0000</pubDate>
                        <description><![CDATA[Please can you advise? I&#039;m monitoring and controling and steering fermentation with Brucontrol. Unfortunately, arduino&#039;s fall off from the network regularly. I have a protocol arduino_detect...]]></description>
                        <content:encoded><![CDATA[<p>Please can you advise? I'm monitoring and controling and steering fermentation with Brucontrol. Unfortunately, arduino's fall off from the network regularly. I have a protocol arduino_detection.bcs (runs inside BruControl every 60s)</p>
<p>→ checks MEGA.connected<br />→ sets Arduino1_Online = 1 or 0<br />→ can fires tx "MEGA" %N if offline<br />→ sets Arduino1_RebootFailed = 1 if still offline after 15s<br />↓ BruControl API<br />arduino_monitor.py (runs on your PC)<br />→ reads Arduino1_Online from API every 60s<br />→ logs OFFLINE / BACK ONLINE on state changes only.</p>
<p><code class="font-mono text-xs break-all">FOR TESTING I would need the %N BruControl reboot command, can you please provide the %N reboot command? Tahnk you. </code></p>
<div class="group flex border-l- border-l-transparent transition-colors duration-75" data-diff-type="normal">
<div class="flex-1 flex items-center pl-0 pr-2 group-data-/overlay:pr-6 min-w-0 font-mono"><code class="font-mono text-xs break-all">//  Arduino Controller Monitor &amp; Reboot</code></div>
</div>
<div class="group flex border-l- border-l-transparent transition-colors duration-75" data-diff-type="normal"><span class="flex items-center justify-center font-mono text-xs select-none relative w-3 text-text-500"><span></span></span>
<div class="flex-1 flex items-center pl-0 pr-2 group-data-/overlay:pr-6 min-w-0 font-mono"><code class="font-mono text-xs break-all">//  File: arduino_detection.bcs</code></div>
</div>
<div class="group flex border-l- border-l-transparent transition-colors duration-75" data-diff-type="normal"><span class="flex items-center justify-center font-mono text-xs select-none relative w-3 text-text-500"><span></span></span>
<div class="flex-1 flex items-center pl-0 pr-2 group-data-/overlay:pr-6 min-w-0 font-mono"><code class="font-mono text-xs break-all">//</code></div>
</div>
<div class="group flex border-l- border-l-transparent transition-colors duration-75" data-diff-type="normal"><span class="flex items-center justify-center font-mono text-xs select-none relative w-3 text-text-500"><span></span></span>
<div class="flex-1 flex items-center pl-0 pr-2 group-data-/overlay:pr-6 min-w-0 font-mono"><code class="font-mono text-xs break-all">//  Run this script on a timer (recommended: every 60 seconds)</code></div>
</div>
<div class="group flex border-l- border-l-transparent transition-colors duration-75" data-diff-type="normal"><span class="flex items-center justify-center font-mono text-xs select-none relative w-3 text-text-500"><span></span></span>
<div class="flex-1 flex items-center pl-0 pr-2 group-data-/overlay:pr-6 min-w-0 font-mono"><code class="font-mono text-xs break-all">//</code></div>
</div>
<div class="group flex border-l- border-l-transparent transition-colors duration-75" data-diff-type="normal"><span class="flex items-center justify-center font-mono text-xs select-none relative w-3 text-text-500"><span></span></span>
<div class="flex-1 flex items-center pl-0 pr-2 group-data-/overlay:pr-6 min-w-0 font-mono"><code class="font-mono text-xs break-all">//  What it does:</code></div>
</div>
<div class="group flex border-l- border-l-transparent transition-colors duration-75" data-diff-type="normal"><span class="flex items-center justify-center font-mono text-xs select-none relative w-3 text-text-500"><span></span></span>
<div class="flex-1 flex items-center pl-0 pr-2 group-data-/overlay:pr-6 min-w-0 font-mono"><code class="font-mono text-xs break-all">//    1. Checks each Arduino controller's built-in .connected status</code></div>
</div>
<div class="group flex border-l- border-l-transparent transition-colors duration-75" data-diff-type="normal"><span class="flex items-center justify-center font-mono text-xs select-none relative w-3 text-text-500"><span></span></span>
<div class="flex-1 flex items-center pl-0 pr-2 group-data-/overlay:pr-6 min-w-0 font-mono"><code class="font-mono text-xs break-all">//    2. Updates Arduino1_Online / Arduino2_Online / Arduino3_Online globals</code></div>
</div>
<div class="group flex border-l- border-l-transparent transition-colors duration-75" data-diff-type="normal"><span class="flex items-center justify-center font-mono text-xs select-none relative w-3 text-text-500"><span></span></span>
<div class="flex-1 flex items-center pl-0 pr-2 group-data-/overlay:pr-6 min-w-0 font-mono"><code class="font-mono text-xs break-all">//       (1 = online, 0 = offline) — Python reads these from the API</code></div>
</div>
<div class="group flex border-l- border-l-transparent transition-colors duration-75" data-diff-type="normal"><span class="flex items-center justify-center font-mono text-xs select-none relative w-3 text-text-500"><span></span></span>
<div class="flex-1 flex items-center pl-0 pr-2 group-data-/overlay:pr-6 min-w-0 font-mono"><code class="font-mono text-xs break-all">//    3. If a controller is offline, sends the reboot command</code></div>
</div>
<div class="group flex border-l- border-l-transparent transition-colors duration-75" data-diff-type="normal"><span class="flex items-center justify-center font-mono text-xs select-none relative w-3 text-text-500"><span></span></span>
<div class="flex-1 flex items-center pl-0 pr-2 group-data-/overlay:pr-6 min-w-0 font-mono"><code class="font-mono text-xs break-all">//    4. Waits 15s then checks if it recovered</code></div>
</div>
<div class="group flex border-l- border-l-transparent transition-colors duration-75" data-diff-type="normal">
<div class="flex-1 flex items-center pl-0 pr-2 group-data-/overlay:pr-6 min-w-0 font-mono"><code class="font-mono text-xs break-all">//    5. Sets ArduinoX_RebootFailed = 1 if still offline after reboot</code></div>
<div> </div>
</div>
<div>
<div>The Brucontrol script suggested</div>
<div class="group flex border-l- border-l-transparent transition-colors duration-75" data-diff-type="normal">
<div class="flex-1 flex items-center pl-0 pr-2 group-data-/overlay:pr-6 min-w-0 font-mono"><code class="font-mono text-xs break-all">if  == true</code></div>
</div>
<div class="group flex border-l- border-l-transparent transition-colors duration-75" data-diff-type="normal"><span class="flex items-center justify-center font-mono text-xs select-none relative w-3 text-text-500"><span></span></span>
<div class="flex-1 flex items-center pl-0 pr-2 group-data-/overlay:pr-6 min-w-0 font-mono"><code class="font-mono text-xs break-all">    set  = 1</code></div>
</div>
<div class="group flex border-l- border-l-transparent transition-colors duration-75" data-diff-type="normal"><span class="flex items-center justify-center font-mono text-xs select-none relative w-3 text-text-500"><span></span></span>
<div class="flex-1 flex items-center pl-0 pr-2 group-data-/overlay:pr-6 min-w-0 font-mono"><code class="font-mono text-xs break-all">    set  = 0</code></div>
</div>
<div class="group flex border-l- border-l-transparent transition-colors duration-75" data-diff-type="normal"><span class="flex items-center justify-center font-mono text-xs select-none relative w-3 text-text-500"><span></span></span>
<div class="flex-1 flex items-center pl-0 pr-2 group-data-/overlay:pr-6 min-w-0 font-mono"><code class="font-mono text-xs break-all">else</code></div>
</div>
<div class="group flex border-l- border-l-transparent transition-colors duration-75" data-diff-type="normal"><span class="flex items-center justify-center font-mono text-xs select-none relative w-3 text-text-500"><span></span></span>
<div class="flex-1 flex items-center pl-0 pr-2 group-data-/overlay:pr-6 min-w-0 font-mono"><code class="font-mono text-xs break-all">    set  = 0</code></div>
</div>
<div class="group flex border-l- border-l-transparent transition-colors duration-75" data-diff-type="normal"><span class="flex items-center justify-center font-mono text-xs select-none relative w-3 text-text-500"><span></span></span>
<div class="flex-1 flex items-center pl-0 pr-2 group-data-/overlay:pr-6 min-w-0 font-mono"><code class="font-mono text-xs break-all">    tx "MEGA" %N                    // ← replace %N with reboot command</code></div>
</div>
<div class="group flex border-l- border-l-transparent transition-colors duration-75" data-diff-type="normal"><span class="flex items-center justify-center font-mono text-xs select-none relative w-3 text-text-500"><span></span></span>
<div class="flex-1 flex items-center pl-0 pr-2 group-data-/overlay:pr-6 min-w-0 font-mono"><code class="font-mono text-xs break-all">    sleep 15000                     // wait 15s for controller to reboot</code></div>
</div>
<div class="group flex border-l- border-l-transparent transition-colors duration-75" data-diff-type="normal"><span class="flex items-center justify-center font-mono text-xs select-none relative w-3 text-text-500"><span></span></span>
<div class="flex-1 flex items-center pl-0 pr-2 group-data-/overlay:pr-6 min-w-0 font-mono"><code class="font-mono text-xs break-all">    if  == true</code></div>
</div>
<div class="group flex border-l- border-l-transparent transition-colors duration-75" data-diff-type="normal"><span class="flex items-center justify-center font-mono text-xs select-none relative w-3 text-text-500"><span></span></span>
<div class="flex-1 flex items-center pl-0 pr-2 group-data-/overlay:pr-6 min-w-0 font-mono"><code class="font-mono text-xs break-all">        set  = 1</code></div>
</div>
<div class="group flex border-l- border-l-transparent transition-colors duration-75" data-diff-type="normal"><span class="flex items-center justify-center font-mono text-xs select-none relative w-3 text-text-500"><span></span></span>
<div class="flex-1 flex items-center pl-0 pr-2 group-data-/overlay:pr-6 min-w-0 font-mono"><code class="font-mono text-xs break-all">        set  = 0</code></div>
</div>
<div class="group flex border-l- border-l-transparent transition-colors duration-75" data-diff-type="normal"><span class="flex items-center justify-center font-mono text-xs select-none relative w-3 text-text-500"><span></span></span>
<div class="flex-1 flex items-center pl-0 pr-2 group-data-/overlay:pr-6 min-w-0 font-mono"><code class="font-mono text-xs break-all">    else</code></div>
</div>
<div class="group flex border-l- border-l-transparent transition-colors duration-75" data-diff-type="normal"><span class="flex items-center justify-center font-mono text-xs select-none relative w-3 text-text-500"><span></span></span>
<div class="flex-1 flex items-center pl-0 pr-2 group-data-/overlay:pr-6 min-w-0 font-mono"><code class="font-mono text-xs break-all">        set  = 1   // flag for dashboard indicator</code></div>
</div>
<div class="group flex border-l- border-l-transparent transition-colors duration-75" data-diff-type="normal"><span class="flex items-center justify-center font-mono text-xs select-none relative w-3 text-text-500"><span></span></span>
<div class="flex-1 flex items-center pl-0 pr-2 group-data-/overlay:pr-6 min-w-0 font-mono"><code class="font-mono text-xs break-all">    endif</code></div>
</div>
<div class="group flex border-l- border-l-transparent transition-colors duration-75" data-diff-type="normal"><span class="flex items-center justify-center font-mono text-xs select-none relative w-3 text-text-500"><span></span></span>
<div class="flex-1 flex items-center pl-0 pr-2 group-data-/overlay:pr-6 min-w-0 font-mono"><code class="font-mono text-xs break-all">endif</code></div>
</div>
</div>
<div class="group flex border-l- border-l-transparent transition-colors duration-75" data-diff-type="normal"><span class="flex items-center justify-center font-mono text-xs select-none relative w-3 text-text-500"><span></span></span>
<div class="flex-1 flex items-center pl-0 pr-2 group-data-/overlay:pr-6 min-w-0 font-mono"><code class="font-mono text-xs break-all">//</code></div>
</div>
<div class="group flex border-l- border-l-transparent transition-colors duration-75" data-diff-type="normal"><span class="flex items-center justify-center font-mono text-xs select-none relative w-3 text-text-500"><span></span></span>
<div class="flex-1 flex items-center pl-0 pr-2 group-data-/overlay:pr-6 min-w-0 font-mono"><code class="font-mono text-xs break-all">//  NOTE: After replacing %N with the correct BruControl reboot command I can test it. Thank you in advnce for your support! Any other idea?</code></div>
</div>]]></content:encoded>
						                            <category domain="https://brucontrol.com/community/"></category>                        <dc:creator>Lauran Casteleijn</dc:creator>
                        <guid isPermaLink="true">https://brucontrol.com/community/software/reset-arduino-from-brucontrol/</guid>
                    </item>
				                    <item>
                        <title>Hysteresis</title>
                        <link>https://brucontrol.com/community/main-forum/hysteresis-2/</link>
                        <pubDate>Sun, 18 Feb 2024 19:48:26 +0000</pubDate>
                        <description><![CDATA[Hi, I&#039;m Lauran Casteleijn, and I&#039;m testing and debugging the BruControl scripts. I&#039;m using software version 1.1 (22). I&#039;m using the Arduino Mega platform and all runs stable and nicely and I...]]></description>
                        <content:encoded><![CDATA[<p>Hi, I'm Lauran Casteleijn, and I'm testing and debugging the BruControl scripts. I'm using software version 1.1 (22). I'm using the Arduino Mega platform and all runs stable and nicely and I'm getting used to the BruControl interface. I changed from BCS including a hysteresis function that I was used to.</p>
<p>For BruControl, I have looked on the Internet for throubleshooting the hysteresis function but can't get it appropriately running. I have the following questions, please can you help?</p>
<p>1) I'm using version 1.1 (22) should I use Beta version 1.2?</p>
<p>2) I'm using port 18 and 19, DutyCycle is working fine, using port 18 and 19 for Hysteresis not</p>
<p>3) Target setting: 52 degrees, Offset -3 degrees, On delay 3 seconds (I don't exactly understand what will happen, can you please explain?) Predictive Hysteresis, (I don't exactly understand what will happen, can you please explain?)</p>
<p>Thank you in advance for your response, Best regards, Lauran Casteleijn</p>
<p>   </p>]]></content:encoded>
						                            <category domain="https://brucontrol.com/community/"></category>                        <dc:creator>Lauran Casteleijn</dc:creator>
                        <guid isPermaLink="true">https://brucontrol.com/community/main-forum/hysteresis-2/</guid>
                    </item>
				                    <item>
                        <title>PID control not turning down output</title>
                        <link>https://brucontrol.com/community/software/pid-control-not-turning-down-output/</link>
                        <pubDate>Fri, 14 Apr 2023 02:24:36 +0000</pubDate>
                        <description><![CDATA[I have my panel set up and doing water runs from am esp32.  I have an Rtd temp measurement reading accurately and feeding its measurement into a PID controller. The PID controller appears to...]]></description>
                        <content:encoded><![CDATA[<p>I have my panel set up and doing water runs from am esp32.  I have an Rtd temp measurement reading accurately and feeding its measurement into a PID controller. The PID controller appears to be working properly except it remains at 255 output even after passing target. The heating element just stays on because the output is staying at 255.  Any insight as to what I might have set up wrong?</p>
<p>Thanks, </p>
<p>Jason</p>]]></content:encoded>
						                            <category domain="https://brucontrol.com/community/"></category>                        <dc:creator>Jason Thomas</dc:creator>
                        <guid isPermaLink="true">https://brucontrol.com/community/software/pid-control-not-turning-down-output/</guid>
                    </item>
				                    <item>
                        <title>Output state displays only &quot;-----&quot; and does not indicate OFF or ON</title>
                        <link>https://brucontrol.com/community/main-forum/output-state-displays-only-and-does-not-indicate-off-or-on/</link>
                        <pubDate>Mon, 07 Nov 2022 19:47:18 +0000</pubDate>
                        <description><![CDATA[Hi,
I have been finding the status indicator of my outputs a little flakey.  Sometime they work, sometimes most of them work and sometime all of them just display &quot;-----&quot; and do not indicat...]]></description>
                        <content:encoded><![CDATA[<p>Hi,</p>
<p>I have been finding the status indicator of my outputs a little flakey.  Sometime they work, sometimes most of them work and sometime all of them just display "-----" and do not indicate OFF or ON,</p>
<p>Most interestingly, if I click "-----", the state of the output does change from off to on and vice versa.</p>
<p>my flowmeters also lost status of count and rate.</p>
<p>see attached photo.</p>
<p>any clues?</p>
<p> </p>
<div id="wpfa-0" class="wpforo-attached-file"><a class="wpforo-default-attachment" href="//brucontrol.com/wp-content/uploads/wpforo/default_attachments/1667850438-BruControl_no_status.png" target="_blank" title="BruControl_no_status.png"><i class="fas fa-paperclip"></i>&nbsp;BruControl_no_status.png</a></div>]]></content:encoded>
						                            <category domain="https://brucontrol.com/community/"></category>                        <dc:creator>Hopgoblin</dc:creator>
                        <guid isPermaLink="true">https://brucontrol.com/community/main-forum/output-state-displays-only-and-does-not-indicate-off-or-on/</guid>
                    </item>
				                    <item>
                        <title>Flowmeter Setup</title>
                        <link>https://brucontrol.com/community/hardware/flowmeter-setup/</link>
                        <pubDate>Tue, 11 Oct 2022 18:35:45 +0000</pubDate>
                        <description><![CDATA[Hi all,
I am setting up, hopefully, three flowmeters on my controller.  Two are setup using counter inputs on ports 2 and 3 in BruControl.  Is the the correct way to start?  Are there any m...]]></description>
                        <content:encoded><![CDATA[<p>Hi all,</p>
<p>I am setting up, hopefully, three flowmeters on my controller.  Two are setup using counter inputs on ports 2 and 3 in BruControl.  Is the the correct way to start?  Are there any more counter inputs?</p>
<p>I will have to calibrate the flowmeters but I'm not sure where to start.  When pour a cup of water through to test them, BruControl counts between 100 and 150 "units" of measurement.  How do i translate that into a volume of liquid?</p>
<p> </p>
<p>Thanks in advance?</p>
<p> </p>
<p>Mike</p>]]></content:encoded>
						                            <category domain="https://brucontrol.com/community/"></category>                        <dc:creator>Hopgoblin</dc:creator>
                        <guid isPermaLink="true">https://brucontrol.com/community/hardware/flowmeter-setup/</guid>
                    </item>
				                    <item>
                        <title>OLED library for ESP32</title>
                        <link>https://brucontrol.com/community/hardware/oled-library-for-esp32/</link>
                        <pubDate>Sun, 09 Oct 2022 18:43:35 +0000</pubDate>
                        <description><![CDATA[Looking to utilize some small OLED screens on some ESP32 devices, and I was wondering if we could be sent the source code for the firmware or request the libraries be added to a future firmw...]]></description>
                        <content:encoded><![CDATA[<p>Looking to utilize some small OLED screens on some ESP32 devices, and I was wondering if we could be sent the source code for the firmware or request the libraries be added to a future firmware revision. Thanks!</p>]]></content:encoded>
						                            <category domain="https://brucontrol.com/community/"></category>                        <dc:creator>Jordan Hahn</dc:creator>
                        <guid isPermaLink="true">https://brucontrol.com/community/hardware/oled-library-for-esp32/</guid>
                    </item>
				                    <item>
                        <title>Small Craft Brewery - Is Brucontrol right for me?</title>
                        <link>https://brucontrol.com/community/main-forum/small-craft-brewery-is-brucontrol-right-for-me/</link>
                        <pubDate>Thu, 08 Sep 2022 19:00:05 +0000</pubDate>
                        <description><![CDATA[Hi all,
I have a pretty standard 3-vessel 10 HL brew system.  I run CBPi right now in a fairly manual function and I am looking to automate things more.
The logic is quite simple...i think...]]></description>
                        <content:encoded><![CDATA[<p>Hi all,</p>
<p>I have a pretty standard 3-vessel 10 HL brew system.  I run CBPi right now in a fairly manual function and I am looking to automate things more.</p>
<p>The logic is quite simple...i think...and the mechanical function of firing relays to open/close valves and turn pump on/off makes perfect sense.</p>
<p>Step 1 - transfer a volume of water from HLT to Mash Tun (would need to use flow sensor or volume sensor to get the right amount of water) /*open bottom valve on HTL, turn on HLT pump, open bottom valve Mash Tun</p>
<p>Step 2 - open grain hopper and turn on mash stirrer /*turn on relay for time to empty hopper and stir mash</p>
<p>Step 3 - wait 1 hour /*60 minute timer</p>
<p>Step 4 - Lauter into kettle and start sparge /*open Mash Tun bottom valve, turn on lauter pump, open sparge valve, turn on sparge pump, open kettle inlet valve</p>
<p>Step 5 - Turn on kettle when 200 liters is lautered and whirlpool( a single SSR will activate my control panel to fire up the kettle) /*turn on kettle relay when 200 liters of wort is sensed, turn on whilrpool pump</p>
<p>Step 6 - Stop sparge water when kettle reaches 800 liters /*close sparge valve and turn off sparge pump when 800 liters is sensed</p>
<p>Step 7 - Stop lauter when kettle reaches 1150 liters /*close mash tun bottom valve, turn off lauter pump, close kettle bottom inlet valve</p>
<p>Step 8 - Stop whirlpooling at 97C /*turn off whirlpool pump </p>
<p>Step 9 - Drop in hops when kettle reaches 100C.  Start 60 minute timer /*10 second actuator to add hops from hopper 1</p>
<p>Step 10 - Drop in hops (time to be defined later) /*10 second actuator to add hops from hopper 2</p>
<p>Step 11 - hops again /*10 second actuator to add hops from hopper 3</p>
<p>Step 12 - Turn on whirlpool pump after kettle has been 100C for 60 Minutes /*open outer kettle drain valve, open kettle side valve, and turn on whirlpool pump</p>
<p>etc......</p>
<p>Pumps:</p>
<p>Lauter (1), Sparge (1), HLT (1), Whirlpool (1) (4 total)</p>
<p>Valves:</p>
<p>Mash Tun (1), HLT (1), Kettle (3) (5 total)</p>
<p>I seem to need relays for 4 pumps and 5 valves.</p>
<p> </p>
<p>I guess the big question is, will Brucontrol do this?  I see a lot of homebrew applications and the concept looks like exactly what I want and I love the interface.</p>
<p>Assuming I already have all of the pumps and valves, to build a controller, I believe ! will need the following;</p>
<p>1x Arduino Mega 2560</p>
<p>1x terminal block expansion shield</p>
<p>1 x ethernet shield</p>
<p>1 x 20x4 i2c LCD</p>
<p>3 x 18b20 temp sensors (monitor HLT and Mash, temp control for kettle)</p>
<p>Am I on the right track?</p>
<p>Thanks</p>
<p>Mike</p>]]></content:encoded>
						                            <category domain="https://brucontrol.com/community/"></category>                        <dc:creator>Hopgoblin</dc:creator>
                        <guid isPermaLink="true">https://brucontrol.com/community/main-forum/small-craft-brewery-is-brucontrol-right-for-me/</guid>
                    </item>
							        </channel>
        </rss>
		