Home > Brew gear, BrewzNET, Tech geeks > Tedium and minutiae

Tedium and minutiae

I recently realized that my BrewzNET 2.0 project bears a passing resemblance to the BrewTroller project, in that it is an electronics platform to facilitate homebrewing that uses an Arduino-style platform and a 20×4 LCD screen, but after watching a video I realize the two are quite different in function (if not in form). My stuff is not designed to automate every aspect of the brewing process… and that level of complexity is not something I even want or desire in my brew day. To me I want enough technology to take over the more tedious aspects of brewing (like moving beer around), but not take away from the “art” of it. I am OK not hitting all of my temperatures exactly and maintaining them perfectly for the exact alloted time… each of my batches does have a little individual character, even when I brew the same recipe more than once, and I like that. I am not a production line brewing for the masses – I am one man brewing to please himself and those he chooses to share his life with.

Those BrewTroller dudes undoubtedly put a ton of effort and work into the BrewTroller and I’m sure it is amazing in action, however the BrewzNET gear I’m building serves a completely different purpose, I think. It allows me to answer the fundamental questions I wonder about when brewing without getting in my way, like:

  • Am I sparging too fast?
  • Is my mash headed towards “stuck”?
  • How long is it going to take to collect all the wort I need?
  • Am I going to overflow my mash tun?

I honestly credit Arnie Wierenga for turning me on to The Simplicity Cycle and challenging me to rethink my direction and philosophy when it comes to the role of technology in my brewing activities. The important emphasis here is “MY” – because what feels right and works for me is likely not how other homebrewers and makers would feel. I feel I am staying true to my own personal simplification curve as much as possible, and if I do come back and make enhancements over time, I will do my best to remain on that path.

It’s always the last 10-20% that seems to take forever with developments for me. Perhaps this is because that final push involves polishing up the rough edges, taking ugly blocks of “get ‘er done” code and rewriting them so they are elegant, and when you are as retentive as I am, that means working and reworking things until they are perfect (or I lose patience).

I can’t say I completely squashed the “reboot bug” I mentioned in my previous post, but I did make enough changes that it appears to no longer occur. I tracked it down to the code that receives data from the Xbee wireless modems, and it seemed to be related to only one of the end device modems. On closer inspection I found it was running different firmware than the other modem was… so in total the changes I made were:

  • I upgraded the end device firmware to the latest version
  • I put SyncLock statements on the serial port object to hopefully prevent sending / receiving collisions on different threads
  • I put in a ton of debug.print statements that likely slow execution a little… perhaps in a good way.

Long story short, the Netduino no longer seems to reboot randomly. I’ll keep my eye out for it, however I really don’t want to mess with it if it seems to be working.

breadboardLCD_notesI also made significant changes to the LCD and button class setup. I realized that the MCP23008 backpack was relatively wasteful when I had 10+ unused pins on the MCP23017 expander… and the MCP23017 could handle both just fine. This meant wiring up the display on the breadboard and combining the two classes into a single LCD class, which is when things went sideways again.

Every time the LCD screen was updated, the buttons stopped responding. It was maddening. After waaaaaay too many hours fiddling with things, I found the problem – one of the control bit settings for the MCP23017. When the 5th bit of the IOCON register is zero, it toggles between the A and B banks of pins. I had the LCD on bank B and the buttons on bank A… so when the I2C interface wrote to bank B to update things, the next byte got written to bank A, essentially turning off the buttons. As soon as I set the bit to the correct setting everything functioned as expected.

I finally got around to integrating the manual override switch circuitry too. All it took was a CMOS 4070 Quad XOR gate. This allows someone to throw a switch and negate the current output signal from the Netduino. This means if the pump is off and you need it on (like it would be in “Manual” mode), just flip the switch. If the pump is running and you need to turn it off (like an overflow emergency or a “run dry” situation), flip the same switch. For now these are implemented as momentary interrupts on the breadboard, but I will replace them with more robust panel switches closer to the physical build.

The two green LEDs visually confirm the resulting logic level from the XOR gate. For the physical build these will be connections to the control signal terminals on the SSRs that control power to the pumps.

I think one of my next steps will be working up the circuit boards the build will require. I have not decided whether to prototype and etch them at home or use one of the many online professional services to do that.

  • A backpack circuit that encompasses the LCD and switch functionality.
  • 2 boards for the XBee end devices and their associated switches / sensors.
  • I may try to use an off-the-shelf protoshield to handle the remaining circuitry… or I may go custom here too. I am still thinking through my options.
Categories: Brew gear, BrewzNET, Tech geeks
  1. No comments yet.
  1. February 28, 2014 at 9:02 pm

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: