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

    Homebrewing Facebook Group

How To: BrewPi LCD Add-On

Homebrew Talk

Help Support Homebrew Talk:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.
There is a "lose your mind" function, yes. Basically you echo "E" to the port if I'm remembering right. There's also a button in the control panel. Given the electrical issues @Car Ramrod is having, I'd be hesitant to declare it an application issue. Always willing to explore possibilities though. I'd still like to know what "turned it off then back on" means specifically.

I'd recommend using the latest release version 0.2.11 of the firmware. It has the reset timer to get rid of scrambling if/when it occurs.
 
Will do i will reflash tonight. I believe i will have to hard wire it to re flash correct? Do i need to completely wipe the UNO or is reflashing all that is needed?

Turned it off and back on was i have a power switch on the control box. So i cut all power to the box, then turned it back on. FYI i did it again later last night and it didnt lose the devices.
 
I'm running 0.2.10 across the fleet, fwiw.

Does the 0.2.11 firmware support erasing the eeprom? Because now that I think of it I'm vaguely remembering folks that had the symptom of losing device assignments on a power-cycle that was "cured" by manually wiping the eeprom then configuring the devices again...

Cheers!
 
I'm running 0.2.10 across the fleet, fwiw.
The significant differences between 0.2.10 and 0.2.11 was moving to PlatformIO (which compiles with updated libraries so who knows what changed - hopefully all good changes) and adding the reset LCD on timer function (a few other small things.)

Does the 0.2.11 firmware support erasing the eeprom? Because now that I think of it I'm vaguely remembering folks that had the symptom of losing device assignments on a power-cycle that was "cured" by manually wiping the eeprom then configuring the devices again...
It does:
Code:
elif messageType == "resetController":
     logMessage("Resetting controller to factory defaults.")
     bg_ser.write("E")
That's the part that does it in brewpi.py. One can either use the (extremely scary) sockettest.php page and send a blank message of type "resetController" to execute that, or use Maintenance Panel -> Advanced Settings -> Reset Arduino to factory defaults (all the way at the bottom.)
 
Well I reflashed both controllers with 0.2.11. i had some organization to do in my keezers so moved my completed controller to the other freezer. Everything was going well. Then i used the rotary encoder to set fridge constant and a temp, clicked ok, and it switched to waiting to cool. Then boom, screen went blank for a half second, then cam back on with no probes and in Celsius. Wouold this have anything to do with physically moving the device while on?

Started to kinda make me mad as i have set these things up multiple times last night, but i got pretty fast at it as i memorized all the probe numbers and such, lol. So i shut it down and turned it back on and it cam back to Fahrenheit but no probes. Re set the probes and been running all night. So idk how to recreate this wiping of the devices.
 
Well I reflashed both controllers with 0.2.11. i had some organization to do in my keezers so moved my completed controller to the other freezer. Everything was going well. Then i used the rotary encoder to set fridge constant and a temp, clicked ok, and it switched to waiting to cool. Then boom, screen went blank for a half second, then cam back on with no probes and in Celsius. Wouold this have anything to do with physically moving the device while on?

Started to kinda make me mad as i have set these things up multiple times last night, but i got pretty fast at it as i memorized all the probe numbers and such, lol. So i shut it down and turned it back on and it cam back to Fahrenheit but no probes. Re set the probes and been running all night. So idk how to recreate this wiping of the devices.
It's certainly not supposed to happen like that. But, you've recreated the issue with two versions of the firmware - one very well matured and one compiled with a different set of libraries and minor changes. I'd be leaning towards a hardware/environmental issue of some sort. "Just moving" and having the screen blank like that sounds a lot like the Arduino lost power, so there's a loose connection somewhere I'm guessing. When the serial port is re-opened (like if the dongle resets) the Arduino will reset as well so the connection could just be that power supply.

Back to what @day_tripper was saying/remembering, I'd try first to reset the eeprom. Use the Maintenance Panel, Advanced Settings, "Reset Arduino to factory default" all the way at the bottom. Then set up your devices, then see if that helps. If you are still having issues, try without the bluetooth or wireless cards and see if that causes it to stop. Those should be simple serial connections, but it's incredibly simple to reset the eeprom (all it has to receive is an "E") so any weirdness when the other card starts up could potentially cause the Arduino to lose it's mind.

Remind me, are you using BT or the ESP8266? If the latter, what serial bridge are you using?
 
Ok. I have reset eeprom a few times but never a full reset of the Arduino. I'll try that. I am using the hc 05 Bluetooth.
 
If you have a USB to TTL converter, it might be interesting to reset that while connected to a terminal session and see if any weird characters are sent when it resets.
 
I was incredibly unclear, sorry about that.

What I meant was: Connect the HC-05 to your USB to TTL converter and get it connected to a terminal session and talking properly. Then do "stuff" to it to see if you can make it act weird. Reset it, pull the power, on/off/on/off/on rapid cycles, etc. See if it spits out any jibberish to the screen.

If for instance it spits out an "E", "S" or "C", it's gonna wipe out settings on the Arduino.
 
Is it time? It might be time. Time for something new in the world of BrewPi Arduino. Thanks to @CadiBrewer for putting up with my crazy ideas, a new shield is born!

This is v1.3, code named: "The One Shield." I can't see where we can do anything different with the Arduino Uno. Perhaps most significantly, this shield provides hardware support for an I2C display (there's important information about this below). There are other improvements which I think you guys are gonna dig.

BrewPi Arduino Uno Shield v1.3 (I2C/RevC) Changelog:
  • (NEW) Four-pin I2C header. No more having to use that 16-pin ribbon! A mere 4 wires to connect your display. (Yes, the previous parallel LCD is supported as well.)
  • (NEW) Rotary encoder header - No more having to figure out which Arduino header pins to use! There's also a rotary encoder breakout (thanks @gromitdj!) to make that easier to wire up.
  • (CHANGE) LED headers - The old headers were one pin each for heat and cool, connected to a pull-up resistor. That worked fine with "normal" setups, but the wiring was not straightforward for what I call "mere mortals." And, if you used non-inverted outputs for heat and cool (such as with SRs) you found yourself in a strange position. These headers are three-pin: VCC <-> D5/6 <-> GND. This means if you are using "normal" inverted outputs, you connect your LEDs to VCC and the center pin for either LED. If you are using non-inverted outputs, you connect the LEDs to GND and the center pin for either LED.
  • (CHANGE) Relays: This change re-orders the pins to match the typical relay headers.
  • (NEW) OneWire Selection: One each three-pin header to switch between A0 or A4 for the One-Wire bus. You must use A0 if you are using I2C. Not sure why Elco ever used A4 but that's one of the hard-wired I2C pins for the Arduino so a chance was necessary.
  • (CHANGE) Power: Version 1.2 split the power for the LCD and used the ICSP header to power the LCD backlight to reduce LCD scrambling. By all accounts that had no impact. On some Arduino clones (as well as the combo ESP8266/ATmega328P boards) have the ICSP header in a different place, which ended up requiring jumpers to apply power to the LCD, and/or creating a shorting point with the pins hitting an unexpected place on the controller board. This has been re-combined with the power and ground points looped together to form a single larger bus. In addition, from v0.2.11 of the Arduino firmware, there is a timer which resets the LCD display every 180 seconds to get rid of any scrambling.
  • (NEW) Break-Out Board support: An RJ45 to allow for a remote break-out board. This uses an Ethernet cable (which is straight-through) as opposed to the smaller RJ11 (telephone cord) because phone cords are cross-over by default. The pin-out supports @Thorrak's original breakout boards, however support for remotely placing the heat/cool relays is also included. A breakout board supporting all of this is in development:
    • Pin 1 - Unused
    • Pin 2 - Unused
    • Pin 3 - VCC
    • Pin 4 - OneWire Data (A4 or A0)
    • Pin 5 - GND
    • Pin 6 - Door (D4)
    • Pin 7 - Cool (D5)
    • Pin 8 - Heat (D6)
  • (NEW) Door pins: The original Arduino firmware has support for a contact switch which detects when the door is open. I don't know of many folks using this but adding two pins for that was easy enough since we already put it on the RJ45.
  • (NEW) Alarm: The original firmware has VERY basic support for an alarm (piezo speaker). Right now, it only beeps when the Arduino resets but maybe we can do something more with it later.
  • (CHANGE) Parallel LCD header: Even though the old header was 16-pins, we only used 12 of them. Using a straight 16 was simpler and kept people form screwing things up too bad but we needed the room. So, the parallel LCD header is now split into two 6-pin headers. This does give the benefit of making this connection much easier to route as bending two 6-wire ribbons is a lot easier than a 16-wire one.
  • (NEW) LCD Backlight always-on: If one used the v1.2 board with no rotary encoder or at least a switch, the LCD would time-out and not be able to be turned back on. Added R13 to keep the backlight always-on in those cases. To make use of this functionality, REMOVE R12 and ADD R13.
If you want to use the I2C there are two important things you need to keep in mind!
  1. I2C support is a separate firmware image and only available in version 0.2.12. As of right now (6/1/19) this is a beta image, but I should be ready to release it soon. Firmware 0.2.12 requires BrewPi Scripts/WWW v0.5.2.1 which is currently in the Devel branch.
  2. You MUST select "A0" on the One-Wire selector.
When configured for I2C this is technically a new shield definition (I2C). When configured for the parallel LCD it works as an updated RevC.

Here's some PCB porn:

Top.png
Bottom.png


I have not yet uploaded the Eagle files to the BrewPi Remix website, but if you want to get a jump on things, get some board quickly (but maybe for a few extra bucks); I've uploaded the files to OshPark (hence the purple board.) The BOM is there as well, including a link to a BOM on Mouser which contains most of the parts needed.

This board should rightfully be considered an Alpha release, since none exist in the wild yet. Three people have reviewed the design however, and it builds on a successful predecessor for the more complicated circuits. I have the boards on order, should be assembling next weekend. I was way too excited not to share in this thread, however. As soon as they are tested, I'll make a release post on the Mega Thread.

As with most things related to electronics on this project, a HUGE thanks to @day_trippr for his original design, his assistance which was given to @CadiBrewer for versions 1.1 and 1.2, and for answering my stupid questions finalizing v1.3.
 
Last edited:
For the record, my contribution was to put everything on the board so Lee could then move everything where he wanted, and then to channel my inner Dave by telling him to beef up the GND and 5V traces.
 
Well, I said it was an alpha ... ;)

No issues with the v1.3 design, as far as I know it works. I did however make a small change that I think will make it easier for folks. Instead of removing R12 and adding R13 if there's no pushbutton/encoder, I added a jumper cap for selection. I thought that would make it more flexible for folks if they change their design around. You no doubt would have some pin strip and a cap laying around anyway so no added cost for the hobbyist.

Updated design here for v1.3.1, all the rest of the notes apply. If you ordered yesterday and logged in just to see this change already ... sorry. If it makes you feel any better I ordered yesterday too. :)
 
Well Lee, I ordered a set of boards and will help you out if you need.

So back to the issue I am having. I set my box up and let it run. About 3 days in it deleted everything again. Fermentrack read the same as the screen, no sensors and celsius. But it still had the correct pins and everything set up in the settings. Once I unassigned one of the probes it unassigned everything and the screen showed fahrenheit. I was able to reset everything and let it run again. It happened again 2 days later. I had logging on so I'm able to show you the graph. Is there a log I can pull out and look at?

Don't mind the ambient temp, lol. I'm in South Louisiana and it has been super hot here and even hotter in the garage.

So I believe you still think it is a Bluetooth issue as I didn't movie the box at all so I doubt it is a shorting issue. I'm not very terminal savvy, so while I understood what you said do to I don't know the exact way to do it.

Also I looked high and low in fermentrack for the "wipe Arduino clean" bit couldn't find it. Should I get brewpi remix up and running to use this feature. Note I am using an non adruino brand Uno.
 

Attachments

  • Screenshot_20190605-211512.png
    Screenshot_20190605-211512.png
    235.6 KB
You should be able to use screen or another tool to issue the command if it’s not available in Fermentrack (although I gotta believe it’s there somewhere). I’ll drop you some notes here in a bit when I get to the office.
 
Any chance you could upload the Gerber files for the latest version please? Costs a lot to order from the US to uk, would rather use a local board supplier to keep costs down.
Thanks
Dave
 
Thanks Lee.

Zio, I believe he said he would upload the files soon. Seems like this is early in the development and just olpit it one place so a couple people can get it together and test it before it is widely available.
 
So I believe you still think it is a Bluetooth issue as I didn't movie the box at all so I doubt it is a shorting issue. I'm not very terminal savvy, so while I understood what you said do to I don't know the exact way to do it.

Also I looked high and low in fermentrack for the "wipe Arduino clean" bit couldn't find it. Should I get brewpi remix up and running to use this feature. Note I am using an non adruino brand Uno.
First, install screen:

sudo apt install screen

Run the following:

sudo screen /dev/rfcomm0 57600
(assuming your BT device is rfcomm0)

From here you can issue the command "E" which will erase eeprom.
Any chance you could upload the Gerber files for the latest version please? Costs a lot to order from the US to uk, would rather use a local board supplier to keep costs down.
I'll upload the Eagle files as soon as I have the fabrication in my hands to check the first run. In theory that will be tomorrow. I'll assemble on Saturday so by Sunday if things go well. I could export the Gerbers from Eagle, but I have no way of verifying their accuracy after that process so I'd prefer to allow the user to do that/be responsible for it.
 
ok did that and ran screen on the rfcomm and this is what it is printing out.
 

Attachments

  • Capture.JPG
    Capture.JPG
    118.7 KB
So it cut out 2 more times this weekend. Im going to hard wire it to confirm if it is the bluetooth module. Then start from scratch with those.
 
Another board update: I have the 1.3 (not the 1.3.1) boards in my hands. So, if/when I get some time to get up to my office and do some soldering, I have something to solder on. I'm still hoping that the 1.3.1 boards show up soon though.
 

Latest posts

Back
Top