• 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.
Put a meter on the A8-A15 pins and see if they are being pulled high or low... my Seeed Studio ethernet shield gave me similar issues until I bent a few of its pins out of the way to avoid something pulling some pins high from the shield.
 
Put a meter on the A8-A15 pins and see if they are being pulled high or low... my Seeed Studio ethernet shield gave me similar issues until I bent a few of its pins out of the way to avoid something pulling some pins high from the shield.

I took some readings with the Seeed Studio installed with an Arduino Sketch and with BC firmware. With BC firmware it appears only A4 and A5 are pulled up to 3.3V, all the others are at around 0.2V. Even though A4 & A5 are pulled high, when I connect a voltage generator to them, they track the proper reading down to 0.74V but then it will not read lower. There is something up with those two pins and it is indeed related to the shield but A8-A15 are not pulled up beyond 0.2V and still don't respond.

As side note. With no BC firmware loaded (just an Arduino sketch with the Seed shield installed but not initialized in any way), the same A8-A15 pins read the same 0.2V. Pins A4 & A5 still are pulled high @ 3.3V and respond in the same manner as in BC firmware. To that, in just the sketch and still with the ethernet shield installed, pins A8-A15 do work normally. So either turning on the shield in the code or something else in the BC firmware is causing the A8-A15 pins to go silent.

Not that bending pins should be required but what pins we talking about?
 
Last edited:
See my previous posts here for clarity, but it was SCL and SDA on the 5500 shield.

I did notice that if I bent the 3.3V pin, the A4 &A5 voltage dropped to 0.4V. That is, as it turns out, because I had my two pull-up resistors for pin 20 & 21 powered through that on the ethernet shield on the bench. So interestingly enough, if I pull the resistors from 20 & 21, the voltage drops off pins A4 & A5.

Needing the resistors on pin 20 & 21 is a hack needed with this type of chip as it is expecting a LCD as I understand it and without it, it will not boot properly.

Bending those pins did get A4 & A5 to working properly along the entire range (0-3.3V) but it has had no effect on A8-A15. That is not surprising given that they were not pull high to begin with on the Grand Central. Thanks for the reminder of your post, at least I got A4 &A5 working properly now.
 
Last edited:
Pins A4 and A5 were historically the I2C pins on the original Arduino format, so it seems some of the shields are tying them together for us. That’s too bad and a mistake by the shield maker IMO. The (not ideal) fix is to bend the pins slightly aside so they don’t connect to the header.

That said, it is entirely possible we aren’t addressing A8 - A15 properly. No need to panic, we we’ll fix it easily enough.

Also, WRT serial comms, it should work, but we have only done limited testing so far (hence beta). Trust we’ll get it right!
 
I know you guys will. I just wanted to provide the info I had to save others and yourself some time as more complete testing had not yet been done (i.e it is beta). I'm still using the MEGA, so the Grand Central being beta is no problem. Once the issues are ironed out, I will toss it in the enclosure as I have it all setup for a 3.3V logic micro now.
 
Anyone have a recommendation for a pressure sensor to monitor spunding pressure? 0-30 ish psi...
 
Last edited:
Just remember that most pressure sensors will be permanently damaged at some percentage above full reported scale - that could be 150 or 200% of full scale. So for example, you can’t use a 15 psi sensor and pressure it to 45 psi.

Also, be warned... many sensors will report a voltage above the full scale range. So as another example, a 20 psi sensor which outputs 5V at 20 psi will output 7.5V at 30 psi, which will damage the analog input of a 5 V interface.
 
Anyone have a recommendation for a pressure sensor to monitor spunding pressure? 0-30 ish psi...

This is the one I am using for spunding.

https://s.click.aliexpress.com/e/rTOjtu8

You also don't have to worry about the over voltage problem mentioned above when you go with a sensor that has a supply voltage of 5V and use it with a 5V compatible micro like the mega.

You will be hard pressed to find a sensor with a 5V supply that can output 7.5V.
 
Last edited:
For anyone interested in putting together an Arduino Uno based load cell controller with a local LCD display, local tare and calibration functions via the LCD buttons, with an analog output via a 12-bit DAC that can be connected to a controller running a BC firmware, the Arduino sketch in the attached text file will get you there. There are many ways to do things so feel free to make changes as you see fit.

Hey @VacationLand, thanks for the idea and the code for this. I have all of my parts and am starting to cobble together my first "scale" to put into my system. I have two questions. First, for the ds18b20, where do you physically install that in the system? Is it near one of the load cells? Near the center where your wires all come together? And is it a typical probe, or did you use just the chip and attach it somewhere? I guess that was 4 questions in my first question.

Second, the values in your lookup table are specific to the Phidget load cells that you purchased. How would I create a similar table for the load cells that I purchased?

Thanks in advance for the help.
 
Hey @VacationLand, thanks for the idea and the code for this. I have all of my parts and am starting to cobble together my first "scale" to put into my system. I have two questions. First, for the ds18b20, where do you physically install that in the system? Is it near one of the load cells? Near the center where your wires all come together? And is it a typical probe, or did you use just the chip and attach it somewhere? I guess that was 4 questions in my first question.

Second, the values in your lookup table are specific to the Phidget load cells that you purchased. How would I create a similar table for the load cells that I purchased?

Thanks in advance for the help.


I did install the temp sensor near the load cells themselves as a means to get an "average" reading for temp such that if the temp was high, it would be appropriate for the load value to be compensated for that temperature. It will be at your discretion as to where this temp sensor placement will be but it probably isn't super important given the type of usage the scale will have, the temp changes it might see, and the amount of variation the load cell will have with these temp changes.
 
I did install the temp sensor near the load cells themselves as a means to get an "average" reading for temp such that if the temp was high, it would be appropriate for the load value to be compensated for that temperature. It will be at your discretion as to where this temp sensor placement will be but it probably isn't super important given the type of usage the scale will have, the temp changes it might see, and the amount of variation the load cell will have with these temp changes.
Thanks!

How do I go about creating the lookup table for the load cells that I purchased?
 
Might be easier to import raw data to BC then calibrate it there - would not require editing, compiling, uploading native code to the microcontroller board each time. BC has a lookup table that should be easier to edit.
 
Thanks!

How do I go about creating the lookup table for the load cells that I purchased?

As BrunDog mentioned, I do indeed use the look-up table function in BC to get the values in BC to match the values the scale is reporting (i.e. calibrate the read voltages in BC micro enclosure against those being sent out from the scale micro controllers). On the microcontrollers that I am using to run my scales that are "adjusting" the load cell values prior to sending the data over to BC, I use a function in the code. Your load cell manufacturer will need to provide detailed specifications on the load cell and define what the non-temp compensate range is and what the temperature effect on span is when outside of that range. The cells I am using have a 2.5g/C error outside of the compensated temp range of -10C to 40C. So in the micro code for the scale I adjust the output accordingly when the temperature is between 40-50 C by 2.5g/C that it is above 40C. I just made a series of values that started at 2.5 and went up by 2.5 from there. So 2.5, 5, 7.5, 10.0....up to the value that would represent the max temp of the load cells that I have temp comp information for (50C in my case but I extrapolated out to 55C). For temps above 55C, I just use the temp comp value for 55C for temps upward of 55C. The code will then use those values to make changes to the load cell raw values and then those are sent over to BC. Those would be received in BC that are temp compensated up to 55C (or whatever the max of your load cells are or the table you setup). I needed to do the code in the micro for the scales as the temp sensors are not wired into BC but rather only the scale micro controllers. I also did not bother to compensate for the temp effect on zero as I will be starting at temps that are always in the temp compensated range in my applications and only needed temp comp for high temps seen during boiling.
 
Last edited:
Rate is the amount over time - so if connecting a flow meter, that is flow.

We don’t use defined units like quarts or gallons per hour because the calibration system allows you to resolve to any unit you like. You just need to determine the math, but it’s all multiplication so it’s not that difficult.

Is there a way to not show count, only flow? (other than making a variable and hiding the flowmeter)
 
I forgot to mention that active low digital inputs (sinking type switch) on the RobotDyn Mega ETH 2560 are not working for me. I set one up when I had the Grand Central micro installed recently and it worked fine as a active low input wired as per the wiring diagram on the BC website. When I switched back, the MEGA 2560 did not work anymore. Reworking the digital input (switch) as a sourcing type switch with a resistor and changing the config in the software back to active high, the digital input on the MEGA 2560 worked. This was specifically tested on and the results above were from ports 43, 44, and 45.

Is anyone else having success or issues with sinking type switches as a digital input on the MEGA 2560 or RobotDyn variant (installed with both v44 and v45 ethernet firmware)?
 
I'm hoping to get some clue to troubleshoot an alarm issue I've been having since I re-wrote the code. My alarm still works when I activate it manually or if I activate it through a simple script. But for some reason in my main brew script, it behaves differently. It is called in a dozen places and in that script is always does the same thing: the LED turns red (as designed) but there is no sound and no email. The first time I observed this, I didn't notice the email issue and thought it was a computer sound setting. After the brew day, I tried it (outside the script) and it worked fine so I thought I had resolved my sound setting. A couple weeks later I brewed again and sure enough, no sound, no email.

Any clues about what could be causing this?

Here's an example of where it is called just for a sanity check:

//Strike temperature reached
wait "HLT Temp" Value >= "Strike Temp" Value
"Alarm" Active = true
"Status 1" Value = "Strike temp reached: ready to dough-in:"
call "Continue Sub"
"Alarm" Active = false

...

[Continue Sub]
"Status 2" Value = "Press Continue to proceed"
"Continue" Visibility = visible
"Continue" State = false
wait "Continue" State == true
"Continue" Visibility = hidden
"Status 2" Value = ""
return
 
Not sure whasup... the following just worked fine for me (email and sound on alarm OK). Make sure there are no other scripts messing with that alarm:

Code:
[start]
"CONT" Visibility = visible
"AlarmTEST" Active = true
//"Status 1" Value = "Strike temp reached: ready to dough-in:"
call "Continue Sub"
"AlarmTEST" Active = false
stop "Script 11"

[Continue Sub]
//"Status 2" Value = "Press Continue to proceed"
"CONT" Visibility = visible
"CONT" State = false
wait "CONT" State == true
"CONT" Visibility = hidden
//"Status 2" Value = ""
return
 
That's the interesting thing... it works for me too. But during the brew day it doesn't work. I had checked that there were no other scripts messing with the alarm (cause I don't see what else it could be). I'll check again. But still, I don't see how another script could prevent sound/email but still let the LED go red... I'm confused.
 
I have tons of alarm triggers and they all work fine. My brewday script is 2000 lines of code. The difference is that I don’t use any calls, not saying that is it, but it’s something I don’t do
 
Ok, I think I've figured it out. I can't have 2 alarms at the same time. First one is triggered (sound not looped, no email) and stays on. When the second alarm is triggered, it turns on, but no sound, no email. Not sure if that's by design or not...

I said in an earlier post that I made a switch look like an LED by using an alarm (active state of the alarm as the switch). Well, turns out I can't do that...
 
I have a floor scale with rs-232 output ( PS-IN202 from PrimeScales ), it would be neat to hook it up to an ESP32 and have it close a valve or turn off a pump when the desired weight was reached...

More info on the scale project, I have it talking to the PC on a com port so I can see the format of the continuous streaming of measurements, now to see if there is interest in creating a serial input scale widget for something like an ESP32 with a RS232 adapter. (I have the $1 one from eBay that uses a MAX3232 on the way) attaching notes as a text file to not take up space in this thread..
 

Attachments

  • scale serial communications.txt
    2 KB
Ok, I think I've figured it out. I can't have 2 alarms at the same time. First one is triggered (sound not looped, no email) and stays on. When the second alarm is triggered, it turns on, but no sound, no email. Not sure if that's by design or not...
I can confirm that... if an alarm is already active, any other alarm that goes active will not generate an email/sound.
 
Ok, I think I've figured it out. I can't have 2 alarms at the same time. First one is triggered (sound not looped, no email) and stays on. When the second alarm is triggered, it turns on, but no sound, no email. Not sure if that's by design or not...

I said in an earlier post that I made a switch look like an LED by using an alarm (active state of the alarm as the switch). Well, turns out I can't do that...

Yes, this is a known issue... when a second alarm goes off the sound and alarm don't occur. We'll address it.
 
I'm not sure if this is a bug or by design, but Globals (and possibly Inspectors) only seem to log data when they are on the currently open workspace tab. Even if the Global is updated via a script running, but not in the active workspace, it will not log any data until I open that tab. When that tab is open, on my system anyway, it logs at 16/sec.

This may be a default log rate - we'll take a look as that would be WAY too much!

Edit: Looks like this is correct - thank you for pointing this out. We'll remedy this ASAP.
 
Last edited:
It would be nice to be able to select which value(s) you want to display for the counter flow input elements. In particular, I am trying to use a digital gauge for the display and it defaults to displaying to total integrated volume instead of the flow rate.
 
Back
Top