BruControl: Brewery control & automation software

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.
Hey BrunDog,

It might be worth telling new users that communication occurs in this thread as well as the forum. I've missed the new beta firmware release and the new RC candiate as well.

I've been having intermittent problems with my Mega disconnecting from BruControl but still being pingable, and responsive to network connections. I've been tearing my network apart trying to work out the connection problem to my Windows machine, network problems on machine, etc, etc.

I've just downloaded the new RC and am about to download the beta firmware to apply to my mega. Hopefully that will stop the problems I am having with BruControl not seeing the Mega.

And I don't think I am being sent email notifications to community responses on the BruControl website.

All that being said, my local install has been rock solid on my latest pils ferment. A great idea for the Mega to just keep trucking on with latest instructions even if it cant communicate with BruControl.

About to start soldering up all the Megas, LCDs, PT100 boards, etc for my first commercial install.

Thanks,
Angus.
 
Fair comments - I’ll make sure we post updates in both places.

With respect to disconnects, we honestly hadn’t heard many say anything about these, but I will say this becomes number one priority - connectivity is critical.
 
I flashed 44K to an ESP32 Dev board last evening and so far I've had one disconnect over 14 hours, and it was right when it booted. Much, much better than the hundreds of disconnects I was getting over the same time period.

An aside for anyone else still having trouble with the ESP32 - the development board I have seems to be VERY power sensitive. I was having a lot of trouble initially getting it booted and stable, so I measured the voltage coming out of the power supply... 4.99v on the Fluke. Swapped power supplies and found one that was reading 5.02v, hooked it up and it's been pretty solid. I wouldn't think a small undervolt like that would make a big difference, but apparently on the board I have it does. I'm going to order one of another brand and see if I see similar results.
 
Going forward, assuming no dissenters, we’ll support:
-MEGA2560 (but I’ll warn this one will become tricky as we push the memory limits).
-Anything SAMD21/51 (M0 and M4)
-ESP32 and ESP8266/85 based
-Arduino Due (I don’t know of anyone using this one. Will likely get phased out eventually in favor of the M4 based Grand Central).

I think this will cover our different needs for a while across connectivity, I/O, and cost.

regarding phasing out:
Yun - ...never heard of anyone using Yun, ever.
Due - Was jut not mainstream enough for me... other than your announcements, and looking at it and not seeing a compelling reason, have not heard anything. Same with Uno...

Regarding Memory:
Maybe the Yun will give enough for a while, but possibly discontinue WiFi altogether on the Mega before stopping dev on the whole ATmega2560 chip, you mentioned WiFi took a lot of memory previously, and there are WiFi alternatives in the ESP.. The Mega with 5100/5000 could be the wired choice until M4 boards gets fully mainstream.


Regarding 3.3v
Mega drives an SSR directly with 5V, if you look at CBPi forums, lots of issues doing that with 3.3V of Pi... but a transistor/resistor soldered inside some heat-shrink solves that, you do not need a big, fancy, underpopulated adapter board like they use, so not a big deal. The 3.3v will drive relay boards and analog out amplifiers just fine.
My Pie-in-The-Sky for BruControl to take over the world is for someone like SunFounder to make an economical 24VDC version of the M4 (or whatever the next big thing is if for some reason the M4 goes 'betamax')... If you spend time in craft breweries, and look in their control panels, that is what they are using... if a hundred high end home brewers are building 24VDC Control systems, they will find their way into the small pro systems.

Conclusion:
Something the Mega2650 made it so popular that it was produced in quantities that brought the price down to $10-$15. I personally would keep M4 in mind when developing, something around the corner could change everything (cpu wise or board-maker wise). But I personally would also hold off on diving in head first and getting rid of Mega.. IMHO, people will/can put 2 ESP32's in a control panel before they shell out the dough for an expensive M4 that *still* needs a network card... $70($40+$30) is not going to kill me, but having spares takes that to $140.. (I do not see anyone but Adafruit making it, and they are out of stock right now.)

For me, it comes down to the fact that either we need to have the BC program run on something that fits IN the control panel(and is economical), OR we need network cost for the interface considered into the total cost.

Looking forward to the future of BruControl!
 
regarding phasing out:
Yun - ...never heard of anyone using Yun, ever.
Due - Was jut not mainstream enough for me... other than your announcements, and looking at it and not seeing a compelling reason, have not heard anything. Same with Uno...

Regarding Memory:
Maybe the Yun will give enough for a while, but possibly discontinue WiFi altogether on the Mega before stopping dev on the whole ATmega2560 chip, you mentioned WiFi took a lot of memory previously, and there are WiFi alternatives in the ESP.. The Mega with 5100/5000 could be the wired choice until M4 boards gets fully mainstream.


Regarding 3.3v
Mega drives an SSR directly with 5V, if you look at CBPi forums, lots of issues doing that with 3.3V of Pi... but a transistor/resistor soldered inside some heat-shrink solves that, you do not need a big, fancy, underpopulated adapter board like they use, so not a big deal. The 3.3v will drive relay boards and analog out amplifiers just fine.
My Pie-in-The-Sky for BruControl to take over the world is for someone like SunFounder to make an economical 24VDC version of the M4 (or whatever the next big thing is if for some reason the M4 goes 'betamax')... If you spend time in craft breweries, and look in their control panels, that is what they are using... if a hundred high end home brewers are building 24VDC Control systems, they will find their way into the small pro systems.

Conclusion:
Something the Mega2650 made it so popular that it was produced in quantities that brought the price down to $10-$15. I personally would keep M4 in mind when developing, something around the corner could change everything (cpu wise or board-maker wise). But I personally would also hold off on diving in head first and getting rid of Mega.. IMHO, people will/can put 2 ESP32's in a control panel before they shell out the dough for an expensive M4 that *still* needs a network card... $70($40+$30) is not going to kill me, but having spares takes that to $140.. (I do not see anyone but Adafruit making it, and they are out of stock right now.)

For me, it comes down to the fact that either we need to have the BC program run on something that fits IN the control panel(and is economical), OR we need network cost for the interface considered into the total cost.

Looking forward to the future of BruControl!
a 24v option would have been nice when I built my 3bbl panel.. right now im using intermediate relays to control the 24v...
 
I flashed 44K to an ESP32 Dev board last evening and so far I've had one disconnect over 14 hours, and it was right when it booted. Much, much better than the hundreds of disconnects I was getting over the same time period.

An aside for anyone else still having trouble with the ESP32 - the development board I have seems to be VERY power sensitive. I was having a lot of trouble initially getting it booted and stable, so I measured the voltage coming out of the power supply... 4.99v on the Fluke. Swapped power supplies and found one that was reading 5.02v, hooked it up and it's been pretty solid. I wouldn't think a small undervolt like that would make a big difference, but apparently on the board I have it does. I'm going to order one of another brand and see if I see similar results.

Great comments - thank you. Regarding disconnects: WiFi is unfortunately not bulletproof (certainly much less than Ethernet. There are neighboring networks and traffic and noise and etc. that causes devices to disconnect. D/c’s are normal, but reconnects need to immediately follow just like other devices, and it’s our responsibility to make sure the interface firmware handles these gracefully. We’ve put a lot of time into hardening the reconnection process, and we’ll make it better too. For example, we’re playing with a reverse ping to make sure the interface, when not in a connection state, pings the network gateway to check that active connectivity is in place.

Regarding the ESP power... I’m thinking that maybe the measurable voltage isn’t the issue, but noise encapsulated on that line is. The boards all have onboard regulators and filters to clean the supply but noise can still creep in. It’s important we use quality switching power supplies to feed these boards - not linear regulated types like wall warts.
 
I thought most wall wart type power supplies were switched? Fair point about the noise though, I'll try a higher quality power supply.

EDIT: Answered my own question... if the power supply has a wide input range (100-240v) its switched. Linear regulators have a narrow input range, and are much heavier. I found a box of old power supplies and there are several heavy power supplies that have a single input voltage of 120v... I pulled one apart and sure enough found a transformer, rectifier bridge, and a cap! Now to find a 5v one.
 
Last edited:
@clearwaterbrewer: also good feedback here. We want a turnkey solution too, and there are some micro powered PLC’s that would work. We are candidly ‘experimenting’ with some shields like the UniShield which would facilitate people’s wiring and setups. We know the price is not along the cheap lines that many will want but hope to someday get better with scale economies. We’d like to do a shield for a MEGA format, but getting the price low is tricky with that many I/O.

For the record, we have no interest in getting rid of the MEGA but will hit the wall soon. As we add more algorithms, they’ll eventually be excluded on that board.
 
Not sure what the Ethernet chipset is, but the main unit and I/O will work.

Me either. I am not personally interested in this board given my brew/ferm rig needs but I came across this while researching the Adafruit Grand Central board. Perhaps someone might give it a shot if they have a need for 24v.
 
Pricey but this has been around since 2015. No idea if it would work with BC firmware or not but it is a MEGA 2560 based unit.

https://www.controllino.biz/controllino-mega/
I saw those but at the time I was very limited on budget restrictions.. If I had to do it all over again though I probably would have gone with something like this as ive seen them on amazon and ebay for less.
 
Quick update. My 44K flashed ESP32 board has been rock steady and reconnecting no matter what network & power problem I throw at it. So that is looking good. Same for my ethernet connected MEGA 2560 on 44K.
 
One of the conflicts we have is what is the right type of industrial controller? Pretty much all have dedicated outputs or inputs, and our hardware guy thinks this is OK so could build one with drivers for the outputs and filters for the inputs etc. I feel pretty strongly that flexibility is paramount so I/O should retain as much selectability as possible. That’s why the UniShield is set up with two terminals per pin: one is the driver output and the other is a direct connection.

Good to hear @VacationLand. Appreciate you stressing it to see if we can force a permanent d/c.
 
One of the conflicts we have is what is the right type of industrial controller? Pretty much all have dedicated outputs or inputs, and our hardware guy thinks this is OK so could build one with drivers for the outputs and filters for the inputs etc. I feel pretty strongly that flexibility is paramount so I/O should retain as much selectability as possible. That’s why the UniShield is set up with two terminals per pin: one is the driver output and the other is a direct connection.

Good to hear @VacationLand. Appreciate you stressing it to see if we can force a permanent d/c.

Well the Adafruit version of the ATSAMD51 with 62 GPIO should make a LOT of people happy... if it were similar to that, it shoudl be able to do both with no sweat... (22PWM pins means you could provide 10 driver and 12 direct...) I would prefer driver/protected everything if I am wanting something pseudo industrial, but I think I will be covered with 10 driver PWM :)

oh, and those 2 true analog out... :ban:
 
FYI ESP-32 and TILT users: We updated the ESP-32 version 44k firmware to increase the amount of time that a dropped TILT report will report the last reported values. Specifically, in the prior version, if after ~90 seconds of no TILT message being received by the ESP, the recorded value would drop to 0 (or -1). Now, that time window is 5 minutes. This should help reduce ugly negative spikes on fermentation graph lines. Yes, a dead/removed/sleeping TILT will not update to tell you its dead/removed/sleeping for a longer time, but we think this is the better of the two. We could experiment with a shorter window - say two minutes, depending on user's feedback!

Regarding the RC, we have a few more updates to make before pre-release. We're fixing a Global date/time value property in scripts, and we're working to include a script pre-interpreter, which will look at syntax errors prior to the script being run to help catch them rather than realizing errors during run time. A few other minor issues, and this bread will be baked!
 
FYI ESP-32 and TILT users: We updated the ESP-32 version 44k firmware to increase the amount of time that a dropped TILT report will report the last reported values. Specifically, in the prior version, if after ~90 seconds of no TILT message being received by the ESP, the recorded value would drop to 0 (or -1). Now, that time window is 5 minutes. This should help reduce ugly negative spikes on fermentation graph lines. Yes, a dead/removed/sleeping TILT will not update to tell you its dead/removed/sleeping for a longer time, but we think this is the better of the two. We could experiment with a shorter window - say two minutes, depending on user's feedback!

That sounds great! I would also like to think about a smoothing algorithm (not sure if you already have one in there). Tilt likes to have one-off, way-out-of-range values due to motion of the device, we could average or maybe even better do a 'truncated mean' or median to get data that would look much better on a graph... TiltPi displays a reading every 2 seconds when it sees a new on, but keeps a single point value every 15 minutes(450 samples), so if your tilt wins the lotto with an outlying value of 1.086 instead of 1.070, your chart gets a big spike... reading this article on stack exchange, I think 'median' would work. If this can be done in a script on the user side, I am happy with that, but do not think it can at the current time.
 
Last edited:
That sounds great! I would also like to think about a smoothing algorithm (not sure if you already have one in there). Tilt likes to have one-off, way-out-of-range values due to motion of the device, we could average or maybe even better do a 'truncated mean' or median to get data that would look much better on a graph... TiltPi displays a reading every 2 seconds when it sees a new on, but keeps a single point value every 15 minutes(450 samples), so if your tilt wins the lotto with an outlying value of 1.086 instead of 1.070, your chart gets a big spike... reading this article on stack exchange, I think 'median' would work. If this can be done in a script on the user side, I am happy with that, but do not think it can at the current time.

Totally agree with this. If it was to be built into the device element, that's fine, but I would also like some math functions to take the raw data and perform some time averaging in scripting.
 
That would also work... I was thinking more along the lines of array building. Same thing could be accomplished with multiple variables, just not as pretty to work with. Lots of ways to do the same work!
 
Sorry for the frequent drops... we just posted v44L of the ESP-32 firmware. It adds OTA (Over The Air) updates for firmware. This means that firmware installs will not require a serial connection (network settings are stored in EEPROM so no need to re-configure network via USB). Once this version is installed, the next firmware can be updated via the installer over Wi-Fi. You can test it by re-installing v44L via Wi-Fi.

Note: It does not have the smoothing for Tilt above yet.
 
Last edited:
Sorry for the frequent drops... we just posted v44L of the ESP-32 firmware. It adds OTA (Over The Air) updates for firmware. This means that firmware installs will not require a serial connection (network settings are stored in EEPROM so no need to re-configure network via USB). Once this version is installed, the next firmware can be updated via the installer over Wi-Fi. You can test it by re-installing v44L via Wi-Fi.

Note: It does not have the smoothing for Tilt above yet.

I was just going to ask for OTA, for my SonOff Duals that are mounted high, but I already ask for too much! You ROCK!
 
doh, I was wondering why it looked like just K version! would love it for that and my mega also.... the 'check output above' is a little hard...

Is this normal for what you see on the firmware load via OTA?

Code:
- Review User Manual and 'Interface Wiring Map' for this interface to select appropriate firmware code.
- Firmware name is BruControl.version.interface_type.options.

1 - BruControl.44L.ESP32.W.ino.bin
- Which firmware to upload (select by number above):1
Sending invitation to 192.168.5.92
Uploading..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

*** CRITICAL STEP ***
Check output above to verify the firmware upload completed successfully above before continuing.
Press any key to continue . . .
 
doh, I was wondering why it looked like just K version! would love it for that and my mega also.... the 'check output above' is a little hard...

Is this normal for what you see on the firmware load via OTA?

Code:
- Review User Manual and 'Interface Wiring Map' for this interface to select appropriate firmware code.
- Firmware name is BruControl.version.interface_type.options.

1 - BruControl.44L.ESP32.W.ino.bin
- Which firmware to upload (select by number above):1
Sending invitation to 192.168.5.92
Uploading..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

*** CRITICAL STEP ***
Check output above to verify the firmware upload completed successfully above before continuing.
Press any key to continue . . .

Yes, we’ll look at OTA for the ESP8266/85 and the other WINC WiFi units. Challenge for any of these is the firmware must accommodate less than half of the storage memory so both can fit simultaneously. Interfaces with SD card slots could utilize those, so that’s a possibility too.

Yes, that is all the reporting you get with the ESP32 over the air update. It only shows a bunch of dots... no percentage indication or ‘complete’ notice. Sorry!
 
A couple of random musings:

I just remembered that the M0 can't use OTA - it doesn't have true EEPROM to store network settings, so they get overridden by the re-write.

Also, regarding the Tilt smoothing - I'm not sure it needs it. It doesn't vary much once actually in the wort. One idea would be to use Floor and Ceiling calibrations to limit aberrant readings on the graph.
 
I beg to differ, active fermentation throws it around for me:

upload_2019-3-17_13-20-23.png
 
There might be value in some of that data? Ok maybe not.

I suppose if there are one-off spikes, those may get represented as jagged on the graph. Smoothing would help those. But if there are multiple samples at higher or lower levels, they would probably still represent on the graph. Do you have the raw data from that graph that we could take a look at?

If we smooth, we should probably read less often than the current ~3x per minute to let it work more betterer.
 
Has anyone spent any time developing a UDL (user defined language) for BruControl in Notepad++ by any chance? The UDL is really a syntax highlighting scheme. If so, would you care to share the UDL XML file? Or are you just typing away without much formatting?
 
Has anyone spent any time developing a UDL (user defined language) for BruControl in Notepad++ by any chance? The UDL is really a syntax highlighting scheme. If so, would you care to share the UDL XML file? Or are you just typing away without much formatting?

Well I gave it a shot and put something together quickly. Looks to be OK. I assigned the UDL to a made up extension (.bruscript) so it would automatically apply the proper language when I opened a text file that has that same extension. I.E. I create text files for my BruControl scripting work and give them that .bruscript extension and the language is selected properly by Notepad++.

Code:
<NotepadPlus>
    <UserLang name="BruControl" ext="bruscript" udlVersion="2.1">
        <Settings>
            <Global caseIgnored="yes" allowFoldOfComments="no" foldCompact="no" forcePureLC="0" decimalSeparator="0" />
            <Prefix Keywords1="no" Keywords2="no" Keywords3="no" Keywords4="no" Keywords5="no" Keywords6="no" Keywords7="no" Keywords8="no" />
        </Settings>
        <KeywordLists>
            <Keywords name="Comments">00// 01 02 03/* 04*/</Keywords>
            <Keywords name="Numbers, prefix1"></Keywords>
            <Keywords name="Numbers, prefix2"></Keywords>
            <Keywords name="Numbers, extras1"></Keywords>
            <Keywords name="Numbers, extras2"></Keywords>
            <Keywords name="Numbers, suffix1"></Keywords>
            <Keywords name="Numbers, suffix2"></Keywords>
            <Keywords name="Numbers, range"></Keywords>
            <Keywords name="Operators1">- ! # % ( ) * , / ^ | + &lt; = &gt; :</Keywords>
            <Keywords name="Operators2"></Keywords>
            <Keywords name="Folders in code1, open"></Keywords>
            <Keywords name="Folders in code1, middle"></Keywords>
            <Keywords name="Folders in code1, close"></Keywords>
            <Keywords name="Folders in code2, open"></Keywords>
            <Keywords name="Folders in code2, middle"></Keywords>
            <Keywords name="Folders in code2, close"></Keywords>
            <Keywords name="Folders in comment, open"></Keywords>
            <Keywords name="Folders in comment, middle"></Keywords>
            <Keywords name="Folders in comment, close"></Keywords>
            <Keywords name="Keywords1">autosync&#x000D;&#x000A;sync&#x000D;&#x000A;wait&#x000D;&#x000A;if&#x000D;&#x000A;else&#x000D;&#x000A;endif&#x000D;&#x000A;start&#x000D;&#x000A;pause&#x000D;&#x000A;resume&#x000D;&#x000A;delete&#x000D;&#x000A;goto&#x000D;&#x000A;stop&#x000D;&#x000A;restart&#x000D;&#x000A;print&#x000D;&#x000A;display&#x000D;&#x000A;displayinfo&#x000D;&#x000A;sleep&#x000D;&#x000A;clear&#x000D;&#x000A;background&#x000D;&#x000A;show&#x000D;&#x000A;workspace&#x000D;&#x000A;call&#x000D;&#x000A;return&#x000D;&#x000A;datetime</Keywords>
            <Keywords name="Keywords2">true &#x000D;&#x000A;false&#x000D;&#x000A;on&#x000D;&#x000A;off&#x000D;&#x000A;default&#x000D;&#x000A;visible&#x000D;&#x000A;hidden&#x000D;&#x000A;hiddenlocked&#x000D;&#x000A;Fahrenheit&#x000D;&#x000A;Celcius&#x000D;&#x000A;CountUp&#x000D;&#x000A;CountDown&#x000D;&#x000A;now</Keywords>
            <Keywords name="Keywords3">Name &#x000D;&#x000A;Visibility &#x000D;&#x000A;DisplayText&#x000D;&#x000A;Enabled&#x000D;&#x000A;Connected &#x000D;&#x000A;ActiveLow&#x000D;&#x000A;State&#x000D;&#x000A;OneShot &#x000D;&#x000A;OneShotDirection &#x000D;&#x000A;ActiveLow&#x000D;&#x000A;Value&#x000D;&#x000A;DutyCycle&#x000D;&#x000A;Interval&#x000D;&#x000A;PollRate&#x000D;&#x000A;SamplingPeriod&#x000D;&#x000A;Total &#x000D;&#x000A;RawRate&#x000D;&#x000A;Rate&#x000D;&#x000A;SensorIndex&#x000D;&#x000A;Unit&#x000D;&#x000A;InputPortID &#x000D;&#x000A;Target &#x000D;&#x000A;OnOffset &#x000D;&#x000A;OnDelay&#x000D;&#x000A;InputPortID &#x000D;&#x000A;Target &#x000D;&#x000A;Kp&#x000D;&#x000A;Ki&#x000D;&#x000A;Kd&#x000D;&#x000A;Reversed&#x000D;&#x000A;CalcTime&#x000D;&#x000A;OutTime&#x000D;&#x000A;MaxIntegral &#x000D;&#x000A;MaxOutput &#x000D;&#x000A;PollRate &#x000D;&#x000A;AvgWeight&#x000D;&#x000A;ResetValue &#x000D;&#x000A;Active&#x000D;&#x000A;RawValue &#x000D;&#x000A;Value &#x000D;&#x000A;Time&#x000D;&#x000A;Bool&#x000D;&#x000A;String</Keywords>
            <Keywords name="Keywords4">new</Keywords>
            <Keywords name="Keywords5">Status&#x000D;&#x000A;</Keywords>
            <Keywords name="Keywords6"></Keywords>
            <Keywords name="Keywords7"></Keywords>
            <Keywords name="Keywords8"></Keywords>
            <Keywords name="Delimiters">00[ 01 02] 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23</Keywords>
        </KeywordLists>
        <Styles>
            <WordsStyle name="DEFAULT" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="COMMENTS" fgColor="008000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="LINE COMMENTS" fgColor="008000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="NUMBERS" fgColor="FF8000" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="0" />
            <WordsStyle name="KEYWORDS1" fgColor="0000FF" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="0" />
            <WordsStyle name="KEYWORDS2" fgColor="8000FF" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="0" />
            <WordsStyle name="KEYWORDS3" fgColor="408080" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="0" />
            <WordsStyle name="KEYWORDS4" fgColor="804000" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="0" />
            <WordsStyle name="KEYWORDS5" fgColor="808040" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="KEYWORDS6" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="KEYWORDS7" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="KEYWORDS8" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="OPERATORS" fgColor="0000A0" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="FOLDER IN CODE1" fgColor="FF0000" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="0" />
            <WordsStyle name="FOLDER IN CODE2" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="FOLDER IN COMMENT" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="DELIMITERS1" fgColor="000000" bgColor="C0C0C0" fontName="" fontStyle="1" nesting="0" />
            <WordsStyle name="DELIMITERS2" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="DELIMITERS3" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="DELIMITERS4" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="DELIMITERS5" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="DELIMITERS6" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="DELIMITERS7" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="DELIMITERS8" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
        </Styles>
    </UserLang>
</NotepadPlus>

It is an XML file and the forum doesn't like those so just copy the content above into Notepad++ and save it as a XML file. Then import it via the "define your language " function.
 
Last edited:
There might be value in some of that data? Ok maybe not.

I suppose if there are one-off spikes, those may get represented as jagged on the graph. Smoothing would help those. But if there are multiple samples at higher or lower levels, they would probably still represent on the graph. Do you have the raw data from that graph that we could take a look at?

If we smooth, we should probably read less often than the current ~3x per minute to let it work more betterer.

Granted, these are from TiltPi, which displays an update every 2 seconds when it receives the beacon, but the value it uploads to google chart is just the value the happens to show at every 15 minute mark. that value could be several points off the real value, which would be well represented by the mean of those 450 prior values since the last bit of data was sent to the chart. How this translates ot BC, I am not sure, but we don't need 2-second intervals for a 3-7 day ferment...
 
I like the ingenuity of this. Notepad++ is cool, but curiously, what is the advantage compared to going full screen with the script? Maybe we should make a full screen or pop-out option?

OK maybe I'm a dummy but how do you or can you even go full screen with the scripting window or even just make it bigger than the bottom 1/3 of the screen? I can't seem to make that happen. Do I need to RTFM again? :) This is kind of why I went to Notepad++ to give me more real estate. Not that copy/paste is hard but importing/exporting of a script would be cool (albeit not really required, I get that).
 
Last edited:
I use TextMate on a Mac and then copy/paste into BruControl.
OK maybe I'm a dummy but how do you or can you even go full screen with the scripting window or even just make it bigger than the bottom 1/3 of the screen? I can't seem to make that happen. Do I need to RTFM again? :) This is kind of why I went to Notepad++ to give me more real estate. Not that copy/paste is hard but importing/exporting of a script would be cool (albeit not really required, I get that).
^^This. I have the hardest time making the script screen/pane bigger/smaller by dragging on the pane resize handle. The resize handle target seems to be about half a pixel wide, given how hard it is to grab with a trackpad.

Also, echoing what Die Beerery said: search and some auto-formatting are biggies for me.
 
OK maybe I'm a dummy but how do you or can you even go full screen with the scripting window or even just make it bigger than the bottom 1/3 of the screen? I can't seem to make that happen. Do I need to RTFM again? :) This is kind of why I went to Notepad++ to give me more real estate. Not that copy/paste is hard but importing/exporting of a script would be cool (albeit not really required, I get that).

Open mouth... insert foot. For some reason I thought you could drag the window up. I'm confident that was there before, but I just tested it and its not. So... we need a full screen option.
 
Last edited:
Back
Top